During learn and experience

۴۲ مطلب با موضوع «GWT» ثبت شده است

Integration test for GWT + Spring web applications

Testing (unit or integration) GWT applications has several difficulties, recently i have meet a Java testing framework for GWT applications (gwt-test-utils), this library provides utilities for both unit test and integration test.
I like "GWT + Spring web application testing" feature of this library. Unfortunately the spring-sample of this project in github was not complete, I forked it in my github account. You can get it from this link and see how to integration test GWT + Spring web applications using gwt-test-utils.

Have a nice time.
۱۳ دی ۹۱ ، ۱۲:۲۱ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

GWT code splitting with activities and places

GWT activities and places do not work with gwt code splitting facility. Recently i have changed GWT activities and places sample so that it works with GWT code splitting feature and push the new sample into github.
In this sample, split points occur on getting activity by ActivityMapper, i write a new kind of ActivityMapper called AsyncActivityMapper which can get activities asynchronous, and also i write a new kind of ActivityManager called AsyncActivityManager (copy and paste gwt ActivityManager class with minor changes) that work with AsyncActivityMapper.

Have a nice time.
۰۱ دی ۹۱ ، ۰۰:۳۷ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

Creating mobile web application using GWT without any third party library


Recently, i am working on a small project for producing a mobile web application using GWT. I have read lots of advises and subjects about this, there are several third party library (like mgwt, SmartGWT.mobile and ...) which can do this but for right to left considerations i would like to use pure GWT. After several days i find some useful tips:
  • Use MVP pattern for building Device-specific UIs.
  • Use formfactor property in Deferred binding or FormFactor module to select best UI for client device (tablets, phones and ..).
  • Use DockLayoutPanel as much as possible for better layouting.
  • Capture and respond to device orientation changes using ResizeHandlers.
  • Use GWT's Client Bundle to batch resource fetches for increase responsiveness.
  • Use Code Splitting to grab only the code you need to minimize startup time.
  • Use Application Cache (HTML5 feature) for Loading resources like HTML, CSS, and JS from disk.
  • Use HTML5 local storage feature for working without connection and reading/writing data into local database.
You can get this pdf and also see this link to see several useful tips, there is also a good chapter in this book about building mobile application using GWT.

Have a nice time.
۱۸ آذر ۹۱ ، ۲۲:۳۵ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

GWT Data Presentation Widgets

Finally GWT team add some advance component for handle and display data in a consistence way.

more information :


have a nice time.
۰۸ دی ۸۹ ، ۱۱:۴۲ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

GWT roadmap

Last night i searched about GWT future and i found a good sentence about GWT mission in Making GWT Better page of GWT site in google code:

"GWT's mission is to radically improve the web experience for users by enabling developers to use existing Java tools to build no-compromise AJAX for any modern browser."

this page describe all the word of this mission sentence and also has a part that describe design axioms.

have a nice time.
۰۶ آذر ۸۹ ، ۲۳:۴۹ ۱ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

How to making AJAX web application crawlable for search engines ?

In the following link Google offer a specification that allows for dynamically created content in the AJAX web application (like GWT application) to be visible to search engine crawlers.  Google announce that currently supports this agreement.


have a nice time.
۲۸ آبان ۸۹ ، ۱۱:۵۱ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

GWT Developer Plugin for Chrome on Linux


With the following link you can download prerelease of GWT Developer Plugin for Chrome on Linux. GWT issue tracking system set the final release for releasing GWT 2.1.1.

http://google-web-toolkit.googlecode.com/svn/trunk/plugins/npapi/prebuilt/gwt-dev-plugin.crx

have nice time.
۱۵ آبان ۸۹ ، ۰۷:۳۷ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

How to use Client Bundle in Google Web Toolkit (GWT)

Client Bundle was a new feature in GWT 2 and replaced with Image Bundle . The following developer guide link can help you for better understanding about GWT Client Bunlde. 


have a nice time.
۱۴ آبان ۸۹ ، ۱۲:۰۷ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

GWT 2.1 Release Candidate 1

Finally GWT 2.1 release candidate come:

http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html

That is great , i want to learn more about its new feature as soon as possible. I like MVP Framework and Cell Widget features.

MVP Framework feature can standard views in large scale GWT application s and we can share views in different projects.

have a nice time.

۲۸ مهر ۸۹ ، ۱۰:۰۰ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

تشکر از مسئولین سایت plusdownload

سایت plusdownload اولین نمونه از سایتهای فارسی زبانی است که با استفاده از آن می توانید نرم افزارهای رایگان و اپن سورس را دانلود کنید. نمونه های غیر فارسی این سایت از پیشتر در دنیای وب وجود داشتند (مانند : filehippo) اما خوبی این نمونه ایرانی در این که مسئولان این سایت هم ایرانی هستند و با مفهومی به نام تحریم آسنا هستند و می شود با آنها تامل کرد.
چند روز پیش بنده با فرستادن یک email و تشریح وضعیت دشوار دانلود نرم افزارهای مورد نیاز توسعه دهندگان جاوا (JDK ، NetBeans ، GWT و ...) در ایران برای مدیران این سایت خواستار قرار دادن این نرم افزار های اپن سورس و رایگان برروی وب سایتشان شدو که خوشبختانه به سرعت جواب مثبت به email بنده داده شد.
امروز هم که سایتشون رو چک کردم دیدم که لینک دانلود آخرین نشخه GWT رو برروی سایتشون گذاشتن. امیدوارم که به سرعت امکان دانلود سایر نرم افزارهای درخواستی کاربران را نیز فراهم کنم.

در انتها باید تشکر فراوانی از لطف بزرگ دوستانمان در سایت plusdownload بکنم ، که این لطف بزرگ رو به جامعه توسعه دهندگان برنامه های جاوا در ایران می کنند.

شاد باشید.
۲۸ خرداد ۸۹ ، ۱۰:۴۱ ۱ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

کامپایل توزیع شده برنامه های GWT !!!

Distribute Build یکی از قابلیت های فوق العاده کامپایلر GWT می باشد. از زمانی که یک مطلب درباره این قابلیت در قسمت wiki سایت GWT مطالعه کردم تصمیم گرفته ام هر چه زودتر از این قابلیت برای پروژه خودم در آن مشغول به کار هستم استفاده بکنم.
یکی از فرایند های زمانگیر در GWT کامپایل نهایی پروژه به جاوااسکریپت برای استقرار آن برروی سرور می باشد. برای مثال پروژه ای که در حال حاضر من روی آن کار می کنم انقدر بزرگ شده که حدود 8 دقیقه کامپایل آن به جاوااسکریپت زمان از ما می گیرد.
با استفاده از Distribute Build شما می توانید فرایند کامپایل برنامه GWT خود را برروی چندین ماشین پخش کنید و هر ماشین وظیفه کامپایل یک یا چند permutation را داشته باشد.
فرایند کامپایل برنامه های GWT سه مرحله دارد:
  1. Precompile
  2. CompilePerms
  3. Link
هر کدام از این مراحل توسط یک کلاس پیاده سازی شده اند و در کتابخانه های GWT قرار دارند و بعنوان دستور در command line قابل استفاده می باشند.
دستور Precompile و Link باید برروی ماشین اصلی (build server) که وظیفه مدیریت کامپایل را بر عهده دارد انجام شود ولی هر کدام از permutation می تواند توسط دستور CompilePerms برروی یک ماشین صورت پذیرد.
برای هر سه دستورباید بعنوان آرگومان ( -workDir) یک دایرکتوری مشترک معرفی کرد. این دایرکتوری نقش مهمی در فرایند کامپایل بر عهده دارد دستورات ، خروجی های خود را درون این دایرکتوری مشترک قرار می دهند و همچنین وروردی های خود را از این دایرکتوری دریافت می کنند.
در محله اول دستور Precompile نام ماژول GWT را بعنوان ورودی دریافت کرده و بعنوان خروجی فایل precompilation.ser را درون دایرکتوری مشترک قرار می دهد.


 java -cp ... com.google.gwt.dev.Precompile com.google.gwt.sample.hello.Hello \


    -workDir work
در گام بعدی دستور CompilePerms نام ماژول و لیست شماره permutation هایی که باید کامپایل کند را بعنوان آرگومان دریافت کرده و نتیجه فرایند کامپایل را درون دایرکتوری مشترک قرار می دهد (شماره permutation  ها از 0 شروع می شود و تعداد آنها می توان از فایل permCount.txt که در دایرکتوری مشترک قرار دارد بدست آورد ).


  java -cp ... com.google.gwt.dev.CompilePerms com.google.gwt.sample.hello.Hello \
   
-workDir work
   
-perms 0
  java
-cp ... com.google.gwt.dev.CompilePerms com.google.gwt.sample.hello.Hello \
   
-workDir work
   
-perms 1
ودر مرحله آخر دستور Link تمامی permutation هایی که درون دایرکتوری مشترک قرار دارد را ترکیب کرده و خروجی نهایی را می سازد.

  java -cp ... com.google.gwt.dev.Link com.google.gwt.sample.hello.Hello \
   
-workDir work
   
-war www
   
-extra aux
البته مطمئنا در عمل این فرایند پیاده سازی دشواری خواهد داشت ولی بدلیل اینکه برای پروژه ای که من برروی آن کار می کنم ضروری است مطمئنا ارزش پیاده سازی دارد و پیاده سازی آن با استفاده از ant و یک build server می تواند انجام شود.

مطالب مرتبط:

GWT CodeSplitting

قابلیت GWT Java to JavaScript Compiler

GWT Java to JavaScript Compiler


شاد باشید.
۲۱ ارديبهشت ۸۹ ، ۲۱:۰۷ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

Working with cookies in GWT

In GWT you can work easily with cookies. GWT has a class that name is Cookies , with this class you can set your values into browser cookie mechanism or get values from browser cookie this class has several static method for this purposes.

Cookies.setCookie(cookieName, cookieValue, expires);

With the above method you can set your value into browser cookie with a cookie name. you can also set a timeout for your cookie in milliseconds (expire time).

You can remove your set cookie with the removeCookie method.

Cookies.removeCookie(cookieName);

With the following method you can get the list of all set cookie.
 
Cookies.getCookieNames();

and finally you can get a spesific cookie with the following method.

Cookies.getCookie(cookieName);

have a nice time.
۱۹ اسفند ۸۸ ، ۲۳:۴۱ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

دانلود Firefox gwt-dev-plugin

بمنظور توسعه برنامه های GWT باید از GWT Developer Plugin استفاده کنید. GWT Developer Plugin for Firefox پلاگین مورد نظر برای مرورگر Firefox می باشد.
با استفاده از لینک زیر بدون استفاده از پ-ر-و-ک-س-ی می توانید آخرین نسخه GWT Developer Plugin for Firefox را دانلود کنید (مخصوص توسعه دهندگان ایرانی).

gwt-dev-plugin.xpi

شاد باشید.
۲۷ بهمن ۸۸ ، ۱۵:۴۰ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

دانلود gwt-2.0.2.zip

با استفاده از لینک زیر بدون استفاده از پ-ر-و-ک-س-ی می توانید آخرین نسخه GWT = Google web toolkit را دانلود کنید (مخصوص ایرانی ها).
از این پس می توانید نرافزارهایی را که بدلیل تحریم نمی توانستید دانلود کنید را در این وبلاگ به راحتی دانلود کنید.

Download Google Web Toolkit (GWT) free

gwt-2.0.2.zip

شاد باشید.
۲۷ بهمن ۸۸ ، ۱۴:۵۴ ۲ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

آینده GWT UIBinder

در حال حاضر برای ساخت رابط کاربری در GWT دو روش وجود دارد:
  • ایجاد رابط کاربری با استفاده از programming
  • ایجاد رابط کاربری بصورت Declarative با استفاده از UIBinder
در این پست در باره UIBinder بعنوان قابلیت جدید GWT 2 صحبت کرده بودیم. افرادی که از نسخه های قبلی GWT استفاده کرده اند می دانند که در روش Declarative قابلیتی وجود ندارد که نتوان با استفاده از روش programming پیاده سازی کرد. روش Declarative بعنوان یک روش جایگزین پیشنهادی برای ایجاد رابط کاربری در GWT است.

اما سوال اصلی این است که با وجود یک روش (
ایجاد رابط کاربری با استفاده از programming) چرا تیم GWT تصمیم به ارائه یک روش پیشنهادی دیگر کرده است. تحلیل بنده از دلایل بروز این اتفاق و آینده این قابلیت بصورت زیر است:

- روش
programming در بین برنامه نویسان محبوبیت فراوانی داشت ولی جذابیت زیادی برای طراحان وب که بیشتر عادت به استفاده از tag برای توسعه برنامه تحت وب داشتند نداشت به همین دلیل قابلیت ایجاد رابط کاربری با استفاده از UIBinder (که از تگ های xml استفاده می کند ) می تواند توسعه دهندگان بیشتری را جذب GWT کند.

-
ایجاد رابط کاربری با استفاده از UIBinderاحتیاج به کدنویسی کمتری دارد که باعث می شود چیدمان رابط کاربری از منطق و رویداها جدا باشد و همچنین باعث تولید کدهای خواناتری می شود.

- بطور کلی تولید ابزار طراحی رابط کاربری بصورت visual برای روش های برپایه تگ راحت تر از
تولید ابزار طراحی رابط کاربری بصورت visual برای روش های برپایه کد می باشد. من فکر می کنم که تیم GWT قصد دارد در آینده یک ابزار طراحی رابط کاربری بصورت visual بعنوان eclipse plug-in عرضه کند و این اولین قدم برای ارائه چنین محصولی است.

در نهایت به نظر بنده این قابلیت جدید یک پیشرفت خوب برای GWT به حساب می آید (با اینکه من هنوز از روش
programming استفاده می کنم) و در صورتی که یک ابزار طراحی رابط کاربری بصورت visualهم برای این قابلیت عرضه شود می تواند GWT را بیش از پیش قدرتمند تر و محبوب تر کند.

شاد باشید.
۱۹ بهمن ۸۸ ، ۰۸:۴۷ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

GWT 2.0 Release Candidate 1 (قسمت 2)



ادامه قسمت 1 ...

ایجاد رابط کاربری بصورت Declarative با استفاده از UIBinder:
قابلیت UIBinder به توسعه دهندگان این امکان را می دهد که بیشتر قسمت های رابط کاربری را بصورت Declarativeتعریف کنند. در نسخه های قبلی ، widget ها با کدنویسی ایجاد می شدند و به یکدیگر (با استفاده از Panel ها) متصل می شدند که این فرایند به کدنویسی زیادی نیاز داشت. در GWT 2 توسعه دهندگان می توانند با استفاده از XML ، رابط کاربری خودشان را تعریف کنند این امر باعث می شود کدهای خواناتری بوجود بیاید ، نگهداری آنها آسانتر باشد و توسعه آنها سریعتر باشد. مثال Mail نمونه استفاده عملی از قابلیت UIBinder می باشد.

Bundling of Resources via ClientBundle:
بمنظور انجام عملیات spriting (چسباندن تصاویر برنامه به یکدیگر و تولید یک تصویر یکپارچه با حجم فشرده) خودکار مکانیزم ImageBundle در GWT 1.4 معرفی شد. ClientBundle روش تعمیم یافته این تکنیک برای بهینه سازی فرایند دانلود تمامی منابع سمت سرور (css ، text files ، XML) می باشد. این تکنیک باعث کاهش ترافیک شبکه می شود و می تواند تاخیر در زمان پاسخ برنامه های تحت وب (مخصوصا برروی موبایل) را کاهش دهد.

نوع ساده تر شده Unit Testing با استفاده از HtmlUnit:
با استفاده از HtmlUnit فرایند تست سریعتر انجام می شود و دیگر نیازی به راه اندازی یک مرورگر واقعی برای انجام تست نیست بلکه به راحتی در حالت Development و با استفاده از یک Java Debugger می توان این کار را انجام داد.

شاد باشید.
۰۲ آذر ۸۸ ، ۱۳:۲۶ ۳ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

GWT 2.0 Release Candidate 1 (قسمت 1)



با عرضه GWT 2 RC1 توسعه دهندگان GWT می توانند از امکانات جدید GWT 2 استفاده کنند (البته این نسخه هنوز نسخه نهایی نمی باشد و تیم GWT پیشنهاد کرده است از این نسخه برای تولید استفاده نشود). علاوه براین Google Plugin for Eclipse 1.2 RC1 نیز عرضه شده است که امکانات زیادی برای توسعه با استفاده از GWT 2 در خود دارد.

قابلیت های جدید قابل توجه در GWT 2:

In-Browser Development Mode:
در نسخه های قبل از GWT 2 ، حالت hosted یک مرورگر خاص به نام "مرورگر hosted" را بمنظور debug کدهای جاوا در اختیار توسعه دهنده قرار می داد ، این روش توسعه دهندگان را محدود می کرد (برای مثال استفاده از debugger های جاوااسکریپت یا نمایش فایل های فلش درون
"مرورگر hosted" امکان پذیر نبود). در GWT 2 صفحات وب درون مرورگرهای مشهور و شناخته شده ای(IE ، Firefox و...) که قرار است دیده شوند debug می شوند (نه درون "مرورگر hosted"). حالت development با استفاده از پلاگ این های مخصوص برای هر مرورگر که "Google Web Toolkit Developer Plugin" نام دارد به توسعه دهنده این امکان را می دهد در زمان توسعه و بمنظور debug از مرورگر مورد علاقه خود استفاده کند.

Developer-guided Code Splitting:
قابلیت code spliting با استفاده از
GWT.runAsync بهمراه گزارش های کامپایل (The Story of Your Compile) به توسعه دهندگان امکان می دهد مقدارقابل توجهی از کدهای GWT خود را بمنظورافزایش سرعت start up برنامه به چندین قسمت تقسیم کنند. تصور کنید که برای مشاهده یک فیلم ابتدا باید تمام آن فیلم را دانلود کنید. در حال حاضراکثر برنامه های AJAX رفتار اینچنینی دارند ، با استفاده از قابلیت code spliting می توانید فقط کمترین میزان اسکریپت مورد نیاز برای اجرای برنامه را در start up برنامه بارگزاری کنید سپس بر اساس در خواست های کاربر اسکریپت های باقی مانده برنامه بارگزاری خواهد شد.

ادامه دارد...

شاد باشید.

۲۷ آبان ۸۸ ، ۰۸:۳۶ ۳ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

تالار GWT در سایت برنامه نویس




سلام
امروز بصورت کاملا تصادفی متوجه شدم در سایت برنامه نویس در بخش زبان های اسکریپتی یک تالار جدید برای GWT در نظر گرفته شده است. ولی متاسفانه فقط دو تا پست در این تالار وجود داشت و کاملا سوت و کور بود. اون دوتا پست هم توسط کاربری با نام اخباری گذاشته شده بود که یکی اعلام شروع به کار این تالار بود و دیگری تعدادی مطلب آموزشی در باره GWT. به نظر می رسید همین آقای اخباری پیگیر راه اندازی این تالار بوده (با تشکر از ایشون).
به هر حال با این پست خواستم اعلام کنم از این پس اگر هرگونه سوال تخصصی در زمینه GWT داشتید می توانید در این تالار مطرح کنید.
با تشکر از همکارانم در سایت برنامه نویس.

شاد باشید.
۲۲ آبان ۸۸ ، ۱۰:۱۳ ۲ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

اجرای Tomcat برروی Windows 7

سلام
امروز وقتی می خواستم برای اولین بار Tomcat را روی Windows 7 نصب کنم به یک مشکل بر خوردم. Tomcat (نسخه 6.0.20) بدون هیچ مشکلی نصب شد ولی زمانی که بعد اتمام مراحل نصب می خواستم سرویس Tomcat را اجرا کنم پیغام زیر را دریافت می کردم.

windows could not start the Apache tomcat ... service-specific error code 0.

پس از کمی جستجو در Google در یک مطلب راه حل ساده ای برای رفع این مشکل پیدا کردم. در این مطلب آمده بود مشکل از اینجا است که JRE نمی تواند فایل msvcr71.dll را پیدا کند یا اینکه Tomcat به آن دسترسی ندارد.
راه حل ساده پیشنهادی در این مطلب ، کپی کردن فایل مورد نظر (که درون فولدر JRE قرار دارد) درون فولدر bin محل نصب Tomcat بود.

شاد باشد.


۱۳ آبان ۸۸ ، ۱۱:۰۲ ۱ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

GWT CodeSplitting

CodeSplitting یکی از قابلیت های فوق العاده ای است که قرار است در GWT 2 اضافه شود. برای روشن شدن دلیل اینکه چراتیم توسعه GWT تصمیم گرفته است چنین قابلیتی را به GWT اضافه کند ، ابتدا توضیحی در مورد مشکلات موجود داده می شود سپس در باره کلیات این قابلیت جدید توضیحاتی آورده می شود.

برنامه های AJAX بیشتر کارهای خود را با استفاده از جاوااسکریپت انجام می دهند و این سبب می شود که حجم کدهای جاوااسکریپت برنامه بالا رفته و تاثیر مستقیمی برروی زمان اجرای اولیه برنامه بگذارد.
اگر به خروجی کامپایلر GWT توجه کرده باشید ، این کامپایلر به ازای هر مرورگر (و زبان های که برنامه شما از آن پشتیبانی می کند) یک فایل جاوااسکریپت با قالب نام XXXXXXXXXXXXXXXXXXXXXXX.cache.html برای شما ایجاد می کند. زمانی که حجم کدهای برنامه شما کم است این فایل ها حجمی حدود 100 تا 150 کیلوبایت دارند که باید در زمانی که کاربر اولین درخواست مشاهده برنامه شما را داد برروی مرورگر کاربر بارگزاری شود. اما وقتی حجم کدهای برنامه شما افزایش می یابد حجم این فایل ها نیز زیاد می شود (در بعضی موارد حتی بیشتر از 500 کیلوبایت ) در اینصورت کاربر برای مشاهده برنامه شما باید باید مدت زمان زیادی منتظر باشد.
CodeSplitting به شما این امکان را می دهد در زمان نوشتن برنامه با استفاده از دستور GWT.runAsync مکانهایی که می خواهید برنامه split شود را مشخص کنید. با این کار قسمت هایی از برنامه که با این روش مشخص کرده اید در زمان کامپایل درون یک فایل جداگانه کامپایل می شود و در زمان اجرا نیز در هنگام بارگزاری اولیه برنامه برروی مرورگر کاربر بارگزاری نمی شود بلکه در صورت نیاز بارگزاری می شود.

به مثال زیر توجه کنید:
با اضافه شدن این قابلیت در GWT 2 شما می توانید بر حجم فایل های جاوااسکریپت ارسالی برای کاربران کنترل داشته باشید.

شاد باشید.
۲۵ شهریور ۸۸ ، ۰۸:۳۸ ۱ نظر موافقین ۰ مخالفین ۰
سعید زرین فام