MVC'deki ilk gerçek çatışmamla endüstri standartlarını ve en iyi uygulamaları takip ettiğime emin olmak istiyorum. Bu durumda, C # kullanarak ASP.NET MVC'dir.
Modelim için Entity Framework 4.1'i kod birinci nesnelerle (veritabanı zaten var) kullanacağım, bu nedenle veritabanından veri almak için bir DBContext nesnesi olacak.
Asp.net web sitesinde geçirdiğim demolarda, kontrol cihazlarında veri erişim kodu var. Bu bana uygun görünmüyor, özellikle DRY (kendinizi tekrar etmeyin) uygulamalarını takip ederken.
Örneğin, halk kütüphanesinde kullanılacak bir web uygulaması yazdığımı ve katalogda kitap oluşturmak, güncellemek ve silmek için bir kontrol cihazım olduğunu varsayalım.
İşlemlerin bazıları bir ISBN alabilir ve bir "Kitap" nesnesi döndürmek gerekebilir (bunun% 100 geçerli kod olmadığını unutmayın):
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);
}
}
Bunun yerine, db bağlam nesnemde bir kitap döndürecek bir yöntemim olmalı mı? Bu benim için daha iyi bir ayrım gibi gözüküyor ve DRY'nin tanıtımına yardımcı oluyor, çünkü web uygulamamda ISBN üzerinden başka bir yere bir Kitap nesnesi almam gerekebilir.
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));
}
}
Bu başvurumun kodlanmasında uyulması gereken geçerli bir kurallar dizisi midir?
Veya, daha öznel bir soru olacağını düşünüyorum: "Bunu yapmanın doğru yolu bu mu?"