! T3B > W3C

Posts tagged “GWT

مقدمة حول تقنيات RIA ( تحضير للمقارنة )

Rich Internet Application – RIA – وتترجم تطبيقات الويب الغنية، هو الإسم الذي يطلق على تطبيقات الويب التي تحاكي تطبيقات سطح المكتب في سهولة الوصول، طرق إتصالات متقدمة، كبر وتعقيد النظام، إمكانية العمل بدون إنترنت “كلياً أو جزئياً”، الأمان، السرعة، واجهات المستخدم الغنية. قد يكون الجزء تشابه واجهات هذه التطبيقات مع تطبيقات سطح المكتب هو الأكثر أهمية لدى المستخدم النهائي، لكن مطور تطبيقات الإنترنت يجب أن يلم بالموضوع بشكل أكبر!

عندما بدأت التفكير بعقد مقارنة بين التقنيات المختلفة التي تمكنك من إنشاء RIA apps كنت أفكر في Flex و Silverlight و javaFX. ولكن ما أن بدأت البحث والمقارنة حتى وجدت تقنيات أخرى جديرة بالذكر، وهو ما أجبرني على فصل هذا الموضوع كمقدمة بسيطة وسريعة لكتابة تعريف سريع عن كل تقنية، وفتح باب النقاش لمن لديه الخبرة في أي واحدة منها، لنصل معاً إلى مقارنة منطقية قائمة على أسس واضحة وسليمة.
لنبدأ ؟

Curl: الغريب أنني لم أجد مصادر عربية تتحدث عن هذه المنصة رغم أنها صدرت عام 1998 من قبل Curl, Inc. & Sumisho Computer Systems Corp، المنصة قوية وسهلة في ذات الوقت قريبة من HTML في كتابة البيانات، ومن JavaSc.ript في لغتها البرمجية، تعمل باستخدام Applet خاص عبر المتصفح، كما أنه يمكن إستخدامها لبرمجة تطبيقات لسطح المكتب. يمكنكم تحميل Curl IDE للمطورين، أو تحميل Curl RTE لتجربة الأمثلة الموجودة في الموقع.

JavaFX: أحدث المنصات عهداً ما زالت في نسخها الأولى 1.2، وهي منصة RIA المطورة كجزء من Java من قبل Sun، تستخدم Sc.ripting language خاص يسمى JavaFX Sc.ript، المشكلة الأساسية في هذه المنصة أنها لا تمتلك أداة تحرير رسومية حتى الآن، يمكنك مشاهدة بعضها من هذه الأمثلة، المميز أنه يكفي وجود JRE على جهازك لتستخدم التطبيقات المبنية عبر هذه المنصة، ويمكنك تحميل الأدوات المستخدمة للتطوير لتجربتها، ستجد في الصفحة أداة ReportMill JFXBuilder وهي أداة تحرير رسومية لـJavaFX.

Adobe Flex & Adobe AIR: أما الجزء الأول وهو Flex فهو جزء مفتوح المصدر من منصة Adobe Flash الشهيرة مخصص لتطوير RIA apps، وبالتالي فإن هذه التطبيقات تعمل بمجرد وجود Flash player على المتصفح لديك، ويمكن تطوير تطبيقاتها باستخدام Flex Builder 3 ، أما الجزء الثاني AIR فهو عبارة عن بيئة مساعدة لتشغيل التطبيقات السابقة خارج المتصفح وكأنها تطبيقات سطح مكتب إعتيادية، كالعادة الجميع يحاول إغراءك بالأمثلة فتفضل بمشاهدة بعضها.

MS Silverlight: منصة Microsoft الخاصة لتطوير RIA apps، يستخدام XAML لتمثيل الوجاهات الرسومية، كما يستفيد من الخصائص المختلفة في .NET Framework مثل LINQ ويرها، يمكن تطوير تطبيقاتها باستخدام الأداة الأكثر إنتشاراً بين مطوري الشركة Visual Studio أو من خلال Microsoft Expression Blend 3 ، لتشغيل هذه التطبيقات يتوجب عليك تحميل إضافة خاصة، مرة أخرى الأمثلة

OpenLaszlo:منصة مفتوحة المصدر لتطوير RIA apps، وهي الأخرى تفتقر إلى الإهتمام العربي ( ربما العالمي أيضاً :× )، تمتلك ميزة رائعة وهي أنك تقوم بكتابة الكود المصدري مرة واحدة، ولكنك تستطيع إخراج العمل إما عن طريق الـAjax وإما عن طريق Flash player، أيضاً هذه المنصة تدعم تشغيل تطبيقات الإنترنت الغنية من خارج المتصفح من خلال Laszlo Webtop، يمكنك تحميل إداة التطوير لتجربتها، كما يمكنك المرور على الأمثلة ومشاهدة بعض التطبيقات

المنصات والتقنيات السابقة معظمها يعمل بشكل مشابه للـFlash أي أنها تعتمد على Player أو Runtime Environment خاصة يتم تحميلها من قبل المستخدم، وبالتالي تعمل بشكل متطابق وبسهولة عبر أي OS أو Web browser، في المقابل هناك طريقة أخرى لتطوير RIA apps دون الحاجة لأي من هذه الإضافات، وهي عن طريق الـAjax لكن المشكلة التي سيواجهها المطور هنا أنه بحاجة للتأكد من أن التطبيق الخاص به يعمل بشكل صحيح على المتصفحات المختلفة، بل وعليه أيضاً أن يتحقق من هذا الأمر بعد كل إصدار جديد من المتصفح. الآن يتم تطوير HTML5 لتتناسب مع هذا التطور المستمر تطبيقات الإنترنت، وتحاول W3C من خلالها طرح الطرق الموحدة لدعم العديد من الخصائص الهامة نذكر منها على سبيل المثال canvas tag للرسم ثنائي الأبعاد، وخاصة السحب والإفلات (Drag and Drop)، وحفظ المعلومات للعمل دون إتصال، و SVG كطريقة موحدة لحفظ الرسومات المتجهة، أضف لذلك العديد من المكتبات والمنصات وأطر العمل التي تسهل التعامل مع هذه الاللغات والأدوات مثل Google GWT، jQuery، Prototype، Ext وغيرها الكثير الكثير.

الآن ما رأيكم!؟ أليست تطبيقات الإنترنت الغنية فعلاً غنية ؟ ما نحن بحاجته الآن بعد هذه المقدمة هو أسس علمية وعملية لمقارنة هذه المنصات ( هناك المزيد منها بالمناسبة ) والطرق لتطوير RIA apps، وبحاجة أيضاً لوضع خبراتنا العملية والنظرية العامة حول أي من الأمور السابقة الذكر للمساهمة في المقارنة بمعلومات جديدة، يمكننا الحديث بشكل سريع عن بعض جوانب المقارنة الهامة مثل: دعم المتصفحات وأنظمة التشغيل، سهولة التعلم والتطوير، الأدوات المتوفرة، المصادر المتوفرة للدروس والأمثلة، القوة، الأمان، المتطلبات السابقة ….. سأترك البقية للردود القادمة، ولإقتراحاتكم.

أتمنى أن أكون قد أضفت جديداً، ودمتم بود

Advertisements

2 في 1: صمم وبرمج باحتراف!

السلام عليكم ورحمة الله وبركاته

بعد حديثنا عن الجيل القادم في موضوع سابق، لا بد وأن نعود لنتكلم عن إتقان الجيل الحالي، وأن نعيش اللحظة :).

https://i1.wp.com/www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg

Eclipse: بيئة عمل منتشرة بشكل كبير جداً، تستخدم في الأساس للمطورين باستخدام Java، ويمكن تعديلها للعمل مع أي لغة أخرى، بل وأي مرحلة من مراحل تطوير البرمجيات، البيئة لها حاضر واعد، وأعتقد أن المستقبل سيكون أكثر قوة.

https://i1.wp.com/code.google.com/webtoolkit/images/gwt-logo.png

Google Web Toolkit: وتختصر GWT، يبدو أن تقنيات جوجل تلاحقني دائماً، بيئة العمل هذه من جوجل يمكننا تعريفها اختصراً بأنها Java to JavaScript compiler، وتكمن أهميتها في عدم أهمية الإلمام بكيفية برمجة الـAjax من جهة، وبكونها تساهم في إكتشاف الأخطاء مبكراً، وكذلك وجود الـdebugger.

حقيقة لم أكتب هذه التدوينة لأتحدث عن Eclipse ولا عن GWT ولكن وجدت أنه من المهم التعريف المختصر بهم قبل الشروع بالتدوينة، وما نحن بصدده كما هو في العنوان، أن نجمع بين البرمجة والتصميم المحترف، ولهذا فنحن اليوم نتحدث عن EXt JS.

https://i2.wp.com/extjs.com/assets/images/extjs2.png

Ext JS 2.0: عبارة عن مكتبة JavaScript لإنشاء RIA apps، وهي تطبيقات الإنترنت التي تتشابه وتقترب من تطبيقات سطح المكتب العادية من حيث التعامل ( السرعة، والتفاعلية) والشكل الجميل، تمكنك هذه المكتبة من إنشاء مواقعك باستخدام تقنية الـAjax بكل بساطة ويسر، تم بناء هذه المكتبة بناءاً على مكتبة YUI، ويمكن أن يتكامل عمل هذه المكتبة مع مكاتب مثل jQuery و Prototype لمحبي هذه المكاتب ومستخدميها.

يبدو أنك كنت تمر على Yahoo mail وتتسحر وتقول يا ليتني أستطيع بناء خدمات بهذه الروعة :)، ويبدو أنك الآن تستطيع ذلك إن أردت باستخدام هذه المكتبة، دعونا نأخذ بعض الأمثلة المنشأة باستخدام المكتبة قبل أن ننتقل للجزء الأخير من هذه التدوينة:

حسناً دعونا نتوقف عن التجربة قليلاً ( في حد معي ولا لسا سرحانين 😀 )، هذه المكتبة مكتبة JS فما علاقة مقدمة التدوينة بالموضوع، وما الذي سأستفيده من Eclipse و SWT ؟؟؟

Ext GWT 1.1: هي الإجابة، فهي عبارة عن مكتبة Java تساعدك في برمجة مواقع باستخدام GWT بالواجهات الرائعة التي تقدمها لك ExtJS !، هذا ما يسمى الخلطة السحرية!.

كل ما تحتاجه لاستخدام كل هذه التقنيات في مواقعك هي فقط الـJava وستترك للـEclipse و GWT تحويل أكوادك إلى Javascript وستترك لمكتبة Ext GWT تطعيم برمجيات بواجهات رائعة وأقل ما يقل أنها احترافية!.

وأنهي التدوينة بأمثلة بنيت باستخدام المكتبة الأخيرة:

واسمحوا لي أن أعود بكم من هنا إلى الموضوع السابق الجيل القادم، برمجيات الإنترنت تتجاوز سطح المكتب لنرى التكامل بين مكتبة اليوم وتقنيات Adobe AIR و Google Gear في مثالين في الموقع وهما:

بانتظار نقاشكم وتفاعلكم مع الموضوع، دمتم بود.

نشر ونوقش: سوالف سوفت، شبكة فلسطين للحوار.