Tôi đang mở rộng/chuyển đổi ứng dụng Biểu mẫu web cũ thành ứng dụng MVC hoàn toàn mới. Việc mở rộng cả về công nghệ cũng như trường hợp sử dụng kinh doanh. Các ứng dụng kế thừa là một Database Driven Design (DBDD) được thực hiện tốt. Vì vậy, ví dụ: nếu bạn có các loại nhân viên khác nhau như Operator, Supervisor, Store Keeper vv và bạn cần thêm một kiểu mới, bạn chỉ cần thêm một số hàng vào một vài bảng và thì đấy, giao diện người dùng của bạn sẽ tự động có mọi thứ để thêm/cập nhật loại nhân viên. Tuy nhiên sự phân tách các lớp không tốt lắm.Thiết kế điều khiển tên miền và thiết kế điều khiển cơ sở dữ liệu cho ứng dụng web MVC
Dự án mới có hai mục tiêu chính
- Khả năng mở rộng (đối với hiện và yêu cầu đường ống dẫn trong tương lai)
- Performance
tôi dự định để tạo ra các dự án mới thay thế các cơ sở dữ liệu Driven Design (DBDD) với Thiết kế Điều khiển Miền (DDD) lưu ý đến yêu cầu Mở rộng. Tuy nhiên, việc chuyển từ một thiết kế hướng cơ sở dữ liệu sang thiết bị điều khiển tên miền dường như ảnh hưởng bất lợi đến yêu cầu hiệu suất nếu tôi so sánh nó với hiệu năng của ứng dụng DBDD kế thừa. Trong ứng dụng kế thừa, bất kỳ cuộc gọi nào cho dữ liệu từ giao diện người dùng sẽ trực tiếp tương tác với cơ sở dữ liệu và bất kỳ dữ liệu nào sẽ được trả về dưới dạng DataReader hoặc (trong một số trường hợp) một DataSet.
Hiện tại với DDD nghiêm ngặt tại chỗ, mọi cuộc gọi dữ liệu sẽ được định tuyến thông qua lớp Doanh nghiệp và lớp Truy cập dữ liệu. Điều này có nghĩa là mỗi cuộc gọi sẽ khởi tạo một đối tượng kinh doanh và một đối tượng truy cập dữ liệu. Một trang giao diện người dùng có thể cần các loại dữ liệu khác nhau và đây là một ứng dụng Web mà mỗi trang có thể được nhiều người dùng yêu cầu. Ngoài ra một ứng dụng Web MVC là không trạng thái, mỗi yêu cầu sẽ cần khởi tạo các đối tượng nghiệp vụ và các đối tượng truy cập dữ liệu mỗi lần. Vì vậy, nó có vẻ cho một ứng dụng không có quốc tịch MVC DBDD là thích hợp hơn để DDD cho hiệu suất.
Hoặc có cách nào để DDD đạt được cả hai, Khả năng mở rộng mà DDD cung cấp và hiệu suất mà DBDD cung cấp?
Được gắn dấu sao dưới dạng một câu hỏi thú vị bởi vì nó mang tính cơ học đằng sau các thiết kế khác nhau theo nghĩa đen. Rất thường xuyên, các cuộc thảo luận này quá trừu tượng để hữu ích. Cái này rất trực tiếp. Tôi rất muốn xem câu trả lời là gì (bản thân tôi cũng không biết). –
Tôi có một vài câu hỏi trước khi bắt đầu suy nghĩ: 1. Yêu cầu hiệu suất chính xác là gì? Ứng dụng sẽ phản ứng nhanh như thế nào. Tất cả các truy vấn có được trả lời sau 1 giây HOẶC 0,5 giây khi tìm nạp dữ liệu và 1 giây để cập nhật không? 2. Bạn đã có một số chỉ số cho ứng dụng hiện tại và một ứng dụng dựa trên MVC sẽ hoạt động chậm hơn bao nhiêu? –
Tôi có số liệu cho các hoạt động cơ sở dữ liệu ứng dụng hiện tại. Ngoại trừ báo cáo có thể có các hoạt động phức tạp và dữ liệu nặng và có thể mất vài phút, CRUD mất ít hơn một giây trong khi hoạt động tìm nạp dữ liệu tối đa xảy ra trong vòng 2 - 3 giây ở cấp cơ sở dữ liệu. Ứng dụng MVC sẽ chậm hơn bao nhiêu, câu hỏi là tất cả về – devanalyst