ন্যান্ট বা এমএসবাইল্ড কোনটি বেছে নেবে এবং কখন?


160

আমি জানি যে স্ট্যাক ওভারফ্লোতে অন্যান্য ন্যান্ট এবং এমএসবিল্ড সম্পর্কিত প্রশ্ন রয়েছে তবে আমি দুজনের মধ্যে সরাসরি তুলনা খুঁজে পাইনি এবং তাই এখানে প্রশ্নটি রয়েছে।

এমএসবিল্ডের উপর কখন ন্যান্ট বেছে নেওয়া উচিত? কোনটি কোনটির জন্য ভাল? ন্যান্ট কি হোম / ওপেন সোর্স প্রকল্পের জন্য এবং কাজের প্রকল্পের জন্য এমএসবিল্ডের জন্য আরও উপযুক্ত? দুজনের কারও সাথে অভিজ্ঞতা কী?

উত্তর:


97

আমি এই সপ্তাহে একই তদন্ত করেছি। এখানে আমি নির্ধারণ করতে সক্ষম হয়েছি কি:

NAnt:

  • ক্রস প্ল্যাটফর্ম (লিনাক্স / মনোকে সমর্থন করে)। উদাহরণস্বরূপ, এটি একাধিক টার্গেটে (যা লিনাক্স অ্যাপাচি এবং উইন্ডোজ আইআইএস) কোনও ওয়েবসাইট ইনস্টল করার জন্য কার্যকর হতে পারে।
  • পিঁপড়ার মতো সিনট্যাক্সের মতো 95% অনুরূপ (বর্তমান পিঁপড়া ব্যবহারকারী বা জাভা নির্মাতাদের পক্ষে তোলা সহজ)
  • বিল্ডের অংশ হিসাবে ইউনিট পরীক্ষা চালানোর জন্য NUnit এবং প্রডাক্ট ডকুমেন্টেশনের জন্য NDoc এর সাথে সংহতকরণ।

MSBuild:

  • অন্তর্নির্মিত। নেট।
  • ভিজ্যুয়াল স্টুডিওর সাথে একীভূত
  • ভিজ্যুয়াল স্টুডিওতে এমএসবিল্ড দিয়ে শুরু করা সহজ - এগুলি সবই পর্দার আড়ালে। আপনি যদি আরও গভীর হতে চান তবে আপনি ফাইলগুলি সম্পাদনা করতে পারেন।

বিষয়গত পার্থক্য: (ওয়াইএমএমভি)

  • ন্যান্ট ডকুমেন্টেশনটি আরও কিছুটা সোজা। উদাহরণস্বরূপ, এমএসবিল্ড টাস্ক রেফারেন্সটি " সিসিএস টাস্ক - সিসিএস টাস্ক এবং এর পরামিতিগুলি বর্ণনা করে।" ("সহায়তা"? ধন্যবাদ, বনাম ন্যান্ট টাস্ক রেফারেন্স "সিএসসি - সংকলন সি # প্রোগ্রামগুলি।" আপডেট: আমি লক্ষ্য করেছি যে এমএসবিল্ড ডকুমেন্টেশনটি উন্নত হয়েছে এবং এখন অনেক ভাল (সম্ভবত ন্যান্টের সাথে সমান)।
  • ভিজ্যুয়াল স্টুডিওর মধ্যে থেকে কীভাবে বিল্ড স্ক্রিপ্ট উত্স (*। * প্রোজ ফাইল) সম্পাদনা করা যায় তা নির্ধারণ করা সহজ নয়। ন্যান্টের সাথে আমার কাছে মাত্র ভিজ্যুয়াল স্টুডিওটি। বিল্ড স্ক্রিপ্টটিকে একটি এক্সএমএল ফাইল হিসাবে বিবেচনা করবে।
  • স্পষ্টতই, ভিজ্যুয়াল স্টুডিওতে, ওয়েব অ্যাপ্লিকেশন প্রকল্পগুলি একটি *। * প্রোজ ফাইলটি ডিফল্টরূপে পায় না, তাই এমএসবাইলকে কীভাবে একটি বিস্তৃত স্ক্রিপ্ট তৈরি করতে আমার উপর চালানো যায় তা জানার ক্ষেত্রে আমার খুব অসুবিধা হয়েছিল।
  • ন্যান্ট ভিজ্যুয়াল স্টুডিওতে অন্তর্নির্মিত নয় এবং অ্যাড-ইন বা "বাহ্যিক সরঞ্জাম" হিসাবে যুক্ত করতে হবে। এটি সেট আপ করতে কিছুটা ব্যথা।
  • (সম্পাদনা করুন) আমার সহকর্মীদের মধ্যে একটি এটি নিয়ে এসেছিল - আপনি যদি ক্রমাগত সংহতকরণের জন্য ক্রুজকন্ট্রোল ব্যবহার করে একটি বিল্ড মেশিন স্থাপন করতে চান তবে ক্রুজ কন্ট্রোল ন্যান্টের সাথে সুন্দরভাবে বক্সের বাইরে একীভূত হয়ে গেল। আপডেট: ক্রুজ কন্ট্রোলের একটি এমএসবিল্ড টাস্কও রয়েছে
  • বিষয়গত পার্থক্যের সম্পূর্ণ এবং আপ-টু-ডেট আলোচনার জন্য দয়া করে নীচের মন্তব্যগুলি দেখুন।

আপনি একটি প্রকল্প ফাইল সম্পাদনা করতে পারেন তবে আপনি প্রকল্পটি আনলোড করার পরে (প্রকল্পের প্রসঙ্গে মেনুতে একটি "আনলোড" বিকল্প থাকা উচিত)
ইয়ার্ডান পাভলভ ২

18
@ ইয়ার্ডান: বা আপনার কাস্টমাইজেশনকে আলাদা আলাদা বিল্ড ফাইল (বা যাই হোক না কেন) এ রাখুন এবং আমদানি করুন + এটি আপনার .csproj ফাইল থেকে কার্যকর করুন। তারপরে আপনাকে কেবল একবার .csproj সম্পাদনা করতে হবে এবং আপনার সমাধানটিতে। বিল্ড ফাইলটি যুক্ত করতে পারেন। ডাবল-ক্লিক করুন এবং আপনি অন্য কোনও ফাইলের মতো সম্পাদনা করছেন। আপনার বিকল্পগুলিতে এক্সএমএল সম্পাদককে ফাইল তৈরি করতে ম্যাপ করতে পারেন।
কেন্ট বুগার্ট

9
এখানে একটি এমএসবিল্ড সিসিনেট টাস্ক রয়েছে - বিশদটি এখানে পাওয়া যাবে: confluence.public.thoughtworks.org/display/CCNET/MsBuild+Task
গেভিন মিলার

2
এটি লক্ষণীয় যে আপনার নিজের .csproj ফাইলগুলি নিজেরাই সংশোধন করার দরকার নেই। আপনি .csproj ফাইলটি পরিষ্কার এবং মূল থেকে ছেড়ে এই পরিবর্তনগুলি করতে আপনি একটি MyProject.csproj.user ফাইল ব্যবহার করতে পারেন। এমএসবিল্ড।। ব্যবহারকারী ফাইলগুলি সন্ধান করতে জানে এবং সেগুলি স্বয়ংক্রিয়ভাবে বিল্ড প্রক্রিয়াতে আমদানি করবে। দেখুন: ahmed0192.blogspot.com/2006/11/…
ক্লিভারপ্যাট্রিক

3
@ ক্লেভারহুমান, যে ব্যবহারকারী ফাইলটিতে সাধারণত প্রকল্পের ব্যবহারকারী নির্দিষ্ট মোড থাকে না যা আপনি সাধারণত বাকি প্রকল্পের সাথে চেকইন করেন না? আমি কয়েক বছর ধরে কেন্টের পরামর্শ ব্যবহার করেছি এবং এটি খুব সুন্দরভাবে কাজ করে। আপনি দ্বিতীয় প্রোজ ফাইল অন্তর্ভুক্ত করতে একবার প্রোজ ফাইলটি মোড করেছেন, তারপরে আপনার প্রকল্পে দ্বিতীয় PROJ ফাইল যুক্ত করুন। তারপরে, আপনি আনলোড / পুনরায় লোড প্রক্রিয়াটি না ছাড়াই সহজেই সেই দ্বিতীয় PROJ ফাইলটি কাস্টমাইজ করতে পারেন। আমি কেবল এই কারণে এমএসবিল্ডের দিকে ঝুঁকে পড়েছি।
ডারিনএইচ

77

আমার জন্য উইন্ডোজ প্লাটফর্মগুলিতে এমএসবিল্ডের একটি বড় অঙ্কন এটি হ'ল নেট নিজেই অংশ হিসাবে আসে। তার অর্থ হ'ল উইন্ডোজ আপডেটের সাথে আপডেট হওয়া কোনও উইন্ডোজ মেশিনে এমএসবিল্ড উপলব্ধ থাকবে। এটিকে যুক্ত করুন যে সি # সংকলক নিজেও নেট নেট এর একটি অংশ এবং আপনার কাছে এমন একটি প্ল্যাটফর্ম রয়েছে যা পরিষ্কার মেশিনে প্রকল্পগুলি তৈরি করতে পারে। ভিজ্যুয়াল স্টুডিও behemoth ইনস্টল করার প্রয়োজন নেই। অন্যদিকে, ন্যান্ট একটি বিল্ড ট্রিগার করার আগে স্পষ্টভাবে ইনস্টল করতে হবে।

কেবল রেকর্ডের জন্য, আমি অতীতে তুচ্ছ-বিল্ডগুলিতে (সেই ক্রমে) এনএমকে, মেক, এন্টি, রেক, ন্যান্ট এবং এমএসবিল্ড ব্যবহার করেছি। আমার প্রিয় হ'ল এমএসবাইল্ড, হাত নীচে রেখেছেন (এবং আমি এটির পক্ষে নই কারণ "ভিজ্যুয়াল স্টুডিও এটিই ব্যবহার করে")। আইএমএইচও, এটি একটি খুব কম প্রশংসিত বিল্ড টুল।

আমি ন্যান্ট বনাম এমএসবিল্ডকে পদ্ধতিগত এবং কার্যকরী প্রোগ্রামিংয়ের মধ্যে পার্থক্যের সাথে তুলনা করব। ন্যান্ট বেশ সোজা এবং আপনি কী দেখতে পাচ্ছেন। অন্যদিকে এমএস বিল্ডের জন্য আরও কিছুটা চিন্তাভাবনা প্রয়োজন। লার্নিং কার্ভ স্টিপার। তবে একবার আপনি "এটি" পেয়ে গেলে আপনি এটি দিয়ে কিছু আশ্চর্যজনক কাজ করতে পারেন।

সুতরাং আমি যদি আপনি কার্যকরী বা যৌক্তিক স্টাইল প্রোগ্রামিংয়ের দিকেও মনোযোগী হন তবে এমএসবিল্ডের দিকে নজর দেওয়ার পরামর্শ দেব - যদি আপনি স্থির ফলাফল দেখার আগে কিছুটা সময় এবং প্রচেষ্টা ব্যয় করতে ইচ্ছুক হন (অবশ্যই, আমি দৃ believe়ভাবে বিশ্বাস করি যে বিনিয়োগ শেষ পর্যন্ত বন্ধ হয়ে যায় এবং আপনি আরও দক্ষতার সাথে আরও দক্ষতার সাথে কাজ করতে পারে)।


11
কি দারুন! জানেন না যে এমএসবিল্ড রানটাইম নিয়ে আসে। এটি বেশ দুর্দান্ত এবং আমি অবশ্যই সেখানে সুবিধা দেখতে পাচ্ছি। তবে, আমি কার্যকরী / পদ্ধতিগত মধ্যে তুলনা বুঝতে পারি না। এমএসবাইলকে একবার "পাওয়ার পরে" কী আরও বেশি শক্তিশালী করে তোলে তা শুনতে আকর্ষণীয় হবে।
স্কট সাদ

2
এমএসবিল্ডের আসলে বিভিন্ন এসডিএস থেকে ফাইলগুলির উপর অনেকগুলি নির্ভরশীলতা থাকে যা কেবলমাত্র নির্দিষ্ট টার্গেটের আবেদনের সময় স্পষ্ট হয়ে যায়। সুতরাং এমএসবিল্ডটি বাক্সের বাইরে পাওয়া গেলেও এটি চলতে পারে না।
স্যাম শাইলস

6
একটি জিনিস যুক্ত করা উচিত: কেবলমাত্র এমএসবিল্ডের মধ্যে থেকে নেট সংস্থাগুলিতে কল করা সম্ভব নয় যা একটি খুব সহজে কাজকর্মের জন্য একটি অ্যাক্সেস দেয় (উদাহরণস্বরূপ Systme.IO.Path- এ সমস্ত কিছুই বিল্ড স্ক্রিপ্টে কাজে আসতে পারে) , এমএসবিল্ড ফাইলগুলির মধ্যে প্লেইন সি # কোড লেখা এবং এটি কার্যকর করা সম্ভব। যা কেবল অদ্ভুত। এমএসডিএন.মাইক্রোসফট.এইন.উস / লিবারি / ডিডি 22২২২০১.এসপিএক্স এবং যদি জিনিসগুলি খুব জটিল হয়ে যায় তবে কাস্টম টাস্কগুলি লেখার পাশাপাশি একটি হাওয়াও রয়েছে।

1
উইকিপিডিয়া থেকে: " এমএসবিল্ড এর আগে। নেট ফ্রেমওয়ার্কের সাথে একত্রিত হয়েছিল; ভিজ্যুয়াল স্টুডিও ২০১৩ থেকে শুরু করে, পরিবর্তে এটি ভিজ্যুয়াল স্টুডিওতে একত্রিত করা হয়।"
ডেভিডআরআর

এমএসবাইল্ড (মাইক্রোসফ্ট বিল্ড টুলস 2013) এখানে ভিজ্যুয়াল স্টুডিও 2013-র স্বাধীনভাবে ডাউনলোড করা যায়
ডেভিডআরআর

45

ব্যক্তিগতভাবে, আমি উভয়ই ব্যবহার করি - একই প্রকল্পের জন্য।

এমএসবিল্ড ভিজ্যুয়াল স্টুডিও সমাধান এবং প্রকল্পগুলি তৈরিতে দুর্দান্ত what এটিই এর জন্য তৈরি।

আমার মতামত অনুযায়ী ন্যান্ট আরও সহজেই সম্পাদনযোগ্য is বিশেষত যদি আপনি ইতিমধ্যে পিঁপড়াকে চেনেন। ন্যান্ট ন্যান্টকন্ট্রিবের সাহায্যে এমএসবিল্ডকে খুব সহজে কল করতে পারে। সুতরাং, আমি বিল্ড ফাইলগুলি অনুলিপি করা, পরিষ্কার করা ইত্যাদির মতো কাজগুলি করার জন্য একটি ন্যান্ট স্ক্রিপ্টটি হস্তশিল্প করি and এবং এমএসবাইল্ডকে প্রকৃত "আমার সি # উত্স কোডটিকে সমাবেশগুলিতে পরিণত করুন" অংশটি করতে বলি।

আপনি যদি এর উদাহরণ চান তবে আমার প্রোটোকল বাফার বিল্ড ফাইলটি দেখুন । (আমি এটি দর্শনীয় ন্যান্ট স্ক্রিপ্ট দাবি করব না, তবে এটি কাজটি করে)


1
এবং এটি মনোকে সমর্থন করে। মনোর এমএসবিল্ড সমর্থনটি কৃপণ।
মেহরদাদ আফশারি

@ মেহরদাদ: হ্যাঁ, এক পর্যায়ে আমার অবশ্যই প্রোটোকল বাফারকে মনো সম্পর্কে সংকলন করার চেষ্টা করতে হবে ... বর্তমানে একটি জিএমসিএস বাগ রয়েছে যা এটি কাজ করা থেকে বিরত রাখে :( ধারণা সর্বদা ছিল যে এটি শেষ পর্যন্ত মনোতে কাজ করবে।
জোন স্কিটি

1
বন্ধুরা, মনো একটি এক্সবিল্ড ব্যবহার করে এবং এমএসবিল্ড থেকে এক্সবাইলকে পোর্ট করা সহজ। এটি দেখুন: মনো-প্রজেক্ট / পোর্টিং_এমএস বিল্ড_প্রজেক্ট_স_এক্স বিল্ড
ফায়সার

20

ন্যান্টের বাক্সের বাইরে আরও বৈশিষ্ট্য রয়েছে তবে এমএসবিল্ড আরও ভাল মৌলিক কাঠামো রয়েছে (আইটেম মেটাডাটা শিলা) যা পুনরায় ব্যবহারযোগ্য এমএসবিল্ড স্ক্রিপ্টগুলি তৈরি করা আরও সহজ করে তোলে।

এমএসবাইল্ড বুঝতে কিছুটা সময় নেয়, তবে একবার আপনি এটি করতে পারলে তা খুব সুন্দর।

শেখার বস্তু:


38
আরে, আমি এই বইগুলি শুনেছি :)
সায়েদ ইব্রাহিম হাশমি

19

KISS = এমএসবিল্ড ব্যবহার করুন।

বাক্সের বাইরে কোনও যুক্তিসঙ্গত কাজ করবে এমন কিছু যখন থাকে তখন মিশ্রণে কেন অন্য কিছু যুক্ত করবেন? এমএসবিল্ড এলে ন্যান্ট মারা যান। এবং মনোর একটি এমএস বিল্ড বাস্তবায়ন হবে ( এক্সবিল্ড )।

DRY = এমএসবিল্ড ব্যবহার করুন।

নিজেকে জিজ্ঞাসা করুন আপনি একটি বিল্ড সিস্টেমের বাইরে কী চান? আমি একটি বিল্ড সিস্টেম চাই যা আমার আইডিই দুটি পৃথক কনফিগারেশন বজায় রাখার চেয়েও ব্যবহার করে ।

ব্যক্তিগতভাবে, আমি ন্যান্টের জন্য কিছু বাস্তব যুক্তি শুনতে পছন্দ করব, কারণ আমি সত্যিই জল রাখা এমন কোনও কথা ভাবতে পারি না।


2
"মিসবিল্ড এরিয়েড হওয়ার পরে, ন্যান্ট মারা গেল" - আমি মনে করি এটি ক্লিঞ্জার, এমনকি ভিএস ছাড়াই (যা আমি ব্যবহার করি না)।
হারপো

আমি রাজী. ডটনেট 1.1 এর এমএসবিল্ড.এক্সি নেই। সুতরাং আমরা ফিরে পেঁচানো হয়েছিল। ২.০ থেকে, এমএসবিল্ড.এক্সি এবং অতিরিক্ত পাঠাগারগুলি প্রচুর করে। এবং একটি কাস্টম এমএস বিল্ড-টাস্ক লেখার একটি শেখার বক্ররেখা রয়েছে তবে কয়েক বছরের মধ্যে আমি প্রায় 10 টি লিখেছি।
গ্রানাডা কোডার

1
আমার একমত হতে হবে, আপনার যেমন বিল্ড সার্ভারটি আপনাকে দ্রুত ব্যর্থ হওয়ার অনুমতি দেয় এমন একটি বিকাশকারী হিসাবে গড়ে তুলতে একই সরঞ্জামটি ব্যবহার করা উচিত।
ক্রিস্তান সম্মান

14

একটি জিনিস আমি লক্ষ্য করেছি যে বেশ কয়েকটি পোস্টার হ'ল .csproj (বা .vbproj, ইত্যাদি) ফাইলগুলি সম্পাদনা করে।

এমএসবিল্ড এটিকে অনুকূলিতকরণের অনুমতি দেয়। * ব্যবহারকারী ব্যবহারকারী ফাইলগুলির মাধ্যমে ফাইলগুলি প্রজেক্ট করুন। আমার যদি মাইক্রিভেটিভলিমেডপ্রজেক্ট.কম্প্রোজ নামের একটি প্রকল্প রয়েছে এবং এর মধ্যে এমএসবিল্ড কার্যগুলি কাস্টমাইজ করতে চাই, আমি মাইক্রিভেটিভলিমেডপ্রজেক্ট.স্প্রোজ.ইউজার নামে একটি ফাইল তৈরি করতে পারি এবং সেই ফাইলগুলি কাস্টমাইজ করতে কাস্টমবাইরফায়ারমাইক্রোসফটমাইক্রোসনকমারট্র্যাজেটস এবং কাস্টমএফটারমাইক্রোসফটকম্পনারটিজেটগুলি ব্যবহার করতে পারি

এছাড়াও, ন্যান্ট এবং এমএসবিল্ড উভয়ই কাস্টম এমএসবিল্ড কার্যগুলির মাধ্যমে এবং ন্যান্টকন্ট্রিবি এক্সটেনশনের মাধ্যমে হৃদয়ের সামগ্রীতে কাস্টমাইজ করা যায়।

সুতরাং, ন্যান্ট বা এমএসবিল্ড ব্যবহার করা সত্যিই পরিচিতিতে নেমে আসে:

  • আপনি যদি ইতিমধ্যে পিঁপড়ার সাথে পরিচিত হন তবে ন্যান্ট ব্যবহার করুন। শেখার বক্ররেখা খুব সহজ হবে।
  • আপনি যদি কোনও সরঞ্জামের সাথে পরিচিত না হন তবে এমএসবিল্ড ইতিমধ্যে ভিজ্যুয়াল স্টুডিওতে একীভূত হয়েছে এবং কোনও অতিরিক্ত সরঞ্জামের প্রয়োজন নেই।

এটি আরও যোগ করার মতো যে এমএসবাইল্ড নেট প্রকাশের সাথে সাথেই নেট এবং ভিজ্যুয়াল স্টুডিওর সমস্ত নতুন সংস্করণ নিয়ে কাজ করার গ্যারান্টিযুক্ত , যেখানে ন্যান্টের কিছুটা পিছিয়ে থাকতে পারে।


1
.Net রিলিজ এবং ন্যান্ট রিলিজের মধ্যে পিছনে ইশারা করার জন্য +1। আমার মনে আছে যখন .NET 3.5 বেরিয়ে আসে এবং জিনিসগুলি কাজ করতে নেট থেকে নেটে একটি হ্যাক করা nant.exe.config ব্যবহার করতে হয়েছিল। মজা না.
এম্মাকাউলে

9
আশেপাশে প্রচুর পোস্ট অনুসারে, সেই .USER ফাইলগুলিতে + ব্যবহারকারীর নির্দিষ্ট তথ্য + থাকে যা চেক ইন করা উচিত নয়, যাতে বিল্ড কাস্টমাইজেশন স্থাপন করতে চাই এমন সর্বশেষ স্থানটি ... সংজ্ঞা সংজ্ঞা অনুসারে কোনও বিল্ড কাস্টমাইজেশন ব্যবহারকারীর সুনির্দিষ্ট না হওয়া, এবং তাদের .user ফাইলগুলিতে যাওয়া উচিত নয় ...
ডারিনএইচ

1
সাহসী সাথে একমত; .user-ফাইলগুলি নাম হিসাবে প্রস্তাবিত ব্যবহারকারী হিসাবে প্রস্তাব করা হয় এবং সেগুলি আপনার উত্স নিয়ন্ত্রণের সংগ্রহস্থলেও চেক করা উচিত নয়। বিল্ডটি স্বয়ংক্রিয় করার জায়গা এটি নয়।
কেজেটিল ক্লাউসেন

10

আমি উভয়ই আমার ন্যান্ট স্ক্রিপ্টগুলিতে এমএসবিল্ড কল করি। ন্যান্টের সাথে থাকার আমার প্রধান কারণটি বিচ্ছিন্নতা । আমি কেন এটি গুরুত্বপূর্ণ মনে করি তা ব্যাখ্যা কর:

  1. আপনার প্রকল্পে নির্ভরতা যুক্ত করা হচ্ছে। ন্যান্ট বিল্ড ফাইলটি ভিজ্যুয়াল স্টুডিওর জন্য ভিনগ্রহের (আমার ক্ষেত্রে আমি এটি একটি প্রো হিসাবে বিবেচনা করি) সুতরাং ভিজ্যুয়াল স্টুডিও এটি দিয়ে কিছু করার চেষ্টা করে না। এমএসবিল্ড কার্যগুলি এম্বেড করা হয় তাই সমাধানের অংশ এবং অন্যান্য এমএসবিল্ড কার্যগুলি উল্লেখ করতে পারে। আমি অন্য কারও কাছ থেকে উত্স কোডটি পেয়েছি কেবলমাত্র আমি তৈরি করতে পারছি না তা জানতে, কারণ এমএসবিল্ড সম্প্রদায়টির কাজগুলি ইনস্টল করা হয়নি। যা আমি বিশেষত হতাশাবোধ করি তা হ'ল ভিজ্যুয়াল স্টুডিও কেবলমাত্র ত্রুটিগুলি তৈরি করে না এবং এমন একগুচ্ছ ত্রুটি ছুঁড়ে দেয় যা আমাকে সময় নষ্ট করে দেয়। এটি, যদিও বিল্ডটি অনুরোধ করা হচ্ছে তা এমএসবিল্ড টাস্কের কিছু অতিরিক্ত ছাড়াই (উদাহরণস্বরূপ একটি ডিবাগ বিল্ড হিসাবে) এগিয়ে যেতে পারত despite সংক্ষেপে: আমি আমার প্রকল্পটি যদি এড়াতে পারি তবে নির্ভরতা যুক্ত করতে পছন্দ করি না

  2. আমি ভিজুয়াল স্টুডিওর যতদূর আমি এর বিকাশকারী দলকে ফেলে দিতে পারি না তেমন বিশ্বাস করি না। এটি ভিজুয়াল স্টুডিওর প্রথম দিনগুলিতে ফিরে আসে যখন এটি আমার এইচটিএমএলকে গণহত্যা করবে। আমি উদাহরণস্বরূপ এখনও ডিজাইনার ব্যবহার করি না (সম্প্রতি একটি সম্মেলনে আমি দেখতে পেলাম সহকর্মীরাও এটি করেছিলেন)। আমি খুঁজে পেয়েছি যে ভিজ্যুয়াল স্টুডিওগুলি ডিএলএল ফাইলে নির্ভরতা এবং সংস্করণ সংখ্যাগুলি স্ক্রু করতে পারে (আমি এটির প্রতিলিপি দিতে পারি না, তবে এটি একটি প্রকল্পে ধারাবাহিকভাবে ঘটেছিল এবং প্রচুর শোক ও সময় হারিয়েছিল)। আমি এমন একটি বিল্ড প্রক্রিয়াটি অবলম্বন করেছি যা কেবলমাত্র ডিবাগ মোডে তৈরি করতে ভিজ্যুয়াল স্টুডিও ব্যবহার করে। উত্পাদনের জন্য, আমি ন্যান্ট ব্যবহার করি যাতে আমি বাহ্যিকভাবে সমস্ত কিছু নিয়ন্ত্রণ করি । আমি ন্যান্ট ব্যবহার করে নির্মিত হলে ভিজ্যুয়াল স্টুডিও আর কোনও হস্তক্ষেপ করতে পারে না।

পিএস: আমি একটি ওয়েব বিকাশকারী এবং উইন্ডোজ ফর্মগুলির বিকাশ করি না।


6

যদিও আমি এমসবিল্ডের সাথে খুব বেশি পরিচিত নই, আমি এই ধারণাটির মধ্যে রয়েছি যে উভয় পক্ষের কিছু মূল পার্থক্য সংযোজন দ্বারা পরিপূরক হতে পারে:

আমাকে সম্প্রতি নন্তে একটি সিলভারলাইট প্রকল্প তৈরি করতে হয়েছিল। আমি আবিষ্কার করেছি যে আমি কেবল এমএসবিল্ডের সাথে এটি করলে জীবন আরও সহজ হবে - আমি একটি ন্যান্ট স্ক্রিপ্টের মধ্যে থেকে এমএসবিল্ড টাস্কটি কল করে শেষ করেছি তাই আমি মনে করি এটি দুটির সাথে মেশানো এবং মেলাতে খুব বেশি সাধারণ কিছু নেই।

এর বাইরে, আমি মনে করি এটি ব্যক্তিগত পছন্দের প্রশ্ন হতে চলেছে - স্পষ্টতই আপনি ভিজুয়াল স্টুডিওর মধ্যে থেকে MsBuild এর বেশিরভাগ / বেশিরভাগ কার্যকারিতা পরিচালনা করতে পারেন, যদি এটি আপনার জিনিস হয়। ন্যান্টকে আরও নমনীয় এবং আরও উপযুক্ত বলে মনে হয় যদি আপনি হাতে স্ক্রিপ্ট লিখতে পছন্দ করেন এবং আপনি জাভা বিশ্ব থেকে এসে থাকেন তবে সম্ভবত আপনি এটির সাথেই ঘরে থাকবেন।


ভাল যুক্তি. উভয় সমাধান সহজেই পছন্দসইভাবে প্রসারিত এবং কাস্টমাইজ করা যেতে পারে।
ক্লিভারপ্যাট্রিক

2

আমি উভয় ব্যবহার শেষ। আমাদের বিল্ড সিস্টেমটিকে নতুন করে ডিজাইন করার সময়, আমি একটি জটিল সমস্যার মুখোমুখি হয়েছিলাম। যথা, আমি .vcproj (এবং পরিবার) থেকে মুক্তি পেতে পারি না কারণ আমরা প্রত্যেকে প্রোজেক্ট ফাইল, সেটিংস এবং কনফিগারেশন আপডেট করার জন্য ভিএস ব্যবহার করছিলাম। সুতরাং একটি বিশাল অনুলিপি এবং ত্রুটিযুক্ত প্রবণতা ছাড়াই আমরা আমাদের বিল্ড সিস্টেমকে নতুন সেট ফাইলে বেস করতে পারি না।

এই কারণে, আমি ভিএস-এর 'প্রোজ' ফাইলগুলি রাখার এবং এমএসবাইল ব্যবহার করার সিদ্ধান্ত নিয়েছি (এগুলি এমএসবিল্ড ফাইল, কমপক্ষে ভিএস ২০০৫ এবং ভিএস ২০০৮ এমএসবিল্ড প্রকল্প ফাইলগুলি ব্যবহার করে)। অন্য কিছুর জন্য (কাস্টম কনফিগারেশন, ইউনিট টেস্টিং, প্যাকেজিং, ডকুমেন্টেশন প্রস্তুত করা ...) আমি ন্যান্ট ব্যবহার করেছি।

অবিচ্ছিন্ন একীকরণের জন্য, আমি ক্রুজকন্ট্রোল ব্যবহার করেছি। সুতরাং আমাদের সিসি স্ক্রিপ্টগুলি ন্যান্ট কাজগুলিকে ট্রিগার করেছিল, যা এমএসবিল্ড তৈরির জন্য ব্যবহৃত হয়েছিল।

একটি চূড়ান্ত নোট: এমএসবিল্ড সেটআপ প্রকল্পগুলিকে সমর্থন করে না! সুতরাং আপনি DevEnv.com কল করতে বা সরাসরি ভিজ্যুয়াল স্টুডিও ব্যবহার করে আটকে আছেন। এটিই আমি শেষ করেছিলাম, তবে আমি সমস্ত সমাধান কনফিগারেশন থেকে সেটআপ প্রকল্পটি ডিফল্টরূপে অক্ষম করেছিলাম, যেহেতু বিকাশকারীদের সাধারণত তাদের তৈরি করার প্রয়োজন হয় না, এবং যদি তারা করেন তবে ম্যানুয়ালি এগুলি তৈরি করতে বেছে নিতে পারেন।


1

ভিএস সমাধানগুলি তৈরির দক্ষতার কারণে আমি সম্প্রতি ন্যান্ট থেকে এমএসবিল্ডে চলে এসেছি। যদিও আমি এখনও মাঝে মাঝে ন্যান্ট ব্যবহার করি।

আপনি এমএসবিল্ড সম্প্রদায়ীয় কার্যগুলিও যাচাই করতে চাইতে পারেন যা NAntContrib এর মতো।


ভিএস সমাধানগুলির কয়েকটি সংস্করণ ন্যান্ট দ্বারা সমর্থিত। nant.sourceforge.net/release/0.85/help/tasks/solve.html
ডেনিস স্কিডমোর

1

ন্যান্টের জন্য উপলব্ধ ডকুমেন্টেশন এবং টিউটোরিয়ালগুলি ন্যান্টের সাথে স্ক্রিপ্টগুলি বিল্ডিং শিখতে আরও সহজ করে তোলে। একবার আমি ন্যান্টের হ্যাং পেয়েছিলাম এবং বিল্ড স্ক্রিপ্টগুলি তৈরি করে আমি সেই জ্ঞানটি এমএসবাইলকে অনুবাদ করতে শুরু করি (আমি ন্যান্টে এক্স করেছি, এমএসবাইল্ডে আমি কীভাবে এক্স করব?)। মাইক্রোসফ্টের ডকুমেন্টেশনগুলি কার্যকর হওয়ার আগে সাধারণত একটি উচ্চ স্তরের জ্ঞান গ্রহণ করে।

ন্যান্ট থেকে এমএসবিল্ডে স্যুইচ করার কারণ হ'ল এমএসবাইল্ড বর্তমান বেশি। দুর্ভাগ্যক্রমে ন্যান্টের শেষ প্রকাশটি ২০০ 2007 সালের ৮ ই ডিসেম্বর ছিল, যখন এমএসবিল্ড ৪.০ (। নেট ৩.০) খুব বেশি দূরে নয়। দেখে মনে হচ্ছে ন্যান্ট প্রকল্পটি মারা গেছে।

যদি আপনি এমএসবিল্ড ব্যবহার করে বিল্ড স্ক্রিপ্টগুলি তৈরি করা শিখতে শুরু করেন তবে কারও পক্ষে ন্যান্ট এড়িয়ে যান এবং সরাসরি এমএসবিল্ডের দিকে যান good যদি ন্যান্ট কখনও নতুন প্রকাশ নিয়ে আসে তবে আমি ন্যান্টের সাথে লেগে থাকার বিষয়টি বিবেচনা করব, তবে তারা এখন পিছিয়ে থাকবে।


1
জুন ২০১২ পর্যন্ত, ন্যান্টের সংস্করণ ০.৯২ ওয়েবসাইট থেকে পাওয়া যায়: ন্যান্ট.সোর্সফোর্জন.নেট এবং এটি। নেট 4.0.০ সমর্থন করে।
ব্রেট রিগবি

0

আমরা উভয় ব্যবহার। NAnt সমস্ত "স্ক্রিপ্টিং" জিনিস জন্য দায়ী, কপি মত, উপর মোতায়েন আইআইএস , প্যাকেজ তৈরি করা এবং এমএসবাইল্ড সমাধানটি তৈরির জন্য দায়বদ্ধ। তারপরে আমরা ন্যান্টের নতুন সংস্করণ অনুসারে অ-সমর্থিত .NET 4.0 এর সমস্যাগুলি এড়াতে পারি।

ন্যান্টও আরও স্কেলযোগ্য। আমরা যদি ডিগ্রি স্ক্রিপ্টগুলি প্রোডাকশন সার্ভারে স্থানান্তর করতে চাই তবে আমরা কেবল বিল্ড ফাইলটি অনুলিপি করি এবং .NET- র একটি যথাযথ সংস্করণ ইনস্টল করি - সিএসপিজেজ ফাইলগুলির সাথে কোনও ভিজ্যুয়াল স্টুডিও সমস্যা নেই :)


0

YDeliverমনোজ দ্বারা শীর্ষে নির্মিত একটি বিল্ড ফ্রেমওয়ার্ক। এতে লাইব্রেরি ফাংশনগুলির একটি সমৃদ্ধ সেট রয়েছে, কর্মপ্রবাহকে সংজ্ঞায়িত করার ক্ষমতা রয়েছে এবং আমরা এটি ছয়টিরও বেশি এন্টারপ্রাইজ প্রকল্পকে উত্পাদন সরবরাহ করতে ব্যবহার করেছি।

এটি টিমসিটি , ক্রুজ কনট্রোল বা পাওয়ারশেল চালাতে পারে এমন কোনও কিছুর সাথে একত্রে ব্যবহার করুন ।


0

আমরা ফ্লুবুকোর ব্যবহার করি। এটি প্রকল্পগুলি তৈরি করতে এবং সি # কোড ব্যবহার করে স্থাপনের স্ক্রিপ্টগুলি সম্পাদন করার জন্য একটি মুক্ত উত্স সি # গ্রন্থাগার library

ফ্লুবু কীভাবে ব্যবহৃত হয় তার সহজ উদাহরণ:

protected override void ConfigureTargets(ITaskContext session)
{           

    var compile = session.CreateTarget("compile")
        .SetDescription("Compiles the solution.")
        .AddTask(x => x.CompileSolutionTask())
        .DependsOn("generate.commonassinfo");
}

আপনি ফ্লুবু এবং এখানে কীভাবে শুরু করবেন সে সম্পর্কে আরও তথ্য সন্ধান করতে পারেন: বিল্ড-টুল-বিল্ড-টুল-এমএসবিল্ড-ন্যান্ট-বা-অন্য কোনও কিছুর জন্য পছন্দ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.