هيا نتعلم بعض المبادء لنطرق باب الإحتراف لمن يريد أن 

الناقل : elmasry | الكاتب الأصلى : TarekNajem04 | المصدر : www.arabteam2000-forum.com

بسم الله الرحمن الرحيم

رأيت وأنا أتنقل في المنتدى يمين وشمالأ بأن الكثير من رواد هذا المنتدى هم المبتدئين الذين لم يتعلم أسايات الدوت نت ويخوضون معاك في أسأله بحاجة إلى معرفة مسبقة مثل ما هو البيئة المدارة Managed Environment أو الفرق بين .NET Framework وأوامر اللغة لذلك ولكي تعم الفائدة على جميع رواد هذا المنتدى الرائع عزمت بعون الله أن أكتب بعض المواضيع المهمة وجميع هذه المواضيع قمت بقرائتها من MSDN فهي منقولة وأكتبه هنا كما ذكرت للفائدة راجين من الله أن يجعلها في ميزان حسناتنا.

بعون الله نبدأ
لمحة عامة:
التطبيقات - Program

تعريف : التطبيقات عبارة عن مجموعة من التعليمات المتتالية أو بمعنى آخر سلسلة من الأوامر يقوم المعالج على إنجازها مثال على ذلك تطبيقات الرسوم ومعالجة الصور والألعاب و قواعد البيانات …الخ. ولكل تطبيق نقطة بداية لينطلق بعدها المعالج في تنفيذ ما تبقى من أوامر حتى يتم الوصول إلى نقطة النهاية ونقطة النهاية ليست محددة بمكان معين بل يستطيع المبرمج إنهاء تطبيقيه في أي مكان يجده مناسب لذلك يمكن للتطبيق الواحد أن يحمل داخل هذه الأوامر الكثير من أوامر إنهاء لهذا التطبيق أي العديد من نقاط النهاية.

جميع التطبيقات تكتب في أسلوب خاص وهذا الأسلوب تفرضه لغة البرمجة التي تقوم باستخدامها وهذا يعني أن الأوامر التي نقوم بكتابتها تختلف من لغة برمجة إلى أخرى ولكن لمعظم اللغات أمر يقوم بترجمة هذه الأوامر إلى الأوامر التي يفهمها المعالج أو اللغة الأصلية Native Code وتختلف الأوامر التي يفهمها المعالج من نوع إلى آخر. ولكن ليس المعالج الوحيد الذي أوجد الاختلاف ولكن أنظمة التشغيل Operating System أيضاً التي قامت بعض الشركات في إنتاجها تختلف من نظام إلى أخر فستجد أن هناك معالج واحد ولكن أستطيع أن أديره بأنظمة تشغيل Operating System مختلفة والتطبيق الذي قمت بإنشائه لا يعمل إلا على النظام الذي قمت بالعمل عليه. نستنج مما سبق بأن جميع الأوامر تخزن في ملفات Files تكون جاهزة للتنفيذ Executable Files و تختلف الأوامر المحفوظة في داخلها على حسب نوعية المعالج الذي أستخدمه ويختلف تنظيم تلك الأوامر داخل الملفات على حسب نظام التشغيل Operating System الذي أقوم بالعمل عليه.

أما الآن وبعد الانتشار الواسع لاستخدام شبكة الانترنت Internet وبما أن هذه التقنية ليست حكراً لشركة واحدة فجميع أنظمة التشغيل Operating System على اختلافها تدعم هذه التقنية، وأدى دعم هذه التقنية في جميع أنظمة التشغيل Operating System إلى زيادة رغبة المبرمجين بإنشاء تطبيقات تعمل على جميع هذه الأنظمة المختلفة فقامت بعض الشركات في إنتاج لغات برمجة لتقوم بحل هذه المشكلة وتلبي حاجة المبرمجين بإنشاء تطبيقات تعمل على جميع أنظمة التشغيل Operating System وتتلخص هذه التقنية الجديدة بما يلي : أن جميع الأوامر التي قمت بكتابتها لن تترجم إلى لغة المعالج الأصليةNative Code بل تترجم إلى لغة وسيطة Intermediate Language تنفذ من قبل تطبيقات تقيم في ذاكرة الحاسب أثناء طلب المستخدمين لتنفيذ هذه التطبيقات. ولكن حتى هذه التقنية مازالت تعاني من بعض المشاكل لأنك قبل توزيع التطبيقات على أنظمة التشغيل Operating System الأخرى أنت بحاجة لإضافة بعض التطبيقات الوسيطة Intermediate Program التي ستقوم بتنفيذ تطبيقك من اللغة الوسيطة Intermediate Language إلى اللغة الأصلية Native Code التي يفهمها المعالج وتحتاج أيضاً أن تتأكد بأنها تدعم هذه الأنظمة أو المعالج الذي سيقوم التطبيق بالعمل عليهم. وكانت شركة مايكروسوفت أحد منتجي هذه التقنية الحديثة العهد وأطلقت عليها لغة مايكروسوفت الوسيطة Microsoft Intermediate Language أو اختصار له MSIL. ولكن من أهم متطلبات هذه اللغة أنها بحاجة إلى أنواع تستطيع أن تتعرف عليها وتفهم متطلباتها لتكون قادرة على ترجمتها في وقت التشغيل Runtime وتكون قادرة أيضاً أن تتعرف على الأنواع الجديدة التي قمت بكتابتها أثناء تصميمك شيفرتك لتستطيع المترجمات Compilers بتحويل ما كتبت من لغة وسيطة Intermediate Language (IL) إلى لغة أصلية Native Code يفهمها المعالج.


لمحة عن مكاتب التطوير - Overview of the .NET Framework

مكاتب التطوير .NET Framework هي نوعية جديدة من خطط البرمجة Platform التي تبسط إلى حد كبير تطوير التطبيق في البيئة الموزعة في شبكة الإنترنت Distributed Environment Of The Internet. صممت مكاتب التطوير .NET Framework لتنجز الأهداف التالية:
• تزويد بيئة تطوير غرضية التوجه Object-Oriented، وهذا يعني أنها يجب أن تكون قادرة على تنفيذ شيفرة الكائن التي تخزن وتنفذ محلياً Stored And Executed Locally، أو تنفذ محلياً ولكن تكون موزعة على شبكة الإنترنت Internet-Distributed، أو تنفذ بشكل بعيد Executed Remotely.
• تزويد بيئة لتنفيذ الشيفرة Code-Execution التي تقلل من التطبيقات والمكاتب التي تحتاجها هذه الشيفرة ليتم توزيعها وتزويد حل لمشكلة تتضارب الإصدارات.
• تزويد بيئة لتنفيذ الشيفرة Code-Execution التي تضمن تنفيذ أمين لهذه الشيفرة، والتي يمكن أن تضم شيفرة مجهولة أو نصف أمنه Semi-Trusted منشئة في لغات أخرى.
• تزويد بيئة لتنفيذ الشيفرة Code-Execution التي تتخلص من مشاكل بطئ الأداء التي كانت تحصل أثناء تنفيذ التطبيقات المكتوبة ضمن مترجمات تفسيرية Interpreted Environments أو في لغات السكريبت Scripted Language.
• لتجعل خبرة المطور متوافقة مع التنوع الكبير في أنواع التطبيقات التي نراها أو نسمع عنها، مثل التطبيقات التي تستند على تقنيات الويندوز Windows -Based و التطبيقات التي تستند على تقنية الويب Web-Based.
• لتقوم ببناء جميع التطبيقات المحلية وتطبيقات الاتصالات على مقاييس صناعية موحدة التي تضمن للشيفرة المستندة على مكاتب التطوير .NET Framework أن تتكامل مع أي شيفرة أخرى تدعم مكاتب التطوير .NET Framework.
تملك مكاتب التطوير .NET Framework مكونان رئيسيان: وقت تشغيل اللغة العام Common Language Runtime و مكتبة أصناف NET Framework Class Library. إن وقت تشغيل اللغة العام Common Language Runtime هو أساس مكاتب التطوير .NET Framework . يمكن أن تفكر في وقت تشغيل اللغة العام Common Language Runtime كالوكيل الذي يدير الشيفرة في وقت التنفيذ، يزود خدمات صميم العمل مثل إدارة الذاكرة Memory Management وإدارة لتطبيقات متعددة المهام Thread Management و تطبيقات التحكم عن بعد Remoting, بينما يفرض أيضاً أمان صارم في استخدام الأنواع Type Safety وأشكال أخرى من دقة الشيفرة التي تضمن لنا الأمن Security و المتانة Robustness. في الحقيقة، مفهوم إدارة الشيفرة هي مبدأ أساسي من مبادئ وقت التشغيل Runtime. الشيفرة التي تستهدف وقت التشغيل Runtime يطلق عليها المصطلح الشيفرة المدارة Managed Code، بينما الشيفرة التي لا تستهدف وقت التشغيل Runtime تعرف بالشيفرة الغير المدارة Unmanaged Code. من عوامل البرمجة غرضية التوجه Object-Oriented أنها قابلة لإعادة الاستخدام ثانية. ومكتبة الأصناف Class Library، المكون الرئيسي الآخر لمكاتب التطوير .NET Framework هي مجموعة شاملة من الأنواع التي بنيت على أساس غرضي التوجه Object-Oriented Base التي تمكن مطوري التطبيقات إعادة استخدامها في تطبيقات تتراوح بين التقليدي مثل تطبيقات سطر الأوامر Command-Line أو واجهة المستخدم الرسومية Graphical User Interface (GUI) إلى التطبيقات المستندة على آخر الابتكارات مثل التطبيقات التي تعتمد على تقنية الوب مثل ASP.NET و Web Forms و XML Web Services.

يمكن أن تستضاف مكاتب التطوير .NET Framework بالمكونات الغير مدارة Unmanaged Components التي تُحمل وقت تشغيل اللغة العام Common Language Runtime في عملياتهم ويبدأ تنفيذ الشيفرة المدارة Managed Code، لذا تنشأ بيئة تطبيقات يمكن أن تستغل كلتا الميزتين المدارة Managed Code والغير مدارة Unmanaged Code. ليست مكاتب التطوير .NET Framework كمزود لعدة خدمات في وقت ا لتشغيل Runtime فقط، لكن يدعم أيضاً العديد من التطويرات لتطبيقك وللتطبيقات الأخرى أو (تطبيقات الطرف الثالث Third-Party) بإضافته ميزت استضافة التطبيقات في وقت التشغيل Runtime Hosts.

على سبيل المثال، ASP.NET مضيف وقت التشغيل ليزود التطبيقات المعتمدة عليه بجميع الخدمات في بيئة جانب المزود للشيفرة المدارة Managed Code. ASP.NET يعمل بشكل مباشر في وقت التشغيل Runtime ليمكن تطبيقات ASP.NET وXML Web Services بالعمل، سنتحدث عن كلا الموضوعين في هذا الفصل.

مستكشف شبكة الإنترنت Internet Explorer هو مثال لتطبيق غير مدار Unmanaged Components يستضيف وقت التشغيل Runtime تطبيقات مدارة Managed Components. استخدام مستكشف شبكة الإنترنت Internet Explorer ليستضيف التطبيقات وقت التشغيل Runtime يُمكن المكونات المدارة Managed Components أو أدوات تطوير نماذج ويندوز Windows Forms Controls أن تعمل في وثائق HTML. استضافة وقت التشغيل Runtime Hosts بهذه الطريقة يصنع من الشيفرة شيفرة متنقلة مدارة Managed Mobile Code مشابه لأدوات تطوير مايكروسوفت Microsoft® ActiveX® Controls، لكن مع التحسينات الهامة التي حصلت على الشيفرة المدارة Managed Code يمكن أن تعرض أشياء مثل تنفيذ نصف مؤتمن Semi-Trusted Execution وتضمن عزلة لمخزن الملف.

سترى في الإيضاح التالي علاقة وقت تشغيل اللغة العام Common Language Runtime ومكتبة الصنف Class Library مع التطبيقات ومع النظام الإجمالي. وسترى أيضاً في الإيضاح كيف تعمل الشيفرة المدارة Managed Code ضمن المعمارية الكبيرة Larger Architecture.

Posted Image

الدروس القادمة ستصف المكونات الرئيسية وميزات مكاتب التطوير .NET Framework في تفصيل مقبول إن شاء الله.

أستودعكم الله إلى حينها