السبت، 16 أكتوبر 2010

بعض المبادئ لنطرق باب الإحتراف, لمن يريد أن يتعلم الدوت نت (5,4)

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

تطوير تطبيقات العميل - Client Application Development
تطبيقات العميل Client Application هي عبارة عن تطبيقات ذات نماذج تقليدية معتمدة على شكل النظام الذي تآلف معه المستخدم فالتطبيقات التي تعتمد على النظام ويندوز Windows-Based Programming تتألف من ما قد اعتاد علية المستخدم من نوافذ Windows ونماذج Forms تقليدية تساعد المستخدم في إتمام مهمته التي انشأ التطبيق من أجلها. كمثال على تطبيقات العميل Client Application تطبيقات معالجة الكلمات Word Processors والجداول الإلكترونية Spreadsheets ومثل تطبيقات اختصاصيه لمشاكل عمل خاصة مثل تطبيقات إدخال البيانات والتقارير وغير ذلك من تطبيقات اعتددنا على العمل معها. وتعتمد هذه التطبيقات أيضاً على جميع الأدوات التي اعتدنا على التعامل معها مثل شريط القوائم Menus وأزرار الأوامر Command Buttons و أشرطة التمرير Scroll Bar وغير ذلك من أدوات ومن المحتمل لهذه التطبيقات أن تتعامل مع المصادر المحلية Local Resources مثل نظام الملفات File System أو تتعامل مع المحيط الخارجي Peripherals مثل الطابعات Printers والراسمات Plotter والماسحات الضوئية Scanner وغير ذلك من أمور.
الأنواع الأخرى من تطبيقات العميل Client Application هي أدوات التطوير التقليدية Traditional ActiveX Control (استبدلت حالياً بأدوات نماذج الويندوز المدارة Managed Windows Forms Control) وهي كالتطبيقات التي تحدثنا عنها تستطيع أن نتعامل معها إما عن طريق نماذج الويندوز Windows Forms أو نماذج الوب Web Form وتستطيع أن تتعامل مع المصادر المحلية Local Resources ويمكن أن تتعامل مع المحيط الخارجي Peripherals ويمكن أن تضم أيضاً عناصر مرئية Graphical Elements وتنفذ هذه الأدوات بشكل محلي أيضاً.
في الماضي كان المبرمجين يطورون هذه الأدوات عن طريق لغات C/C++ بالارتباط مع أصناف ويندوز الأساسية Microsoft Foundation Classes (MFC) أو باستخدامه بيئات التطوير السريعةRapid Application Development (RAD) مثل لغة الفيجول بيسك لمايكروسوفت Microsoft Visual Basic. أما في مكتبة التطوير .NET Framework تدمج كلتا الميزتين في كلا البيئتين السابقتين في بيئة تطوير واحدة التي تبسط بشدة تطوير برامج العميل Client Application.
أصناف نماذج ويندوز Windows Forms Classes متضمنة داخل مكتبة التطوير .NET Framework مصممة لتستخدم في تطوير برامج الوجهات الرسومية Windows GUI Applications. تستطيع إنشاء نماذج مثل أزرار الأوامر Command Buttons والقوائم Menus وأشرطة الأدوات Toolbars وعناصر أخرى تحتاج لأن تكون مرنة الاستخدام لتتلاءم مع حاجة التطبيقات.
على سبيل المثال مكتبة التطوير .NET Framework مزودة بخصائص سهلة لضبط الميزات المرئية Visual Attributes المتعلقة بالنماذج. في بعض الحالات نظام التشغيل Operating System لا يدعم تغير مثل هذه الميزات بشكل مباشر في مثل هذه الحالات يقوم مكتبة التطوير .NET Framework ألياً بإعادة إنشاء النماذج بالشكل المطلوب. هذه أحد الميزات التي تتمتع بها مكتبة التطوير .NET Framework لتتوحد مع مطورا الشاشات لتجعل من الشيفرة أسهل وأكثر توافقية.
بعكس أدوات التطوير ActiveX Control، نماذج الويندوز Windows Forms تمتلك نصف الثقة للوصول إلى المصادر المحلية Local Resources لنظام المستخدم. هذا يعني أن التنفيذ الثنائي أو التنفيذ الأصلي للشيفرة يستطيع الوصول إلى بعض المصادر المحلية Local Resources في أنظمة المستخدم (مثل الناصر المرئية للوصول المحدود للملفات GUI Elements And Limited File Access) وبدون أن يكون قادر على الوصول أو التفاوض مع المصادر الأخرى Other Resources. وذلك بسبب أمن الوصول المفروض على الشيفرة Code Access Security. العديد من التطبيقات التي تحتاج لتركبها على نظامك لقد أصبح الآن أمن تركيب مثل هذه التطبيقات حتى لو كان من خلال صفحات الوب Web Pages. يمكن أن تنجز تطبيقاتك ميزات تطبيق محلي بينما تنشر بطرق مختلفة مثل صفحات الوب Web Pages.

تطوير تطبيقات المزود - Server Application Development

تطبيقات جانب المزود Server-Side Applications في عالم التطبيقات المدار Managed World's Applications ينجز من خلال مضيف وقت التشغيل Runtime Hosts. تطبيقات غير مدارة Unmanaged Applications تستضيف وقت تشغيل اللغة العام Common Language Runtime التي تسمح لشيفرتك المدارة Managed Code أن تتحكم في تصرف المزود Server. هذا النموذج يزودك بكل ميزات وقت تشغيل اللغة العام ومكتبة الصنف بينما كسب الأداء وقابلية النمو من المزود المضيف.
الإيضاح التالي سيريك مخطط شبكة أساسية مع الشيفرة المدارة التي تعمل في بيئات المزود المختلفة مثل مزود IIS ومزود SQL يمكن أن ينجز عمليات قياسية بينما منطق تطبيقك ينفذ من خلال الشيفرة المدارة.





ASP.NET هو بيئة لاستضافة التطبيقات لتمكن المطورون من استخدام مكاتب التطوير .NET Framework التي تستهدف تقنية الوب قاعدةWeb-Based لتطبيقاتهم. ASP.NET هو أكثر من أن يكون بيئة لاستضافة التطبيقات فقط، بل هو هندسة معمارية متكاملة معدة لتطوير مواقع الوب Web Site وكائنات شبكة الإنترنت الموزعة Internet-Distributed Objects مستخدمة الشيفرة المدارة Managed Code. نماذج الوب Web Forms و XML لخدمات الويب XML Web Services كلاهما يستخدم مزود معلومات شبكة الإنترنت IIS و مزود الصفحات النشطة ASP.NET كآلية نشر للتطبيقات، وكلاهما يملك مجموعة من الأصناف تدعم مكاتب التطوير .NET Framework .
XML لخدمات الويب XML Web Services أهم تطوير في تقنية التطبيقات المعتمدة على الوبWeb-Based وهي موزعة،التطبيقات التي تعمل في جانب Server-Side Applications المزود تشبه مكونات مواقع الوب Web Site، على أية حال، بعكس التطبيقات المعتمدة على الوبWeb-Based ، XML لخدمات الويب XML Web Services هي مكونات لا تملك واجهة مستخدم User Interface UI وليس هدفها المستعرض مثل مستعرض شبكة الإنترنت Internet Explorer أو مستكشف نتسكيب Netscape Navigator، عوضاً عن ذلك، XML لخدمات الويب XML Web Services يضم مكونات لبرامج قابلة لإعادة الاستخدام ومصممة لتستخدم من قبل تطبيقات أخرى، مثل تطبيقات العميل التقليدية Traditional Client Applications، والتطبيقات المعتمدة على الوبWeb-Based ، أو حتى XML لخدمات الويب XML Web Services. ويمكن أن تستخدمها هذه التطبيقات كنتائج Result أو كرد Response على بعض الطلبات Request، تقنية XML لخدمات الويب XML Web Services تحرك تطوير التطبيقات بشكل سريع وانتشار في البيئة الموزعة من شبكة الإنترنت Distributed Environment Of The Internet إلى حد كبير.
إذا كنت قد استخدمت إصدارات سابقة من تقنية صفحات المزود النشطة ASP، ستلاحظ مباشرة التحسينات التي طرأت على الإصدار الجديد من صفحات المزود النشطة ASP.NET و نماذج الوب Web Forms. تستطيع أن تقوم بتطوير صفحات نماذج الوب Web Forms Pages في أي لغة تدعم مكاتب التطوير .NET Framework . بالإضافة أنك لم تعد بحاجة لتشارك شيفرتك مع نفس الملف الذي يحتوي على نصوص الـ HTTP (ولو أنه قابل للعمل إذا كنت تفضل ذلك أو مازلت ترقي معلوماتك وبرامجك من إصدارات سابقة). تنفذ صفحات نماذج الوب Web Forms Pages في لغة الآلة الأصلية Native Machine Language لأنه مثل أي تطبيق مدار Managed Application آخر، وهذه الصفحات ستأخذ جميع فوائد وقت التشغيل Runtime. على النقيض، الإصدارات السابقة من صفحات المزود النشطة أو الغير Unmanaged ASP مدارة هي دائماً عبارة عن نصوص سكريبت Scripted وتفسر حين الطلب. أما الإصدار الحديث من صفحات المزود النشطة ASP.NET تكون أسرع وأكثر وظائفية وأسهل للتطوير من صفحات المزود النشطة الغير مدارة Unmanaged ASP لأنه تتفاعل مع وقت التشغيل Runtime مثل أي تطبيق مدار Managed Application.
تزود مكاتب التطوير .NET Framework أيضاً بمجموعة من الأصناف Classes والأدوات Tools التي تساعد في تطوير واستهلاك XML لخدمات الويب XML Web Services. تبنى XML لخدمات الويب XML Web Services على المقاييس مثل SOAP (اتفاقية مخاطبة إجرائية بعيدة A Remote Procedure-Call Protocol) XML (لغة صيغة ملفات قابلة للامتداد Extensible Data Format Language) و WSDL (لغة وصفية لخدمات الوب Web Services Description Language). مكاتب التطوير .NET Framework بنية على هذه المقاييس ليرقى ويكون قابل للعمل مع تطبيقات غير تابعة لمايكروسوفت NON-Microsoft.
على سبيل المثال أدوات لغة وصف خدمات الوب WSDL Tools متضمنة مع مجموعة مكاتب التطوير .NET Framework SDK تستطيع XML لخدمات الويب XML Web Services أن تنشر على الوب Web، وقادرة على تحليل وصف WSDL ، وتنتج شيفرة مثل سي شارب C# أو الفيجول بيسك Visual Basic الذي يمكن أن يستخدمه تطبيقك ليصبح عميل XML لخدمات الويب XML Web Services. الشيفرة تستطيع أن تنشأ أصناف Classes مشتقه من أصناف Classes موجودة في مكتبة الأصناف Classes Library التي تعالج كل متطلبات الاتصال مع SOAP و محلل XML (XML Parser). وتستطيع أن تستخدم مكتبة الأصناف Classes Library لتستهلك XML لخدمات الويب XML Web Services مباشرة، أدوات لغة وصف خدمات الوب WSDL Tools والأدوات الأخرى محتوى في SDK لتسهل جهد التطوير مع مكاتب التطوير NET Framework.
إذا كنت مطور وموزع لتطبيقات تعتمد على XML لخدمات الويب XML Web Services، مكاتب التطوير معدة لتستهلك كل متطلبات تطبيقات الاتصالات القياسية، مثل SOAP و WSDL و XML. استخدامك لتلك الأصناف Classes يجعلك تركز على منطق العمل أكثر من كيفية عمل الاتصال ومن دون أن تقلق نفسك بالبنية التحتيه للاتصالات التي يتطلبها برنامجك الذي تقوم بتطويره ليكون قابل لتوزيع.
في النهاية، صفحات نماذج الوب Web Forms Pages في البيئة المدارة Managed Environment، لتطبيقاتك المعتمدة على XML لخدمات الويب XML Web Services ستعمل بشكل سريع لأنها تنفذ بلغة الآلة الأصلية Native Machine Language وقابلة للتطوير مستخدمة معلومات خدمات الإنترنت Internet Information services IIS.

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

داخل مكاتب التطوير - Inside the .NET Framework

سيقدم هذا القسم فكرة مبدئية عن أهم ميزات مكاتب التطوير NET Framework.

وقت تشغيل اللغة المشترك - Common Language Runtime (CLR)

المجمعات Compilers والأدوات Toolsيقدمان وظائف لوقت التشغيل وتمكنك أن تكتب شيفرة تستطيع أن تستفيد منها في بيئة التنفيذ المدارة Managed Execution Environment. الشيفرة التي تكتب داخل اللغة وتكون مستهدفة لتترجم أثناء الإقلاع يطلق عليها الشيفرة المدارة Management Code، وتمكننا هذه الطريقة من الاستفادة من التوافق بين اللغات واستثناءات اللغة وزيادة في أمن الشيفرة المكتوبة و النقل و يدعمان النشر والتوزيع، تبسيط النماذج المكتوبة من أجل تفاعل المكونات مع بعضها البعض، وتنقيح الشيفرة من الأخطاء.

لتتمكن المجمعات Compilers من تزويد خدمات لشيفرتك المدارة Management Code في وقت التشغيل Runtime، يجب على هذه المجمعات Compilers أن تصدر المعلومات Metadata التي تقوم بوصف الأنواع الجديدة New Type و الأعضاء الجديدة للكائنات Members-Objects والمرجع لهذه الكائنات References-Objects التي قمت بكتابتها. تخزن المعلومات Metadata مع الشيفرة وكل تطبيق يكون قابل للتحميل أو الإقلاع يحمل بداخله وقت تشغيل اللغة المشترك Common Language Runtime (CLR) ويكون مخزن داخل الملفات التي يطلق عليها ملفات تنفيذية قابلة للنقل Portable Executable (PE) File تضم بداخلها معلومات Metadata عن هذه الشيفرة. نحتاج لهذه المعلومات Metadata أثناء تشغيل الشيفرة ليتمكن المجمع من تحديد جميع الأنواع المكتوبة وليكون قادر على تحميل هذه الأنواع في الذاكرة ويكون قادر على حل وتنفيذ شيفرتك وتحويله إلى الشيفرة الأصلية Native Code التي يستطيع المعالج أن ينفذها ويكون قادر أيضاً على وضع حدود لتطبيقك في وقت التشغيل ويجبره على تطبيق قواعد الأمان المتبعة في أنظمة التشغيل المضيفة لهذه الشيفرة.
وقت التشغيل Runtime يعالج نماذج الكائنات Objects Layout آلياً ويدير المراجع References إلى هذه الكائنات، ويقوم على تحرير المصادر التي كانت مستخدمة من قبل هذه الكائنات عندما تكون جميع المؤشرات التي تشير إلى هذه الكائنات قد دمرت إي انتهت من العمل. الكائنات التي تدار حياتها Lifetimes بهذه الطريقة تدعى البيانات المدارة Managed Data. مجمع النفايات Garbage Collection ويتمحور عمله في تحرير الذاكرة التي لم تعد مستخدمة لتكون جاهزة للاستخدام مجدداً متفادياُ وقعك في الخطأ الشائع وهو تسرب الذاكرة Memory Leaks.إذا كانت شيفرتك من النوع المدار Management Code، يمكنك في هذه الحالة أن تستخدم البيانات المدارة Managed Data، والبيانات الغير مدارة Unmanaged Data، أوكلا البيانات المدارة والغير مدارة في مكاتب التطوير .NET Framework المستخدمة في تطبيقك. لأن مجمعات Compilers اللغة يجهز أنواعهم الخاصة، مثل الأنواع الرئيسية (البدائية) Primitive Types، لا يمكنك أن تعرف دائما (أو لست بحاجة لأن تعرف) متى بياناتك ستدار.
وقت تشغيل اللغة المشترك Common Language Runtime (CLR) يجعل من إنشاء وتصميم المكونات الأساسية للتطبيقات والتطبيقات أسهل لأن الكائنات فيها تستطيع أن تتفاعل عبر اللغات. الكائنات التي كتبت في لغات مختلفة يمكن أن تتصل كل منهم مع الآخر، وسلوكهم يمكن أن يتكامل بإحكام. عل سبيل المثال، يمكنك أن تعرف صنف وبعد ذلك تستطيع استخدامه في لغة مختلفة ويمكن أن تشتق صنف Derive Class من صنفك الأصلي Original Class أو تدعو طريقة Method موجودة في الصنف الأصلي Original Class. يمكنك أن تمرر كائن (حالة) من صنف Instance Of a Class إلى طريقة من صنف Method Of a Class كتبت في لغة مختلفة. هذا التكامل عبر اللغة ممكن لأن المجمعات Compilers وأدوات Tools اللغة التي تستهدف وقت التشغيل تستخدم أنوع النظام المشتركة Common Type System تعرف في وقت التشغيل، وهم يتبعون قواعد وقت التشغيل لتعريف وإنشاء واستخدام أنواع جديدة، وربطهم مع الأنواع الأخرى.

كل المكونات المدارة Managed Components تحمل معلومات Metadata ومصادر Resources وطرق بناء لهذه المكونات. يستخدم وقت التشغيل Runtime هذه المعلومات كي يضمن لتطبيقك أو لعناصر التطبيقات جميع الإصدارات المحددة من العناصر والمكاتب المطلوبة، التي تجعل شيفرتك أقل عرضة للفشل بسبب بعض التوافقية المفقودة بين الإصدارات المتعاقبة للمكاتب. معلومات التوليد وحالة البيانات لم تعد بحاجة لتخزينها في محرر النظام Registry Editor حيث كانت هذه المهمة صعبة التأسيس والصيانة. على الأصح، المعلومات حول أنواعك المعرفة تخزن مع الملفات التي تحتوي على شيفرة تطبيقك كمعلومات مستقلة Metadata، تجعل مهمات الرد والإزالة للمكونات أقل تعقيد من ذي قبل بكثير.

مجمعات Compilers وأدوات Tools اللغة تعرضان وظائف وقت التشغيل Runtime's Functionality في الطرق التي تكون معدة لكي تكون مفيدة وبديهية للمطورين. من المحتمل لبعض ميزات وقت التشغيل أن تكون ظاهرة أكثر في إحدى بيئات التطوير عن مثيلاتها في بيئات تطوير أخرى. كيف تجرب المجمعات Compilers وأدوات Tools اللغة التي تستخدم وقت التشغيل Runtime. على سبيل المثال، إذا كنت أحد مطوري الفيجول بيسك، ربما تلاحظ بأنه مع وقت تشغيل اللغة المشترك Common Language Runtime، لغة فيجول بيسك أصبحت تملك ميزات أكثر من قبل في موضوع البرمجة غرضية التوجه Object-Oriented. مايلي سيعرض بعض فوائد وقت التشغيل Runtime:
• تحسين الأداء.
• المقدرة على استخدام مكونات أو أجزاء من تطبيقات كتبت في لغات أخرى بسهولة مطلقة.
• مزودة بمكتبة للأصناف قابلة للتوسيع أي إضافة بعض الميزات الجديدة التي تناسب متطلبات تطبيقك.
• مزودة بتقنيات أخرى عالمية مثل الوراثة Inheritance و الواجهات Interfaces وزيادة التحميل Overloading من أجل البرمجة غرضية التوجه Object-Oriented، ودعم كامل لتقنية تعدد المهام Multithreaded وتطبيقات قابلة لتكيف مع التوسع على مصادر النظام Scalable Applications ودعم لتقنية الاستثناءات Structured Exception Handling وكتابة ميزات للوظائف .Custom Attributes

ليست هناك تعليقات: