hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
(يقصد بالكود خلف الصفحة أن الكودالمستخدم يوجد في صفحة مستقلة عكس السابق الذي هو مدموج مع كود التصميم html)
وقد أوصت مايكروسوفت المطورين أثناء عملهم مع كود البرامج الدايناميكية أن يستخدموا نموذج «الكود خلف الصفحة»، حيث يقوم هذا النموذج بوضع الكود في ملف منفصل أو في Script Tag مصمم خصيصا لهذا الغرض.وتمتلك ملفات «الكود خلف الصفحة» أسماء مثل MyPage.aspx.cs أو mypage.aspx.vb (تعطى نفس الاسم الخاص بصفحة ASPX، مع اختلاف نوع الامتداد Extension والذي يمثل نوع لغة البرمجة المستخدمة- cs تعني C-Sharp, vb تعني Visual Basic).وبشكل تلقائي فإن بيئات التطوير المتكاملة مثل Microsoft Visual Studio تقوم بهذه الممارسة آليا.وعند استخدام هذا النمط من البرمجة، يقوم المبرمج بكتابة كود يستجيب لكل حدث Event مختلف، مثل إعادة تحميل صفحة، أو زر يتم النقر عليه، على عكس الأنماط التقليدية والتي تقوم بتنفيذ كل الكود بشكل إجرائي Procedural.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
ويمثل نموذج «الكود خلف الصفحة» المعتمد في ASP.NET إجراء ثوريا، أعفى المطورين من نموذج ASP الكلاسيكي، وشجعهم على فصل كود التطبيقات عن واجهة التطبيقات الرسومية Presentation وعن محتوى الصفحات Content.ومن الناحية النظرية، فإن هذا النظام يتيح لمصمم الويب Designer أن يقوم بالتركيز على شكل وتصميم الصفحة الإبداعي بدون أن يزعج نفسه كثيرا بتوزيع البرمجة/الكود التي ستعمل مع أجزاء الصفحة.وهذا مشابه لفصل المتحكم Controller عن الواجهة View في إطار عمل Model-View-Controller MVC.
العلامة Tag المذكورة أعلاه يتم وضعها في بداية ملف الـ ASPX.وتحدد خاصية CodeFile الموضوعة في الموجه Directive باسم @Page الملف (cs. أو vb.) بصفته الكود الخلفي، بينما تمثل الخاصية Inherits الـ Class التي تشتق الصفحة منه.في هذا المثال، يتم وضع الموجه @Page في ملف SampleCodeBehind.aspx، بينما يمثل الملف SampleCodeBehind.cs ملف الكود الخلفي Code-behind لهذه الصفحة:
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
في هذه الحالة، يتم استدعاء الطريقة Method المسماة Page_Load () في كل مرة يتم تحميل/طلب الصفحة Request.ويمكن للمبرمج تنفيذ معالجات للأحداث Event Handlers في مراحل مختلفة من عملية تنفيذ الصفحة Execution لتقوم بالعمليات التي يرغب في تنفيذها.
يدعم ASP.NET تكوين أجزاء برمجية قابلة لإعادة الاستخدام، من خلال إنشاء ما يسمى بـ User Controls - أجزاء مكونة عن طريق المستخدم-.ويتبع الـ User Control نفس التركيب الخاص بنموذج الويب Web form، والاختلاف أن الـ User Control مشتق من الـ Class المسمى System.Web.UI.UserControl.ويتم تخزينه في ملف من النوع ASCX.ومثلما الحال في ملفات ASPX، يحتوي ملف الـ ASCX على كود توصيفي markup من نوع HTML أو XTML، بجانب توصيف يحدد web control ويحدد الـ user controls الأخرى.وبالطبع فإن نموذج الكود-خلف-الصفحة يمكن استخدامه مع الـ User Controls.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
ويمكن للمبرمجين أن يضيفوا خصائصهم الخاصة properties، طرقهم/دوالهم methode، ومعالجات الأحداث Event Handlers التي يكتبوها بأنفسهم.وهناك آلية تسمى «تعويم الحدث» Event Bubbling تتيح تمرير حدث تم إثارته Fired داخل User Control إلى الصفحة التي تحتوي هذا الـ User Control.
ويمكن للمبرمجين أيضا بناء أجزاء مخصصة Custom Controls لتطبيقات الـ ASP.NET التي يعملون عليها.ويتم ترجمة هذه الـ Custom Controls إلى ملفات من نوع DLL. وعبر استخدام الموجه Directive ذو الاسم Register يمكن استخدام/استدعاء الـ Control من ملف الـ DLL.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
يستخدم ASP.NET تقنية معالجة تدعى Visited Composites (مركبات يتم زيارتها).فأثناء عملية ترجمة البرنامج Compilation، يتم يتم ترجمة صفحة الـ.aspx إلى كود مبدأي يقوم ببناء شجرة تحكم (The Composite) تمثل الصفحة الأصلية.ثم تذهب النصوص الحرفية إلى مثيلات Instances مشتقة من Class خاص بالـ Literal Control، بينما يتم تمثيل الـ Server Controls عن طريق Instances من الصنف Class المناسب لتلك الأجزاء.ويتم جمع هذا الكود المبدأي مع الكود الذي يقوم المبرمج بكتابته (وعادة يتم ذلك عبر الجمع بين عدة أصناف Classes جزئية) وينتج عن ذلك صنف جديد Class مخصص للصفحة.وتتحول الصفحة لشكل مزوج يمثل جذر شجرة التحكم Control Tree.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
وعند طلب الصفحة Request من الخادم، تتم تلك العملية عبر سلسلة من الخطوات.أولا، وخلال خطوات التهيئة Initialization، يتم عمل Instance من صنف الصفحة ثم يتم تنفيذ كود التهيئة.وهذا يقوم بإنتاج شجرة التحكم المبدأية، والتي يتم التعامل معها عن طريق الـ Methods (الطرق) الخاصة بالصفحة في الخطوات التالية.ولكل عقدة Node في الشجرة تجد Control يتم تمثيله عن طريق Instance من الصنف (Class) الخاص به، ويمكن للكود أن يقوم بتغيير الشكل البنائي للشجرة كما يستطيع التعامل مع الخاصئص Properties والطرق Methods الخاصة بكل عقدة موجودة.وأخيرا، وفي كل خطوة معالجة يقوم الزائر باستخدامها لزيارة العقدة داخل الشجرة، ويطلب من عقدة أن تقوم بمعالجة Rendering نفسها باستخدام طرق Methods الزائر.ينتج عن ذلك كود من نوع HTML يمثل الشكل النهائي للصفحة، فيتم إرساله من الخاد Server إلى العميل Client.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
وبعد أن تمت معالجة الطلب Request، يتم التخلص من صنف الصفحة ومن شجرة التحكم كلها.ودائما ما تسبب هذه الخطوات بلبلة لدى جمهور المبرمجين الجدد الذي ستخدمون ASP.NET لأول مرة، حيث أنهم غير معتادون على فقد الـ Instances الخاصة بأصنافهم في كل مرة يتم عمل طلب/استجابة للصفحة/من الصفحة.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
يتم استضافة تطبيقات ASP.NET من خلال خادم ويب Web Server ويتم الوصول إليها من خلال بروتوكول HTTP الذي يتصف بأنه «عديم الحالة» Stateless.وعلى هذا النحو، إذا كان التطبيق يتطلب استخدام تفاعل «كامل الحالة» Stateful، فيجب على مطور التطبيق أن يقوم بإدارة الـ State على مسئوليته. ويقدم ASP.NET مجموعة من الوظائف التي تتيح للمطورين إدارة الـ State. ومن الناحية المبدأية، تعامل مايكرسوفت الـ State (حالة الصفحة) على أنها حالة واجهة الاستخدام الرسومية GUI، وقد تحدث مشكلات كبيرة إذا ما احتاج تطبيق ما أن يبقى على اتصال مع حالة البيانات Data State مثلما هو الحال مع «آلة الحالة المحدودة» Finite State Machine والتي ربما تتطلب وجود حالة ما بين الطلبات المختلفة للصفحة (مما يسمى: التقييم الكسول Lazy Evaluation)، أو ربما تتطلب فقط وقتا طويلا للتهيئة.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
يمكن تعريف حالة التطبيق Application State بأنها مجموعة من المتغيرات Variables المعرفة عن طريق المستخدم والتي يتم مشاركتها Shared بين أجزاء تطبيق ASP.NET المختلفة.ويتم إعداد تلك المتغيرات وتعريفها عند تحميل الصفحة، حيث يتم نداء الحدث ذو الاسم Application_OnStart، ويتم ذلك مع تحميل أول Instance من التطبيق، ويستمر ذلك في العمل حتى الخروج من آخر Instance من التطبيق.ويتم التعامل مع متغيرات حالة التطبيق عن طريق مجموعة Collection يطلق عليها الاسم Applications، والتي تشكل غلافا Wrapper حول متغيرات حالة التطبيق.ويتم تعريف/تحديد متغيرات حالة التطبيق عبر «أسماء» Names.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
حالة الجلسة Session State، هي مجموعة من المتغيرات التي يتم تعريفها عبر المستخدم نفسه، ويتم الحفاظ عليها أثناء جلسة المستخدم Session.هذه المتغيرات تكون فريدة Unique وتختلف من كل جلسة Session إلى أخرى. ويمكن التعامل معها من خلال مجموعة Collection يطلق عليها اسم Session.ويمكن ضبط متغيرات الدورة/ الجلسة لكي يتم التخلص منها بعد مرور وقت معين من توقف نشاط المستخدم Visitor مع الجلسة.وفي نهاية عمل العميل Client، يمكن تحديد جلسة المستخدم إما عن طريق Cookie(ملفات يتم تحميلها من الخادم إلى العميل وتظل على جهاز العميل لوقت معين يقوم المطور بتحديده) أو عن طريق تكويد رقم تعريف الجلسة ID في عنوان الصفحة URL.
ويدعم ASP.NET ثلاثة أنماط من أجل استماراية متغيرات الجلسة Session Variables:
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
يتم الحفاظ على متغيرات الحالة عن طريق عملية ASP.NET نفسها.هذه هي أسرع طريقة، ولكن على الرغم من ذلك، يتم التخلص من متغيرات الجلسة إذا ما توقفت عملية ASP.NET أو أعيد تكرارها من جديد.ولأن غالبا ما يتم إعادة تشغيل التطبيق من وقت إلى آخر، فإن هذا النمط لا يوصى به للتطبيقات ذات الاحتياجات الحرجة/ الهامة Critical، بلا لا يوصى استخدامه في أي نوع من أنواع التطبيقات.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
في هذا الوضع، يقوم ASP.NET بتشغيل خدمة ويندوز منفصلة Windows Service لكي تحافظ على متغيرات الحالة State Variables.ولأن إدارة الحالة تتم خارج عملية ASP.NET ولأنه يجب أن يتم استخدام.NET Remoting عبر محرك ASP.NET للوصول إلى البيانات، فإن هذا النمط له تأثير سلبي للغاية على أداء التطبيق Performance بالمقارنة مع النمط السابق من نوع In Process، وعلى الرغم من هذا، فإن هذا النمط يسمح لتطبيقات ASP.NET بتوزيع الحمل Load بشكل متوازن على عدة خوادم (من أجل حل مشكلة الـ Performance).ومع ذلك، فلأن خدمة إدارة الحالة تتم بمعزل عن ASP.NET، فيمكن لمتغيرات الجلسة أن يتم الحفاظ عليها حتى ولو تم إغلاق عمليات ASP.NET.وتظهر نفس المشكلة برغم ذلك- يعمل خادم الجلسة من خلال Instance واحدة، وإذا فشلت، فإنها نقطة فشل واحدة تخص الجلسة Session.هذه الخدمة لا يمكن تحميلها بشكل متوازن على أكثر من خادم، وكذلك فهي تفرض قيودا على «الأنواع» Types والتي يمكن تحميلها داخل متغيرات الجلسة.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
في هذا النمط/الوضع، يتم تخزين متغيرات الجلسة في خادم خاص بقواعد البيانات، ويمكن الوصول للمتغيرات من خلال لغة SQL. وفي هذا النمط يمكن الحفاظ على متغيرات الجلسة وحتى إذا تم الإلاق عمليات ASP.NET.والميزة الرئيسية لهذا الوضع أنه يمكن للتطبيق توزيع الحمل على عنقود من الخوادم Cluster ويمكن مشاركة الجلسات Sessions بين الخوادم.وهو الأسلوب الأبطأ لإدارة حالة الجلسات في ASP.NET.
تشير حالة العرض View State إلى آلية لإدارة الحالة على مستوى الصفحة، والتي يتم استخدامها من قبل صفحات HTML المنبعثة من تطبيقات ASP.NET من أجل الحفاظ على حالة أجزاء Controls نموذج الويب Web Forms وكذل الحاجايات Widgets التي ربما يحتويها النموذج.ويتم تكويد وإرسال حالة الأجزاء Controls إلى الخادم في كل مرة يتم تفعيل الجزء Submission، وتخزن بيانات الحالة في حقل خفي يطلق عليه اسم _VIEWSTATE.وفي جانب الخادم، يمكن للتطبيق تغير حالة العرض، إذا ما قامت النتائج -بعد المعالجة- بتحديث حالة أي جزء Control.وعند الخادم، يتم تكويد حالات الأجزاء المختلفة، وتكون جاهزة للاستخدام في صفحات ASP.NET عبر مجموعة Collection يطلق عليها ViewState.
إيه إس بي دوت نت خصائص إيه إس بي دوت نت
وحقيقة، فإن الاستخدام الرئيسي لهذه التقنية هو الحفاظ على معلومات النماذج Forms عبر النداءات المختلفة للصفحة Postbacks.لذلك، فعندما يملأ المستخدم نموذج ما ولكن يقوم بإدخال قيمة خاطئة Value، فإن النموذج يتم تعبأته ذاتيا حين ارساله مرة أخرى للمستخدم ليقوم بتعديل الخطأ.وآليا يتم استخدام الـ View State، وآليا يتم ترتيب تستسل البيانات الخاصة بكل جزء Control بغض النظر عما إذا كان سيستخدم مع كل Postback أم لا.هذا السلوك يمكن (وينبغي) أن يتم تعديله، وبالفعل، يمكن إغلاق هذه الخاصية Disable مع كل جزء Control أو صفحة Page داخل التطبيق، أو في إطار عمل خادم الويب ككل.
إيه إس بي دوت نت أداء ASP.NET
يهدف ASP.NET إلى أفضل أداء بحيث يفوق أي تقنية معتمدة على أكواد نصية Scripts (متضمنة الـ ASP الكلاسيكي)، وذلك يتم عبر ترجمة الكود الذي سيعمل في جهة الخادم Server Side إلى ملف DLL أو أكثر يتم استضافته/استضافتهم على خادم الويب.وتتم هذه الترجمة بشكل آلي في أول مرة يتم استدعاء الصفحة بها (وذلك يعني أنه ليس على المطور أن يقوم بعمل أي خطوات لترجمة Compile الصفحات).هذه الخاصية توفر تطويرا سهلا باستخدام لغة برمجة نصية وتوفر أداء ممتازا مثل الذلك الضي يصاحب الترجمة الثنائية Binary.ومع ذلك، فإن عملية الترجمة قد تسبب تأخير قصير -ولكنه ملحوظ- عندما يقوم مستخدم الويب باستدعاء صفحة - تم تحريرها/تعديلها حديثا- لأول مرة من خادم الويب، لكن ذلك التأخير لا يحدث مجددا إلا في حالة ما تم تحرير/تعديل الصفحة مرة جديدة.
إيه إس بي دوت نت أداء ASP.NET
ويتم وضع ملفات ASPX وكذلك ملفات الموارد Resources الأخرى في مجلد تخيلي Virtual على خادم خدمات معلومات الإنترنت IIS (أو على أي خادم ويب آخر متوافق مع ASP.NET، انظر تطبيقات أخرى، أدناه).وعند المرة الأولى التي يتم فيها طلب صفحة، يقوم اطار دوت نت بجمع وترجمة الملف (الملفات) إلى assembly من نوع دوت نت ويقوم بإرسال الرد إلى المستخدم، ويقوم خدمة الطلبات اللاحقة من خلال ملفات الـ DLL.وبشكل آلي فإن ASP.NET يقوم بترجمة الموقع ككل على دفعات (كل دفعة 1000 صفحة) ويحدث ذلك عند أول طلب Request. وإذا حدث أن تسببت الترجمة في تأخير، يمكن تعديل حجم الدفعات أو إستراتيجية الترجمة للتغلب على هذا التأخير.
ويمكن للمطورين أن يختاروا ترجمة أكوادهم قبل نقلها إلى الخادم، وبذلك يتم إلغاء الحاجة إلى الترجمة عند الطلب الأول -في بيئة التشغيل الحقيقية Production Environment-.وأيضا يلغي ذلك الحاجة لوجود ملفات كود على خادم الويب.
إيه إس بي دوت نت ملحقات خاصة بـ ASP.NET
قامت مايكروسوفت بإصدار بعض الأطر Frameworks لتعمل كامتدادات لـ ASP.NET ولكي تزيد من فاعليته.وفيما يلي بعض الملحقات:
ملحق يحتوي عدة مكونات تعمل جهة العميل وجهة الخادم من أجل كتابة صفحات ASP.NET تؤدي وظائف AJAX (تقنية تعمل على إثراء التفاعل بين المستخدم وواجهة الاستخدام).
ملحق يمكن المطورين من كتابة صفحات ASP.NET باستخدام هندسة MVC.
إيه إس بي دوت نت مقارنة بين ASP.NET وبين ASP الكلاسيكية
حاولت ASP.NET أن تبسط للمطورين عملية الانتقال من تطوير تطبيقات ويندوز لتطوير تطبيقات الويب عبر تقديم إمكانية بناء صفحات مكونة من أجزاء Controls بنفس الطريقة المستخدمة في بناء واجهة استخدام تطبيقات ويندوز.ويقوم جزء الويب Web Control (مثل الزر Button أو العلامة Label) بوظائف مشابهة للغاية مع مثيله في ويندوز: فيمكن تكويد خصائص الجزء، ويمكن أن يستجيب لأحداث معينة Events بإجرائات معينة.ومن المعروف أن الأجزاء Controls قدرة على معالجة (رسم) نفسها: فأجزاء ويندوز قادرة على رسم نفسها على الشاشة، وكذلك أجزاء ويب قادرة على تكوين كود HTML وJavaScript يمثل هذا الجزء في المكان المحدد له على صفحة الويب التي يتم إرسالها للمستخدم، والتي تظهر على شاشة المتصفح Browser الخاص به.
إيه إس بي دوت نت مقارنة بين ASP.NET وبين ASP الكلاسيكية
ويشجع ASP.NET المبرمجين على تطوير تطبيقات تستخدم واجهة المستخدم الرسومية GUI ذات النموذج المعتمد على أحداث Event-Driven، وليس كالنموذج المعتاد في بيئات برمجة الويب مثل ASP وPHP. ويحاول الإطار أن يجمع بين التقينات الموجودة مثل JavaScript وبين العناصر الداخلية مثل ViewState من أجل تقديم حالة مستمرة (بين الطلبات Inter-Request) بدلا من بيئات الويب القديمة التي عابها وجود Stateless في تطبيقاتها.
وهناك اختلافات أخرى تجدها عند المقارنة مع ASP الكلاسيكية، وهي:
وجود عدد كبير من الأجزاء الجاهزة ووجود مكتبات جاهزة للأصناف Classes مما يسمح ببناء التطبيقات بشكل سريع، هذا بجانب الأجزاء التي يتم تعريفها عن طريق المستخدم، والتي تتيح بناء أجزاء مشتركة بين صفحات التطبيق مثل «القوائم» Menus.ويمكن استخدام ووضع هذه الأجزاء على الصفحة بشكل أيسر من ذي قبل، لأن معظم العمل عبر أدوات تحرير بصرية Visually.
يزيد إطار ASP.NET من فاعلية قدرات وقت التشغيل المشترك بين اللغات CRM والذي يدعم عدة لغات برمجية، سامحا لأن يتم تكويد الصفحات بلغات مختلفة مثل VB.NET, C#, J#, Delphi.NET, Chrome..الخ.
إيه إس بي دوت نت مقارنة بين ASP.NET وبين ASP الكلاسيكية
إذا قام ASP.NET بتسريب ذاكرة الخادم Memory، يقوم وقت تشغيل ASP.NET بتفريغ المكان الذي يستضيف AppDomain والذي يحوي التطبيق المتسبب في المشكلة، ثم يعيد تحميل التطبيق في AppDomain جديد.
يمكن تخزين حالة الجلسة Session State في ASP.NET من خلال قاعدة بيانات مايكروسوفت SQL أو في عمليات منفصلة تعمل على نفس الكمبيوتر أو على نفس خادم الويب أو حتى على كمبيوتر مختلف.وبهذه الطريقة لا تضيع قيم الجلسة إذا ما تم إعادة تشغيل خادم الويب أو إذا ما تم إعادة تشغيل عملية ASP.NET المنفذة.
إيه إس بي دوت نت مقارنة بين ASP.NET وبين ASP الكلاسيكية
تعرضت إصدارات 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
بعض خصائص نماذج الويب الخاصة بـ ASP.NET، مثل إعادة تنظيم الصفحات وتغيير تاريخ المتصفح، تتوافر فقط من متصفح «إنترنت إكسبلورر».
وقد وضعت مايكروسوفت خدمات الويب وبالتالي IIS/ASP.NET كحل رئيسي لخادم التطبيقات.وقد ظهرت أوجه القصور الكبيرة في المفاهيم عندما تم تنفيذ تطبيقات أعمال معقدة تستخدم نهج مايكروسوفت Out-of-the-box: فقد ظهر أن ASP.NET تفتقد إلى إدارة صلبة للحالة، فقد احتاج المبرمجون إلى كتابة كود يقوم بإدارة الحالة بشكل يحددونه بأنفسهم، ويتم تخزينه في عمليات خارجية، لأن عملية تشغيل ASP.NET تقوم بإعادة التشغيل بشكل آلي -وهم يريدون عملية مستقرة لا تعيد التشغيل آليا-.ويمكن توضيح ذلك عبر مثال بسيط: تخيل أن موقع من نوع ASP.NET والذي يعتمد على عناصر لخادم يقوم بحفظ الحالة، وأن هذه الحالة تنتج بعد الحصول على ناتج لألجوريثم معقد جدا -وعلى سبيل المثال، ألجوريثم يقوم بحساب مسارات هندسية معقدة على عدة أجزاء من خريطة كبيرة.ومعنى ذلك أن مسارا واحدا قد يستغرق عدة دورات من وحدة المعالجة المركزية لحساب وجمع طلبات العميل المتلاحقة، ومعنى ذلك أن «ترى» وحدة المعالجة النتيجة أثناء معالجة أجزاء الخريطة.
إيه إس بي دوت نت انتقادات وجهت لـASP.NET
مثال آخر: عندما يتم وضع الحالة في كائن من نوع COM والذي لا يمكن تمريره بين خوادم الحالة التي تتعامل مع حالات web/session- هنا يكون النمط الوحيد الممكن هو in-proc، والذي لا يمكن الاعتماد عليه بسبب إمكانية إعادة تشغيل التطبيق مرارا وتكرارا.
إيه إس بي دوت نت أدوات التطوير
يوجد العديد من رزم البرمجيات التي تتيح تطوير تطبيقات من نوع ASP.NET، ومنها على سبيل المثال:
إيه إس بي دوت نت أطر أخرى Frameworks
ليس من الضوري استخدام نموذج قياسي لتطوير نماذج الويب أثناء تطوير التطبيقات بـ ASP.NET، ويجدر الإشارة إلى بعض الأطر/النماذج المصممة للتوافق مع منصة دوت نت، مثل:
إطار DotNetNuke وهو حل مفتوح المصدر، ويحتوي على إطار لتطوير برمجيات الويب بجانب نظام لإدارة المحتوى CMS والذي يسمح لتمديدات متقدمة من خلال توفير لأجزاء Modules، أشكال لواجهة الاستخدام Skins، ومقدمي خدمات Providers.
كاستل مونوريل Castle Monorail، وهو إطار مفتوح المصدر من نوع MVC مع نموذج تنفيذي مشابه لـ Ruby on Rails. ويستخدم هذا الإطار عادة مع منتج Castle ActiveRecord وهو عبارة عن طبقة ORM مبنية على NHibernate.الإطار يستخدم عادة مع القلعة ActiveRecord، طبقة اسندت بنيت على NHibernate.
إيه إس بي دوت نت تطبيقات أخرى
يدعم مشروع «مونو» Mono Project اطار ASP.NET 1.1 ومعظم اطار ASP.NET 2.0. ويمكن لـ ASP.NET أن يعمل مع Mono من خلال واحدا من ثلاث خيارات: استضافة التطبيقات على خادم آباتشي Apache عبر جزء Module من نوع mod_mono، الاستضافة من خلال FastCGI، الخيار الأخير هو الـ XSP.
ثورة الملاكمين
ثورة الملاكمين أو انتفاضة الملاكمين أو حركة يهيتوان (بالصينية التقليدية: 義和團起義، بالصينية المبسطة: 义和团起义)، هي انتفاضة وقعت في الصين ضد الإمبرالية وضد التدخل الأجنبي وضد المسيحية بين عامي 1899 و1901، في أثناء الفترة الأخيرة من حكم سلالة تشينغ.
ثورة الملاكمين
بدأت الانتفاضة على يد الميليشيا المتحدة من أجل الصَلاح، وتُعرف في اللغة الإنجليزية باسم الملاكمين لأن الكثير من أعضاء تلك الميليشيا مارسوا الفنون القتالية الصينية، ويُشار إليهم في الغرب بـ الملاكمة الصينية. تصاعدت مشاعر الكراهية لدى القرويين الصينيين في الشمال ضد المبشرين المسيحيين الذين تجاهلوا التزاماتهم بدفع الضرائب واستغلوا حقوق الحصانة المحلية لحماية أتباعهم ضد الدعاوى القضائية. شملت الخلفية المباشرة لتلك الانتفاضة جفافًا شديدًا وخللًا في النمو بفضل مجالات النفوذ الأجنبية عقب الحرب اليابانية الصينية الأولى لعام 1895. عقب عدة أشهر من العنف المتنامي وجرائم القتل في شاندونغ وسهل شمال الصين ضد الأجانب والحضور المسيحي في شهر يونيو عام 1900، تجمع محاربو انتفاضة الملاكمين، الذين اعتقدوا أنهم منيعون ضد الأسلحة الأجنبية، في بكين وأطلقوا شعار ادعموا حكومة تشينغ وأعدموا الأجانب. طلب الأجانب والصينيون المسيحيون اللجوء في حي المفوضيات في بكين.
ثورة الملاكمين
في استجابة للتقارير التي تتحدث عن غزو تحالف الأمم الثمان –المؤلفة من جيوش أمريكية ونمساوية-مجرية وبريطانية وفرنسية وألمانية وإيطالية ويابانية وروسية– بهدف رفع الحصار، دعمت الإمبراطورة تسيشي الملاكمين في الحادي والعشرين من شهر يونيو، ولو أنها ترددت في البداية، فأصدرت مرسومًا إمبراطوريًا أعلنت فيه الحرب على القوى الأجنبية. تعرّض الدبلوماسيون والمدنيون الأجانب والجنود والصينيون المسيحيون في حي المفوضيات لحصار دام 55 يومًا فرضه الجيش الإمبراطوري الصيني والملاكمون. انقسم المسؤولون الصينيون إلى فئة تدعم الملاكمين، فئة تفضل المصالحة تحت قيادة الأمير تشينغ. لاحقًا، أعلن القائد الأعلى للقوات الصينية، الجنرال رونغلو، أنه فعل ما فعل لحماية الأجانب. تجاهل المسؤولون الموقعون على اتفاقية الحماية المتبادلة لجنوب شرق الصين المرسوم الإمبراطوري القاضي بمحاربة الأجانب.
في البداية، تراجع تحالف الأمم الثمان عن خطته، لكنه أرسل لاحقًا 20 ألف جنديًا مسلحًا إلى الصين لهزيمة الجيش الإمبراطوري، ووصل الجنود إلى بكين في الرابع عشر من شهر أغسطس، وأنهوا بذلك حصار حي المفوضيات. تلى ذلك نهب غير منظم للعاصمة والأرياف المحيطة بها، بالإضافة إلى إعدام موجز (دون محاكمة عادلة) لمن يشتبه بانتمائه لحركة الملاكمين. فرض مرسوم الملاكمين في السابع من سبتمبر عام 1901 إعدام المسؤولين الحكوميين الذين دعموا الملاكمين، واشترط بقاء القوات الأجنبية في بكين، وأجبر الصين على دفع غرامة قدرها 450 مليون تايل من الفضة –أي نحو 10 مليارات دولار وفقًا لأسعار الفضة في عام 2018 وهو ما يزيد عن عائدات الضرائب السنوية للحكومة– على مر السنوات الـ 39 التالية للأمم الثمان المنخرطة في هذا النزاع.
ثورة الملاكمين خلفية تاريخية
برزت حركة الحق والقبضات المتآلفة في الأجزاء الداخلية من مقاطعة شاندونغ على الساحل الشمالي، تلك المقاطعة التي شهدت اضطرابات اجتماعية وطائفية دينية وجمعيات عسكرية على مر تاريخها. كان المبشرون المسيحيون الأمريكان أول من ذكر «الملاكمين» تقريبًا، فوصوفهم بالرجال الشباب الرياضيين المدرَّبين، وذلك بفضل تدريبات الفنون القتالية والأسلحة التي مارسها أولئك الملاكمون. كانت الممارسة الرئيسة لأعضاء الحركة نوعًا من الاستحواذ الروحي، فشملت تدوير السيوف والسجود العنيف وترتيل التعاويذ للآلهة.
كانت فرص محاربة الزحف والاستيطان الغربي جذابة بشكل خاص لأولئك القرويين العاطلين عن العمل، وكان الكثير منهم مجرد مراهقين. يعود تاريخ الاستحواذ الروحي والمناعة إلى مئات السنين سابقًا، لكنه اتخذ جوهرًا خاصًا ضد الأسلحة القوية والجديدة التي جلبها الغربيون. تسلّح الملاكمون بالبنادق والسيوف، وادعوا امتلاكهم مناعة أو حصانة خارقة للطبيعة ضد قذائف المدافع والأعيرة النارية وضربات السكاكين. فوق ذلك، ادعت مجموعات الملاكمين أن ملايين الجنود سيهبطون من السماء لمساعدتهم في تطهير الصين من الطغيان الأجنبي.
ثورة الملاكمين خلفية تاريخية
في عام 1895، وعلى الرغم من التناقض الواضح في الممارسات البدعية تلك، استغل يوشيان –وهو من شعب المانشو وكان حاكم محافظة ساو وأصبح لاحقًا حاكمًا إقليميًا– جماعة السيوف الكبيرة لقتال قطاع الطرق. هاجمت جماعة السيوف الكبيرة، بتشجيع من الدعم الرسمي الذي حصلت عليه، القرى الكاثوليكية المحلية أيضًا، فلجأ سكان تلك القرى إلى الكنيسة طلبًا للحماية. ردت جماعة السيوف الكبيرة بالهجوم على الكنائس المسيحية وإحراقها. وفقًا لأحد المؤرخين الحديثين، «أصبح الخط الفاصل بين المسيحيين وقطاع الطرق مبهمًا بشكل متزايد». اضطر يوشيان إلى إعدام عدد من قادة جماعة السيوف الكبيرة جراء الضغط الدبلوماسي الذي فُرض على العاصمة، لكنه لم يعاقب أي أحدٍ آخر. تزايد عدد الجمعيات السرية التي برزت عقب تلك الحادثة.
ثورة الملاكمين خلفية تاريخية
شهدت السنوات الأولى الكثير من النشاطات القروية المختلفة، لكن لم تبرز حتى تلك الفترة حركة واسعة ذات هدف موحد. مهدت بعض الجمعيات الدينية المحلية والقتالية، مثل شبكة باغوادو، الطريق أمام حركة الملاكمين. اهتم ملاكمو شاندونغ -كأقرانهم في مدرسة الملاكمة الحمراء أو ملاكمي زهرة الإجاص- بالتقاليد الاجتماعية والقيم الاخلاقية -مثل بر الوالدين- أكثر من اهتمامهم بالتأثيرات الأجنبية. بدأ أحد قادة الحركة، ويُدعى جو هونغدينغ، مسيرته بصفته معالجًا متجولًا مختصًا في قرحات البشرة والجلد، وكسب احترامًا واسع النطاق جراء رفضه تلقي ثمن العلاج. أعلن هونغدينغ انحداره من أباطرة سلالة مينغ، فكانت كنيته مماثلة لكنية عائلة مينغ الإمبراطورية. أعلن هونغدينغ عن هدفه المتمثل بـ «إحياء سلالة تشينغ وإبادة الأجانب».
كان العدو هو النفوذ الأجنبي. لذا ارتأت حركة الملاكمين أن «الشياطين الرئيسيين» هم المبشرون المسيحيون، بينما اعتبروا الصينيين المتحولين إلى المسيحية «شياطين ثانويين». فكان على الحركة نفيهم أو قتلهم.