كيف تختار التقنية المناسبة لعمل التطبيق الخاص بك ؟
مع مرور السنوات ، تتطور لغات البرمجة ، وتكثر التقنيات وتظهر جديده وتنقرض اخرى ، ويزداد عدد التطبيقات بشكل أسي ، وتتزايد الخدمات ، والمستفيد هو المستخدم – دعونا من قضيه الربح المادي للشركات الآن – لكن ماذا عن المبرمج المسكين ، الذي يصبح بحاجه الى معرفة الكثير من هذه التقنيات حتى يصبح قادرا على كتابة التطيبقات التي يحتاجها حضرة المستخدم ؟
شركة مايكروسوفت من اكثر الشركات – حسب رأيي المتواضع – اصدارا للتقنيات وبشكل مرعب ، حتى ان البعض اخذ ينتقل الى تقنيات الشركات والمنظمات الاخرى خوفا من تقلب مزاج مايكروسوفت ، برمجيا ، وعلى اعتبار اتباع تقنيات مايكروسوفت العتيده ، ستجد نفسك وسط كم هائل من التقنيات البرمجية ، البعض سيذهب ويحاول ان يلم بأكبر قدر منها – وهو المفترض- ويتفاجا بعدها بصدور تقنيات جديدة ، وسيمر الوقت وانت تسمع عن تقنيات جديدة كل حين وىخر وانت لم تتقن بعد التقنيات الحالية !
صدور التقنيات وتسارعها ليس موضوعنا الحقيقي ، بل موضوعنا هو كيف تختار التقنية التي تحتاجها لعمل تطبيقاتك وبرامجك ؟
تعد تقنية .net framework التقنية الرئيسية التي تتبعها التقنيات الاخرى وتستخدمها والتي نعتمد عليها في كل شيء ، ونستخدم Visual studio معها في اغلب الأحوال ، والاثنين معا يسهلان العمل مع ذلك الكم الهائل من التقنيات – على الاقل البدء بها – ولكن ماهي تلك التقنيات ، وفيم تساعدنا ؟ فلناخذ لمحة سريعة عليها :
1- تقنيات بناء التطبيقات العادية Applications :
وهذه تنقسم الى قسمين ، تطبيقات تتمتع بواجهة مستخدم UserInterface وأخرى لا تحتوي على واجهة مستخدم ، وقد نقوم بتصنيف التطبيقات التي تتمتع بواجهة مستخدم الى التصنيفات التالية :
أ – التطبيقات العادية : وهي تلك التطبيقات التي تحتوي على واجهة مستخدم وكفى الله المؤمنين شر القتال ! هنا قد تستخدم أحد التقنيات التالية : Windows Forms,web Applications, WPF
ب- الأدوات : وهي تلك التي تستخدم في النوع السابق ، وهي كالتالي : Windows Forms controls,HTML Server Controls,Web User Controls,Web Custom controls,WPF Controls .
جـ - المكونات المبنية على الخادم Server Based Components :
وهي كثيرة جدا منها على سبيل المثال : Windows Service, Process, Performance counter,EventLog, Active Directory وغيرها .
اما التطبيقات التي لا تحتوي على واجهة للمستخدم :
أ – تطبيقات تشغيلية او تنفيذية Executable : وهي اما ان تستخدم تقنية Command line او المعروفة كـ Console Application ، او تقنية Windows Service .
ب- المكتبات البرمجية : وهي اما مكتبات برمجية تقليدية .net components او خدمات ويب قائمة على xml : XML web Service .
2- تقنيات بناء تطبيقات الأجهزه الجيبية الذكية Smart Devices Applications :
فسواء كنت تستهدف Windows Mobile او Windows CE فهناك التقنية المناسبة لبناء تطبيقاتها وانواع المشاريع الخاصة بها ، ولبناء تطبيقات الـ Wap الخاصة بها ، فهناك مشاريع صفحات ِASP.NET الخاصة بها .
3- تطبيقات قواعد البيانات Data Based Applications :
وهنا مجالان للتصنيف ، فهناك انواع التقنيات المستخدمة في الاتصال وانواع التقنيات المستخدمة في التشغيل والعرض :
أولا : وضع الإتصال: فهناك الوضع المتصل connected mode وهناك الوضع المنفصل Disconnected mode ، الوضع المتصل يستخدم في حالة الرغبة في تنفيذ اوامر تعديل هياكل البيانات DDL أو تعديل البيانات او حذفها بشرط معين او استخدام Stored Procedures ( الاجراءات المخزنة ) وغيرها من الاستخدامات ، اما في حالة الرغبة بـ تبادل البيانات بين التطبيقات ، او استخدام عدة مصادر بيانات في ذات الوقت ، القراءة فقط ، عمل عمليات متعددة على السجلات rows ، اعادة استخدام البيانات ذاتها بكثرة فيفضل استخدام الوضع المنفصل disconnected mode وتربيع الـ Dataset عليها !
ثانيا - تقنيات التشغيل والعرض : فهنا تتمحور اربع تقنيات اساسية :
أ – Web Applications : وهي تطبيقات الويب التي تعتمد على صفحات ASP.NET وخدمات ويب القائمة على XML : XML Web Services .
ب – windows applications
ج – Smart Devices based data applications : وهي تلك الموجهة للعمل على الاجهزه الذكية smart devices .
د – Office Based Data Applications : وهذا النوع من التطبيقات يشهد دعاية ودعم كبير من مايكروسوفت خصوصا بعد صدور Office 2007 و OpenXML format ، وهذا النوع من التطبيقات يعتمد على ملفات الـ Office لوضع البينات دون استخدام التطبيقات الخاصة بها لادخالها كـ Word,Excel …
نقطة اخيرة هنا وهي تقنية LINQ الحديثة ، وهي التي تحاكي SQL syntax للعمل مع قواعد البيانات او أي شيء يصنف على انه Enumerable او Collection ، وتعتبر جزءا من لغتي VB.NET و C# معا . وتحتوي على عدة مزودات كـ LINQ to Objects,LINQ to Datasets,LINQ to SQL, LINQ to xml ، هذه التقنية تحدثت عنها سابقا في احد مواضيعي وتدويناتي ولا اريد الخوض فيها حاليا حتى لا نخرج عن موضوعنا الاساسي .
4- تطبيقات خدمات الويب مجددا Web Service Applications :
وهي التي تستخدم تقنية Windows Communication foundation Web Services ، و XML Web Services ، والحديث عن هاتين التقنيتين من قبلي امر صعب حالياً .
5- التطبيقات المسيرة Workflow applications :
وهي تلك التطبيقات التي تعتمد على تقنية Windows Work Flow والتي تحتاج الى عدة كتب للحديث عنها ، الا انها تهم مهندسي البرمجيات في التحكم في سير عمل التطبيق كما هو مطلوب دوما ، هذه التقنية تساعد على تسهيل هذا الامر كثيرا .
6- التطبيقات التي تعتمد تقنيات Microsoft Office :
وهذا النوع من التطبيقات يعتمد تقنية Microsoft Office في بناء وتخصيص المستندات والوثائق Documents و تخصيص التطبيقات ذاتها خصوصا Outlook وكذلك عمل الـ Add-Ins لها بسهولة كبيرة .
7- الأدوات والمكونات المخصصة Custom Controls and components :
وهي تقسم الى ثلاثة اقسام رئيسية :
أ – Windows forms controls : وهي التطبيقات التي تستخدم في عمل controls تستخدم في التطبيقات التي تعمل على تقنية windows forms applications وفيها شيء من الحديث الذي لا اريد به الإطالة .
ب- تقنية COM :
الحديث هنا كثيرا سيدفعنا الى الحديث حول .net framework بالنفس وما هي تقنية الدوت نت من الاساس ولماذا وكيف ظهرت ! نختصر كل هذا بقولنا انه يمكنك استخدام مكتبات مبنية على COM لتستخدمها في تطبيقات .net التي تكتبها بنفسك ، او كتابة مكتبات ومكونات .net بغرض استخدامها في تطبيقات تعتمد اساسا في بنيتها على تقنية COM .
جـ : المكونات Components :
وهي التي تحدثنا عنها سابقا: XML Web Services و .Net components .
8- تقنيات بيئة التطوير Automate Tasks or Extend the Environment :
وهي تلك التقنيات التي تستخدم في تخصيص وتطوير Visual Studio بالنفس كـالـ Macros,Add-ons,Wizards .
9- التجهيز للإستخدام : Deploy :
تتوفر عدة تقنيات مناسبة لعمل Deploy للتطبيقات والمشاريع ، كتقنية ClickOnce ومشاريع الـ Windows Installer ، وكذلك تتوفر الـ Merge Modules لعمل deploy للـ .Net components ، وفي حالة كونك ترغب بعمل ActiveX Control فهناك الـ Cabfiles .
هنا اود التطرق الى الفرق بين ClickOnce و Wiundows Installer وافضليتهما ، فمشاريع ClickOnce تعد الخيار الامثل اذا كانت تطبيقاتك بحاجة الى تحديثات دائمة لمكوناتها خصوصا عن طريق الانترنت ولا تتيح تلك الخيارات الكثيرة في عملية التركيب؛ فهي تعمل بنقره واحدة على ملف التركيب ! ويتم عمل ClickOnce Package من خلال الخيار Publish ، بينما Windows Installer يتيح لك الكثير من المرونة في التخصيص ويعمل عن طريق معالج الإعداد Wizard ، وهي التي يتم عملها بإضافة مشروع تركيب Setup Project الى الحل الخاص بتطبيقك Solution .
..................................
__________________