تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
نشر الموقع وقاعدة البيانات الى خادم ويب _ الجزء الأول
#1
كاتب الموضوع محمد الناشـري

السلام عليكم ورحمة الله وبركاتة .

نشر الموقع وقاعدة البيانات الى خادم ويب .
مقدمة .
بعد أن تنتهي من تطوير مشروعك لابد وان تفكر لنقله إلى ارض الواقع ليؤدى العمل المنوط به والتي قضيت فيها توصيفها وضبطها العديد من الأيام والتي قد تصل إلى شهور من العمل .
لكي نخطط لنشر موقعنا يجب أن نضع الأسئلة الآتية أمام أعيننا :

1 – ما هي الملفات التي سنحتاج لنشرها ؟
2 – كيف سنقوم بنشر هذة الملفات ؟
3 – كيف يمكن حماية التعليمات البرمجية بعد نشر موقعنا على خادم مشترك .
4 – كيف يمكن نقل قاعدة البيانات التي تم تطويرها باستخدام SQL Server Expres Edition الى النسخة الكاملة SQl Server ؟
5 – كيف يمكن إنشاء برنامج تنصيب لإتمام عملية التنصيب لكامل الموقع والذي سيكون مفيداً في حال بيع الموقع على شكل منتج تجاري . أو في حال أردت نشرة إلى خادم ويب خاص .

من الأسئلة أعلاه نلاحظ ان عملية النشر تنقسم إلى جزأين
الجزء الأول نشر ملفات الموقع .
الجزء الثاني نشر قاعدة البيانات .
وسنناقش هذة الأمور بالتفصيل بإذن الله

أولا نشر ملفات الموقع :
هناك ثلاث طرق رئيسية لنشر ملفات الموقع .
1 – تستطيع بكل بساطة نسخ جميع الملفات الى الخادم البعيد . بما في ذلك ملفات التعليمات البرمجية .aspx و .ascx و .cs وغيرها .
تتضمن بيئة الفيجوال ستديو أداة خاصة تسمح لك بنسخ ملفات المشروع الى مجلد آخر ضمن جهازك . أو الى دليل ظاهري ضمن IIS او الى موقع FTP بعيد .
يجب نشر الموقع الى خادم IIS محلى لاختباره قبل ان تنشره بشكل نهائي على خادم بعيد .
من بيئة الفيجوال ستديو قم باختيار الأداة Copy web site من القائمة web site
عليك أولا ان تتصل بالوجهة التي قد تكون مجلداً على جهازك او موقع IIS .
بعد ان تحدد الوجهة تستطيع ان تختار إما نسخ كل شيء من المصدر الى الوجهة . أو العكس . أو ان تزامن الملفات بين المصدر والوجهة وذلك حسب تاريخ الإنشاء او التعديل .

لكي تنشر جميع ملفاتك الى الموقع البعيد عليك أولا التأكد من عبارة الاتصال ضمن الملف web.config
قم بعد ذلك بالاتصال بالموقع البعيد ضمن القائمة اليمنى من واجهة الأداة Copy web site ومن ثم قم بتحديد جميع الملفات من الجهة اليسرى عد المجلد App_Data وانسخها إلى الجهة اليمنى .

الأداة Copy web site عادة ما تكون أبطأ من برامج FTP وقد يتوقف أحيانا عن العمل قبل إنهاء عمله .
لذا أنصحك باستخدام إحدى برامج FTP المجانية .

ملحوظة
اذا قمت بنشر موقعك عن طريق نسخ جميع الملفات فهذا هو الخيار الأبسط ولكن قد يكون غير مرغوباً في بعض الحالات لأنه سيتم نسخ ملفات التعليمات البرمجية كما هي ..
عند النشر على استضافة مشتركة فقد ترغب بان تكون ملفاتك محمية أثناء النقل ( بشكل نسبي على الأقل ) .
لحماية ملفاتك ستحتاج الى إجراء ترجمة أولية ( pre-compilation ) .
وهو ما سنتعرف عليه في نقاشنا القادم إن شاء الله .

يتبع ..
الرد }}}
تم الشكر بواسطة:
#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 وحيد .
عند تنفيذ هذة الاداة لن تحتاج الى لتحديد مسار الموقع الذي تم إجراء الترجمة الاولية عليه .

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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معرض صور ديناميكي بJquery و Asp.net وقاعدة البيانات Sql Server ….. محمد الساعدي 5 5,028 03-06-13, 12:29 PM
آخر رد: محمد الساعدي
  مكتبة DBManager للتعامل مع قواعد البيانات حسين الربيعي 0 2,715 03-06-13, 09:34 AM
آخر رد: حسين الربيعي
  الجزء الثانى - إستدعاء دالة Server-Side من خلال Client-Side RaggiTech 0 2,541 15-10-12, 11:18 AM
آخر رد: RaggiTech
  الجزء الأول- إستدعاء دالة Server-Side بإستخدام Client-Side RaggiTech 0 2,572 15-10-12, 11:16 AM
آخر رد: RaggiTech
  تعلم كيف تنشأ قائمة لتصفح الموقع بـXML وDropDownList RaggiTech 0 1,994 15-10-12, 10:53 AM
آخر رد: RaggiTech
  مقدمة تعريفية بـ ASP.Net- الجزء السادس - Page Class RaggiTech 0 2,119 15-10-12, 10:43 AM
آخر رد: RaggiTech
  مقدمة تعريفية بـ ASP.Net - الجزء الخامس--ِASP.Net Compilation RaggiTech 0 2,389 15-10-12, 10:41 AM
آخر رد: RaggiTech
  مقدمة تعريفيه بـ ASP.Net - الجزء الرابع-- Global.asax-Modules-Handlers RaggiTech 0 2,415 15-10-12, 10:39 AM
آخر رد: RaggiTech
  مقدمة تعريفيه بـ ASP.Net - الجزء الثالث-HttpContext -HttpApplication RaggiTech 0 2,300 15-10-12, 10:36 AM
آخر رد: RaggiTech
  مقدمة تعريفيه بـ ASP.Net - الجزء الثانى - ASP.Net Patterns RaggiTech 0 2,371 15-10-12, 10:34 AM
آخر رد: RaggiTech

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


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