.NET অ্যাপ্লিকেশনটিতে রেফারেন্সগুলি হ্যান্ডেল করার সর্বোত্তম উপায়


9

সম্প্রতি কর্মক্ষেত্রে আমরা এমন একটি সমস্যায় পড়েছিলাম যেখানে আমরা কোনও প্রকল্প ট্যাগ / ব্রাঞ্চ করেছিলাম এবং dll / প্রকল্প রেফারেন্সের কারণে কিছু সংকলন সমস্যা ছিল যা পুরাতন ফোল্ডারের কাঠামোর দিকে ইঙ্গিত করে।

আমরা প্রতিটি প্রকল্পের জন্য একটি 'বাহ্যিক বিন' ফোল্ডার তৈরি করেছি এবং রেফারেন্সড ডেল এর এই ফোল্ডারে অনুলিপি করেছি। এটি কি সেরা উপায় বা এটি পরিচালনা করার জন্য কোনও নির্দিষ্ট শিল্পের মান আছে?

উত্তর:


21

আমি বলব যে নির্ভরতা হ্যান্ডেল করার সবচেয়ে ভাল উপায় নুগেট

নুগেট সংস্করণগুলি পরিচালনা করতে এবং আপনার স্থানীয় নুগেট সার্ভার থেকে স্বয়ংক্রিয়ভাবে নির্ভরতা ডাউনলোড করতে পারে।

স্থানীয় সার্ভার তৈরি / কনফিগার করা বেশ সহজ। কেবলমাত্র একটি নতুন খালি nuget-serverএএসপি.নেট প্রকল্প তৈরি করুন এবং নুগেট প্যাকেজটি ইনস্টল করুন (নুগেট ব্যবহার করে)।

এর অর্থ হ'ল আপনাকে টিএফএস ব্যবহার করে সমস্ত নির্ভরতা পরীক্ষা করতে হবে এবং / অথবা তাদের সংস্করণগুলি পরিচালনা করতে হবে না।


1
আমি দেখতে পেয়েছি যে বেশিরভাগ সংস্থাগুলি এটিকে ভালভাবে ব্যবহার করতে ব্যর্থ হয়। প্রকৃতপক্ষে, আমি এর বেনিফিটগুলি অর্জনের জন্য সঠিকভাবে কনফিগার করা একটি বিল্ড সার্ভার দেখতে পাইনি, তাই আমি যেখানেই দেখতে চাই এমন কোনও কিছুর জন্য +1 করুন।
deltree

আমি একটি প্রশ্ন জিজ্ঞাসা করার পরিকল্পনা করেছিলাম যে প্যাকেজগুলিকে রূপান্তরিত রাখতে এবং নির্ভরতা স্বয়ংক্রিয়ভাবে ডাউনলোড করার জন্য যদি নিউট স্ক্রিপ্ট করা (বা কিছু) না করা যায় ... এবং প্রথম অনুসন্ধানের ফলাফল আমাকে বলে যে নুজেট এটিকে বক্সের বাইরে সমর্থন করে! ধন্যবাদ!
মরমেগিল

5

এটি আসলেই নয় - মাইক্রোসফ্ট বলেছে যে উল্লেখগুলি হ্যান্ডেল করার সর্বোত্তম উপায় হ'ল আপনার প্রকল্পটিকে একটি বিশাল সমাধানে তৈরি করা। হ্যাঁ, আমি জানি, তারা সত্যই এটির অর্থও বোঝায়।

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

তারা বলে

In general you should:

    Use a single solution strategy unless the resulting solution is too large to load into Visual Studio.
    Use multiple solutions to create specific views on sub-systems of your application.
    Use multiple solutions to reduce the time it takes to load a solution and to reduce build time for developers.

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

আমার কাছে নেট নেট বিল্ডগুলির সাথে সমস্যা রয়েছে যা কেবলমাত্র যা প্রয়োজন তা তৈরি করে সিস্টেমকে শর্টকাট দেওয়ার চেষ্টা করে, একটি নাইট বিল্ড যা সবকিছু করে এবং প্রতিটি নতুন অ্যাসেমব্লিকে একটি ডিরেক্টরিতে অনুলিপি করা প্রত্যেকের জন্য সিঙ্কে রাখার সর্বোত্তম উপায় ছিল - বিশেষত পরীক্ষকগণ। মনে রাখবেন এটি সত্যই কেবল নেট নেট অ্যাপ্লিকেশনগুলিতে প্রযোজ্য, সি ++ এগুলি এখনও কাজ করার প্রবণতা রয়েছে কারণ তাদের সংস্করণ সংস্করণ বা অনুরূপ দিক নেই যা কলিং উপাদানগুলির সাথে সমস্যা তৈরি করতে পারে। এই পদ্ধতিরটি কার্যকরভাবে কাজ করে তবে আপনি সর্বদা অনুমান করতে পারবেন না যে আংশিক বিল্ডগুলি ঠিক আছে, পুরো জিনিসটি বাষ্প করা এবং পুনর্নির্মাণটি সবচেয়ে নিরাপদ।


এটি বোঝায়, একাধিক প্রকল্প (আপনার এপিআই ডিএলএল, অ্যাপ্লিকেশন প্রকল্প) সমন্বিত একটি সমাধান।
স্নুপ

1

এটি আপনার সমাধান কীভাবে কাঠামোগত হয় এবং আপনার সংস্করণ নিয়ন্ত্রণ সফ্টওয়্যার ক্ষমতাগুলি কী তার উপর নির্ভর করে। পূর্বে, আমরা আমাদের সমাধানগুলিতে একটি আনবিল্ট / স্কিপড প্রজেক্ট রাখতাম যা কোনও তৃতীয় পক্ষের রেফারেন্সযুক্ত লাইব্রেরির জন্য বিশেষত ডকুমেন্টেশন এবং একটি ফোল্ডার ধারণ করে। যেহেতু এটি সমাধানের অংশ ছিল, তাই এই ফাইলগুলির পাথ আপেক্ষিক পথটি ব্যবহার করে উল্লেখ করা যেতে পারে। আমরা টিএফএস ২০১০ এ স্থানান্তরিত হওয়ার পরে, এই প্রকল্পটি থেকে মুক্তি পেয়েছি এবং আমাদের মূল শাখার সমান্তরাল দল প্রকল্পের সমাধানের ফোল্ডারে কেবল একটি "সহায়তা" ডিরেক্টরি যুক্ত করেছি। উভয় ক্ষেত্রেই, বিকাশকারীরা তাদের মেশিনগুলি কীভাবে কনফিগার করেছেন তা নির্বিশেষে গ্রন্থাগারের উত্স নিয়ন্ত্রণ সংস্করণ একই স্থানে শেষ হয়।


0

সংস্করণ নিয়ন্ত্রণের জন্য subversion ব্যবহার করার সময়, আপনি এই উদ্দেশ্যে "বহিরাগত" সম্পত্তি ব্যবহার করতে পারেন । এটি আপনাকে আপনার বর্তমান প্রকল্পের নিকটবর্তী জায়গায় কোনও ভাগ করা ডিএলএল-এর স্থানীয় অনুলিপি রাখতে দেয়। এটি আপনার প্রজেক্টের মূল ডিরেক্টরিটি অন্য কোনও ফোল্ডারে পরিবর্তন করে হলেও পরিবর্তিত হয় না এমন কোনও আপেক্ষিক ফাইল পাথ দ্বারা ডিএলএলকে উল্লেখ করা সহজ করে তোলে। বাহ্যিকগুলি আপনাকে কোন স্পিফিক সংস্করণ বা সংশোধন অন্তর্ভুক্ত করতে হবে তাও নির্ধারণ করতে দেয় let

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