এক্সটেনশন পদ্ধতি ব্যবহার করার জন্য সর্বোত্তম পদ্ধতি কি। নেটে?

আমি এই সব পদ্ধতি ব্যবহার করা হয়েছে দেখেছি, এবং তাদের ভুল পথ ব্যবহার করার অভিযুক্ত করা হয়েছে (যদিও, যে ক্ষেত্রে আমি তাদের একটি বিন্দু )।

সুতরাং, এক্সটেনশান পদ্ধতি নিয়োগের জন্য আপনার কি সেরা অভ্যাস আছে?

উন্নয়নের দলগুলি এক্সটেনশন পদ্ধতিগুলির একটি লাইব্রেরি তৈরি করবে এবং বিভিন্ন প্রকল্পে তাদের স্থাপন করবে?

একটি মুক্ত উত্স প্রকল্পের আকারে সাধারণ এক্সটেনশন পদ্ধতির সংগ্রহ হওয়া উচিত?

আপডেট: একটি সংস্থা বিস্তৃত এক্সটেনশন পদ্ধতি লাইব্রেরি তৈরি করার সিদ্ধান্ত নিয়েছে

0
ro fr hi

6 উত্তর

আমি Utils বর্গ আমার কোর লাইব্রেরি সঙ্গে আমার এক্সটেনশন পদ্ধতি অন্তর্ভুক্ত করা হয়েছে কারণ আমার কাঠামোর সাথে কাজ করে যারা মানুষ দরকারী পদ্ধতি খুঁজে পেতে সম্ভবত, কিন্তু শেষ ডেভেলপার এক্সটেনশন পদ্ধতি লাইব্রেরি একটি পছন্দ থাকতে পারে যেখানে ভর স্থাপনার জন্য, আমি আপনার সমস্ত এক্সটেনশানগুলিকে নিজের নামস্থান, এমনকি তাদের নিজস্ব প্রজেক্ট ফাইলের মধ্যে রাখার পরামর্শ দিচ্ছি, যাতে লোকেরা এমন একটি রেফারেন্স বা একটি ব্যবহার করা বিবৃতি যুক্ত করতে পারে বা যেখানে প্রয়োজনীয়তা প্রয়োজন সেখানেই বেছে নিতে পারেন:

Core.Extensions.Base64Encode(str);

আমার Utils বর্গ সমগ্র বিশ্বের আমার সেরাতম বন্ধু, এক্সটেনশন পদ্ধতি বরাবর আসেন আগে ছিল এবং তারা শুধুমাত্র আমাদের সম্পর্ক জোরদার করতে সাহায্য করেছে আমি যে সর্বাধিক নিয়মটি অনুসরণ করব তা হল, কোনও প্রকারের কাঠামোটি তারা কোথায় ব্যবহার করছে সে সম্পর্কে জনগণকে পছন্দ করে।

0
যোগ

আমি মনে করি এটি এক্সটেনশান পদ্ধতি পরিবেশন কি উদ্দেশ্য উপর নির্ভর করে।

  • এক্সটেনশন পদ্ধতি যা একটি প্রজেক্টের নির্দিষ্ট ব্যবসায়িক চাহিদার সাথে সংযুক্ত (কিনা তা মৌলিক তথ্য প্রকার বা কাস্টম বস্তুর সাথে সংযুক্ত) একটি লাইব্রেরিতে অন্তর্ভুক্ত করা উচিত নয় যা একাধিক প্রকল্পগুলিতে বিতরণ করা হবে।
  • এক্সটেনশান পদ্ধতি যা মৌলিক ডেটা টাইপ (ইন্টিগ্রেশন, স্ট্রিং, ইত্যাদি) বা জেনেরিকগুলির সাথে সম্পর্কিত একটি বিস্তৃত অ্যাপ্লিকেশন প্যাকেজ এবং প্রকল্পে বিতরণ করা যেতে পারে।

বিশ্বব্যাপী বিস্তৃত না হওয়া এক্সটেনশান পদ্ধতিগুলি অন্তর্ভুক্ত রাখুন যাতে সামান্য অ্যাপ্লিকেশন থাকে, যেহেতু তারা শুধু intellisense বন্ধ করে দেয় এবং বিভ্রান্তি এবং / অথবা অপব্যবহার করতে পারে।

0
যোগ
হ্যাঁ ঠিক. সেটা ঠিক. কিন্তু নির্দেশিকা আরো নির্দিষ্ট আছে উচিত। (উদাহরণস্বরূপ, অবজেক্ট শ্রেণীকে এক প্রসারিত করতে হবে?) আপনি কি তৃতীয় পক্ষের লাইব্রেরিগুলি প্রসারিত করতে চান?
যোগ লেখক Vaibhav, উৎস

আপনি http://www.codeplex.com/nxl এবং http://www.codeplex.com/umbrella যা উভয় এক্সটেনশন পদ্ধতি গ্রন্থাগার। আমি ব্যক্তিগতভাবে সোর্স কোড একটি চেহারা ছিল না কিন্তু আমি বলছি সেখানে আপনি কিছু ভাল পয়েন্টার দিতে সক্ষম হবে নিশ্চিত।

0
যোগ
উল্লেখ্য যে, ২008 সালের তুলনায় রেফারেন্সেড প্রকল্পগুলোর যেকোনও উন্নয়নমূলক কার্যকলাপের মধ্যে রয়েছে না।
যোগ লেখক DavidRR, উৎস

ফ্রেমওয়ার্ক ডিজাইন নির্দেশিকাগুলির আসন্ন প্রকাশ, ২ য় সংস্করণ এক্সটেনশন পদ্ধতি বাস্তবায়নের জন্য কিছু নির্দেশিকা থাকবে, তবে সাধারণভাবে:

আপনি শুধুমাত্র এক্সটেনশান পদ্ধতি নির্ধারণ করতে হবে "যেখানে তারা শব্দার্থক অর্থে তৈরি করে" এবং প্রতিটি বাস্তবায়নের জন্য সহায়ক কার্যকারিতা প্রদান করে।

আপনার প্রসারিত সিস্টেমও বর্ধিত করা উচিত.অব্যাগে নাকি সবই। নেট ভাষা এক্সটেনশন পদ্ধতিকে এক্সটেনশন হিসাবে কল করতে সক্ষম হবে। (VB.NET উদাহরণস্বরূপ এটি স্ট্যাটিক এক্সটেনশন ক্লাসে একটি নিয়মিত স্ট্যাটিক পদ্ধতি হিসাবে কল করতে হবে।)

যদি আপনি কোন ইন্টারফেস ব্যাবহার না করেন তবে বর্ধিত টাইপ হিসাবে একই নামস্থান একটি এক্সটেনশন পদ্ধতি সংজ্ঞায়িত করবেন না।

একটি "বাস্তব" পদ্ধতি হিসাবে একই স্বাক্ষর সঙ্গে একটি এক্সটেনশন পদ্ধতি সংজ্ঞায়িত না কারণ এটি বলা হবে না।

0
যোগ

Theobjective-clanguage has had "Categories" since the early 1990s; these are essentially the same thing as .NET Extension Methods. When looking for best practices you might want to see what rules of thumbobjective-c(Cocoa & NeXT) developers have come up with around them.

Brent Simmons (the author of the NetNewsWire RSS reader for Mac OS X and iPhone) just posted today about his new style rules for the use of categories and there's been a bit of discussion in the Cocoa community around that post.

0
যোগ

যখন আমি প্রথমে এক্সটেনশানগুলি সম্পর্কে জানতে পেরেছিলাম তখন সত্যিই আমি তাদের উপর অত্যাচার ও নির্যাতন করেছি।

বেশিরভাগ অংশে আমি অনেক কারণের জন্য কোনো এক্সটেনশান পদ্ধতি ব্যবহার থেকে দূরে থেকে শুরু করেছি।

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

আমি কেন এক্সটেনশন পদ্ধতি ব্যবহার বন্ধ বন্ধ প্রধান কারণ হল যে আপনি পদ্ধতির উৎস এবং "মালিক", যেখানে কোড পড়ার থেকে দ্রুত বলতে না পারেন।

কোডটি পড়ার সময় আপনি পদ্ধতিটি এক্সটেনশন বা টাইপের একটি ন্যূনতম NET API পদ্ধতি কিনা তা বলতে পারবেন না।

Intellisense মেনু আসলে সত্যিই নোংরা সত্যিই দ্রুত পেতে পারেন।

0
যোগ