آموزش Team Foundation Server (بخش سوم)
بسم الله الرحمن الرحیم
آموزش Team Foundation
(بخش دوم) نصب و راه اندازی TFS
(بخش سوم) ایجاد یک پروژه بر روی TFS
در بخش های قبل در مورد Online Repository ها صحبت کردیم و نحوه ایجاد یک Team Foundation را بر روی TFS Cloud Repository را بررسی کردیم.
در این بخش قصد داریم تا یک پروژه را بر روی Team Foundation قرار دهیم، اما قبل از شروع بهتر است چند نکته را بررسی کنیم.
ابزارهایی که کد برنامه شما را نگه داری می کنند معمولا امکانات زیادی را ارائه می دهند که این امکانات باعث می شود شما یک ابزار انتخاب کنید. در این جا برخی از ویژگی های مشترک ابزارهای مختلف source control مانند Team Foundation که در حال آموزش آن هستیم را بررسی می کنیم.
توضیح ام را باید یک مثال بیان می کنم. فکر کنید قرار است شما یک برنامه را برای فردی بنویسید، مثلا وب سایت ساده که تعدادی افراد را ثبت نام می کند و به شما یک گزارش ساده می دهد. شما با مشتری خود توافق می کنید و کار را آغاز می کنید. در ابتدا یک Template برای مشتری طراحی می کنید و طبیعتا مشتری پس از مشاهده Template طراحی شده از شما می خواهد بخش هایی از آن را تغییر دهید.
این تغییرات به صورت مورد به مورد با مشتری بررسی و اعمال می شود تا در نهایت بخش طراحی Template به پایان می رسد.
تصور کنید نیاز پیدا می کنید تا کدها و اطلاعاتی را که در طراحی Template انجام داده اید مجددا استفاده کنید. مثلا صفحه لاگین شما ویژگی هایی داشته که بعد از تعامل با مشتری تغییر داده شده اما اکنون مجددا به هر دلیلی ( تغییر نظر مشتری، نیاز پروژه، استفاده برای پروژه دیگر و...) نیاز به کدهای قبلی خود دارید.
اگر خیلی با تجربه باشید هر چند ساعت یک بار مثل تصویر زیر از فایل های خود یک backup به صورت فایل ZIP ایجاد می کنید (روش زمان دایناسورها)!
بسم الله الرحمن الرحیم
آموزش Team Foundation
(بخش دوم) نصب و راه اندازی TFS
(بخش سوم) ایجاد یک پروژه بر روی TFS
در بخش های قبل در مورد Online Repository ها صحبت کردیم و نحوه ایجاد یک Team Foundation را بر روی TFS Cloud Repository را بررسی کردیم.
در این بخش قصد داریم تا یک پروژه را بر روی Team Foundation قرار دهیم، اما قبل از شروع بهتر است چند نکته را بررسی کنیم.
ابزارهایی که کد برنامه شما را نگه داری می کنند معمولا امکانات زیادی را ارائه می دهند که این امکانات باعث می شود شما یک ابزار انتخاب کنید. در این جا برخی از ویژگی های مشترک ابزارهای مختلف source control مانند Team Foundation که در حال آموزش آن هستیم را بررسی می کنیم.
توضیح ام را باید یک مثال بیان می کنم. فکر کنید قرار است شما یک برنامه را برای فردی بنویسید، مثلا وب سایت ساده که تعدادی افراد را ثبت نام می کند و به شما یک گزارش ساده می دهد. شما با مشتری خود توافق می کنید و کار را آغاز می کنید. در ابتدا یک Template برای مشتری طراحی می کنید و طبیعتا مشتری پس از مشاهده Template طراحی شده از شما می خواهد بخش هایی از آن را تغییر دهید.
این تغییرات به صورت مورد به مورد با مشتری بررسی و اعمال می شود تا در نهایت بخش طراحی Template به پایان می رسد.
تصور کنید نیاز پیدا می کنید تا کدها و اطلاعاتی را که در طراحی Template انجام داده اید مجددا استفاده کنید. مثلا صفحه لاگین شما ویژگی هایی داشته که بعد از تعامل با مشتری تغییر داده شده اما اکنون مجددا به هر دلیلی ( تغییر نظر مشتری، نیاز پروژه، استفاده برای پروژه دیگر و...) نیاز به کدهای قبلی خود دارید.
اگر خیلی با تجربه باشید هر چند ساعت یک بار مثل تصویر زیر از فایل های خود یک backup به صورت فایل ZIP ایجاد می کنید (روش زمان دایناسورها)!
در این حالت شما اطلاعات را دارید اما نمی دانید از کدام نسخه باید اطلاعات قبلی خود را بیرون بیاورید و همچنین نمی توانید بفهمید در نسخه ای که شما نیاز دارید چه تغییرات دیگری در کدها وجود دارد.
یکی از امکانات ساده source control مانند Team Foundation این است که سوابق تغییرات را با دریافت یک متن توضیحات برای شما نگه داری می می کند شما می توانید خیلی ساده با استفاده از ابزار دیگری تفاوت های دو نسخه را بررسی کنید و دقیقا خط و کدهایی که تغییر کرده اند را مشاهده کنید.
تصور کنید میخواهید به صورت گروهی کار کنید (بیش از یک نفر بر روی یک پروژه) طبیعتا باید یک نسخه از پروژه در جایی وجود داشته باشد که افراد بتوانند تغییرات خود را بر روی آن ثبت کنند و دیگران در بازه های زمانی متفاوت وابسته به نیازشان، آخرین نسخه پروژه را دریافت کنند.
در روش سنتی و بدون استفاده از source control اگر بخواهید بر روی یک پروژه را به صورت تیمی کار کنید، می بایست یک نفر تمامی پروژه ها را از افراد مختلف در بازه های زمانی مختلف دریافت کند و سپس آن ها را با هم ادغام کند که در این شرایط معمولا کدهای افراد متفاوت بر روی یکدیگر تاثیر می گذارد و نیاز به بازنویسی و تغییرات دارد.
با استفاده از source control مانند Team Foundationشما می توانید با هر تغییر ساده کدهای خود را برروی سرور ارسال کنید که طبیعتا هر تغییر کد نویسی نهایتا چند کیلوبایت بیشتر نخواهد بود. در صورتی که تغییرات شما با تغییرات قبلی ارسال شده از سوی دیگر برنامه نویسان conflict (تضاد، کدهایی که باعث ایجا اختلال در کار یکدیگر می شوند) داشته باشد، Team Foundationبه شما پیام می دهد که در بخش X کد شما با برنامه نویس Y مشکل ساز می شود و شما به سادگی می توانید مشکل را بررسی و رفع نمایید.
فکر می کنم برای داشتن دانش در مورد فواید source control ها تا همین جا کافی باشد و بهتر است ساخت یک پروژه را بر روی Team Foundation آغاز کنیم.
آموزش ساخت پروژه در Team Foundation
شروع کار با TFS
در ابتدا Visual Studio را باز کنید
یک Team Project را انتخاب نمایید
با استفاده از حساب کاربری که در جلسه قبل ایجاد کردیم، به TFS متصل می شویم
حال می بایست یک مسیر را در کامپیوتر خود با TFS Directory مرتبط (Map) کنید
حال فایل های خود را به Team Project اضافه کنید
CheckIn
به ارسال اطلاعات از کامپیوترهای برنامه نویسان به سمت سرور Repository در اصطلاح CheckIn گفته می شود.
اطلاعات را بر روی سرور TFS ثبت (Check in) می کنیم.
پیام موفقیت آمیز بودن Check in
بررسی تغییرات ثبت شده در Online TFS Repository
بررسی تغییرات دریافت شده از روی TFS بر روی کامپیوتر ما
از امروز سعی کنید پروژه های خود را بر روی یک Repository مانند TFS قرار دهید و بعد از هر تغییر کافی است که فایل های خود را بر روی سرور Commit کنید.
Commit
Check in به معنی ارسال فایل ها بر روی سرور است و Commit به معنای applay کردن تغییرات اعمال شده بر روی فایل ها می باشد.
Check out
Check out به معنای دریافت تغییرات فایل ها از روی سرور Repository است. در این دستور در واقع شما تغییرات دیگران را دریافت می کنید.
انشالله که این آموزش مفید واقع شود.
موفق باشید.
علی میلادیان
سلام آقای شیدایی/ واقعا ممنونم از این همه زحمت
اسماعیلشیدایی
با عرض سلام
اگر از بخش Team Foundation Server نمی توانید کارخود را به درستی انجام دهید پیشنهاد می کنم از ابزار TFS Power Tools استفاده کنید. این ابزار به شما اجازه می دهد در محیط ویندوز فایل های خود را Commit,Update,... کنید
لینک دانلود این ابزار:
https://www.microsoft.com/en-us/download/details.aspx?id=15836
موفق باشید
یاعلی
داناییدانایی
سلام در tfs می خواهم یکی از اعضای تیم اصلا نتواند pending chenge کند و کد ها رو فقط بتونه برای مدیر تیم بفرسته و مدیر این تغییرات و رو بررسی کنه و بفرسته برای سرور.
میشه این کارو کرد؟
اسماعیلشیدایی
با عرض سلام
يكي از راه ها اين است كه دو تا Branch داشته باشيد و افراد روي نسخه ي غير اصلي اطلاعات را بفرستند و سپس در صورت تاييد بر روي نسخه ي اصلي انتقال داده شوند.
يك راه ديگر اين است كه شما به افراد مورد نظر خود فقط دسترسي Shelve را بدهيد و دسترسي Check-In را برداريد. در اين صورت افراد مي توانند اطلاعات به سرور ارسال كنند اما اگر اطلاعات مورد تاييد بود به پروژه اضافه مي شود در غير اين صورت مي شود Revert نمود.
موفق باشيد
داناییدانایی
يكي از راه ها اين است كه دو تا Branch داشته باشيد و افراد روي نسخه ي غير اصلي اطلاعات را بفرستند و سپس در صورت تاييد بر روي نسخه ي اصلي انتقال داده شوند.......
ببخشید در مقاله ای در رابطه با این جمله مثالی هست؟
اسماعیلشیدایی
سلام دوست عزيز
خير، اما در زمان تعريف كاربران مي توانيد در سايت Visual Studio اين دسترسي ها را تعيين كنيد.
داناییدانایی
<< يك راه ديگر اين است كه شما به افراد مورد نظر خود فقط دسترسي Shelve را بدهيد و دسترسي Check-In را برداريد. در اين صورت افراد مي توانند اطلاعات به سرور ارسال كنند اما اگر اطلاعات مورد تاييد بود به پروژه اضافه مي شود در غير اين صورت مي شود Revert نمود. >>
سلام ببخشید امکانش هست راهنمایی کنید این کارو چه طور میشه کرد؟
داناییدانایی
ببخشید در ادامه سوالم چیزی که من می خوام تنظیم permition به صورتی که How to allow shelving but not checking-in?
اسماعیلشیدایی
سلام و عرض ادب خدمت شما
در آدرس زیر می توانید دسترسی های لازم را برای اعطای مجوزهای مختلف مشاهده کنید.
اگر CTRL+F یا Find مرورگرتان را باز کنید و عبارت shelve را چستجو کنید نحوه ی اعطای این مجوز را خواهید دید.
https://msdn.microsoft.com/en-us/library/ms252587.aspx#VersionControl
موفق باشيد