একটি ভাগ করা প্রকল্প এবং ভিজ্যুয়াল স্টুডিও 2015 এর একটি ক্লাস লাইব্রেরির মধ্যে পার্থক্য কী?


240

আমি ভিজ্যুয়াল স্টুডিও 2015 এর নতুন বৈশিষ্ট্যগুলির দিকে চেয়ে ছিলাম এবং ভাগ করা প্রকল্পটি প্রচুর পরিমাণে উঠে এসেছিল তবে আমি বুঝতে পারি না যে এটি ক্লাস লাইব্রেরি বা একটি পোর্টেবল ক্লাস লাইব্রেরি ব্যবহার করে কীভাবে আলাদা is কেউ কি ব্যাখ্যা করতে পারেন?

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

http://www.c-sharpcorner.com/UploadFile/7ca517/shared-project-an-impressive-features-of-visual-studio-201/


উত্তর:


238

একটি ভাগ করা প্রকল্প এবং একটি শ্রেণিবদ্ধ গ্রন্থাগারের মধ্যে পার্থক্য হ'ল পরবর্তীটি সংকলিত হয় এবং পুনরায় ব্যবহারের এককটি সমাবেশ হয়।

যদিও পূর্বের সাথে পুনরায় ব্যবহারের এককটি উত্স কোড এবং অংশীদারি কোডটি প্রতিটি সমাবেশে সংযুক্ত করা হয় যা ভাগ করে নেওয়া প্রকল্পটির উল্লেখ করে।

এটি কার্যকর হতে পারে যখন আপনি পৃথক অ্যাসেমব্লি তৈরি করতে চান যা নির্দিষ্ট প্ল্যাটফর্মগুলিকে লক্ষ্য করে তবে এখনও ভাগ করে নেওয়া উচিত এমন কোড রয়েছে।

এখানেও দেখুন :

সলিউশন এক্সপ্লোরার-এ রেফারেন্স নোডের আওতায় ভাগ করা প্রকল্পের রেফারেন্স দেখানো হয়, তবে ভাগ করা প্রকল্পের কোড এবং সম্পদগুলি এমন আচরণ করা হয় যেন তারা মূল প্রকল্পের সাথে সংযুক্ত ফাইল হয় files


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


1 এই প্রশ্ন এবং আমার উত্তর (এখনও অবধি) পরামর্শ দেয় যে ভাগ করা প্রকল্পগুলি ভিজ্যুয়াল স্টুডিও 2015-এ একটি নতুন বৈশিষ্ট্য ছিল fact বাস্তবে, তারা ভিজ্যুয়াল স্টুডিও 2013 আপডেট 2- এ তাদের আত্মপ্রকাশ করেছিল


1
আসুন দুটি প্রকল্প যা একই ভাগ করা প্রকল্পের উল্লেখ করে। যদি এর মধ্যে একজনের কাছে অন্যটিতে একটি উল্লেখ যুক্ত হয়, তবে আপনি কি সদৃশ প্রকারের ঘোষণার ত্রুটি পেয়েছেন?
আসাদ সাইদুদ্দিন

3
@ আসাদ - আমি চেক করিনি, তবে আমি আশা করব না। আপনার একই নাম সহ দুটি স্বতন্ত্র প্রকার থাকতে পারে এবং একই নামস্থানগুলির মধ্যে ঘোষিত হলেও বিভিন্ন সমাবেশে বিদ্যমান। এটি কোনও ত্রুটি নয়, প্রতি সে।
ড্যামিয়েন_এ_বিশ্বাসীরা

2017 সালে আমি ওপি হিসাবে ঠিক একই প্রশ্নটি পেয়েছিলাম তবে এখন থেকে আমাদের কাছে নেট মান 2.0 রয়েছে । ভাগ করা প্রকল্পগুলি কি এখন অপ্রচলিত নয়? আপনি যদি আজ একটি ব্র্যান্ড নতুন ওয়েব অ্যাপ বা uwp অ্যাপ্লিকেশন তৈরি করতে চান?
জেপি হেলিমোনস

1
@ জেপিহেলিমনস -। নেট মানটি ভাল - তবে যদি আপনাকে কোনও কারণে এর বাইরে যেতে হয় (যেমন যদি নির্দিষ্ট প্ল্যাটফর্মগুলিতে কেবল কার্যকারিতা পাওয়া যায় ) তবে একটি ভাগ করা প্রকল্পটি এখনও একটি শালীন পদ্ধতির হতে পারে।
ড্যামিয়েন_এ_ অবিশ্বাস্য

1
আমরা একটি ভাগ করা প্রকল্পের সাথে বলি আমরা জাভাস্ক্রিপ্ট ফাইলগুলি ভাগ করতে পারি। আমরা কীভাবে এটি একটি বান্ডেলকনফাইগে ব্যবহার করব?
লেথ

34

আমি এই ব্লগ থেকে আরও কিছু তথ্য পেয়েছি ।

  • একটি ক্লাস লাইব্রেরিতে, কোড সংকলন করা হয়, প্রতিটি লাইব্রেরির জন্য অ্যাসেমব্লি (dlls) তৈরি করা হয়। তবে ভাগ করা প্রকল্পের সাথে এটিতে কোনও শিরোনামের তথ্য থাকবে না সুতরাং আপনার যখন একটি ভাগ প্রকল্পের রেফারেন্স থাকবে তখন এটি প্যারেন্ট অ্যাপ্লিকেশনটির অংশ হিসাবে সংকলিত হবে। আলাদা আলাদা ঘর তৈরি করা হবে না।
  • ক্লাস লাইব্রেরিতে আপনাকে কেবল সি # কোড লেখার অনুমতি দেওয়া হয়েছে যখন ভাগ করা প্রকল্পে সি # কোড ফাইল, এক্সএএমএল ফাইল বা জাভাস্ক্রিপ্ট ফাইল ইত্যাদি থাকতে পারে thing

7
ক্লাসের লাইব্রেরিতে .xamlও থাকতে পারে (ব্যবহারকারীর নিয়ন্ত্রণ)
ডিফল্ট

21

সংক্ষিপ্ত পার্থক্য হয়

1) পিসিএল .NET ফ্রেমওয়ার্কে সম্পূর্ণ অ্যাক্সেস পাবে না, যেখানে ভাগ করা প্রকল্প হিসাবে রয়েছে।

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

3) প্ল্যাটফর্ম নির্দিষ্ট কোডটি পিসিএলে ইনভার্শন অফ কন্ট্রোল ব্যবহার করে অর্জন করা হয়, যেখানে #ifdef বিবৃতি ব্যবহার করে আপনি ভাগ করে নেওয়া প্রকল্পে একই অর্জন করতে পারেন।

একটি দুর্দান্ত নিবন্ধ যা পিসিএল বনাম ভাগ প্রকল্পের মধ্যে পার্থক্য চিত্রিত করে নীচের লিঙ্কে পাওয়া যাবে

http://hotkrossbits.com/2015/05/03/xamarin-forms-pcl-vs-shared-project/


18

অন্যদের মতো ইতিমধ্যে লিখেছেন, সংক্ষেপে:


কোড (ফাইল) স্তরে ভাগ করা প্রকল্পের পুনরায় ব্যবহার, ফোল্ডার কাঠামো এবং সংস্থানগুলিও অনুমতি দেয়

সংসদীয়
স্তরে পিএলসি পুনরায় ব্যবহার করুন

আমার কাছে যা উত্তরগুলির মধ্যে এখানে প্রায়শই অনুপস্থিত ছিল তা হ'ল একটি পিসিএলে উপলব্ধ হ্রাস কার্যকারিতা সম্পর্কিত তথ্য: উদাহরণস্বরূপ আপনার সীমাবদ্ধ ফাইল অপারেশন রয়েছে (একটি জ্যামারিন ক্রস-প্ল্যাটফর্ম প্রকল্পে আমি অনেক ফাইল.আইও ফাংশনালিটি অনুপস্থিত ছিল)।

আরও বিশদে
ভাগ করা প্রকল্পে :
+ একাধিক প্ল্যাটফর্মগুলি লক্ষ্য করে যখন # আইফ ব্যবহার করতে পারে (যেমন: জামারিন আইওএস, অ্যান্ড্রয়েড, উইনফোন)
+ প্রতিটি লক্ষ্য প্রকল্পের জন্য সমস্ত কাঠামোর কার্যকারিতা উপলব্ধ (যদিও শর্তসাপেক্ষে সংকলন করতে হবে)
o সংকলনের সময় সংহত করে
- কিছুটা বড় আকারের ফলস্বরূপ সমাবেশগুলির মধ্যে
- ভিজ্যুয়াল স্টুডিও 2013 আপডেট 2 বা তার বেশি প্রয়োজন

পিসিএল :
+
ভিজ্যুয়াল স্টুডিওর পূর্ববর্তী সংস্করণ (2013-এর পূর্ববর্তী আপডেট 2) এর সাথে ব্যবহারযোগ্য একটি ভাগ করে নেওয়া অ্যাসেমবিলি উত্পন্ন করে (
গতিশীলভাবে সংযুক্ত
- lmited কার্যকারিতা (সমস্ত প্রকল্পের উপসেট যা এটি উল্লেখ করা হচ্ছে))

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

উভয়ের মূল ফোকাস হ'ল যখন আপনি একাধিক প্ল্যাটফর্মগুলি লক্ষ্য করেন, অন্যথায় আপনি সাধারণত একটি সাধারণ গ্রন্থাগার / dll প্রকল্প ব্যবহার করবেন।


9

সাফল্যের সাথে ভিএস 2015 বইটি থেকে

ভাগ করা প্রকল্পগুলি একাধিক প্রকল্পের ধরণের জুড়ে কোড, সম্পদ এবং সংস্থানগুলি ভাগ করে নেওয়ার অনুমতি দেয়। আরও সুনির্দিষ্টভাবে, নিম্নলিখিত প্রকল্পের ধরণগুলি ভাগ করে নেওয়া প্রকল্পগুলি উল্লেখ করতে এবং গ্রাস করতে পারে:

  • কনসোল, উইন্ডোজ ফর্ম এবং উইন্ডোজ উপস্থাপনা ফাউন্ডেশন।
  • উইন্ডোজ স্টোর 8.1 অ্যাপস এবং উইন্ডোজ ফোন 8.1 অ্যাপস।
  • উইন্ডোজ ফোন 8.0 / 8.1 সিলভারলাইট অ্যাপস।
  • পোর্টেবল ক্লাস লাইব্রেরি।

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

  • একটি ভাগ করা প্রকল্প পুনরায় ব্যবহারযোগ্য সমাবেশ তৈরি করে না, সুতরাং এটি কেবল সমাধানের মধ্যে থেকে গ্রাস করা যায়।
  • একটি ভাগ করা প্রকল্পের প্ল্যাটফর্ম-নির্দিষ্ট কোডের জন্য সমর্থন রয়েছে, কারণ এটি পরিবেশের ভেরিয়েবল যেমন WINDOWS_PHONE_APP এবং WINDOWS_APP সমর্থন করে যা আপনার কোডটি কোন প্ল্যাটফর্মটি চলছে তা সনাক্ত করতে আপনি ব্যবহার করতে পারেন।
  • শেষ অবধি, ভাগ করা প্রকল্পগুলির তৃতীয় পক্ষের লাইব্রেরিতে নির্ভরতা থাকতে পারে না।
  • তুলনা করে, একটি পিসিএল একটি পুনরায় ব্যবহারযোগ্য। Dll গ্রন্থাগার উত্পাদন করে এবং তৃতীয় পক্ষের লাইব্রেরিতে নির্ভরতা থাকতে পারে তবে এটি প্ল্যাটফর্মের পরিবেশের ভেরিয়েবলগুলিকে সমর্থন করে না

7

ক্লাস লাইব্রেরি সংকলিত কোড ভাগ করা হয়।

ভাগ করা প্রকল্পটি শেয়ার্ড উত্স কোড।

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