.NET (ভিজ্যুয়াল স্টুডিও) এ, আপনি কখন নতুন অ্যাসেম্বলি তৈরি করবেন?


9

আমি সিলভারলাইট অ্যাপ্লিকেশন নিয়ে কাজ করছি। আমি এটি বিভিন্ন সমাবেশে বিভক্ত করেছি:

  • ডোমেইন
  • সংগ্রহশালা (স্টার্লিং ডাটাবেসের সাথে জড়িত সবকিছু)
  • UI 'তে
  • ...

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

আমি এমন প্রকল্পগুলিও দেখেছি যার অনেকগুলি সমাবেশ রয়েছে lies নেমস্পেসগুলি ব্যবহার করার পরিবর্তে যেখানে এটি উপযুক্ত হত।

সুতরাং: আপনি কোডের নতুন কিছু অংশের জন্য কখন নতুন সমাবেশ তৈরি করবেন? এই বিষয়ে কোন ভাল সম্পদ? এবং আপনি কি প্রযুক্তিগতভাবে (ডোমেন, ডেটা, ইউআই, ইত্যাদি) কোডগুলি বিভক্ত করবেন এবং / অথবা কার্যকরীভাবে (যেমন রোগী-প্রশাসন, রোগী-চিকিত্সা, হাসপাতাল-লজিস্টিকস, ... - সম্ভবত কেবলমাত্র বড়, এন্টারপ্রাইজ স্তর অ্যাপ্লিকেশনগুলির জন্য)?

উত্তর:


1

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

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

অবশ্যই আপনার অত্যুক্তি করা উচিত নয় তবে উপযুক্ত যেখানে পৃথক করা উচিত। এটি সম্পর্কে এটি ভাবুন: "এই শ্রেণিগুলি একত্রে অন্তর্ভুক্ত এবং এই শ্রেণিগুলি সম্পর্কে জানার দরকার নেই" এবং এই লাইনের সাথে পৃথক


1
"মডিউলগুলি" দ্বারা আপনি কী বোঝাতে চান তা নির্ভর করে তবে আমি সাধারণত যুক্তিগুলির পরিবর্তে নেমস্পেসগুলি ব্যবহার করে যুক্ত যুক্তিকে বিভক্ত করি। মনে রাখবেন, নামস্থানগুলি অ্যাসেমব্লিগুলি স্প্যান করতে পারে। অ্যাসেমব্লিগুলি মোতায়েনের একক এবং তাই আপনার মোতায়েনের দৃশ্যের সাথে মিল রেখে আপনার সমাবেশগুলি কাটা বিবেচনা করা উচিত।
এড জেমস

3
ভালো বুদ্ধি নই. যখন কোনও সমাধানে কয়েকটি প্রকল্পের বেশি থাকে তখন ভিএস খুব আলগা হয়ে যায়।
নিকি

4
যদি আপনার ভিএস খুব কম হয়ে যায় আপনি হয় একটি পুরানো সংস্করণ বা একটি ধীর কম্পিউটার চালাচ্ছেন। আমার কাছে 30+ প্রজেক্টের সাথে বিশাল প্রকল্প রয়েছে যা সেকেন্ডে সংকলিত হয়। তারপরে আবার আমার কাছে প্রচুর র‌্যাম, কোর এবং এসএসডি রয়েছে :) আপনারা অবশ্যই অতিরঞ্জিত করবেন না তবে যেখানে উপযুক্ত সেখানে পৃথক হওয়া উচিত, এটি সম্পর্কে এইভাবে ভাবুন "এই ক্লাসগুলি এক সাথে সম্পর্কিত এবং এই ক্লাসগুলি সম্পর্কে জানতে হবে না" এবং এই লাইনের সাথে পৃথক করুন
হোমডে

নির্ভরতা সম্পর্কে মন্তব্য করার কারণে এটি উত্তর হিসাবে চিহ্নিত হয়েছে। এড জেমসের উত্তর অন্তত মূল্যবান এবং সঠিক, তবে এই উত্তরটি আমার পরিস্থিতির ক্ষেত্রে আরও প্রযোজ্য।
পিটার

2
এই পদ্ধতির আপনি সমাহারগুলি একটি গুচ্ছ সঙ্গে শেষ পারে অনুসরণ: A, B, C, D, E, F, G, H, I, J, K। যেখানেই সমাবেশ রেফারেন্স A, এছাড়াও আপনি তার নির্ভরশীল সমাহারগুলি রেফারেন্স আবশ্যক: B, C, D। কিন্তু সমাবেশ C: উপর নির্ভরশীল E, F, G, Hতাই আমরা যারা খুব প্রয়োজন যাচ্ছি। সুতরাং যখনই আপনার কোনও ক্রিয়াকলাপের প্রয়োজন Aহয় এটির কাজ করার জন্য আপনাকে 7 টি অতিরিক্ত অ্যাসেমব্লি টেনে নামাতে হবে; আপনি প্রতিটি সমাবেশের সঠিক সংস্করণ পেয়েছেন তা নিশ্চিত করে। নতুন ডিএলএল হেলকে স্বাগতম
এড জেমস

14

একটি সংসদীয় .NET আবেদনের জন্য স্থাপনার একক; অতএব আপনার সমাবেশগুলির কাটাটি আপনার স্থাপনার আর্কিটেকচারের সাথে মিলিয়ে বিবেচনা করা উচিত।

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

মনে রাখবেন যে নেমস্পেসগুলি অ্যাসেম্বলিকে স্প্যান করতে পারে। অনেক ক্ষেত্রে নেমস্পেস ব্যবহার করে আচরণ পৃথক করা যথেষ্ট। .NET দেখুন mscorlib.dllযে কোনও একক সমাবেশে এমন কোড রয়েছে যা কেবলমাত্র নামের জায়গার দ্বারা বিচ্ছিন্ন আচরণের বিস্তৃত অ্যারেটিকে কভার করে।

আপনি যদি এই বিষয়ে কিছু কর্তৃত্ব চান তবে এর থেকে আর দেখার দরকার নেই:

ফ্রেমওয়ার্ক ডিজাইনের গাইডলাইন

ফ্রেমওয়ার্ক ডিজাইনের গাইডলাইন: কনজিশনস, আইডিয়ামস এবং পুনরায় ব্যবহারযোগ্য .NET লাইব্রেরিগুলির জন্য প্যাটার্নস (দ্বিতীয় সংস্করণ) ক্রিজিসটফ ক্লওয়িনা এবং ব্র্যাড আব্রামস।


সত্যই বইয়ের রেফারেন্সের জন্য ধন্যবাদ। আমি এটি পরীক্ষা করে দেখব। আপনি কি স্থাপনার আর্কিটেকচারটি বিস্তারিত বলতে পারেন? 10 ডিএলএল ফাইল স্থাপনের ক্ষেত্রে কী 1 টি মোতায়েন করা থেকে পৃথক হবে? আপনি যদি দশটি ফাইলের মধ্যে একটির আপডেট করতে না সক্ষম হন, তবে অন্যগুলি অপরিবর্তিত থাকে?
পিটার

1
@ পিটার: আপনি যদি সর্বদা একসাথে মোতায়েন করা 10 টি অ্যাসেমব্লিকে কোড করে থাকেন তবে আপনি সমস্ত কোডকে একটি একক সমাবেশে রেখে ভার্সন নিয়ন্ত্রণ এবং স্থাপনার সরলীকৃত করতে পারেন। যদি 10 টি অ্যাসেমব্লি সবসময় একসাথে মোতায়েন না করা হয় তবে আলাদা আলাদা সমাবেশ করা কার্যকর হতে পারে।
এড জেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.