• 0
بـارع

إليكم أفضل الأدوات لتطوير برامج "جافا ديسكتوب"

سؤال

مرحبا بإخواني، بداية انا سعيد بتواجدي معكم في هذا المنتدى الرائع

تجربتي في الجافا كانت ممتعة واحيانا كانت تواجهني مشاكل واحتاج أدوات، فكنت ابحث في الانترنت وخصوصا في موقع stackoverflow واقرأ تجارب الاخرين في "تطوير تطبيقات الديسكتوب بالجافا"

فخرجت بتجارب مفيدة وقدرت أني ألخص الكلام الي تعلمته وتمكنت من حصر الأدوات التي يستخدمها مجتمع مطوري الجافا Java community ووضعتها في ترتيب مفيد

طبعا أي واحد يريد تطوير تطبيق جيد راح يحتاج هذي الاشياء، منها على سبيل المثال:

- يعمل تقارير Reports

- ينسق الازرار والمدخلات وتكون مرتبة Layout

- يغير المظهر والألوان للشاشات Look & Feel

- يجعل البرنامج في ملف setup واحد ليعطيه المستخدمين أو يرفعه إلى الانترنت للمستخدمين العاديين

- يحتاج قاعدة بيانات لإرفاقها مع برنامجه الي راح يعطيه المستخدمين العاديين وهم لا يعرفون يركبون mysql والاشياء هذي يريدون فقط ملف setup وخلاص

كل وحدة من هذي الاحتياجات لها tools تساعدك مثلا انك تعمل تقارير وهكذا

في الفيجوال ستوديو وبيئة الـ .net نجد هذه الادوات أغلبها مدمج في الفيجوال ستوديو وهذا يقدم ميزة لمطورين دوت نت، مثلا تجد كريستال ريبورتس وتجد امور اخرى

وهذا الي يجعل الدوت نت جذابة لتطبيقات البزنس، وتجد استحسان كثير من المبرمجين

بينما في الجافا نجد أن الـ ide مثلا netbeans يفتقر للعديد من هذه الادوات فتحتاج الى أدوات خارجية، ونفس الأمر عند مجتمع البايثون واللغات المفتوحة المصدر لكن الجافا أفضل حال نوعا ما

في هذا الموضوع راح أذكر هذي الادوات بناءا على تجارب المطورين الاجانب في الجافا لخصتها لكم من مواضيع عديدة وقراءات متعددة

ويهمني جدا من هذا التصنيف أن يتعرف اخواني على هذه المفاهيم والاشياء لانها راح تطور طريقتهم في صنع البرامج وأريد أفتح اذهانهم على أمور هامة وأساسية في برمجة الجافا قد تكون غائبة عنهم

سأذكر الأمر المطلوب ثم أضع الادوات المتوفرة وقد أرشح أداة بناءا على ترجيح مجتمع المطورين

1- الـ IDE : ـ , IntelliJ, eclipse, netbeans

المشتهر عند مبرمجي الجافا اليوم: ثلاث بيئات تطوير الأكثر استخداما: نيتبينز وإيكليبس والاثنين متشابهين تقريبا

لمن يريد تطوير برمجيات ديسكتوب الأفضل نيتبينز لأنه يحتوي على swing builder

يوجد أيضا JDeveloper وهو موجه ومخصص أكثر لمطورين اوراكل، بالنسبة لمبرمجين الجافا لا يستخدمونه

2- الـ GUI : ـ AWT,Java Qt, SWT, Swing

الأغلب يستخدم Swing، ولا جديد هنا فقط لتوضيح انه يوجد خيارات أخرى

awt قديم ولا يستخدم حاليا

ًٍٍSWT مكتبة للإيكليبس جيدة لكن لا يوجد أداة gui builder

Java Qt المكتبة المستخدمة في c/c++ نسخة للجافا

3- الـ DataBase : ـ SQLite, H2, Derby, JavaDB, MySQL

- إذا كان التطبيق الذي تريد أن تبنيه يعمل على جهاز واحد او لمستخدم واحد standalone:

في الداتابيس ظهر مفهوم جديد ورائع وهو ما يسمى بالـ embedded database الإنجن تبع الداتابيس أصبح ترفقه مع برنامجك

وأمثلتها SQLite, H2, Derby, JavaDB

الـDerby والـ javadb هي واحد، بعدما انتشرت الديربي وأثبتت جدارتها قامت الجافا بتضمينها داخل الـ jdk يعني صارت مضمنة داخل الكلاسات مثلها مثل كلاس string

فنحن نرشح JavaDB لأنها مضمنة داخل الجافا

طبعا الـ embedded database هي داتابيس خفيفة واذا احتجت لحفظ بيانات مهولة انتقل لـmysql لكن بنسبة 99% لن تحتاج لها أتكلم عن برنامج يعمل لمستخدم واحد

- إذا كان التطبيق الذي ستبنيه أكثر من مستخدم مثلا مستخدمين على شبكة وقاعدة بيانات مشتركة هنا تستخدم MySQL او غيرها

4- ODB: ـ db4o

Object Database مفهوم جديد قد يحتاجه البعض، داتا بيس لتخزين الاوبجيكتس

أغلب الاخوان قد لا يحتاجه

5- ORM: ـ JPA, Hibernate

تم شرحه في المنتدى، للاستزادة قم بالبحث في المنتدى عن هذا الموضوع

وأنصح المبرمجين باستخدام الـORM يوفر الوقت وعملي

6- انشاء الـ Reports: ـ Jasper reports

لإنشاء التقارير وعمل رسومات بيانية واحصائية في التقارير، مثل كريستال ريبورتس

لعمل التقارير مع الجاسبر هناك طريقتين:

- عمل التقرير عن طريق كتابة أكواد: dynamicreports or dynamicjasper

- أو باستخدام مصمم التقارير report designer : ـ iReport

إذا عندك عدة تقارير المفضل عمل التقارير بكتابة الاكواد، أما إذا عند تقرير أو اثنين يكفيك المصمم

developers prefer writing codes instead of visual design

- يوجد كذلك BIRT, OpenReports لكن المستخدم بكثرة هو jasper reports

7- Look&Feel المظهر للشاشات الستايل والألوان: موقع javootoo.com جمع كل الستايلات،

يعجبني منها JTattoo, Synthetica

8- جعل ملف الـ Jar تنفيذي exe : ـ jsmooth و Launch4J

allows to run like a regular Windows program. It's possible to wrap applications on Windows, Linux, Mac OS X

- Swing extensions اضافات للسوينق:

9- Layout for swing: ـ MigLayout, JGoodies

ميج لاي-آوت يتيح لك ترتب الكمبونينتس مثل الازرار والصناديق بشكل منسق ورائع، مهم ومستخدم بكثرة

10- Glazed list: ـ map DB records to tables: live sorting, dynamic filtering for lists and tables

مشابه للـ datagrid في الفيجوال ستوديو

11- Extra swing components :ـ SwingX, JIDE components, Flamingo components

اضافة كومبونينتس أخرى غير موجودة في الـ swing مثل صندوق اختيار التاريخ،

هذا الكلام جميعه في ما يخص الـ Desktop application

كل هذه الأدوات هي المستخدمة بكثرة وهي المشهورة عند الـ Java community

وكلها هامة وضرورية لمن يريد أن يطور تطبيقات سطح المكتب بلغة الجافا

يوجد العديد جدا من الأدوات لكن الذي اشتهر ويستخدم بكثرة عند المبرمجين وأثبت جدارته هو الذي ذكرناه

9

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

6 إجابة على هذا السؤال .

  • 0

جزاك الله خيرا أخي الفاضل على هذه المعلومات الرائعه :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جميل جداً

يعطيك العافية أخي

لو تحدثنا عن بعض هذه المواضيع من خبرتك

سيكون جميل جداً :)

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

والله شرح رائع

بس يا ريت تشرح مثال مثال عن استخدام كل اداة مع الجافا

ولو عن طريق دروس يكون أفضل ولك جزيل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الله عليك اخ بارع , انت حقا بااااارع ... :)

والله كنت فى غاية النشوة والسعادة وانا اقرأ موضوعك المتميز .. ربنا يبارك فيك وفى علمك :)

اخى بارع انا ادرس لغة جافا من فترة طويله.. وقد قرأت كتبا كامله تقريبا , مثل كتاب Introduction to Java 6th Edition ,Core java... وبفضل الله استطيع الان ان انشأ برامج مكتبية دسك توب مستخدم قواعد بيانات مايكروسوفت اكسس

انا استخدم netbeans .. اعرف ال Swing جيدا .. واعتمد على كتابة الكود من البداية ولا استخدم visual Design .. لا استخدم التقارير .. ربما اصنع ال form بنفسى .. لكن الحقيقة ليست لدى خبرة فى التقارير ولا اعرف كيف تستخدم !!

الحقيقه كل اللى شاغلنى الان البند الثالث من 11 بند اللى حضرتك تكرمت وذكرتها .. قواعد البيانات ,, انا استخدم مايكروسوفت اكسس واعرف جمل وعبارات سيكول SQL لكن انا اشعر ان كذلك غير كافى لكى اكون مبرمج دسك توب

حقيقى .. سؤالى فى هذه النقطة بالذات .. بماذا تنصحنى .. هل فعلا ينبغى ان اتعلم احد ال DBMS الشهيره مثل Oracle او MySQL او Sql Server مع الجافا ؟؟ ام ان ما اعرفه يكفى ؟؟ ارجو منكم الايضاح وافادتى فى هذه النقطه ..

ولكم جزيل الشكر :)

واحب ان اشكر جميع الاخوه الكرام القائمين على هذا المنتدى واسأل الله ان يرفع قدرهم و يثقل موازينهم ويزدهم علما :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

موضوع جدا متميز وجهد مبارك.

أشكرك أخي بارع.

بانتظار المزيد ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .