Archive for اردیبهشت, ۱۳۸۸

گیفت سنتر

اردیبهشت ۱۰م, ۱۳۸۸

گیفت سنتر (فروشگاه اینترنتی) در دومین جشنواره وب ایران کاندید شده است.

لینک خبر » http://www.webna.ir/news/?id=-703910829

Posted in دسته‌بندی نشده‌ها | Comments (۱)

GWT (Google Web Toolkit)

اردیبهشت ۴م, ۱۳۸۸

برگرفته از knol.google.com

چکیده فارسی

ماموریت GWT بهبود ریشه ای کیفیت appهای تحت وب, با قادر ساختن توسعه گرها به استفاده از ابزارهای فعلی جاوا در تولید appهای Ajax با کیفیت بالا برای تمام مرورگرهای مدرن است.GWT گام بزرگی جهت کم کردن فاصله appهای وب با appهای ویندوز است. GWT انتخاب مناسبی برای تولید Enterprise application ی تحت اینترانت و اینترنت است.

کلمات کلیدی GWT – Google Web Toolkit – Ajax Java Framework – Google Ajax Compiler

متن کامل

مقدمه

از اوایل سال ۲۰۰۵, که Ajax توسط یک معمار اطلاعات معرفی شد تا بحال تکنولوژی ها و ابزارهای زیادی مبتنی بر آن ارائه شده است و جالب است که پس از گذشت ۲۰سال, برنامه نویس های Ajax با مشکلاتی دست و پنجه نرم می کنند که برنامه نویسهای آن زمان در برنامه های TSR تحت DOS با آن روبرو بودند. البته خیلی از این مشکلات توسط framework ها مختلفی که برای Ajax ارائه شده است , برطرف شده است. مثلا در ATLAS که مایکروسافت ارئه کرده است, برنامه نویسی Ajax بسیار ساده شده است ولی جالب است که خود مایکروسافت تمایل زیادی به استفاده از آن ندارد! مایکروسافت در واقع به همان اندازه که کار را ساده کرده است, از کیفیت و کارایی آن نیز کاسته است به نحوی که برنامه نویسها در حین کار با Atlas بزودی متوجه می شوند که اساسا خیلی از کارها را با Atlas نمی توانند انجام بدهند و در مواردی که انجام می شود سرعت و قابلیت اطمینان آن رضایتبخش نیست. از بین تمام پیاده سازیهایی که از Ajax شده شاید بتوان Gmail و Google Map را جز بهترین به حساب آورد, به نحوی که شرکت های معظمی مانند یاهو و مایکروسافت هنوز نتوانسته اند محصولات قابل رقابتی با آنها ارائه کنند.

در اقدامی غیر منتظره در ماه می ۲۰۰۶, گوگل اقدام به ارائه frameworkی برای تولید appهای Ajax, مبتنی بر تجربه موفق gamil و google map نمود.همان گونه که از گوگل انتظار می رود, GWT کاری بزرگ , باکیفیت و سرشار از ایده های نو است, که انتظار می رود تحول بزرگی را در تولید نرم افزار ایجاد کند و در بسیاری از موارد, انتخاب بهتری از appهای معمولی ویندوز(rich client) و یا وب باشد.

GWT

Google web toolkit یک framework سورس باز جاوا است که به شما امکان می دهد که از تکنولوژهایی که تولید appهای Ajax را دشوار و مستعد باگ می کنند, رهایی یابید. با GWT می توانید appهای java را با ابزارهای دلخواه java توسعه و دیباگ کنید. زمانی که کار شما آماده ارائه به تولید شد, کامپایلر GWT آن را به javascript و html ی که با انواع مرورگرها سازگاری دارد, ترجمه می کند.

تفاوت GWT با frameworkهای دیگر این است که شما کد سمت مرورگر را بجای javascript با java می نویسید. و این به این معنی است که شما از منابع و ابزارهای بسیار زیادی که هم اکنون در java موجود است, در طرف مرورگر(client side) استفاده کنید. همچنین شما می توانید از مزایای OOP مانند encapsulation و ارث بری در طرف مرور گر بهره مند شوید و همچنین می توانید کد طرف مرورگر را به صورت واقعی دیباگ کنید. هسته GWT یک کامپایلر java به javascript است که کد جاوا اسکریپت سازگار با مرورگرهای Internet Explorer, Firefox, Mozilla, Safari و Opera را تولید می کند. به همراه GWT یک کتابخانه از کنترلهای متدوال مانند منو, پنل, کلید, درخت و …. عرضه شده است.

ساختار GWT

GWT ابزارهای جامعی را درخور چالشهایی که برای تولید rich internet application وجود دارد, گرد هم آورده است.

Java to js compiler

در طرف مرورگر کدهای جاوا را به جاوا اسکریپت تبدیل می کند.

JSNI

کار فراخوانی مستقیم کد جاوا اسکریپت از جاوا را انجام می دهد.

JRE Emulation

یک زیر مجموعه از Java runtime library که برای برنامه نویسی سمت Client استفاده می شود.

Widgets and Panels

مجموعه ای از کنترلها که در GWT برای ساختن UI از آن استفاده می شود.

I18N

چند تکنیک برای بین المللی کردن app و تنظمیات مرتبط با آن ارائه می کند.

RPC

پیاده سازی گوگل از remote procedure call برای ارتباط برقرار کردن کدهای client با کدهای سمت سرور.

XML Parser

با توجه با اهمیت و گسترش روز افزون XML, GWT کلاسهایی را برای کار با آن فراهم آورده است.

Managing the browser history

یکی از اشکالات موجهی که به rich internet application ها گرفته می شود این است که آنها کلید برگشت مرورگر(back button) را نقض می کنند. این از آنجا ناشی می شود که وقتی شما با جاوااسکریپت محتوای صفحه را به صورت داینامیک عوض می کنید, کاربر انتظار دارد که با زدن کلید برگشت به حالت قبل بازگردد, ولی این اتفاق می افتد چونکه مرورگر متوجه تغییرات داینامیک شما نمی شود. GWT این مشکل را برطرف نموده است.

JUnit Integration

همیشه نوشتن کدهایی برای تست برنامه به صورت اتوماتیک, تکنیک خوبی محسوب می شود. در حال حاضر frameworkهای متعددی سالهاست که این پروسه را ساده تر کرده اند, JUnit یکی از بهترین آنها برای توسعه گرهای جاوا است. GWT بجای نوشتن این framework از ابتدا, از JUint پشتیبانی می کند.

مزایا

زمان توسعه

GWT با فراهم آوردن امکان استفاده از جاوا در سمت کلاینت و سرور, امکان دیباگ واقعی هر دو طرف, استفاده از OOP در سمت UI , بعهده گرفته سازگار بودن کد تولید شده با انواع مرورگرها, فراهم آوردن امکان استفاده از ابزارها و frameworkهای موجود جاوا, صرفه جویی بسیار زیادی را در زمان توسعه و پشتیبانی appهای Ajax به همراه دارد.

سرعت و کیفیت اجرا

appهای GWT همیشه به اندازه appهایی javascript که با دست نوشته می شوند, سریع اجرا می شوند. تیم GWT وسواس بسیار زیادی در این زمینه به خرج داده است مثلا تمام تصاویر صفحه را در سمت سرور به یک تصویر تبدیل می کند و در سمت کلاینت فقط بایک request آن را دریافت, و به تصاویر اصلی می شکند.GWT همچنین در انتخاب اسم متغیرها و حتی فضای خالی بین کدها بهینه عمل کرده است. در نسخه اخیر GWT(1.4), برای دریافت جاوا اسکریپت و CSS ها از طرف از سرور, از متد PKZip استفاده شده است.

اندازه جاوا اسکریپت تولید شده

اندازه جاوااسکریپت تولید شده برای یک برنامه کاربردی معمولیGWT با تمام امکانات حدود ۱۰۰ کیلوبایت خواهد بود, که قابل cache شدن بوسیله مرورگر نیز می باشد, بعد از آن فقط تکه های کوچک اطلاعات هستند که رد و بدل می شوند.

پهنای باند مورد استفاده

GWT مانند appهای معمولی وب postback ندارد و فقط اطلاعات مورد نیاز هستند که رد و بدل می شوند, در مقایسه با appهای معمولی وب که حتی با تیک زدن یک checkbox کل صفحه postback می شود و دوباره load می گردد, پهنای باند و ترافیک شبکه به طور قابل توجه ای صرفه جویی می شود.

امنیت

GWT اطلاعات کمتری را در سمت کلاینت باقی می گذارد که به صورت javascript فشرده شده است و قابلیت خوانایی ندارد, در نتیجه امنیت بهتری حاصل می شود

حل مشکلات پرداخت online

GWT برای مشکلاتی که به هنگام پرداخت آنلاین پیش می آید, راه حلهای قطعی ارائه می دهد(حداقل در تئوری).

عدم وابستگی به platform

GWT مبتنی بر جاوا است و کد تولید شده توسط آن جاوااسکریپت و HTML معمولی است که باعث می شود به plateform وابسته نباشد.

سورس باز

GWT سورس باز(Open source) است که کمک زیادی به توسعه اجزاء و درک مکانیزمهای آن می کند. همچنین تجربه نشان داده است که پروژهای سورس باز به دلیل داشتن توسعه گرها یی که در تمام جهان پراکنده هستند, بهتر پیشرفت می کنند و پشتیبانی بهتری دارند.

معایب

SEO

شرکتهایی که از GWT برای پیاده سازی وب سایت ها استفاده می کنند ممکن است با این مشکل روبرو شوند که موتورهای جستجو محتوای صفحات آنها را اندیکس نمی کند. این مشکل در واقع مربوط به تمام وب سایتهای داینامیک می گردد و از آنجا ناشی می شود که وقتی محتوای صفحات بوسیله javascript تغییر می کند, آدرس آن ثابت می ماند بنابراین موتورهای جستجو شاخصی برای دسترسی به صفحه جدید را ندارند.برای این مشکل راه حل های متعددی ارائه شده است مثلا یک وب سایت موازی استاتیک با وب سایت داینامیک وجود داشته باشد, که تاحدی مشکل را برطرف نموده اند.

نتیجه گیری

GWT قدرت appهای ویندوز را به appهای وب می دهد و به شما امکان می دهد که نرم افزارهای تحت اینترانت و اینترنت غنی تر را در زمان کمتری تولید کنید. هزینه نگهداری آنها نبز به مراتب پایین تر خواهد بود. GWT نیز مانند جاوا دارای منابع فراوان به صورت وب سایت, کتاب, مقاله, ویدئو, کد آماده و ابزارهای ۳rd party مانند GWT Designer است. GWT محصول زیربنایی شرکت گوگل است در مدت کوتاهی که عرضه شده رشد قابل توجهی داشته است و انتظار می رود که platform عمده برای تولید appهای داینامیک باشد.(برای مشاهده آهنگ رشد GWT و همچنین مقایسه بین فراگیر بودن java نسبت به c#, به www.google.com/trends مراجعه کنید و عبارت gwt یا java,c# را تایپ کنید)

Tags: , , ,
Posted in Java, gwt, javascript | Comments (۰)

حذف کامنت ها

فروردین ۱۲م, ۱۳۸۸

برای حذف کامنت های جاوا اسکریپ این رو استفاده کردم. اگه میخواین بدونین واسه چی، واسه کم شدن حجم فایلjs

درواقع این رو در بخش Regular Expression در قسمت Replace برنامه Notepad++ استفاده کردم

دقت داشته باشین که g در آخر پارامتر اول تمام اتفاقات از این regExp رو برمیگردونه.
اگه نباشه فقط اولین عبارتی که پیدا میشه با پارامتر دوم replace شده و تموم!


str.replace(/(<!--(.*)-->)|(\/\*(.*)\*\/)|(\/\/(.*))/g,'');

Tags: , , , ,
Posted in javascript | Comments (۲)

Java & Ms access

فروردین ۱۲م, ۱۳۸۸

احیانا” اگه سر مورد زیر بیچاره شدین (مثل خود من) این میتونه راه حل باشه:

وقتی که بخواین با جاوا به Ms Access کانکت بشین و فارسی کار کنین!

در واقع مشکل فارسی جاوا و اکسس بصورت زیر قابل حل هست:


Properties prop = new Properties();
prop.put("charSet", "UTF8");
connection = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=src\\database.mdb", prop);

به همین سادگی

Tags: , , , , , , , ,
Posted in Java | Comments (۱)