ভিএসে নতুন হওয়ার কারণে আমি এই দুটি ধারণাটি কীভাবে ভাবতে পারি, পার্থক্য কী?
উত্তর:
আমি অন্যান্য উত্তরে কিছু অনুপস্থিত তথ্য পেয়েছি (কমপক্ষে অন্যান্য আইডিই থেকে আসা লোকদের জন্য যেমন বলা, গ্রহণ করা)। একটি সমাধান হল প্রকল্পগুলির জন্য একটি ধারক যেটি বলতে কেবল জিনিসটির অংশ। কোনও ভিএস প্রকল্পের ধারণাগত বৈশিষ্ট্য (এটির 'গ্রানুলারিটি' যা নির্ধারণ করে) হ'ল একটি প্রকল্পের একটি আউটপুট তৈরি হয় : সাধারণত একটি এক্সিকিউটেবল বা একটি লাইব্রেরি (dll)। সুতরাং, যদি আপনি সম্পর্কিত কোড ব্যবহার করে এমন তিনটি এক্সিকিউটেবল কোড করতে চলেছেন তবে আপনি একটি সমাধান এবং কমপক্ষে তিনটি প্রকল্প তৈরি করবেন - সম্ভবত আরও।
কেবল একটি রূপক নিয়ে আসা ..
একটি সমাধান একটি ঘরের মতো, একটি প্রকল্প যেমন ঘরের মতো। প্রতিটি ঘরে একটি কার্যকারিতা সরবরাহ করা হয় যেখানে ঘর, কক্ষের একটি ধারক, কক্ষগুলিকে এক সাথে সংযুক্ত করার এবং তাদের যথাযথভাবে সংগঠিত করার মাধ্যম সরবরাহ করে।
কর্নির মতো তবে আমি এটিকে উড়ে গেলাম, তাই আমার সাথে সহ্য করুন :)
ভিজ্যুয়াল স্টুডিওগুলি বিষয়গুলিকে আরও বিভ্রান্তিকর করে বলে মনে হচ্ছে এটি সাহায্য করে না। "নতুন প্রকল্প" আসলে একটি প্রকল্প যুক্ত একটি নতুন সলিউশন তৈরি করে। "ওপেন প্রজেক্ট" আসলে একটি (বা অনেক) প্রকল্পযুক্ত একটি সমাধান খোলে। (ফাইল মেনুতে "ওপেন প্রজেক্ট / সলিউশন" বলা আছে তবে এটি সত্যই সমাধানগুলি খুলছে There এখানে কোনও "ক্লোজ প্রজেক্ট" নেই কেবল "ক্লোজ সলিউশন" যা সঠিক।
সুতরাং, ভিএস-এ আপনি সর্বদা একটি সমাধানের মধ্যে কাজ করছেন। অনেকগুলি সমাধানে কেবল একটি প্রকল্প থাকে এবং নতুন বিকাশকারীরা এগুলি একই জিনিস হিসাবে ভাবেন বলে মনে হয়। তবে আপনি সমাধানে অন্যান্য প্রকল্পগুলি যুক্ত করতে পারেন।
যদি কেউ এ পর্যন্ত স্ক্রোল করার সিদ্ধান্ত নেয় ... আমি ভেবেছিলাম পার্থক্য বর্ণনা করার জন্য এমএস ডক্স একটি দুর্দান্ত কাজ করেছে। আমি এখানে প্রাসঙ্গিক বিটগুলি কপি করেছি (এবং পুনরায় জমা দিয়েছি):
আপনি যখন ভিজ্যুয়াল স্টুডিওতে কোনও অ্যাপ্লিকেশন, অ্যাপ্লিকেশন, ওয়েবসাইট, ওয়েব অ্যাপ, স্ক্রিপ্ট, প্লাগ-ইন ইত্যাদি তৈরি করেন, আপনি একটি প্রকল্প দিয়ে শুরু করেন। যৌক্তিক অর্থে, একটি প্রকল্পে সমস্ত উত্স কোড ফাইল, আইকন, চিত্র, ডেটা ফাইল এবং অন্য যে কোনও কিছু যা এক্সিকিউটেবল প্রোগ্রাম বা ওয়েব সাইটে সংকলিত হবে, বা অন্যটি সংকলন সম্পাদন করার জন্য প্রয়োজন। একটি প্রকল্পে সমস্ত সংকলক সেটিংস এবং অন্যান্য কনফিগারেশন ফাইলও রয়েছে যা আপনার প্রোগ্রামের সাথে যোগাযোগ করবে এমন বিভিন্ন পরিষেবা বা উপাদানগুলির প্রয়োজন হতে পারে।
আপনি না চাইলে আপনাকে সমাধান বা প্রকল্পগুলি ব্যবহার করতে হবে না। আপনি কেবল ভিজ্যুয়াল স্টুডিওতে ফাইলগুলি খুলতে এবং আপনার কোড সম্পাদনা শুরু করতে পারেন।
একটি আক্ষরিক অর্থে, একটি প্রকল্প একটি XML ফাইল (হয়
.vbproj
,.csproj
,.vcxproj
) যে সকল আইটেম পাথ বরাবর একটি ভার্চুয়াল ফোল্ডারের অনুক্রমের সংজ্ঞায়িত এটা এবং সব বিল্ড সেটিংস "রয়েছে"।ভিজ্যুয়াল স্টুডিওতে, প্রকল্প ফাইলটি প্রকল্পের সামগ্রী এবং সেটিংস প্রদর্শন করতে সলিউশন এক্সপ্লোরার দ্বারা ব্যবহৃত হয়। আপনি যখন আপনার প্রকল্পটি সংকলন করেন, এমএসবিল্ড ইঞ্জিন এক্সিকিউটেবলটি তৈরি করতে প্রকল্প ফাইলটি গ্রাস করে। আপনি অন্যান্য ধরণের আউটপুট পণ্যগুলিতে প্রকল্পগুলিকে কাস্টমাইজ করতে পারেন।
যৌক্তিক অর্থে এবং ফাইল সিস্টেমে একটি প্রকল্প অন্তর্ভুক্ত থাকে, একটি সমাধানের মধ্যে, যেখানে বিল্ড ইনফরমেশন, ভিজ্যুয়াল স্টুডিও উইন্ডো সেটিংস এবং কোনও প্রকল্পের সাথে সম্পর্কিত না এমন কোনও বিবিধ ফাইল থাকতে পারে, যার মধ্যে এক বা একাধিক প্রকল্প থাকতে পারে। আক্ষরিক অর্থে, সমাধানটি তার নিজস্ব অনন্য বিন্যাস সহ একটি পাঠ্য ফাইল; এটি সাধারণত হাতে সম্পাদনা করার উদ্দেশ্যে নয়।
একটি সমাধানের সাথে সম্পর্কিত .suo
ফাইল রয়েছে যা প্রকল্পে কাজ করা প্রতিটি ব্যবহারকারীর জন্য সেটিংস, পছন্দ এবং কনফিগারেশন তথ্য সংরক্ষণ করে।
একটি সমাধান অনেক প্রকল্প থাকতে পারে।
সমাধানটি তার বিভিন্ন প্রকল্পের মধ্যে নির্ভরতাগুলি পরিচালনা করতে পারে ... এটি নিশ্চিত করে যে প্রতিটি প্রকল্প চূড়ান্ত সমাধানের জন্য যথাযথ ক্রমে বিল্ট হয় work
একটি প্রকল্পে এক্সিকিউটেবল এবং লাইব্রেরি ফাইল থাকে যা একটি অ্যাপ্লিকেশনটির একটি অ্যাপ্লিকেশন বা উপাদান তৈরি করে।
সমাধানটি যুক্তিযুক্তভাবে সম্পর্কিত প্রকল্পগুলির জন্য একটি স্থানধারক যা একটি অ্যাপ্লিকেশন তৈরি করে। উদাহরণস্বরূপ, আপনার অ্যাপ্লিকেশনটির জিইউআই, ডাটাবেস অ্যাক্সেস স্তর ইত্যাদির জন্য আলাদা প্রকল্প থাকতে পারে। প্রকল্পগুলি আপনার প্রোগ্রামের কার্যকারিতার জন্য নির্দিষ্ট বিভাগ হবে এবং সমাধানটি হবে একটি ছাতার সাথে সমস্তগুলিকে এক প্রয়োগের আওতায় আনতে।
একটি সমাধান একটি পাঠযোগ্য টেক্সট ফাইল যার এক্সটেনশন হয় .sln
এবং কাঠামোবদ্ধ সামগ্রী রয়েছে যা বর্ণনা করে থাকার প্রকল্প এটি ধারণ করে। একটি প্রকল্প হ'ল একটি পঠনযোগ্য এক্সএমএল ফর্ম্যাটযুক্ত পাঠ্য ফাইল যা এর এক্সটেনশান .vcxproj
এবং এর এক্সএমএল স্কিমা অনুযায়ী কাঠামোগত সামগ্রী রয়েছে এবং যার প্রাথমিক উদ্দেশ্য উত্স কোড ফাইলের তালিকা এবং অন্যান্য প্রকল্পের উত্স কোডগুলির সাথে তাদের নির্ভরতা বা রেফারেন্স অন্তর্ভুক্ত করা।
সমাধানগুলি এক বা একাধিক সম্পর্কিত প্রকল্পগুলি সংগঠিত করতে ভিজ্যুয়াল স্টুডিওর ব্যবহৃত পাত্রে থাকে। আপনি যখন ভিজ্যুয়াল স্টুডিওতে কোনও সমাধান খুলবেন, এটি স্বয়ংক্রিয়ভাবে এতে থাকা সমস্ত প্রকল্প লোড করবে।
আপনি যখন ভিজ্যুয়াল স্টুডিওতে একটি নতুন প্রকল্প তৈরি করেন, ইতিমধ্যে যদি কোনও সমাধান না খোলা থাকে তবে এটি স্বয়ংক্রিয়ভাবে প্রকল্পটি রাখার জন্য একটি সমাধান তৈরি করে।
সমাধানে আপনি অন্যান্য প্রকল্পের উপর প্রকল্পের নির্ভরতা সেট করতে পারেন। নির্ভর প্রকল্পটি নির্মিত হয় তার পরে প্রকল্পটি নির্মিত হয় তার উপর নির্ভর করে।
আরও তথ্যের জন্য দেখুন - https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-soltions
আপনি যদি একটিग्रहণ পটভূমি থেকে থাকেন তবে আপনি সম্ভবত কোনও প্রকল্পের পথ তৈরি করতে এবং অন্য প্রকল্পের উপর নির্ভরতা যুক্ত করতে বা কোনও বহিরাগত জার যুক্ত করতে পারেন। ভিএস-তে আপনি এমন একক পাত্রে সমাধান করতে পারেন যেখানে সমস্ত সম্পর্কিত প্রকল্পগুলি একসাথে শ্রেণিবদ্ধ করা হয়েছে।
যেমন ধরা যাক যে আপনি জ্যামরিনে অ্যান্ড্রয়েড এবং আইওএস অ্যাপ্লিকেশন তৈরি করেছেন, এমন কিছু সাধারণ কোড এবং সংস্থান থাকবে যা একটি পৃথক প্রকল্পে যেতে পারে এবং তারপরে আপনার অ্যান্ড্রয়েড এবং আইওএস প্রকল্পগুলি এই সাধারণ কোড প্রকল্পের উপর নির্ভর করতে পারে। এছাড়াও আপনি এই প্রকল্পগুলি পরীক্ষা করার জন্য প্রকল্প থাকতে পারে ইত্যাদি।