ASP.net ASP

ASP.net ASP


حلقات فيديو للمشاهدة المجانيّة اونلاين لكورس ASP.net , ASP هي إختصارا لـ Active Server Pages والتي تعني صفحات الخادم النشط و هو إطار لتطبيقات الويب تم تطويره وتسويقه من خلال شركة

التخصصات الفرعية:

مشاهدة كورسات فيديو اونلاين تخصّص ASP.net:

تصنيفات وتخصصات اخرى:

ASP.net ASP:

الـ إيه إس بي دوت نت :

(بالإنجليزية: ASP.NET) " إختصارا ل Active Server Pages والتي تعني صفحات الخادم النشط " هو إطار لتطبيقات الويب تم تطويره وتسويقه من خلال شركة مايكروسوفت، من أجل إعطاء القدرة للمبرمجين على بناء مواقع ويب ديناميكية، تطبيقات ويب وخدمات ويب. وتم إصداره في يناير من عام 2002 مع النسخة رقم 1.0 من إطار عمل دوت نت، وتعتبر هذه التقنية خلفاً لتقنية ASP (صفحات الخادم النشطة). كما أن ASP.NET تم بناؤها لتستند على تقنية CLR (وقت التشغيل المشترك بين اللغات)، مما يسمح للمبرمجين بكتابة أكوادهم الخاصة بإطار ASP.NET باستخدام أي لغة برمجة يفضلونها على أن تكون مدعومة بإطار عمل دوت نت.

 

تاريخ إيه إس بي دوت نت :

بعد إصدار النسخة الرابعة (4.0) من خادم الويب الخاص بمايكرسوفت IIS (اختصارا لخدمات معلومات الإنترنت), قامت مايكروسوفت بالبدأ في عمل أبحاث حول إمكانية تطوير نموذج تطبيقات ويب جديد يمكن أن يحل المشكلات الشائعة التي اشتكى منها مستخدمو ASP, وخاصة تلك المتعلقة بالفصل بين واجهة استخدام التطبيق (Application) وبين محتوى التطبيق, مما يساعد على كتابة كود "نظيف" Clean ومنظم.وقد تم تكليف شخصين بعينهما لتحديد كيف سيكون شكل هذا النموذج (Model), الشخص الأول هو مارك آندريس, مدير بفريق IIS, والشخص الثاني هو سكوت جوثري, والذي انضم لمايكروسوفت عام 1997 بعد تخرجه من جامعة ديوك Duke. وقد استغرق آندريس وجوثري شهرين كاملين لتطوير التصميم الأولي للنموذج, وقام جوثري بالعمل على النماذج الأولية (بالإنجليزية: Prototype) للنموذج وكتب كود تلك النماذج في إجازات عطلة رأس السنة من عام 1997.وقد تم إطلاق اللقب XSP على النموذج الأولي, وقد أوضح جوثري في مقابلة أجريت معه عام 2007: "العديد من الأشخاص يسألون حول ما الذي يرمز إليه الحرف X. والحقيقة أنه في ذلك الوقت، لم يعن ذلك الحرف أي شيء. إن لغة الـXML يبدأ اسمها بحرف X, وكذلك تقنية الـXSLT. ويبدو أن كل شيء رائع كان يبدأ اسمه بحرف الـX. ولذلك قمنا ببدأ اسم نموذجنا بالحرف X، لكي يبدو الاسم جذاباً، هذا كل ما في الأمر. "وقد تم تطوير النموذج الأولي للـXSP باستخدام لغة البرمجة جافا، لكن سرعان ما تم اتخاذ قرار ببناء المنصة الجديدة على تقنية جديدة اطلق عليها CLR (وقت التشغيل المشترك بين اللغات), حيث أنها وفرت بيئة جيدة لكل من: البرمجة غرضية التوجه، جمع القمامة، والعديد من الخصائص التي رؤي أنها مطلوبة، ولم يكن "نموذج مايكروسوفت للمكون الغرضي" MS's Component Object Model يدعم تلك الخصائص في ذلك الوقت. وقد وصف جوثري هذا القرار بالـ "مخاطرة الكبيرة"، حيث أن نجاح منصة تطوير تطبيقات الويب الخاصة بهم ستكون معتمدة على نجاح الـ CLR، والذي كان مثله مثل الـXSP، لا يزال في المراحل الأولى من التطوير، لدرجة أن فريق الـXSP كان أول فريق في مايكروسوفت يستخدم الـCLR.

ومع الانتقال لوقت التشغيل المشترك بين اللغات CLR تم إعادة كتابة الـXSP باستخدام لغة سي شارب (وقد أطلق عليها في بداية تطويرها الاسم الرمزي "المشروع - رائع" (بالإنجليزية: Project Cool)، ولكن ذلك أبقي سراً عن الجمهور)، وتم تغير الاسم XSP إلى +ASP، وفي هذه النقطة من العمل تم النظر إلى +ASP كخليفة شرعي لـ "صفحات الخادم النشطة" ASP، وقد انتوى القائمون على المشروع توفير طريقة سهلة لمبرمجي ASP لتعلم +ASP وللانتقال بعملهم إلى +ASP.

وقد قام مارك آندريس بعرض +ASP للمرة الأولى في مؤتمر "روابط إيه إس بي" في مدنية فينيكس بولاية أريزونا يوم 2 مايو 2000. وتم عمل عروض للجمهور حول أول إصدار من نوع بيتا (خاص بـ +ASP، وباقي مكونات إطار عمل دوت نت) في مؤتمر المطورين المحترفين 2000، يوم 11 يوليو بمدينة أورلاندو بولاية فلوريدا. وأثناء العرض الافتتاحي الذي قام به بيل جيتس, قامت شركة فوجيتسو بتوضيح إمكانيات +ASP مستخدما بالاقتران مع لغة الكوبول COBOL, وكذلك تم الإعلان عن المزيد من لغات البرمجة والمدعومة بـ.NET منها Visual Basic.NET و C# بالإضافة إلى لغات بايثون Python وبيرل Perl, والتي قامت شركة ActiveState بضبطها بنوع معين من أنواع التوافقية Interoperability لتعمل في إطار عمل دوت نت.

وبعد أن تم الاستقرار على الاسم التجاري إطار عمل دوت نت في النصف الثاني من عام 2000، تم تغيير اسم تقنية +ASP إلى ASP.NET. وفي ظهور له ببرنامج The MSDN Show (برنامج شبكة مطورو مايكروسوفت، وهو برنامج يذاع على شبكة الإنترنت) عام 2000 شرح مارك آندريس: "لقد تم إطلاق مبادرة.NET من أجل عدة أشياء: إنها من أجل تقديم البرمجيات كخدمات Services, إن الـ.NET مرتبطة بالـ XML (لغة التوصيف الممتدة extended markup language) ومرتبطة بخدمات الويب, وتهدف إلى تعزيز قدرات الإنترنت من جهة: ماذا يمكنه أن يقدم.. حقا أردنا أن نجلب اسمها -اسم خدمات الويب- أكثر إلى الأمام مع باقي المكونات التي تشكل سويا إطار.NET".

وبعد أربعة سنوات من التطوير وبعد سلسلة من إصدارات البيتا ظهرت في عامي 2000 و2001، تم إطلاق النسخة النهائية الأولى تحت اسم ASP.NET 1.0 في الخامس من يناير عام 2002 كجزء من الإصدار رقم 1.0 من إطار عمل دوت نت. وتم كتابة العشرات من الكتب التي تشرح ASP.NET حتى قبل إطلاقها في السوق للمبرمجين، وقامت مايكروسوفت بعمل دعاية مكثفة للغاية من أجل ASP.NET التي تشكل جزءا مهما من منصة خدمات الويب التي دفعتها مايكروسوفت بكامل ثقلها. وأصبح جوثري مدير وحدة منتج خاص بـ ASP.NET, واستمر التطوير على قدم وساق, وتم إطلاق الإصدار قم 1.1 في يوم 24 أبريل من عام 2003 كجزء من نظام تشغيل "خادم ويندوز 2003" Windows Server 2003. وقد ركز هذا الإصدار على تحسين إمكانيات ASP.NET لدعم تطبيقات الأجهزة النقالة.

 

خصائص إيه إس بي دوت نت :

صفحات الويب :

تشكل صفحات دوت نت، والمعروفة باسم نماذج الويب (بالإنجليزية: Web Forms)، حجر الزاوية بالنسبة لتطوير البرمجيات تحت إطار عمل دوت نت وتأتى نماذج الويب في ملفات تحمل الامتداد.aspx، وإذا تحدثنا بلغة أهل البرمجة فإن تلك الملفات تحتوي على توصيف ستاتيكي من نوع HTML وXHTML، بجانب توصيف أجزاء الويب (بالإنجليزية: Web Controls) وأجزاء معرفة من قبل المستخدم (بالإنجليزية: User Controls) حيث يضع المطورون فيها كل المحتوى الستاتيكي والديناميكي من أجل صفحة الويب Web Page.وبالإضافة إلى ذلك, يمكن وضع كود ديناميكي -يعمل على الخادم Server- في أي صفحة داخل الكود <% -- كود دايناميكي Dynamic Code -- %> والذي يشبه كثيرا نفس طريقة عمل تقنيات تطوير الويب الأخرى مثل PHP, JSP و ASP, لكن هذا النوع من الممارسة لا ينصح باستخدامه كثيرا إلا في حالات ربط البيانات Data Binding نظرا لأن ذلك الأمر يتطلب استدعائات كثيرة في كل مرة يتم عمل طلب الصفحة Request.

وكمثال: لاحظ هذا الكود التوضيحي Sample الذي يحتوي على الكود داخل الصفحة inline, بعكس طريقة "الكود خلف الصفحة" Code-Behind الموصى باستخدامها.

أداء ASP.NET :
يهدف ASP.NET إلى أفضل أداء بحيث يفوق أي تقنية معتمدة على أكواد نصية Scripts (متضمنة الـ ASP الكلاسيكي), وذلك يتم عبر ترجمة الكود الذي سيعمل في جهة الخادم Server Side إلى ملف DLL أو أكثر يتم استضافته/استضافتهم على خادم الويب.وتتم هذه الترجمة بشكل آلي في أول مرة يتم استدعاء الصفحة بها (وذلك يعني أنه ليس على المطور أن يقوم بعمل أي خطوات لترجمة Compile الصفحات).هذه الخاصية توفر تطويرا سهلا باستخدام لغة برمجة نصية وتوفر أداء ممتازا مثل الذلك الضي يصاحب الترجمة الثنائية Binary.ومع ذلك, فإن عملية الترجمة قد تسبب تأخير قصير -ولكنه ملحوظ- عندما يقوم مستخدم الويب باستدعاء صفحة - تم تحريرها/تعديلها حديثا- لأول مرة من خادم الويب, لكن ذلك التأخير لا يحدث مجددا إلا في حالة ما تم تحرير/تعديل الصفحة مرة جديدة.

ويتم وضع ملفات ASPX وكذلك ملفات الموارد Resources الأخرى في مجلد تخيلي Virtual على خادم خدمات معلومات الإنترنت IIS (أو على أي خادم ويب آخر متوافق مع ASP.NET, انظر تطبيقات أخرى, أدناه).وعند المرة الأولى التي يتم فيها طلب صفحة, يقوم اطار دوت نت بجمع وترجمة الملف (الملفات) إلى assembly من نوع دوت نت ويقوم بإرسال الرد إلى المستخدم, ويقوم خدمة الطلبات اللاحقة من خلال ملفات الـ DLL.وبشكل آلي فإن ASP.NET يقوم بترجمة الموقع ككل على دفعات (كل دفعة 1000 صفحة) ويحدث ذلك عند أول طلب Request. وإذا حدث أن تسببت الترجمة في تأخير, يمكن تعديل حجم الدفعات أو إستراتيجية الترجمة للتغلب على هذا التأخير.
ويمكن للمطورين أن يختاروا ترجمة أكوادهم قبل نقلها إلى الخادم, وبذلك يتم إلغاء الحاجة إلى الترجمة عند الطلب الأول -في بيئة التشغيل الحقيقية Production Environment-.وأيضا يلغي ذلك الحاجة لوجود ملفات كود على خادم الويب.

ملحقات خاصة بـ ASP.NET  
قامت مايكروسوفت بإصدار بعض الأطر Frameworks لتعمل كامتدادات لـ ASP.NET ولكي تزيد من فاعليته.وفيما يلي بعض الملحقات:
ASP.NET AJAX
ملحق يحتوي عدة مكونات تعمل جهة العميل وجهة الخادم من أجل كتابة صفحات ASP.NET تؤدي وظائف AJAX (تقنية تعمل على إثراء التفاعل بين المستخدم وواجهة الاستخدام).
ASP.NET MVC Framework
ملحق يمكن المطورين من كتابة صفحات ASP.NET باستخدام هندسة MVC.

مقارنة بين ASP.NET وبين ASP الكلاسيكية :
حاولت ASP.NET أن تبسط للمطورين عملية الانتقال من تطوير تطبيقات ويندوز لتطوير تطبيقات الويب عبر تقديم إمكانية بناء صفحات مكونة من أجزاء Controls بنفس الطريقة المستخدمة في بناء واجهة استخدام تطبيقات ويندوز.ويقوم جزء الويب Web Control (مثل الزر Button أو العلامة Label) بوظائف مشابهة للغاية مع مثيله في ويندوز: فيمكن تكويد خصائص الجزء, ويمكن أن يستجيب لأحداث معينة Events بإجرائات معينة.ومن المعروف أن الأجزاء Controls قدرة على معالجة (رسم) نفسها: فأجزاء ويندوز قادرة على رسم نفسها على الشاشة, وكذلك أجزاء ويب قادرة على تكوين كود HTML و JavaScript يمثل هذا الجزء في المكان المحدد له على صفحة الويب التي يتم إرسالها للمستخدم, والتي تظهر على شاشة المتصفح Browser الخاص به.
ويشجع ASP.NET المبرمجين على تطوير تطبيقات تستخدم واجهة المستخدم الرسومية GUI ذات النموذج المعتمد على أحداث Event-Driven, وليس كالنموذج المعتاد في بيئات برمجة الويب مثل ASP و PHP. ويحاول الإطار أن يجمع بين التقينات الموجودة مثل JavaScript وبين العناصر الداخلية مثل ViewState من أجل تقديم حالة مستمرة (بين الطلبات Inter-Request) بدلا من بيئات الويب القديمة التي عابها وجود Stateless في تطبيقاتها.
وهناك اختلافات أخرى تجدها عند المقارنة مع ASP الكلاسيكية, وهي:
لأن الكود يتم ترجمته, فإن التطبيقات تعمل بشكل أسرع, مع أخطاء أقل -يتم اكتشافها أثناء عملية التصميم وأثناء مرحلة التطوير-.
وجود تطور كبير في معالجة الأخطاء أثناء وقت التشغيل Run-Time,عبر تقنية "معالجة الأخطاء" والتي تستخدم كتل Try-Catch.
لغة تقنية مشابهة لتلك المستخدمة في تطوير تطبيقات ويندوز مثل "أجزاء" Controls و"أحداث" Events.
وجود عدد كبير من الأجزاء الجاهزة ووجود مكتبات جاهزة للأصناف Classes مما يسمح ببناء التطبيقات بشكل سريع, هذا بجانب الأجزاء التي يتم تعريفها عن طريق المستخدم, والتي تتيح بناء أجزاء مشتركة بين صفحات التطبيق مثل "القوائم" Menus.ويمكن استخدام ووضع هذه الأجزاء على الصفحة بشكل أيسر من ذي قبل, لأن معظم العمل عبر أدوات تحرير بصرية Visually.
يزيد إطار ASP.NET من فاعلية قدرات وقت التشغيل المشترك بين اللغات CRM والذي يدعم عدة لغات برمجية, سامحا لأن يتم تكويد الصفحات بلغات مختلفة مثل VB.NET, C#, J#, Delphi.NET, Chrome..الخ.
القابلية على تخزين صفحة الويب ككل أو أجزاء منها, من أجل تحسين الأداء (السرعة).
القدرة على استخدام نموذج التطوير عبر "الكود خلف الصفحة", مما يساعد في الفصل بين منطق العمل وبين الواجهة الرسومية.
إذا قام ASP.NET بتسريب ذاكرة الخادم Memory, يقوم وقت تشغيل ASP.NET بتفريغ المكان الذي يستضيف AppDomain والذي يحوي التطبيق المتسبب في المشكلة, ثم يعيد تحميل التطبيق في AppDomain جديد.
يمكن تخزين حالة الجلسة Session State في ASP.NET من خلال قاعدة بيانات مايكروسوفت SQL أو في عمليات منفصلة تعمل على نفس الكمبيوتر أو على نفس خادم الويب أو حتى على كمبيوتر مختلف.وبهذه الطريقة لا تضيع قيم الجلسة إذا ما تم إعادة تشغيل خادم الويب أو إذا ما تم إعادة تشغيل عملية ASP.NET المنفذة.
تعرضت إصدارات ASP.NET الأقل من رقم 2.0 لانتقادات بسبب عدم الامتثال للمعايير.فقد كان كود الـ HTML وكود الـ JavaScript المولدان يتم إرسالهما لمتصفح العميل لا يتسمان في كثير من الأحيان بتوافقهما مع معايير W3C/ECMA.بالإضافة إلى ذلك, ففي الكثير من الأحيان تقوم الخاصية المسئولة عن تحديد نوع متصفح العميل بتحديده بشكل خاطئ, -تفعل ذلك بشكل صحيح مع المتصفح من نوع "مستكشف الإنترنت من مايكروسوفت"-, مما يسبب في إظهار كود HTML/JavaScript بشكل خاطئ عند العميل, وربما يتسبب ذلك أيضا في عدم ظهور أجزاء من الصفحة بأكملها عند العميل.ومع ذلك, ففي الإصدار رقم 2.0 من ASP.NET تقوم جميع الأجزاء بتوليد كود صحيح من نوع HTML 4.0، XHTML 1.0 أو XHTML 1.1, بالاعتماد على ما تم تهيئة الموقع عليه.وبالنسبة للكشف عن التوافق مع المعايير في متصفحات الويب, فهو يجعل التصفح أكثر قوة, ويقدم دعما بإمكانيات أكثر لصفحات الطرز المتراصة CSS.
أجزاء ويب الخادم: وهي الأجزاء التي تم تقديمها عبر ASP.NET لتوفير واجهة استخدام على نماذج الويب.تتميز هذه الأجزاء بأنها مدارة الحالة State, وتعمل تحت نموذج "ما تراه سوف تجده" WYSIWYG "What You See Is What You Get".

انتقادات وجهت لـASP.NET
في خادم IIS 6.0 والإصدارات الأقل, لا يمكن للصفحات المكتوبة بإصدارات مختلفة من إطار ASP في تشارك حالة الجلسة Session State بدون استخدام مكتبات Libraries واردة من أطراف ثلاثة. هذه الانتقادات لا ينطبق على تطبيقات ASP.NET ولا على تطبيقات ASP تعمل جنبا إلى جنب على خادم من نوع IIS 7.ومع الخادم IIS 7, يمكن للـ Modules أن تعمل من خلال خط متكامل يسمح للـ Modules التي تم كتابتها بأي لغة أن يتم تنفيذها لخدمة أي طلب Request.
تقوم نماذج الويب المكتوبة بـ ASP.NET 2.0 بإنتاج كود توصيف يتوافق مع معايير W3C, لكن الأمر الذي يخضع للمناقشة هو إذا ما كان ذلك يقوم بزيادة إمكانية الوصول Accessibility, والتي تمثل واحدة من فوائد صفحات الـ XHTML الدلالية بجانب دعم العرض باستخدام CSS.الكثير من الأجزاء, مثل جزء الدخول Login وجزء المساعدة Wizard, تستخدم جداول من نوع HTML أثناء التخطي -وبشكل افتراضي-.وقد قامت مايكروسوفت بحل هذه المشكلة عبر اصدار محولات تحكم Adapters تحت اسم ASP.NET 2.0 CSS, وهي مكونات مجانية تقوم بإنتاج كود توصيفي من نوع XHTML+CSS يتسم بالتوافق.
بعض خصائص نماذج الويب الخاصة بـ ASP.NET, مثل إعادة تنظيم الصفحات وتغيير تاريخ المتصفح, تتوافر فقط من متصفح "إنترنت إكسبلورر".
وقد وضعت مايكروسوفت خدمات الويب وبالتالي IIS/ASP.NET كحل رئيسي لخادم التطبيقات.وقد ظهرت أوجه القصور الكبيرة في المفاهيم عندما تم تنفيذ تطبيقات أعمال معقدة تستخدم نهج مايكروسوفت Out-of-the-box: فقد ظهر أن ASP.NET تفتقد إلى إدارة صلبة للحالة, فقد احتاج المبرمجون إلى كتابة كود يقوم بإدارة الحالة بشكل يحددونه بأنفسهم, ويتم تخزينه في عمليات خارجية, لأن عملية تشغيل ASP.NET تقوم بإعادة التشغيل بشكل آلي -وهم يريدون عملية مستقرة لا تعيد التشغيل آليا-.ويمكن توضيح ذلك عبر مثال بسيط: تخيل أن موقع من نوع ASP.NET والذي يعتمد على عناصر لخادم يقوم بحفظ الحالة, وأن هذه الحالة تنتج بعد الحصول على ناتج لألجوريثم معقد جدا -وعلى سبيل المثال, ألجوريثم يقوم بحساب مسارات هندسية معقدة على عدة أجزاء من خريطة كبيرة.ومعنى ذلك أن مسارا واحدا قد يستغرق عدة دورات من وحدة المعالجة المركزية لحساب وجمع طلبات العميل المتلاحقة, ومعنى ذلك أن "ترى" وحدة المعالجة النتيجة أثناء معالجة أجزاء الخريطة. مثال آخر: عندما يتم وضع الحالة في كائن من نوع COM والذي لا يمكن تمريره بين خوادم الحالة التي تتعامل مع حالات web/session- هنا يكون النمط الوحيد الممكن هو in-proc, والذي لا يمكن الاعتماد عليه بسبب إمكانية إعادة تشغيل التطبيق مرارا وتكرارا.