PDA

View Full Version : Release بندی خودکار نرم افزار ها



Abbas Naghdi
دوشنبه 30 تیر 1393, 18:01 عصر
سلام بچه ها
من میخام نرم افزار هام Release بندی بشن ...
مثلا Application 2.0.25 بعد از رفع باگ و بویلد شدن خودش خودکار بره داخل یه پوشه با اسم Application 2.0.26 و ...
خودم میتونم دستی انجام بدم اما آیا نرم افزار یا پلاگینی برای ویژوال استادیو هست که این کار رو بکنه ؟

abbas.oveissi
دوشنبه 30 تیر 1393, 18:39 عصر
سلام بچه ها
من میخام نرم افزار هام Release بندی بشن ...
مثلا Application 2.0.25 بعد از رفع باگ و بویلد شدن خودش خودکار بره داخل یه پوشه با اسم Application 2.0.26 و ...
خودم میتونم دستی انجام بدم اما آیا نرم افزار یا پلاگینی برای ویژوال استادیو هست که این کار رو بکنه ؟
از TFVC استفاده میکنید یا Git ؟

Abbas Naghdi
دوشنبه 30 تیر 1393, 21:49 عصر
با تشکر اصلا اینا که گفتی نمیدونم چی هستند ... !

abbas.oveissi
سه شنبه 31 تیر 1393, 03:14 صبح
با تشکر اصلا اینا که گفتی نمیدونم چی هستند ... !
خب یکی از مهمترین بخش ها برای انجام پروژه های گروهی یا تکی استفاده از version control system ها هست .نقل قولی از اول یک پست در وبلاگ قدیمم میکنم تا بیشتر با آنها آشنا بشید :


سیستم های کنترل نسخه یا به اختصار vcsها در بیشتر موارد خود برنامه ای کامل و مستقل هستند که در مدیریت تغییرات اسناد،برنامه ها،عکس ها یا هر فایلی در کامپیوتر به ما کمک میکنند . تغییرات معمولا با کدی از حروف یا اعداد نشانه گذاری شده که به آن revision number یا revision گفته میشود .ساده ترین استفاده ای که میتوان از vcs ها کرد برای زمانیست که وقتی بر روی فایل خود تغییراتی به اشتباه انجام دادین،بتوانید فایل خود را به نسخه های قبل بازگردانده و دوباره کار را بروی فایل شروع کنید . به وسیله vcs ها اگر چند نفر یک فایل را ویرایش میکنند میتوان مسیر تغییرات را پیگیری کرد و هر نفر از ویرایش های دیگران آگاه شود،این امکان به افراد اجازه میدهد تا اشتباه های یکدیگر را تصحیح کنند و حتی در محیط هایی مانند ویکی پدیا از خرابکاری جلوگیری کنند.


هر تغییر میتوان در اندازه اصلاح غلط املایی در یک فایل متنی تا refactoring (هر چقدر فکرکردم معادل فارسی برای کلمش پیدا کنم،چیزی به ذهنم نرسید ) یک پروژه که برروی صدها فایل تاثیر بگذارد،باشد . با هر تغییر در vcs اطلاعاتی مانند زمان تغییر ،نام تغییر دهنده،متن کوتاهی برای توضیح و … ذخیره میشود.


سیستم های کنترل نسخه دارای دو نوع متمرکز مانند SVN و توزیع شده مانند Git است که تفاوت آن ها در ذخیره اطلاعات می باشد و همین قضیه باعث برتری ها و مزایایی نسبت به یکدیگر میشود.برای مثال در نوع متمرکز تمام اطلاعات بر روی یک سرور ذخیره شده و همه افراد برای ثبت هرگونه تغییر در فایل ها باید به سرور متصل باشند و اگر سرور در دسترس نباشد نمیتوان تغییری را ثبت کرد اما در مدل توزیع شده هر نفر دیتابیس کاملی از همه اطلاعات را در اختیار دارد و هر زمان که کار ویرایشش با فایل تمام شد آن را با سرور همگان سازی میکند.این قابلیت کمک میکند اگر سرور هم دسترس نبود اطلاعات در دیتابیس محلی ذخیره شده تا در زمانی که ارتباط با سرور برقرار شد اطلاعات به هنگام شوند.

Git که بالا صحبتش شد ، اما TFVC که مخفف Team Foundation Version Control سیستم کنترل نسخه Team Foundation Server هست که از نوع متمرکز میباشد.میشه این سیستم هارو به Build Automation وصل کرد که بعد از هر تغییر سیستم بصورت خودکار Build شده و یا حتی براحتی بتونید Release Note تهیه کنید.کلا خیلی مهم هستند،حتما روشون تحقیق بکنید،واقعا خیلی کمک میکنند.من خودم هنوز دنبال یادگیری استفاده هاشون هستم:لبخند:
من خودم برای دات نت پروژه هامو رو http://www.visualstudio.com میسازم که تا 5 کاربر رایگان هست و در زمان ساخت پروژه Team Foundation Version Control رو هم بعنوان کنترل نسخه انتخاب میکنم ( البته Git رو هم ساپورت میکنه )

جدای همه اینها ویژوال استدیو هم یک چیزی داره که اسمش Build Events هست.مثلا میتونید براش مشخص کنید که اگر Build موفق بود چه دستوراتی اجرا شود بطور مثال فایل های خروجی را در یک فولدری که ساختید کپی کنید.شاید اصن بتونید از مثال خود MSDN برای کار که میخواهید بکنید یک ایده بگیرید : http://msdn.microsoft.com/en-us/library/ke5z92ks.aspx