। নেট এওপি-র জন্য সর্বোত্তম বাস্তবায়ন কী? [বন্ধ]


83

সি #, ভিবি নেট.এনে প্রচুর এওপি বাস্তবায়ন রয়েছে। এটি এওপি বাস্তবায়নগুলির কয়েকটি:

। নেট এওপি-র জন্য সর্বোত্তম বাস্তবায়ন কী? আমার কি ব্যবহার করা উচিত?


4
আপনি যদি সমস্ত এওপি-র লিঙ্ক সরবরাহ করেন তবে এটি সহায়ক হবে, যাতে গুগলের সাথে পাঠককে কিছুটা সময় বাঁচাতে পারে। আমি আশা করছি এই প্রশ্ন / উত্তরগুলি নেট। এএনএটির বিভিন্ন এওপি বিকল্পগুলির দুর্দান্ত সংক্ষিপ্তসার হয়ে উঠবে
ইয়ান রিংরোজ

10
52 জন ভোট দিয়েছে এটি একটি গঠনমূলক প্রশ্ন। 5 ভোট দিয়েছে এটি গঠনমূলক নয়। কে সিদ্ধান্ত নিয়েছে? কমপক্ষে মডারেটরকে প্রশ্নটি পরিবর্তন বা সংশোধন করা উচিত, তবে তারা বেশিরভাগ মানুষের মতামত বিবেচনা করা ভাল।
সত্য

4
নিখুঁতভাবে সম্পূর্ণ সম্মত হন!
কিংবদন্তি

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

উত্তর:


45

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

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

নোট করুন যে এটি লিন্ফুতেও বিদ্যমান , এটি উভয় এওপি ফ্যাশনকে উপার্জন করতে ব্যবহৃত হতে পারে।


4
আপনি যদি রানটাইম এওপি করতে চান তবে এটিতে +1 করুন। পোস্ট-শার্পে +1 আপনি পোস্ট-সংকলন সময় এওপি চাইলে
Krzysztof কোজমিক

এই উত্তরের কোনও আপডেট? নাকি এটি এখনও বৈধ? আমি বিশেষভাবে ভাবছিলাম যে কীভাবে স্প্রিং.অ্যাপ কাসল এবং পোস্টশার্পের সাথে তুলনা করে
এভ্রেন কুজুকুগলু

4
দুর্ভাগ্যক্রমে, পোস্টশার্প একটি বাণিজ্যিক পণ্য
পিক্সেল

পোস্টশার্প বাণিজ্যিক পণ্য, বিনামূল্যে নয়। স্থির বুননের জন্য দয়া করে অন্য যে কোনও বিষয়ে পরামর্শ দিন।
শিবাম সচান

@ শিভামসচান কেবলমাত্র কিছু বিনামূল্যে থাকার কারণে এটি ভাল হয় না। নেট এ সর্বাধিক ফ্রি এওপি 2-5 বছর আগে শেষ আপডেটের সাথে মারা গিয়েছিল, পোস্টশার্প এখনও ক্লাসে সেরা।
অফার

15

"সেরা" বিষয়গত হয়।

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


আপনি যা বলেছিলেন তা আপনি সংশোধন করতে পারেন: "সেরা বিষয়গত, আমি এই কাঠামোর কয়েকটি জন্য প্রো এবং কনট্রোগুলির একটি তালিকা তৈরি করব"।
সত্য

11

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

এখানে কিছু পয়েন্টার রয়েছে:

  • কংক্রিটের উদাহরণগুলির উপর নির্ভর করবেন না, তবে বিমূর্ততার উপর নির্ভর করুন।
  • একই শ্রেণিতে ক্রস কাটিং উদ্বেগ এবং ব্যবসায়িক যুক্তি মিশ্রণ করবেন না।
  • সেই উদ্বেগগুলি ( সজ্জকার ) বাস্তবায়িত করে এমন ক্লাসগুলিতে ব্যবসায়ের যুক্তি দিয়ে ক্লাসগুলি মোড়ক দিয়ে ক্রস কাটিয়া উদ্বেগ যুক্ত করা ।
  • আপনার নকশায় সাধারণ নিদর্শনগুলি সন্ধান করুন এবং সেগুলি সমান মডেল করুন, পছন্দসই একই ধরণের বিমূর্ততা ব্যবহার করে। উদাহরণস্বরূপ এটি এবং এটি একবার দেখুন ।

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

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


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

4
যদি আপনি আপনার ডাটাবেসে প্রতিটি কল একটি ব্যতিক্রম ব্লক দিয়ে আবদ্ধ করেন তবে আপনি যেভাবেই এটি ভুল করছেন। এটি আবার ভাল ডিজাইনে ফিরে আসে। সর্বদা.
স্টিভেন

পরিবর্তে ডিবি ব্যতিক্রম ধরার পরিবর্তে সঠিক উপায়টি কী?
আউটফুট টাচ

4
@ আউটফুট: এই প্রশ্নটির উত্তরটি একবার দেখুন ।
স্টিভেন

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

5

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

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

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

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


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