إيه إس بي دوت نت خصائص إيه إس بي دوت نت
ويجب على المطورين الحذر من تخزين المعلومات الهامة/الحساسة داخل حالة العرض الخاص بصفحة أو جزء، لأن سلسلة الحروف String (ذات الـ Base64) والتي يتم تخزين معلومات الـ View State داخلها يمكن أن يتم تفكيكها de-serialized (فك شفرتها)، عن طريق أي من الأدوات المنتشرة على شبكة الإنترنت، أو عن طريق أي برنامج عام يفك شفرة الـ Base64.وبشكل آلي Default، لا يتم تشفير بيانات الـ View State (القيم المخزنة في _VIEWSTATE)، ولكن يمكن تشغيل التشفير على نطاق الخادم كله، من أجل الحفاظ على وجود مستوى معين من الأمان.
يمكن إدارة الحالة State Management عن طريق وسائل أخرى يدعما ASP.NET مثل الكوكيز Cookies، التخزين Cashing وتقنية سلسلة الاستعلام Query String.
عند الإصدار الأول لـ ASP.NET، افتقر ASP.NET لمحرك قالب.ولأن إطار دوت نت هو من نوع غرضي-التوجه، ويسمح بالتوريث Inheritance، فإن العديد من المطورين يمكنهم أن يقوموا بتعريف صنف قاعدي جديد Base Class يرث من الصنف System.Web.UI.Page، ويكتبوا طرق Methods يمكنها معالجة كود الـ HTML، ثم يجعلون تلك الصفحات ترث من هذا الصنف الجديد.Web.وفي حين أن هذا الإجراء يسمح بإعادة استخدام عناصر عدة عبر الموقع Site، إلا أن ذلك يضيف تعقيدا كبيرا ويخلط بين الكود وبين التوصيف Markup.وعلاوة على ذلك، فلا يمكن اختبار هذه الطريقة أثناء تصميم التطبيق، وإنما لا بد من تشغيله للقيام بالاختبار.بعض المطورين الآخرين قاموا بتضمين ملفات - وباستخدام حيل أخرى- تجنبهم من أن يضطروا لتنفيذ/تكويد نفس شرائط الانتقال Navigation (مثال: قائمة الروابط Links Menu) ونفس العناصر في كل صفحة.
تم الحل مع الإصدار الثاني من ASP.NET، ففي ASP.NET رقم 2.0 ظهر لأول مرة مفهوم الصفحة الرئيسية Master Page.ويمكن لتطبيق الويب أن يحصل على صفحة رئيسية أو أكثر من صفحة رئيسية، وقد سمح ASP.NET 3.5 -فيما فوق- بمبدأ التضمين Nesting - صفحة داخل صفحة-.وتمتلك الصفحة الرئيسية أجزاء مزودة بضوابط للأماكن Place-Holders، ويطلق عليها ContentPlaceHolders، للدلالة على أماكن المحتوى الديناميكي، بجانب كود الـ HTML والكود المكتوب بلغة JavaScript والمشترك عبر الصفحات المشتقة من الصفحة الرئيسية Child Pages.
الصفحات الأطفال/الصفحات المشتقة Child Page تستخدم هذه الأجزاء من نوع ContentPlaceHolder، والتي لا بد أن تشير إلى الـ Place-Holder الخاص بالصفحة الرئيسية التي تستخدمها الصفحة الفرعية والتي تحمل المحتوى Content.أما باقي أجزاء الصفحة فتحتوي على العناصر المشتركة مع الصفحة الرئيسية، بالضبط مثل عملية دمج المراسلات Mail Merge التي تجدها في تطبيقات معالجة النصوص -مثل MS Word-.ويجب وضع كل التوصيف Markup وجميع أجزاء الخادم Server Controls في صفحة المحتوي داخل جزء من نوع ContentPlaceHolder.
وعندما يتم طلب صفحة محتوى Content Page، يقوم ASP.NET بدمج محتويات صفحة المحتوى مع محتويات الصفحة الرئيسية وإرسال الخرج إلى المستخدم.
ويمكن لصفحة المحتوى أن تستخدم الصفحة الرئيسية بشكل كامل.وذلك يعني أن صفحة المحتوى يمكن أن تقوم بتعديل رأس الصفحة، تقوم بتغيير عنوان الصفحة، تقوم بتعديل مسألة التخزين Cashing..الخ. وإذا أتاحت الصفحة الرئيسية خصائص عامة Properties أو طرق Methods (مثال: لتحديد إشعار حقوق الطبع والنشر)، فيمكن لصفحة المحتوى أن تستخدم ذلك أيضا لتغيير الخصائص أو استدعاء الطرق.
هناك العديد من الملفات ذات الامتدادات المختلفة والتي تتعلق بالإصدارات المختلفة لـ ASP.NET:
بشكل عام فإن بنية دليل Directory الخاص بـ ASP.NET يمكن تحديده عبر تفضيلات المطور Developer.وبصرف النظر عن عدد معين من الأسماء المحجوزة للدليل، يمكن للموقع أن يتسع لأي عدد من الدلائل.وبالطبع فإن بنية الدليل تؤثر بشكل مباشر على عناوين المواقع URLs.وعلى الرغم من أن ASP.NET يوفر وسائل لاعتراض الطلب Request خلال أي لحظة من عملية المعالجة Processing، فإن المطور لا يضطر إلى توجيه الطلبات خلال تطبيق مركزي أو خلال وحدة تحكم أمامية.
وأسماء الأدلة الخاصة في ASP.NET 2.0 (فيما فوق) هي:
يحتوي على ملفات تعريف المتصفح المطلوب لتشغيل موقع معين.
هذا الدليل مخصص لاحتواء الكود الخام raw code.ويقوم خادم الويب الذي يدعم ASP.NET بترجمة الملفات (والمجلدات الفرعية) الموجودة داخل هذا المجلد وتحويلها إلى assembly بحيث تستطيع أي صفحة داخل الموقع بالوصول إليه.ويستخدم App_Code غالبا مع الكود المخصص للوصول للبيانات، كود النمذجة، وكود العمل Business.ويحتوي أيضا على أي معالجات http خاصة بموقع معين، وأجزاء Modules وتنفيذ خدمات ويب.وكبديل لاستخدام مجلد App_Code يمكن للمطور أن يوفر assmbly منفصل به الكود قبل الترجمة.
الدليل الافتراضي لقواعد البيانات، مثل ملفات برنامج Access ذات الامتداد mdb ومثل ملفات خادم SQL ذات الامتداد mdf.وغالبا ما يتصف هذا المجلد بأنه الوحيد ذو إمكانية الكتابة فيه write access داخل التطبيق.
يحتوي على ملفات الأقلمة Localization لكل صفحة من صفحات الموقع.وعلى سبيل المثال فإن ملفا ذو الاسم CheckOut.aspx.fr-FR.resx يحتوي موارد الأقلمة الخاصة بالنسخة الفرنسية من صفحة CheckOut.aspx.وعند ضبط اعدادات ثقافة واجهة الاستخدام للغة الفرنسية، فإن ASP.NET يقوم أتوماتيكيا بإيجاد واستخدام ملف الأقلمة المناسب للفرنسية.
يحتوي هذا المجلد ملفات resx ذات موارد الأقلمة المناسبة لكل صفحة في الموقع.وهذا هو المكان حيث يقوم مطور ASP.NET بتخزين رسائل الأقلمة وما إلى ذلك، حيث يتم استخدامها مع أكثر من صفحة ويب واحدة.
يحتوي على التيمات Themes المختلفة للموقع.
يحتوى على ملفات الاكتشاف Discovery وملفات WSDL التي تشير غلى خدمات ويب يمكن استعمالها/استهلاكها عن طريق الموقع.
تتضمن الكود المترجم (في صيغة ملفات من نوع.dll)، من أجل: الأجزاء Controls، المكونات Components وأي كود آخر قد يرجع إليه داخل التطبيق.ويتم الإشارة لأي أصناف Classes مكودة داخل مجلد Bin بشكل أوتوماتيكي في التطبيق الخاص بك.