السلام عليكم ورحمة الله وبركاته
اهلا بكم اخواني الاعزاء في مواصلة دروس دورتنا الخاصة بالتحزيم ولمن لم يتابع معنا دروس الدورة من الاول يرجي زيارة تلك الروابط علي الترتيب وصولا لهذا الجزأ كما يلي :
الجزأ الاول - مدخل لتحزيم البرامج في الفيجوال استوديو 2008
الجزا الثاني : التحزيم بطريقة ClickOnce Deploymen
- تكلمنا في الجزأ الثاني من دورتنا علي اساسيات التعامل مع تلك الطريقة من التحزيم وذلك حتي نكون ملمين باساسيات هذا النوع قبل الشروع في استخدامه ويا ريت اي احد لم يقرا الجزا الثاني بشكل سليم ان يقوم باعادة قرائته مره اخري نظرا لاننا لن نقوم بسرد اي خيار تم شرحه في الجزا السابق بشكل مفصل ولكن سوف يتم ذكر هدف استخدامه فقط وذلك حتي لا يطول الشرح ويكون الكلام مكررا منعا لحدوث اي ملل او اطالة بدون هدف للموضوع او بمعني اخر هيكون الجزا ده ملخص جدا ويجيب من الاخر بدون رغي علي الفاضي
بسم الله نبدأ ونستعين :
الجانب العملي : -
- سوف نقوم بالتطبيق علي تلك الطريقة من التحزيم باستخدام المثال التالي والذي يمثل برنامجنا المراد نشره او تجربته في مكان اخر او مشاركته لفريق برمجي لتنقيحه او تشغيله علي جهاز لا يحتوي علي الفيجوال استوديو .
تلك هي شاشة البرنامج الخاص بنا والمراد تحزيمه :

والان سوف نبدأ خطوات تحويل البرنامج السابق من ملف EXE الي ملفات تحزيم نهائية يمكن تنصيبها
1- هذه هي شكل ملفات برنامجنا في نافذة Solution Explorer

2- وتلك شكل ملفات مشروعنا من نافذة Windows Explorer

3- والان نفترض انتهائنا من برمجة برنامجنا ووضع ما يحتاجه البرنامج من مصادر سواء صور او ايقونات او قاعدة البيانات في فولدر المشروع كما راينا في نافذة Windows Explorer ونريد الان ان يتم نقل تلك المحتويات بما فيهم الملف التنفيذي للبرنامج وقاعدة البيانات او اي مكتبات قمت بصناعتها بنفسك DLL او اي مصادر اخري في مجلد مخرجات البرنامج اي المجلد الا هيكون في مجلد ProgrameFiles الخاص بنسخة الويندوز او اي مجلد نهائي تريد نزول تلك الملفات به
- وسوف يتم ذلك بتحديد خاصية مهمة لكل مصدر من تلك المصادر الا وهي خاصية : Copy to Output Directory وتلك الخاصية تكون ضمن اي كائن لاي ملف في نافذة Solution Explorer

- حيث نقوم بتحديد اي ملف او مصدر نود وضعه في المجلد النهائي للبرنامج وليكن كما في الصور السابقة ملف Background ونقوم بتغيير قيمة تلك الخاصية الي القيمة Copy always ومعني ذلك ان هذا الملف سوف يتم نسخة اوتوماتيكيا عند بدأ عملية البناء للمشروع Build Project ويتم وضعه في مجلد Bin سواء في مجلد Debug او Release حسب طريقة اخراجك لمشروعك ويتم تطبيق تلك الخاصية علي اي ملف تود نقله مع مشروعك لجهاز اخر
- والان سوف نقوم بتخفيف العبأ علي مشروعنا وتحديد كلاسات بعينها يقوم بتشغيلها حيث يقوم الدوت نت عن انشاء مشروع جديد يقوم باضافة مجموعة من المكتبات الافتراضية حتي وان لم تقوم باستخدامها سوف يتم استيرادها اوتوماتيكيا وما سوف نقوم به الان هو حذف استيراد المكتبات DLL التي لا نحتاج اليها في برنامجنا واضافة اي مكتبات نود دمجها مع المشروع . وذلك كما يلي :
* من قائمة Project نختر امر Properties ونختر تبويب References من الشاشة التالية :

وبالضغط علي زر UnusedReference سوف يتم اظهار نافذة بها المكتبات التي لا تستخدمها في مشروعك ومن ثم الموافقة عليها من اجل حذف تلك المكتبات
4- نقوم بتحويل برنامجنا الي ملف تنفيذي ذو الامتداد EXE وتصدير المصادر والملفات التي جعلناها تنسخ الي الفولدر النهائي بتنفيذ امر Build Project من قائمة Build ونذهب بعدها الي مجلد النهائي للمشروع بتعنا ونشوف ايه الا حصل فيه حيث سنجد احتوائه علي تلك الملفات كما بالصورة التالية وهي تلك الصورة التي نود ان تظهر في جهاز العميل مثلا او اي مكان نحدده فيما بعد من خلال التحزيم :

- وبذلك نكون انتهينا من تهيئة برنامجنا من اجل بدأ عملية التحزيم له
الان كما ذكرنا ان للتحزيم بتلك الطريقة انواع :
- اما التحزيم لمجلد علي الجهاز المحلي او شبكة محلية Lan
- او التحزيم لوضع ناتج التحزيم علي اسطوانة CD او DVD
- او التحزيم لموقع ويب Web Server
والاتي سوف نقوم بشرح كيفية تنفيذ تلك الانواع باستخدام طريقة التحزيم ClickOnce Deploymen
اولا : التحزيم لمجلد علي الجهاز المحلي Local Folder : -
0- نقوم ببدأ عملية التحزيم باستخدام طريقة ClickOnce Deploymen كما يلي :


1- نقوم بتحديد مجلد حفظ مخرجات عملية التحزيم كما يلي :

- في حالة تحديد مجلد علي جهاز محلي كما يلي :

- في حالة تحديد مجلد مشيير علي شبكة محلية Lan كما يلي :

ومن ثم نضغط علي زر OK لتظهر ناتج ما قمنا بفعله كما بالصورة التالية :
في حالة مجلد علي جهاز محلي :

في حالة مجلد علي الشبكة المحلية :

2- نقوم بتحديد نوعية تنصيب البرنامج
- بما ان البرنامج سوف يكون متاح علي جهاز العميل بشكل مستمر اي سوف يتم تنصيبه علي جهاز العميل اذا فانه يمكن تشغيله سواء كان العميل متصل بالانترنت ام لا او بمعني ادق سواء كان العميل موصل كابل الشبكة ام لا - يعني يقبل حالتي online و offline وكمان سوف يضع قائمة باسم البرنامج في قائمة البرامج المسطبه علي الجهاز ويجعل امكانية حذفها من شاشة add or remove programe كما العادة في البرامج العادية وذلك كما يلي :

3- نقوم بعرض الملفات المراد تحزيمها من الملف التشغيلي للبرنامج وقاعدة البيانات وغيره كما يلي :


- وذي ما احنا شرحنا في الدرس السابق وذكرنا ان الشاشة تلك لا تسمح باضافة اي اضافات لها من خلالها ولكن هي التي تقوم باضافة جميع الملفات التي تقع في المجلد bin سواء في مجلد release او debug يعني بمعني اخر لو انتا عايز تضيف ملفات اضافية غير الموجودة في تلك الشاشة كل الا عليك انك تنسخ الملف الي فولدر debug او release حسب المجلد الذي قمت بعمل بناء لمشروعك فيه او بطريقة تانية انك تضيف ذلك الملف من خلال نافذة المستعرض solution explorer الخاص بالفيجوال استوديو وتعطي للخاصية Copy to output القيمة CopyAlways وهي بالنيابة عنك كل ما هتعمل Build لبرنامجك سوف تقوم بنقلها لمجلد debug او release حسب مجلد البناء الخاص بمشروعك
- اما استخدامنا للشاشة فيكمن في عرض الملفات التي سوف يتم تحزيمها بالفعل عشان نتاكد هل هي دي الملفات الا بدنا تحزيمها ام ناقص ملفات اخري .
4- نقوم بتحديد متطلبات او الشروط الواجب توافرها من اجل تنصيب وتشغيل برنامجنا علي الجهاز الخاص بالعميل


- نجعل هنا مصدر ملفات السورس الخاصة بالبرامج المختارة والمطلوب توافرها من اجل عمل البرنامج هو مجلد ملفات التحزيم وهذا الخيار ناجح بما ان البرنامج ونوع تنصيبه سوف يكون اما اوف لاين او اون لاين يعني لا يضمن استمرارية وجود انترنت مشبوك بالجهاز .
5- نقوم باعداد بعض الخيارات الاخري اللازمة لاتمام عملية التحزيم ونقوم باعدادها كما بالصور التالية :


6- تنفيذ عملية التحزيم لما تم ضبطه من اعدادات مسبقا

- فيما يلي سوف نري ذلك في مجلد مخرجات عملية التحزيم كما بالصورة التالية :

ثانيا: التحزيم علي اسطوانة CD او DVD : -
- نقوم بتنفيذ الخطوات السابقة من الخطوة رقم 0 الي الخطوة رقم 4 ونتابع مع الخطوات التالية
5- نقوم باعداد بعض الخيارات الاخري اللازمة لاتمام عملية التحزيم ونقوم باعدادها كما بالصور التالية :


- وبالخيار الخاص بجعل الاسطوانة ذاتية التشغيل سوف يتم انتاج ملف يعمل كاوتورن في مجلد مخرجات عملية التحزيم كما يلي :

6- نقوم بعدها بنسخ محتويات مجلد ناتج عملية التحزيم السابقة علي CD او DVD ونشرها لدي العميل وبمجرد وضع الاسطوانة في مشغل الاسطوانات سوف يتم تشغيل معالج التنصيب اوتوماتيكيا دون الضغط علي ملف Setup




