فهم التحويل البرمجي الديناميكي لــ ASP.NET

فهم التحويل البرمجي الديناميكي لــ ASP.NET

Visual Studio 2010

من أجل تطبيق ويب الخاص بك إلى طلبات خدمات التحليل الأول يجب أن ASP.NET و ترجمة رمز تطبيق ويب الخاص بك في واحد أو أكثر من التجميعات. عندما يتم ترجمة التعليمات البرمجية ترجمة إلى اللغة مستقلة و مستقلة وحدة المعالجة المركزية (CPU) تمثيل تسمى Microsoft اللغة (MSIL متوسط). وقت التشغيل MSIL يعمل في السياق من .NET Framework الذي يترجم MSIL إلى وحدة المعالجة المركزية (CPU) الخاصة إرشادات المعالج على الكمبيوتر الذي يقوم بتشغيل التطبيق.

تمكين ASP.NET التحويل البرمجي الحيوية تعديل التعليمات البرمجية المصدر دون الحاجة إلى ترجمة التعليمات البرمجية بشكل صريح قبل نشر تطبيق ويب. إذا قمت بتعديل ملف مصدر ASP.NET تلقائياً recompiles الملف وتحديثات المرتبطة كافة الموارد. لا يلزم إعادة التشغيل لتصبح التغييرات سارية المفعول إلا إذا تم تغيير المقطع <processmodel>ملقم IIS.

يمكنك توسيع النظام بناء ASP.NET عن طريق إنشاء البنية المخصصة موفري أنواع ملفات جديدة تسمى أثناء التحويل البرمجي.

بشكل افتراضي، صفحات ويب ASP.NET وملفات التعليمات البرمجية يتم تصنيف بشكل حيوي عند المستخدمين من موقع ويب أولاً طلب مورد مثل صفحة ASP.NET (ملف aspx). بعد أن تم صفحات وملفات التعليمات البرمجية تحويلها برمجياً لأول المرة, يتم تخزين الموارد المترجمة بحيث كفاءة بالغة الطلبات اللاحقة إلى نفس الصفحة.

تدعم ASP.NET التحويل البرمجي الحيوية ASP.NET الصفحات (الملفات .aspx) ، ASP.NET على ويب (ملفات .asmx) ، معالجات HTTP ASP.NET (ملفات .ashx) وخدمات ملفات تطبيقات ASP.NET (Global.asax) بالإضافة إلى ملفات أخرى مثل التعليمات البرمجية المصدر وملفات الفئة. لمزيد من المعلومات حول أنواع الملفات ASP.NET راجع أنواع الملفات، موقع ويب. لمزيد من المعلومات حول عملية التحويل البرمجي ASP.NET راجع قسم "دورة حياة التصنيف"نظرة عامة حول دورة حياة تطبيق ASP.NET لـ IIS 5.0 و6.0.

سيتم تلقائياً التجميع المترجمة ذاكرة التخزين المؤقت للملف إلى إبطال أية تغييرات على ملف مترجمة بشكل حيوي و المشغّل recompilation كافة الموارد المتأثرة. في المرة التالية التي تم إجراء طلب إلى الرمز يتعرف ASP.NET تغير التعليمة البرمجية و recompiles الموارد المتأثرة من تطبيق ويب. يمكّنك هذا النظام لتطوير التطبيقات مع أدنى معالجة التحويل البرمجي حمولة بسرعة. (لاحظ أن استناداً إلى الموارد التغيير، النتيجة يتراوح من صفحة واحدة إلى موقع الويب ككل recompiling recompiling).

عندما يتم إنشاء الطلب الأول إلى تطبيق ما فإن برمجيًا ASP.NET الملفات بترتيب معين. تتم الإشارة إلى العناصر الأول إلى أن يتم تحويلها برمجياً على أنها عناصر المستوى الأعلى. بعد الطلب الأول يتم recompiled عناصر المستوى الأعلى فقط في حالة تغيير تبعية.

تتضمن عناصر المستوى الأعلى في مجلد App_GlobalResources المجلد App_WebResources خصائص ملف التعريف المجلد App_Code و الملف Global.asax. بعد أن يتم تحويلها برمجياً عناصر المستوى الأعلى برمجيًا ASP.NET عناصر إضافية. تتضمن هذه العناصر في المجلد App_LocalResources الفردية ASP.NET (ملفات aspx.) ، ASP.NET عناصر تحكم المستخدم (ملفات .ascx) ، معالجات HTTP ASP.NET (ملفات .ashx) و HTTP ASP.NET الوحدات النمطية (ملفات .asmx) ، بالإضافة إلى السمات, الصفحات الرئيسية وصفحات أخرى الملفات المصدر.

لمزيد من المعلومات، راجع تخطيط موقع ويب ASP.NETوفي قسم "دورة حياة التصنيف" نظرة عامة حول دورة حياة تطبيق ASP.NET لـ IIS 5.0 و6.0.

عندما يتم ترجمة التعليمات البرمجية التخزين المؤقت التجميعات الناتجة في مجلد على الملقم. يتطلب هذا المجلد الأذونات المناسبة بحيث برمجيًا التعليمة البرمجية الخاصة بك ويعمل بشكل صحيح. يمكنك تكوين كل موقع المجلد التحويل البرمجي و أذونات ضمنها التعليمات البرمجية برمجيًا ثم يعمل.

موقع المجلد التحويل البرمجي

بشكل افتراضي، عند التحويل البرمجي تطبيق ويب يتم وضع التعليمات البرمجية المترجمة في مجلد Temporary Files ASP.NET. هذا المجلد هو دليل فرعي من الموقع حيث تم تثبيت .NET framework. عادةً ما يكون الموقع هو ما يلي:

%SystemRoot%\Microsoft.NET\Framework\versionNumber\Temporary ASP.NET Files

مطلوب التحويل البرمجي المجلدات أذونات

عملية تثبيت .NET بإنشاء مجلد Temporary Files ASP.NET ويقوم بتعيين أذونات الوصول إلى حساب مستخدم محلي ASP.NET لديه أذونات ثقة عالية يحتاج إليها للوصول إلى التعليمات البرمجية المترجمة. إذا قمت بتعديل التكوين أو إعدادات الحساب يجب التأكد من أن الحساب الذي تستخدمه لديه أذونات الثقة عالي إلى مجلد Temporary Files ASP.NET. للحصول على المزيد من التفاصيل راجع كيفية: تشغيل عملية عامل ضمن حساب مستخدم.

Configurability مجلد التحويل البرمجي

ASP.NET بإنشاء مجلد فرعي منفصلة ضمن مجلد "ملف ASP.NET المؤقتة" لكل تطبيق. يمكنك تكوين الموقع الجذر باستخدام السمة tempDirectory المقطع التحويل البرمجي لملف التكوين. هذه السمة الاختيارية "إمكانية تحديد دليل المستخدمة لتخزين الملفات المؤقتة أثناء التحويل البرمجي. الافتراضي عبارة عن سلسلة فارغة (""). في حالة التي سلسلة فارغة إذا توفرت العملية الحالية أذونات الوصول المطلوبة ويتم تخزين الملفات في الدليل التالي:

%FrameworkInstallLocation%\Temporary ASP.NET Files

لمزيد من المعلومات، راجع تصنيف عنصر (مخطط إعدادات ASP.NET) و TempDirectory خاصية CompilationSection.

يدعم ASP.NET 2.0 لغات البرمجة متعددة في نفس تطبيق ويب. في دليل App_Code يمكنك تحديد مجلد فرعي لكل لغة مثل C# و Visual Basic. سيقوم بإنشاء ASP.NET تجميع منفصل لكل مجلد فرعي. لمزيد من المعلومات، راجع مشاركة مجلدات تعليمات برمجية في مواقع ويب الخاصة ب ASP.NET و الإرشادات التفصيلية: تطوير مواقع ويب باستخدام لغات البرمجة متعددة.

بشكل افتراضي، عند إجراء أي تغيير على المستوى الأعلىrecompiled ملف في موقع ويب أو موقع ككل. المستوى الأعلى تتضمن ملفات الملف global.asax كافة الملفات الموجودة في سلة والمجلدات App_Code. الأكثر أماناً إعادة ترجمة كل شيء عند تغيير أحد هذه الملفات لأن الملفات .ascx الأخرى وكانت الملفات الموجودة في الموقع، مثل .aspx قد تشير إلى الكائنات التي تم إنشاؤها بواسطة التعليمات البرمجية في ملفات ذات المستوى الأعلى.

أثناء recompiling كل شيء يعمل بشكل جيد لمعظم تطبيقات, قد يؤدي تطبيق كبيراً جداً أن تكون غير متوفرة لفترات طويلة من الوقت حتى عند إجراء تغييرات ثانوية إليه. إذا كان التطبيق كبيراً بشكل كافٍ, فقد يكون ذلك غير متوفر خمس إلى عشر دقائق أو أكثر بعد إجراء تغيير.

إذا أردت أن تكون قادراً على تغيير ملفات المستوى الأعلى دون التسبب في الموقع بالكامل أن recompiled يمكنك تعيين السمة optimizeCompilations التحويل البرمجي عنصر في ملف Web.config إلى true. إذا كان optimizeCompilations صحيحاً عند تغيير ملف المستوى أعلى هي recompiled الملفات المتأثرة. توفير الوقت ولكن يمكن أن تسبب أخطاء وقت التشغيل استناداً إلى نوع التغييرات التي تجريها على ملف ذي المستوى أعلى.

يتم بشكل عام الآمن الأنواع التالية من التغييرات:

  • تغيير تطبيق أسلوب. لأنه لم يتم تغيير التوقيع يمكن استدعاء الأسلوب بدون إلقاء استثناء الصفحات التي تم تحويلها برمجياً مقابل الإصدار القديم.

  • إضافة خصائص أو أساليب جديدة. لأن هذه لم تكن سابقاً موجودة, أي صفحات المترجمة مسبقاً سيشير بها ثم يتم طرح أية استثناءات.

  • إضافة سمة CLR بعضو موجود. هذا هو سيناريو "الديناميكي البيانات" نموذجية حيث يمكنك إضافة سمات مثل DisplayName الخصائص. لأن سمات CLR باكتشاف في وقت التشغيل خلال الانعكاس, لا يلزم الصفحات الموجودة يمكن recompiled.

قد يؤدي الأنواع التالية من التغييرات استثناءات وقت التشغيل:

  • إعادة تسميتها أو حذفها الأساليب أو الخصائص. إذا كانت عضو المتأثرة كمرجع إلى إحدى صفحات المترجمة مسبقاً يمكن إلقاء استثناء.

  • تغيير توقيع أسلوب أو نوع خاصية. إذا كانت عضو المتأثرة كمرجع إلى إحدى صفحات المترجمة مسبقاً يمكن إلقاء استثناء. لا يؤدي بعض التغييرات على توقيع خطأ ترجمة أو وقت التشغيل إذا recompiled الموقع بأكمله. على سبيل المثال، رمز Response.Write(ClassA.MethodA() في صفحة .aspx سيتم ترجمة وتشغيل جيد ما إذا كان MethodA إرجاع Int أو مختصراً. ولكن إذا كانت صفحة .aspx يتم بالفعل تحويلها برمجياً ثم قم بتغيير نوع الإرجاع MethodA من Int إلى قصيرة دون recompiling سوف يتم طرح استثناء وقت تشغيل لأن التعليمات البرمجية المترجمة يتوقع التوقيع Int.

إذا كنت تريد استخدام السمة optimizeCompilations لتقليل وقت التحويل البرمجي الحيوية بعناية يجب مراجعة كل تغيير تقوم بإجراء ملفات المستوى الأعلى في الموقع الخاص بك ثم إذا لم يكن تغيير معينة بمأمن، مؤقتاً إزالة السمة optimizeCompilations أو تعيينها إلى false.

هناك بعض إمكانيات لا تقدم التحويل البرمجي الحيوية. يمكن أن التحويل البرمجي الحيوية يعني وقت استجابة الأولي أبطأ للمستخدمين، لأن صفحات وملفات التعليمات البرمجية يجب أن يكون التحويل البرمجي في المرة الأولى التي تم طلبها. قد تكون هذه مشكلة خاصة على مواقع كبيرة التي يتم تحديثها بشكل متكرر. لا تقدم التحويل البرمجي الحيوية وسيلة لتحديد أخطاء وقت الترجمة قبل وصول المستخدمين إلى موقع. بالإضافة إلى ذلك، لا يوفر التحويل البرمجي الحيوية القدرة على إنشاء إصدار مترجمة من الموقع الذي يمكن نشره إلى خادم إنتاج بدون التعليمات البرمجية المصدر. إذا كان أي من هذه المشكلات عبارة اهتمامات لتطبيقات ويب يمكن precompile موقعك على ويب. تفاصيل للحصول على معلومات نظرة عامة حول ما قبل التحويل البرمجي لــ ASP.NET.

إضافات المجتمع

إضافة
إظهار:
© 2016 Microsoft