আমি নিশ্চিত করতে চাই যে আমি এমভিসিতে আমার প্রথম আসল ক্র্যাকের সাথে শিল্পের মানগুলি এবং সেরা অনুশীলনগুলি অনুসরণ করছি। এক্ষেত্রে এটি সিএস ব্যবহার করে এটিএসপিএন নেট এমভিসি।
আমি আমার মডেলের জন্য সত্তা ফ্রেমওয়ার্ক ৪.১ ব্যবহার করব, কোড-ফার্স্ট অবজেক্ট (ডাটাবেস ইতিমধ্যে বিদ্যমান) সহ, সুতরাং ডাটাবেস থেকে ডেটা পুনরুদ্ধারের জন্য একটি ডিবিসিএনটেক্সট অবজেক্ট থাকবে।
আমি ডেমোগুলিতে আমি অ্যাসপিটনে ওয়েবসাইটে গিয়েছি, কন্ট্রোলারদের মধ্যে ডেটা অ্যাক্সেস কোড রয়েছে। এটি আমার কাছে সঠিক বলে মনে হচ্ছে না, বিশেষ করে যখন DRY অনুসরণ করুন (নিজেকে পুনরাবৃত্তি করবেন না) অনুশীলনগুলি।
উদাহরণস্বরূপ, ধরা যাক যে আমি একটি পাবলিক লাইব্রেরিতে ব্যবহার করার জন্য একটি ওয়েব অ্যাপ্লিকেশন লিখছি এবং ক্যাটালগে বই তৈরি, আপডেট এবং মুছে ফেলার জন্য আমার কাছে একটি নিয়ামক রয়েছে।
বেশ কয়েকটি ক্রিয়াকলাপ আইএসবিএন নিতে পারে এবং একটি "বুক" অবজেক্ট ফিরিয়ে দিতে চায় (এটি সম্ভবত 100% বৈধ কোড নয়) নোট করুন:
public class BookController : Controller
{
LibraryDBContext _db = new LibraryDBContext();
public ActionResult Details(String ISBNtoGet)
{
Book currentBook = _db.Books.Single(b => b.ISBN == ISBNtoGet);
return View(currentBook);
}
public ActionResult Edit(String ISBNtoGet)
{
Book currentBook = _db.Books.Single(b => b.ISBN == ISBNtoGet);
return View(currentBook);
}
}
পরিবর্তে, আমার ডিবি কনটেক্সট অবজেক্টে একটি বই ফেরত দেওয়ার জন্য আসলেই আমার কোনও পদ্ধতি থাকা উচিত ? এটি মনে হয় এটি আমার কাছে আরও ভাল বিচ্ছেদ এবং DRY প্রচারে সহায়তা করে কারণ আমার ওয়েব অ্যাপ্লিকেশনটিতে অন্য কোথাও আইএসবিএন দ্বারা বুক অবজেক্ট পাওয়ার দরকার হতে পারে।
public partial class LibraryDBContext: DBContext
{
public Book GetBookByISBN(String ISBNtoGet)
{
return Books.Single(b => b.ISBN == ISBNtoGet);
}
}
public class BookController : Controller
{
LibraryDBContext _db = new LibraryDBContext();
public ActionResult Details(String ISBNtoGet)
{
return View(_db.GetBookByISBN(ISBNtoGet));
}
public ActionResult Edit(ByVal ISBNtoGet as String)
{
return View(_db.GetBookByISBN(ISBNtoGet));
}
}
আমার অ্যাপ্লিকেশনটির কোডিংয়ে অনুসরণ করার জন্য এটি কি কোনও বৈধ সেট?
বা, আমার ধারণা আরও একটি বিষয়গত প্রশ্ন হবে: "এটি কি এটি সঠিক উপায়?"