إيه إس بي دوت نت
مقارنة بين 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".