Tôi mới bắt đầu một dự án web cực lớn và thực sự cố gắng làm mọi thứ đúng.Tại sao tôi nên sử dụng mã Entity Frameworkfirst nếu nó không thể được sử dụng trong sản xuất an toàn và những thứ như chỉ mục không thể được mô tả
cụ tôi sử dụng cho đến nay là
- ASP.NET MVC 3
- Entity Framework 4.3
- Ninject 3
Tất cả đang tiến triển tốt, nhưng tôi đang tìm kiếm một vài với Entity Framework CodeFirst một chút sơ sài.
Ví dụ: tôi phải sử dụng http://codefirstmembership.codeplex.com/ để thiết lập thông tin thành viên như một phần của thiết lập mã đầu tiên. Điều này cảm thấy một chút ropey phải sử dụng một cái gì đó bên thứ ba này. Rõ ràng là tôi nên đủ 1337 để "cuộn của riêng tôi" nhưng tôi không muốn cắn quá nhiều từ lúc đi. Chạy aspnet_regsql cảm thấy khủng khiếp, và sẽ bị mất với mỗi bản cập nhật db. Dù sao, tất cả đều làm việc với thư viện ở trên và nó không quá tệ. Giàn giáo dường như đã phá vỡ tuy nhiên.
Bây giờ ngoài tất cả điều này, bây giờ có vẻ như công cụ này sẽ trở thành probamatic khi tôi đang chạy trong môi trường sống. Bất kỳ thay đổi lược đồ nào tôi sẽ muốn thực hiện giữa db dev và db trực tiếp sẽ phải được quản lý thủ công bằng tập lệnh, vì vậy tại thời điểm đó tôi không bị mất điểm mã đầu tiên?
Tôi đã làm việc với Google App Engine trong năm qua và hy vọng mã đầu tiên về cơ bản sẽ hoạt động theo cùng một cách? Tức là, thực hiện thay đổi và họ sửa đổi dữ liệu trực tiếp. Bây giờ tôi giả định, do không thực hiện tái cấu trúc nghiêm trọng trong công cụ ứng dụng, về cơ bản nó không gây hại gì trong sản xuất. Vì vậy, bạn không bao giờ có thể đổi tên một bảng với AppEngine. Nó sẽ luôn tạo một bảng mới, và để lại cái cũ. Bạn sẽ phải chuyển dữ liệu theo cách thủ công.
Vì vậy, tôi hiện đang suy nghĩ. Tại sao không chỉ đi Cơ sở dữ liệu đầu tiên? Tôi đã làm việc với linq2sql trong 3 năm và rất thoải mái với việc đi db đầu tiên. Mặc dù TBH kiểm soát nguồn db của tôi stratergy đã được một chút .... thiếu. Vì vậy, tôi đã hy vọng mã đầu tiên sẽ thực thi tình hình đó để cải thiện, nhưng nó thực sự làm cho tôi cảm thấy rằng tôi nên đi DB đầu tiên, và chỉ là nghiêm ngặt về việc giữ nó dưới sự kiểm soát.
Tôi thực sự đánh giá cao bất kỳ suy nghĩ nào về loại tình huống này và cũng có thể so sánh với việc sử dụng Nhibinate như thế nào?
Nếu bạn không bị ràng buộc với một DB cụ thể, bạn có thể muốn xem một thứ như RavenDB. –
Tôi không thực sự nghịch với việc sử dụng MSSQL, chúng ta có thể di chuyển các bit của nó, vì vậy chúng ta chỉ có thể mở rộng bằng cách sử dụng Standard Edition, mà EC2 hỗ trợ ở một tốc độ tương đối tốt. Có lẽ sẽ tìm đến Mongo hoặc Couch trước Raven, bất kỳ lý do nào để đi tìm Raven trước? –
Một điều cần xem xét là những gì bạn muốn ra khỏi mã đầu tiên. Bạn có thực sự đi để xác định các bảng của bạn trong mã và có tạo ra cơ sở dữ liệu, hoặc nó là khía cạnh POCO của EF 4.3 mà bạn muốn? Lý do tôi hỏi là bạn có thể sử dụng POCOs và DbContext với Database First hoặc Model First (bạn có thể tạo một T4 tùy chỉnh để gen POCO từ mô hình của bạn). Lý do tôi hỏi là bởi vì đôi khi tôi thấy mọi người viết về "mã đầu tiên", khi điều họ thực sự sau khi làm việc với POCO/DbContext. – JMarsch