كيفية القيام بالبناء اليومي لمشروع .NET من A - Z؟

StackOverflow https://stackoverflow.com/questions/4125583

  •  29-09-2019
  •  | 
  •  

سؤال

أنا مطور مبتدئ يرغب في تعلم عملية تطوير البرمجيات بشكل أفضل. أسئلتي هي:

  1. ما هو البناء اليومي بشكل عام؟
  2. ما الفرق إذا قمت ببناء مشروعي الخاص في VS؟
  3. كيف نفعل ذلك أفضل طريقة لمشروع .NET (يفضل استخدام TFS)؟
  4. المزيد من الأشياء التي يجب أن أعرفها/يجب أن أعرفها؟

أي إشارة إلى مقال/كتب/أسئلة أخرى مرحب بها.

شكرًا

هل كانت مفيدة؟

المحلول

1) من دخول ويكيبيديا:

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

2) لا ينبغي أن يكون هناك فرق بين البناء الليلي وبناء من VS ، ولكن الفكرة وراء البناء اليومي هي أنها آلية. بهذه الطريقة يمكنك جدولةها لتشغيلها في الساعة 3 صباحًا :)

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

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

3) يمكنك إنشاء برنامج نصي دفعي يقوم بتشغيل البناء لك ، ويمكنك استخدام أداة لهذا الغرض. لمزيد من المعلومات، راجع: ما هو الأدوات للاستخدام للبناء ليلا. بعض اقتراحاتهم تشمل:

نصائح أخرى

مقالة - سلعة من جويل. من الجيد القراءة.

البناء اليومي هو في الغالب بناء تلقائي ، بناء من قبل خادم مركزي. الفرق في بناء مشروعك الخاص هو أنك على دراية بجميع DLL المعبأة في التطبيق الخاص بك ، والرمز الذي لم يتم فحصه في التحكم في المصدر ، والتبعيات المحلية ، وما إلى ذلك .. التطبيق المترجم النهائي و DLL هو نفسه الذي تقوم بإنشائه محليًا.

نحن نستخدم هدسون للبناء بين عشية وضحاها ولكن يمكنك أيضا استخدام كروز سيطرة .net. لأننا نفعل Java & .net Hudson هو الحل الأفضل. إذا كان لديك خادم Team Foundation من MS ، فيمكنك أيضًا استخدام هذا.

يرجى النظر في هذه لدمج هدسون و C#.

ضع في اعتبارك أيضًا دمج اختبار Stylecop و FXCOP ووحدة في خادم الإنشاء الخاص بك.

هناك مقال ممتاز من مارتن فاولر حول هذا الموضوع

http://martinfowler.com/articles/continuinintegration.html

أنا شخصياً لا أوافق على أن بناء رمز المصدر منك التنمية هو نفس البناء الليلي أو البناء اليومي. غمرت بيئة التنمية المكونات و SDK والمكتبات والموارد التي تخفي في وقت ما نهايات فضفاضة. إن القيام ببناء ليلي على آلة البناء هو أفضل طريقة للذهاب.

كما يمنع البناء من الجهاز الخاص بك تسجيلات الفحص اليومية إلى التعليمات البرمجية السائدة. مرة أخرى ممارسة سيئة.

يجب أن يعمل البناء الليلي مع الحد الأدنى من أدوات البناء والمكتبات المطلوبة. يعد استخدام Dev Env بالكامل على آلة البناء فكرة سيئة. سيكون للبناء الكامل أيضًا بعض الاختبارات الآلية السريعة والمتسقة التي يتم تشغيلها على الكود بعد تجميعها ، وبناءها ، ونشرها في اختبار/ما قبل البرودة. Nunit ، Selenium ، و FXCOP هم أصدقاؤك.

  1. بناء تلقائي كل يوم (أو ليلة) للنظام الكامل. تقرير نظام البناء بناء أخطاء بريدي ، إلخ.
  2. إنه يبني على جهاز منفصل ، ويتأكد من عدم نسيانك للتحقق من أي ملفات ، أو تثبيت تبعيات غير موثقة على جهازك فقط. ويبلغ الأخطاء.
  3. لا تتوقف عند التصميم اليومي ، اذهب للتكامل المستمر الذي يبني بعد كل تسجيل الوصول. إلقاء نظرة على Cruisecontrol.net.
  1. تهدف التصميمات اليومية إلى التأكد من أنه مرة واحدة على الأقل في اليوم في تطبيقك القابل للبناء. عادة ما يتم تشغيلها بواسطة عملية آلية. تفضل العديد من الفرق الحصول على عمليات تكامل مستمرة يتم إعدادها بعد كل تسجيل وصول إلى المستودع.

  2. تتمتع العملية اليومية الآلية بميزة كونها آلية :) يمكنك أيضًا إعدادها لإجراء مختلف المهام المساعدة: من اختبارات الوحدة إلى نشر مكونات الخادم تلقائيًا. عندما تبني على جهاز DEV الخاص بك ، فأنت تضمن أن محلي النسخة صالحة وتجميع ، بينما يؤكد CI Server نفس الشيء بشأن مخزن.

  3. Cruisecontrol.net هو حل شائع. يمكنك أيضًا التفكير باستخدام أشعل النار.

1) البناء اليومي هو حساء كامل للمكسرات من قاعدة الكود الخاصة بك والعمليات التي سيخوضها المثبت بما في ذلك الاختبار والتركيب والإزالة المحتملة.

2) هذا بناء محلي ، يجب ألا يكون هناك فرق حقيقي إلا أنك ستجمع فقط واختبار الرمز وليس بالضرورة عملية التطبيق.

3) الأمر في الهواء ، يعتمد على الميزانية ، من بين أشياء أخرى.

4) مقال جويل كما تم نشره سابقًا.

ما هو البناء اليومي بشكل عام؟

يعد "Daily Build" جزءًا من "التكامل المستمر" ، ويعني أنه تم تصميم المشروع الكامل بانتظام وتلقائيًا. عادةً ما يحدث هذا يوميًا على الأقل ، أو حتى بشكل متكرر إن أمكن ، ربما حتى بعد كل تغيير.

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

ما الفرق إذا قمت ببناء مشروعي الخاص في VS؟

يحدث تلقائيًا ، واستخدام التكوين الافتراضي. هذا يتأكد من أن المشروع يبني دائمًا بشكل صحيح ، وليس فقط على نظامك (على سبيل المثال ، لأن لديك تكوينًا خاصًا نسيت التحقق من التحكم في الإصدار ، أو لديك IDE معين).

كيف نفعل ذلك أفضل طريقة لمشروع .NET؟

استخدم خادم CI (التكامل المستمر) ، على سبيل المثال Cruisecontrol.net. هناك العديد من المتاحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top