Tôi đang trong tình huống mà tôi phải thiết kế và triển khai hệ thống từ đầu. Tôi có một số câu hỏi về kiến trúc mà tôi muốn nhận xét và suy nghĩ của bạn.Kiến trúc N-Layer
Thông tin nhanh về dự án: Đây là ứng dụng web tập trung vào dữ liệu.
Ứng dụng sẽ được xây dựng trên Microsoft .NET Framework 4.0 với cơ sở dữ liệu MS SQL SERVER 2008.
Yêu cầu:
- Giàu UI và mạnh mẽ hỗ trợ
- Multi-thiết bị (mọi trình duyệt và trên mọi thiết bị)
- lỏng
Dưới đây là sơ đồ kiến trúc tôi đã xây dựng :
tại cuộc họp báo của kiến trúc
- lớp Presentation: HTML5/ASP.NET MVC + JQuery (ứng dụng web hỗ trợ đa thiết bị trong phiên bản đầu tiên)
- Dịch vụ phân phối: WCF (XML/JSON/JSONP)
- Lớp tên miền (Lớp kinh doanh): Tất cả logic nghiệp vụ
- Độ bền dữ liệu (DAL Layer): Khuôn khổ thực thể 4.0 với phương pháp tiếp cận cơ sở dữ liệu đầu tiên. POCO thực thể được tạo ra và tách ra sử dụng T4 mẫu
- hạ tầng lớp: Chứa các thư viện phổ biến như thực thể POCO, Xử lý ngoại lệ, đăng nhập vv
Mối quan tâm của tôi:
- Như ứng dụng được xây dựng kết hợp lỏng lẻo vì vậy trong tương lai nếu yêu cầu kinh doanh phát triển các mô-đun mới có thể dễ dàng được cắm vào mà không ảnh hưởng đến kiến trúc. Vì vậy, tôi nghĩ đến việc sử dụng các mẫu Repository cùng với IoC và DI (có thể Unity/Ninject/Sprint.NET hoặc bất kỳ khác)
- WCF với cả XML và hỗ trợ JSON
- Distributed Service Layer để đặt IoC & DI
- Exception Handling & Logging sử dụng Thư viện Enterprise 5,0
Looking for ý kiến quí báu và đề xuất. Nếu tôi làm bất cứ điều gì sai, hãy đưa tôi đi đúng hướng.
FYI - 'Tier' và 'Layer' không phải là các thuật ngữ tương đương. Lớp đề cập đến sự phân tách hợp lý như bạn đã mô tả. Bậc thường đề cập đến sự phân tách vật lý của phần cứng, ví dụ: Máy chủ cơ sở dữ liệu, Máy chủ web. – MattDavey
Chỉ vì tò mò, bạn đã sử dụng phần mềm nào để tạo biểu đồ? – henginy
Tôi đang sử dụng Visual Studio 2010 (Ultimate Edition) – coddey