تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
نشر الموقع وقاعدة البيانات الى خادم ويب _ الجزء الأول
#2
2 - الترجمة الأولية للموقع .
عند نشر الموقع عبر نسخ جميع الملفات بما في ذلك ملفات التعليمات البرمجية فسيتم إجراء ترجمة الصفحات والتعليمات البرمجية الخلفية وغيرها بشكل ديناميكي عند طلبها للمرة الأولى من قبل احد المستخدمين .
يدعى ذلك بالترجمة الأولية ( in-place compilation ) .

بدلاً من نشر ملفات التعليمات البرمجية الخاصة بموقعك تستطيع استخدام الأداة aspnet_compiler الموجودة في المسار
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
لإجراء ترجمة أولية لملفات المصدر وملفات العرض أيضا ( اختياري ).
فيما يلي الأمر الذي تستخدمه لإجراء الترجمة الأولية :

aspnet_compiler –p c:\website\mywebsite –v/website c:\Deployement\mywebsite
يحدد البارمتر –p مجلد الملفات المصدر أما البارمتر –v فيحدد الدليل الظاهري لوجهة الملفات المترجمة .

بعد تنفيذ هذا الامر اتجه الى المسار
c:\Deployement\mywebsite\bin وستجد عدد من الملفات بامتداد .dll بالاضافة الى ملفات XML بالامتداد .Compiled من اجل جميع ملفات .aspx و .ascx

اذا قمت بتحرير احد ملفات .aspx فلن ترى أي تعليمة برمجية وسترى عوضاً عن ذلك العبارة التالية :
This is marker file generated by the precompilation tool , and should not be deleted!

يمكنك الآن اخذ جميع ملفاتك المتولدة عن الترجمة والموجودة في مجلد bin ونسخها الى خادم بعيد باستخدام برنامج FTP كما اشرنا سابقاً .

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

من الأفضل إجراء الترجمة الاولية لملفات التعليمات البرمجية فقط . وليس لملفات العرض .
لفعل ذلك عليك ان تضيف البارمتر –u الى الامر السابق
aspnet_compiler –p c:\website\mywebsite –v/website -u c:\Deployement\mywebsite

عند تنفيذ هذا الأمر لن يتم توليد أي ملف من نوع compiled ولن تتم إزالة محتويات الملفات .aspx و .ascx ولكن سيتم إزالة السمة CodeFile من الموجهين @page و @control

هناك مشكلة أخرى تتعلق بعملية النشر عند استخدام أوامر الترجمة الاولية التي تحدثنا عنها هنا وهي أن أسماء الملفات المجمعة المولدة من عملية الترجمة دائماً أسماء مختلفة مما يجعل من الصعب تحديث الموقع محلياً ثم نسخ التغييرات إلى الخادم البعيد . لأن أسماء المجمعات ستكون مختلفة بعد كل عملية ترجمة أولية .
يمكن حذف المجمعات الغير مستخدمة او التي تود تحديثها ضمن المجلد bin البعيد ومن ثم تعيد تحميل الملفات الجديدة مرة أخرى .
وكذلك تستطيع اضافة البارمتر –fixednames الى الأمر aspnet_compiler كما يلي :

aspnet_compiler –p c:\website\mywebsite –v/website -u –fixednames c:\Deployement\mywebsite

لقد قمنا بذكر جميع الصيغ الممكنة لهذا الأمر aspnet_compiler وفي الحقيقة فأنت لست بحاجة لتذكر أي من هذة الصيغ إذا علمت ان بيئة الفيجوال ستديو توفر لك واجهة بسيطة لتنفيذ هذة الأوامر وذلك عن طريق اختيار
Build ثم Publish Web Site

يوفر لك هذا الخيار الوجهة التي ترغب سواء كانت موقع IIS المحلي او البعيد او موقع FTP .
ستشاهد مربعات الاختيار
1 - Alow this precompiled site to be updatable هو الخيار الذي يعوضك عن البارمتر –u
2 – use fixed naming and single page assemblies وهو الخيار الذي يعوضك عن البارمتر
–fixednames
ملحوظة
عند عمل الترجمة الاولية لموقع كبير يحى المئات من الصفحات فسيحتوى المجلد bin على عدد كبير من الملفات . لذا ومن المستحسن أن يتم دمج جميع الملفات .dll الى ملف مجمع وحيد .
لاتوجد أي طريقة لفعل ذلك من خلال الادوات المرئية التي توفرها لنا بيئة الفيجوال ستديو ولكن هناك أداة يمكن جلبها من العنوان
Visual Studio 2005 Web Deployment Projects
او
Visual Studio® 2008 Web Deployment Projects


بعد تنصيب هذة الأداة سيظهر لديك ملف aspnet-merge.exe ضمن المسار
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin
تسمح لك هذة الاداة بدمج جميع المجمعات المتولدة عن عملية الترجمة الى ملف dll وحيد .
عند تنفيذ هذة الاداة لن تحتاج الى لتحديد مسار الموقع الذي تم إجراء الترجمة الاولية عليه .

سنناقش عمل هذة الأداة في المرات القادة بإذن الله .

الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
نشر الموقع وقاعدة البيانات الى خادم ويب _ الجزء الأول - بواسطة Raggi Tech - 29-09-12, 01:58 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معرض صور ديناميكي بJquery و Asp.net وقاعدة البيانات Sql Server ….. محمد الساعدي 5 5,392 03-06-13, 12:29 PM
آخر رد: محمد الساعدي
  مكتبة DBManager للتعامل مع قواعد البيانات حسين الربيعي 0 2,909 03-06-13, 09:34 AM
آخر رد: حسين الربيعي
  الجزء الثانى - إستدعاء دالة Server-Side من خلال Client-Side RaggiTech 0 2,727 15-10-12, 11:18 AM
آخر رد: RaggiTech
  الجزء الأول- إستدعاء دالة Server-Side بإستخدام Client-Side RaggiTech 0 2,761 15-10-12, 11:16 AM
آخر رد: RaggiTech
  تعلم كيف تنشأ قائمة لتصفح الموقع بـXML وDropDownList RaggiTech 0 2,162 15-10-12, 10:53 AM
آخر رد: RaggiTech
  مقدمة تعريفية بـ ASP.Net- الجزء السادس - Page Class RaggiTech 0 2,405 15-10-12, 10:43 AM
آخر رد: RaggiTech
  مقدمة تعريفية بـ ASP.Net - الجزء الخامس--ِASP.Net Compilation RaggiTech 0 2,588 15-10-12, 10:41 AM
آخر رد: RaggiTech
  مقدمة تعريفيه بـ ASP.Net - الجزء الرابع-- Global.asax-Modules-Handlers RaggiTech 0 2,628 15-10-12, 10:39 AM
آخر رد: RaggiTech
  مقدمة تعريفيه بـ ASP.Net - الجزء الثالث-HttpContext -HttpApplication RaggiTech 0 2,523 15-10-12, 10:36 AM
آخر رد: RaggiTech
  مقدمة تعريفيه بـ ASP.Net - الجزء الثانى - ASP.Net Patterns RaggiTech 0 2,577 15-10-12, 10:34 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم