تعرف على ستوديو دوت نت (الجزء الأول)

  • طباعة

طرحت شركة Microsoft مؤخرا النسخة النهائية من Visual Studio 7 ، والمعروف بـ Visual Studio.Net وذلك بعد أن طرحت النسخة التجريبية Beta2 لمجموعة كبيرة من شركات البرمجة لكي تختبرها وتقوم بإرسال تقارير عن الأخطاء والـ Bugs التي صادفتهم خلال العمل بالنسخة التجريبية وقد كان لقسم البرمجة بمجلة عالم الكمبيوتر والإنترنت الشرف في تجربة هذه الإصدارة الرائدة وفيما يلي عرض لأهم ما جاء بها .

 

تثير تلك الإصدارة من Visual Studio.Net الكثير من التساؤلات وعلامات الاستفهام حول ما هو الجديد فيها وما هو الاختلاف الثوري في مفهوم البرمجة الذي وعدت به Microsoft في تلك الإصدارة.


أول هذه الأسئلة التي نتطرق إليها ما معني أو ما مفهوم Net وتحت أي نظام تشغيل يمكن استخدام Visual Studio.Net و حتى هذه اللحظة لا يمكن تشغيل الـ Visual Studio.Net إلا علي نظامي تشغيل MS. Windows 2000, أو MS. Windows XP .

نطاق العمل Net Framework لهذه أو الإصدارة عبارة عن بيئة RunTime يمكنها بسهولة السماح لأي مبرمج كتابة أكواد برمجة قوية وجيدة والموجهة بشكل خاص إلي الإنترنت وأيضا مجموعة من الأدوات القوية التي يمكن للمبرمج استخدامها في الـ RunTime مثل ال Automatic memory management وتسمي أيضا بـ Garbage collection ، والسهولة البالغة في استخدام معظم الـ System Services الخاصة ب Windows 2000 وال Windows XP.

باختصار يتبين أن ال Net Framework هي عبارة عن أداة لا ترتبط بلغة برمجة خاصة ولكنها مصممة لكي تساعد المبرمجين علي بناء وإنشاء XML Web Services قوية وفي نفس الوقت بطريقة مبسطة عما قبل باستخدام لغة البرمجة المفضلة لديهم .


ما هي الأدوات والخواص الجديدة في الـ Visual Studio.Net ؟

الإصدارة الجديدة من Visual Studio تقوم بالارتقاء بلغات البرمجة الأكثر استخداما إلي مستوي آخر من القوة, مثلا ففي هذه الإصدارة قامت Microsoft بالارتقاء من سلسلة لغة البرمجة Visual Basic العادية إلي Visual Studio.Net لكي تصبح لغة برمجة متكاملة وتحتوي علي جميع خواص ال Object Oriented Programming كذلك أيضا تضم خواص النسخة المرقاة من Microsoft C++ والإضافات الجديدة في لغة C# والتي جمعت جميع خواص C, C++ هذا بالإضافة إلي النسخة الجديدة من ال Active Server Pages والتي تسمي ASP.Net والتي تتيح للمبرجين في سهولة بالغة كتابة الأكواد عن ASP العادية هذا بالإضافة إلي ADO.Net وهو الجيل الجديد من تكنولوجيا الـ Active Data Object .

لمحة سريعة عن لغة C#:

الجميع يسأل عن هذه اللغة الجديدة وهل هي فعلا لغة جديدة أم لا ? الإجابة بسيطة فلغة البرمجة C# مستوحاة من لغة ال C ولغة C++ وتضم معظم الأكواد المعروفة ولكن مع بعض اختلافات في بعض المناطق في هذه اللغات, فلقد صممت لغة ال C# لتكون لغة برمجية لجميع الأكواد الخاصة ب NGWS أو ال Next Generation Windows Services والتمتع بالخواص الجديدة للغة ال C, C++ مع إزالة العوائق والصعوبات التي قد تواجه المبرمجين في هذه اللغات والتمتع بالخواص التي تتمتع بها لغة ال C مثل Garbage Collection وال Type Safety .

هل يجب الانتقال إلي Visual Studio.Net ?

يشهد عالم التطبيقات عصرا زاخرا بالانقلابات والثورات التكنولوجية , وهذه التغييرات امتداد لمثيلاتها خلال الأعوام العديدة السابقة , فمثلا إذا عدنا إلى الإصدار الأول من فيجوال بيسيك وحاولنا أن نفتش فيه عن خاصية بناء تطبيق متعددة الطبقات أو المستويات بوظائف إدخال بيانات متوافقة مع Active Server Page ASP والمستوى الوسيط من عنصر VB COM ( الـ Com عبارة عن بنية خاصة لتركيب بناء المكون البرمجي الذي يمكن استدعاؤه من خلال البرنامج ) ، ووظائف إدارة البيانات في خادم SQL التي تزخر بالإجراءات المخزنة , فلن نجد أي شيء من هذا مطلقا وسيبدو كل هذا غريبا عليك , ولكن خلال الأعوام القليلة الماضية كانت الأغلبية العظمى من المبرمجين يستخدمون فيجوال بيسيك لتخليق عناصر ومكونات COM وقد أصبحوا خبراء كذلك في تخليق عناصر بيانات أكتيف إكس ActiveX Data Objects - ADO (عبارة عن مجموعة من عناصر COM التي تسهل التكامل مع OLE DB وتمثل معيارا لاستخدام البيانات) وكانت احتياجات المبرمجين لإعادة الاستخدام والتركيز (التي كانت وسيلة لتجنب توزيع العناصر على سطح المكتب) هي السبب في الانتقال إلى مفهوم تعدد الطبقات .

وقد تسبب الانتقال إلى الويب في حدوث بعض المشاكل منها قضية التطوير المستقبلي وتدرجه على أن التطبيقات التي تزيد درجة تعقيدها لها متطلبات أكبر من ذلك بكثير مثل الحركات التي تربط بين العناصر والمكونات المختلفة وقواعد البيانات المتعددة أو كلاهما وللتعامل مع هذه القضايا أنشأت مايكروسوفت ما يعرف بخدمات حركات مايكروسوفت Microsoft Transaction Services لويندوز NT4 وخدمات مكونات [ COM+ Components Services] لويندوز 2000 وكلاهما يقوم بوظيفة استضافة العناصر objecthosting مما يتيح للمبرمج الحصول على حركات موزعة ومتدرجة بسهولة إلى حد ما , ولا ينبغي أن ي فهم أن مكونات فيجوال بيسيك VB COM لا يمكن أن تستفيد من كل إمكانيات خدمات المكونات Component Services مثل تقسيم العناصر والمشاركة فيها لأن فيجوال بيسيك لم يكن يدعم خاصية تعدد المهام والوظائف في نفس الوقت .

في موديل ASP/VB6 جعلت مايكروسوفت المبرمجين يبنون العنصر ويستدعونه من خلال ASP (صفحة الخادم النشطة) فقد أدركت شركة مايكروسوفت أن إمكانية استدعاء المكون من بروتوكول HTTP بروتوكول النقل بالنص التشعبي ( HyperText Transport Protocol ) فكرة رائعة حيث يستطيع أي تطبيق أو برنامج في أي مكان في العالم استخدام هذا المكون , وقد ألقت مايكروسوفت كل ثقلها وراء بروتوكول استخدام العنصر البسيط Simple Objec t Access Protocol الذي يتيح للمبرمجين استدعاء المكون من خلال بروتوكول HTTP مع استخدام بعض أوامر XML - EXtensible Markup Language وبعد ذلك تعاد البيانات من خلال بروتوكول HTTP مكتوبة بأوامر لغة XML وتحتوي العناصر على روابط URL - Universal Remote Link التي تجعل من السهل على أي برنامج الاتصال بأي عنصر آخر على الويب , ويمتاز بروتوكول استخدام العنصر البسيط أو SOAP كما يرمز له بأنه معيار عام في أكثر من صناعة وليس فقط معيارا خاصا بمايكروسوفت .

اسباب انتقالك من فيجوال 6 إلى Visual.net

ربما يبدو في مخيلتك الآن أن بروتوكول استخدام العنصر البسيط SOAP هو الباب الذي ستجد وارءه كل ما تتمناه , وأنك لن تخسر شيئا إذا تمسكت بفيجوال بيسيك 6 ولم تنتقل إلى Visual Basic.NET , ولهذا من الأهمية بمكان أن تعرف ما يمكن أن يقدمه VB.NET لك وما أهمية ما يقدمه بالنسبة لك ولغيرك من المبرمجين ولماذا من الضروري أن تتجه إلى VB.NET لتطور نفسك .
أنت مثلا قد تكتب مكونات وربما ترغب في استدعائها من خلال بروتوكول SOAP ولكن كيف سيعرف المستخدم أن هذه المكونات موجودة أصلا?
تحتوي تقنية NET على آلية اكتشاف تتيح لك معرفة المكونات المتاحة لك , وهناك الكثير من الوظائف التي تقدمها لك هذه الآلية ستعرفها عندما تجربها بنفسك ، وتحتوي تقنية NET على العديد من الوظائف الأخرى مثل وظيفة التخلص من الملفات غير الضرورية garbage collection لتخفيف أعباء التشغيل ثم خاصية الاقتباس الكامل للخصائص true inheritance في المرة الأولى وخاصية ازالة العيوب debugging التي تشترك فيها أكثر من لغة برمجة وعبر أكثر من برنامج عامل والقدرة على انشاء خدمات لنظام الويندوز .

في موديل .NET أنت تكتب التطبيقات التي تسير على وتيرة بنية .NET Framework مما يجعل التطبيق قادرا بشكل تلقائي على استخدام خواص التخلص من الملفات الزائدة garbage collection وإزالة العيوب debugging وخدمات الحماية والأمان security services واقتباس الصفات والخصائص inheritance وغيرها , وعندما تقوم بتشغيل الكود من أي لغة تدعم بنية .NET Framework سيتحول إلى شيء يسمى لغة مايكروسوفت الوسيطة Microsoft Intermediate Language في صورة ملف ثنائي binary ولا يفهم من هذا أنه كود آلة بل هو ملف مستقل عن نظام التشغيل ويمكن تشغيله على أي جهاز يشغل بنية .NET Framework وداخل بنية .NET Framework يوجد محول compiler يسمى محول JIT اختصار لعبارة JustInTime ومعناها في الموعد بالضبط الذي يقوم بتحويل لغة مايكروسوفت الوسيطة MSIL إلى كود آلة خاص بالمعدات ونظام التشغيل .

عندما ننظر إلى القواعد الأساسية من المهم أن نفهم أن طلب الخاصية رقم واحد لفيجوال بيسيك على مدار السنوات السابقة كان الاقتباس التام inheritance وألح المبرمجون في طلب اقتباس حقيقي !!
لكن لماذا? أعني لماذا هذا الإلحاح? وما الفائدة التي سيجنونها من وراء ذلك?
الميزة الرئيسية للاقتباس هو القدرة على انشاء تطبيقات بسرعة أكبر , وهو نتاج طبيعي للوعد الذي قطعته مايكروسوفت على نفسها تجاه المبرمجين أنها ستوفر لهم وسيلة لتصميم المكونات واعادة استخدامها ، وفي الاقتباس أنت تبني مكون أو فئة class أساسية ثم تحاول أن تقتبس منها وتجعلها أساسا لفئات جديدة, على سبيل المثال قد تخلق فئة للمركبات على اختلاف أنواعها تقدم الوظيفة الأساسية التي ستقتبس منها فئة الدراجات وكذلك فئة السيارات ، وتتجلى أهمية الاقتباس في أن لك القدرة على الاحتفاظ بسمات الفئة الأساسية كما هي أو تعدل من سماتها على النحو الذي يتراءى لك .

تقدم لك تقنية NET أدوات متكاملة لإزالة العيوب وإذا قمت بإزالة عيوب تطبيقات من نوع ASP - Application Server Page تحتوي على مكونات VB COM ستعرف أنك يجب أن تستخدم أداة Visual InterDev لإزالة عيوب مكونات ASP وفيجوال بيسك لإزالة عيوب المكونات components , وإذا كان لديك مكونات مصممة بلغة C++ لابد أن تستخدم برنامج إزالة عيوب خاص بتطبيقات C++ على هذه المكونات , وهكذا لكل لغة برنامج إزالة عيوب خاص بها أما لغات فيجوال ستديو. نيت Visual Studio.NET الجديدة فجميعها يستخدم برنامج إزالة عيوب واحد فقط one debugger بل أن أي لغة تستخدم بنية NET. يمكنها استخدام هذا البرنامج لإزالة عيوب البرامج المنتجة حتى لو كان البرنامج مكتوبا بلغة VB.NET ويستدعي جزءا آخر مكتوب بلغة C# أو أي لغة أخرى مدعمة ببنيةNET Framework .

تقدم تقنية NET. آلية قياسية للحماية المتاحة لكل أجزاء تطبيقك , وتقدم تقنية NET. حلولا ممكنة لمشاكل ملفات DLL التي تزيل الكثير من تعقيد التعامل مع مكونات COM والسجل Registry وتتيح لك تقنية NET. تشغيل المكونات محليا دون الحاجة إلى انتقال البرنامج الطالب calling application إلى السجل Registry للعثور على المكونات المطلوبة.



حتى الآن لم نجب على أسئلة المبرمجين بشأن الوظائف الجديدة التي يتيحها لهم تقنية Visual Basic.NET ولا يمكنهم عملها بفيجوال بيسيك الحالي ومن هذه الوظائف الجديدة ، وظيفة Web Applications أما أداة Visual InterDev وكود VBScript المترجم فقد دخلا دائرة التراث ولن يخرجا منها أبدا , أما الآن فأنت تصمم صفحات ASP.NET ببرنامج VB.NET أو C# أو C++ وهي محولة بشكل يحسن أداءها ولأول مرة يتيح لك برنامج VB.NET تخليق وبناء خدمات ويندوز أصيلة في وظائفها من خلال تقديم نوع مشروعات وخدمات الويندوز الجديدة, وللمرة الأولى أيضا يتيح برنامج VB.NET للمبرمجين بناء مكونات وتطبيقات تنفذ أكثر من مهمة في نفس الوقت, وأخيرا لابد أن تدرك كمبرمج أن اللغة الجديدة تسمى أيضا ب VB.NET 7.0 وهذا يعني أن في الطريق المزيد من الإصدارات مثل VB.NET 8.0 وVB.NET 9.0 وهكذا.

مكونات Common Language Runtime

من أحد المكونات الكبرى في بنية .NET Framework. مكون يعرف بـ Common Language Runtime أو CLR والذي يتيح لك مزايا عديدة منها التعامل مع الأخطاء والأمان وإزالة العيوب والتناسق في ملامح البرنامج , وهذه المزايا متوفرة لأي لغة مصممة لوظائف CLR وهذا يعني أن مكون CLR يستطيع استضافة عدد كبير من اللغات ويعرض مجموعة عامة من الأدوات تشترك فيها جميع هذه اللغات , ولقد دعمت مايكروسوفت لغات VB وC++ وC# بمكونات CLR وقد سجلت الشركات أسماءها لتقدم تطبيقات للغات الأخرى مثل Perl وPython بل وحتى Cobol .

عندما يحول المحول الكود إلى مكونات CLR يصير هذا الكود كودا مدارا والمقصود بالكود المدار هو الكود الذي يستفيد من الخدمات التي تقدمها مكونات CLR وحتى يعمل وقت التشغيل مع الكود المدار لابد أن يحتوي هذا الكود على ما يسمى بالميتاداتا metadata وهي عبارة عن بيانات يتم تخليقها أثناء تنفيذ المحولات لعملية التحويل إلى مكونات CLR وتخزن (الميتاداتا) مع الكود المحول وتحتوي على بيانات بشأن أنواع وأعضاء ومراجع الكود وتستخدم مكونات CLR الميتاداتا لتحديد الفئات classes وتحميلها وإنشاء كود أصيل وزيادة مستويات الأمان .

تتعامل مكونات CLR مع دورة حياة العنصر أو الكائن object وكما تقدم مكونات COM/COM+ مرجعا يحتوي على العناصر تستطيع مكونات CLR إدارة المراجع للعناصر وتزيلها من الذاكرة عند إزالة كل المراجع من خلال العملية المعروفة باسم التخلص من الملفات الزائدةgarbage , وتسمى العناصر التي تديرها مكونات CLR بالبيانات المدارة, ويمكنك التفاعل مع البيانات المدارة وغير المدارة في نفس التطبيق رغم أن البيانات المدارة تمنحك كل مزايا مكونات . CLR

تعرف مكونات CLR نظام نوع المعيار الذي ستستخدمه لغات CLR , وهذا يعني أن كل لغات CLR ستستخدم نفس أرقام وأطوال الحجم وسيكون لها نفس نوع الأمر string ونظام النوع القياسي هذا يفتح الباب على مصراعيه أمام المزيد من الوظائف القوية الأخرى فمثلا يمكنك تمرير مرجع الفئة class reference من مكون component لآخر, حتى لو كانت هذه المكونات مصممة بلغات مختلفة, ويمكنك كذلك اشتقاق فئة بلغة C# من الفئة الأساسية المكتوبة بلغة VB.NET أو أي مزيج آخر من اللغات بهدف التحويل لمكونات CLR.

الأكواد المدارة على الميتاداتا metadata تحتوي على بيانات بشأن المكونات المستخدمة لإنشاء الأكواد, ومكونات CLR التي تتأكد من مدى توفر الموارد resources التي تعتمد عليها, ولا تحتاج الميتاداتا إلى تخزين بيانات المكونات في السجل registryوهذا يعني أن نقل المكون إلى آلة جديدة لا يتطلب بالضرورة التسجيل وأن عملية إزالة المكونات اصبحت بسيطة للغاية مثل مسحهم تماما.

وكما ترى تقدم لك مكونات Common Language Runtime مجموعة من المميزات التي لا تمتاز فقط بالجدة والطرافة ولكنها ستقوي من معمار وبنية التطبيقات وتحسن من خبرة البرمجة, ومن المزايا الأخرى التي تحتويها V.B. NET الوظائف الموجهة بالعنصر objectoriented في تقنية VB.NET والعديد من هذه الوظائف لن تصير مجرد ترف ورفاهية في لغة البرمجة يستخدمها المبرمج أو لا يستخدمها أنى شاء, لأنها وظائف تحدث فعلا في وقت التشغيل الفعلي.

إصدارات Visual Studio .NET :

تطلق "مايكروسوفت" Visual Studio .NET فى ثلاث إصدارات رئيسية لتلبي حاجات مدي عريض ومتفاوت من متطلبات التطوير والبرمجة.
والاصدارات الثلاث هي كالتالي :

1 - Microsoft Visual Studio .NET Enterprise Architect .
تمكن هذه الإصدارة حائزيها من الوصول إلى مستويات متقدمة فى صناعة البرمجيات, وتوفر على المبرمجين وفرق التطوير الجهد والوقت اللازمبن لخلق نماذج برمجية أولية prototypes ومكونات components برمجية .

2 - Microsoft Visual Studio .NET Enterprise Developer .
توفر هذه الاصدارة للمبرمجين وفرق التطوير الأدوات المبتكرة القادرة على تطوير وتوفير تطبيقات وحلول مميزة خاصة من فئة الويب XML Web services مع ضمان زيادة معدلات الانتاج .

3 - Microsoft Visual Studio .NET Professional .
تكفل هذه الاصدارة بما تتضمنه من إمكانات متفوقة الأدوات والامكانات اللازمة لتمكين المبرمجين وفرق التطوير من خلق تطبيقات وحلول وخدمات برمجية مميزة خاصة من فئة الويب XML Web services تستطيع العمل من على أى أداة للإنترنت Internet devices وتملك أسباب التكامل والاستقرار التام والعمل المتناغم مع أى من لغات برمجية أخرى programming languages أو أنظمة التشغيل operating systems المعمول بها اليوم .

وللمزيد من المعلومات حول الفروق ما بين إصدارات Visual Studio .NET المختلفة يمكنكم الوصول إلى العناوين التالية :

http://www.microsoft.com/Egypt
http://msdn.microsoft.com/vstudio/prodinfo/overview.asp
http://msdn.microsoft.com/vstudio/prodinfo/features.asp

من بوابة العرب
http://edu.arabsgate.com