আমার এখনও পুরাতন দিনগুলির ভাণ্ডারগুলি মনে আছে। কিন্তু সময়ের সাথে কুঠিরগুলি বাড়ত os তারপরে সিকিউআরএস মূলধারায় পেল। তারা দুর্দান্ত ছিল, তারা তাজা বাতাসের একটি দম ছিল। তবে সম্প্রতি আমি নিজেকে বারবার জিজ্ঞাসা করছি যে আমি কেন কন্ট্রোলার অ্যাকশন পদ্ধতিতে যুক্তিটি সঠিকভাবে রাখি না (বিশেষত ওয়েব এপিতে যেখানে ক্রিয়া নিজেই একধরনের কমান্ড / কোয়েরি হ্যান্ডলার)।
পূর্বে আমার কাছে এর একটি স্পষ্ট উত্তর ছিল: আমি পরীক্ষার জন্য এটি করি কারণ এই সমস্ত অচলাচল সিঙ্গেলন এবং সামগ্রিক কুরুচিপূর্ণ এএসপি.নেট অবকাঠামো দিয়ে কন্ট্রোলার পরীক্ষা করা শক্ত। তবে সময় বদলে গেছে এবং এএসপি.এনইটি অবকাঠামোগত ক্লাসগুলি আজকাল অনেক বেশি ইউনিট পরীক্ষার বান্ধব (বিশেষত এএসপি.এনইটি কোর)।
এখানে একটি সাধারণ ওয়েবএপি কল রয়েছে: কমান্ডটি যুক্ত করা হয় এবং সিগন্যালআর ক্লায়েন্টদের এটি সম্পর্কে অবহিত করা হয়:
public void AddClient(string clientName)
{
using (var dataContext = new DataContext())
{
var client = new Client() { Name = clientName };
dataContext.Clients.Add(client);
dataContext.SaveChanges();
GlobalHost.ConnectionManager.GetHubContext<ClientsHub>().ClientWasAdded(client);
}
}
আমি সহজেই এটি পরীক্ষা / উপহাস করতে ইউনিট করতে পারি। আরও বেশি, ওউইনকে ধন্যবাদ আমি স্থানীয় ওয়েবএপি এবং সিগন্যালআর সার্ভার সেটআপ করতে এবং একটি সংহতকরণ পরীক্ষা করতে পারি (এবং উপায় দ্বারা বেশ দ্রুত)।
সম্প্রতি ভারী কমান্ড / ক্যোয়ারী হ্যান্ডলারগুলি তৈরি করতে আমি কম এবং কম অনুপ্রেরণা অনুভব করেছি এবং আমি ওয়েব এপিআই ক্রিয়াকলাপগুলিতে কোড রাখার ঝোঁক। যুক্তি পুনরাবৃত্তি করা হয় বা এটি সত্যিই জটিল হয় এবং আমি এটিকে বিচ্ছিন্ন করতে চাই তবেই আমি ব্যতিক্রম করি। তবে আমি নিশ্চিত নই যে আমি এখানে সঠিক জিনিস করছি কিনা।
একটি সাধারণ আধুনিক এএসপি.এনইটি অ্যাপ্লিকেশনটিতে লজিক পরিচালনার জন্য সবচেয়ে যুক্তিসঙ্গত পদ্ধতি কী? আপনার কোড কমান্ড এবং কোয়েরি হ্যান্ডলারগুলিতে স্থানান্তর করা কখন যুক্তিযুক্ত? এর চেয়ে আরও ভাল কোন নিদর্শন রয়েছে?
হালনাগাদ. আমি এই নিবন্ধটি ডিডিডি-লাইট পদ্ধতির সম্পর্কে পেয়েছি । সুতরাং দেখে মনে হচ্ছে কোডের জটিল অংশগুলি কমান্ড / ক্যোয়ারী হ্যান্ডলারগুলিতে সরানোর আমার পদ্ধতির সিকিউআরএস-লাইট বলা যেতে পারে।