Giới thiệu Entity Framework core 2 dành cho doanh nghiệp

Thiết kế một kiến trúc doanh nghiệp dành cho các ứng dụng là một thách thức lớn, có một câu hỏi phổ biến ở đây chính là: Cách tốt nhất để giải quyết vấn đề này là gì sau những phương pháp công nghệ tốt nhất được chọn?

Hướng dẫn này sử dụng .Net Core, vì vậy sẽ được làm việc với Entity Framework Core, nhưng các khái niệm này cũng áp dụng cho các công nghệ khác như Dapper hoặc một ORM khác. Trong thực tế, chúng ta sẽ xem xét các yêu cầu chung để thiết kế kiến trúc doanh nghiệp. Cơ sở dữ liệu mẫu được cung cấp trong hướng dẫn này đại diện cho một cửa hàng trực tuyến. Bởi vì làm việc với Entity Framework Core và ASP.NET Core, kiểm thử đơn vị sử dụng trong nhà cung cấp cơ sở dữ liệu bộ nhớ; kiểm tra tích hợp bằng cách sử dụng máy chủ web thử nghiệm. Tất cả các bài kiểm tra (đơn vị và tích hợp) đều được viết bằng khung xUnit.

Nền tảng: Kiến trúc doanh nghiệp cho các ứng dụng phải có các mức sau:

Lớp thực thể: Chứa thực thể (POCO)
Lớp dữ liệu: Chứa các đối tượng liên quan đến truy cập cơ sở dữ liệu
Lớp kinh doanh: Chứa các định nghĩa và xác thực liên quan đến doanh nghiệp
Lớp dịch vụ bên ngoài (tùy chọn): Chứa các dẫn chứng cho các dịch vụ bên ngoài (ASMX, WCF, RESTful)
Lớp phổ thông: Chứa các đối tượng phổ biến cho các lớp (ví dụ: Trình ghi nhật ký, Người lập bản đồ, Tiện ích mở rộng)
Kiểm tra (QA): Chứa kiểm tra cho back-end (đơn vị và tích hợp)
Lớp trình bày: Đây là giao diện người dùng
Kiểm tra giao diện người dùng (QA): Chứa các thử nghiệm tự động cho giao diện người dùng

Điều kiện tiên quyết về kỹ năng: Trước khi tiếp tục, hãy nhớ rằng chúng ta cần phải có kỹ năng làm theo để hiểu hướng dẫn này:

  • OOP (Lập trình hướng đối tượng)
  • AOP (Lập trình hướng khía cạnh)
  • ORM (Ánh xạ quan hệ đối tượng)
  • Các mẫu thiết kế: Thiết kế điều khiển tên miền, kho lưu trữ, đơn vị công việc và IoC

Kiến thức về phần mềm

  • .Net Core
  • Visual Studio 2017 ví dụ SQL Server (cục bộ hoặc từ xa)
  • SQL Server Management Studio

Cơ sở dữ liệu
Hãy xem xét cơ sở dữ liệu mẫu để hiểu từng thành phần trong kiến trúc doanh nghiệp. Trong cơ sở dữ liệu này có 4 lược đồ: Dbo, HumanResources, Production and Sales. Mỗi lược đồ đại diện cho một bộ phận trong công ty, cửa hàng, lưu ý điều này bởi vì tất cả các mã được thiết kế theo khía cạnh này; tại thời điểm này, mã này chỉ thực hiện các tính năng cho các lược đồ Production and Sales. Tất cả các bảng có khóa chính với một cột và có các cột để tạo, cập nhật lần cuối và mã thông báo đồng thời.

Dự án nòng cốt
Dự án nòng cốt đại diện cho cốt lõi của giải pháp, trong hướng dẫn này dự án nòng cốt bao gồm các thực thể, dữ liệu và các lớp kinh doanh. Chúng ta đang làm việc với .NET Core, quy ước đặt tên là quy ước đặt tên .NET, vì vậy rất hữu ích khi xác định bảng quy ước đặt tên để hiển thị cách đặt tên trong mã. Quy ước này rất quan trọng vì nó định nghĩa các hướng dẫn đặt tên cho kiến ​​trúc.

Đây là cấu trúc cho Store.Core project:

  1. EntityLayer
  2. DataLayer
  3. DataLayer\Contracts
  4. DataLayer\DataContracts
  5. DataLayer\Mapping
  6. DataLayer\Repositories
  7. BusinessLayer
  8. BusinessLayer\Contracts
  9. BusinessLayer\Responses

Source code tại đây

Bên trong Entitylayer, chúng ta sẽ đặt tất cả các thực thể, trong ngữ cảnh này, thực thể có nghĩa là một lớp đại diện cho một bảng hoặc khung nhìn từ cơ sở dữ liệu, đôi khi thực thể được đặt tên là POCO (Plain Old Common runtime Object Object). cũng không phải những thứ khác (sự kiện); theo phản hồi của wkempf, cần phải rõ ràng về các POCO, POCO có thể có các phương pháp và sự kiện và các thành viên khác nhưng không phổ biến để thêm các thành viên đó vào POCO.

Bên trong DataLayer, chúng ta sẽ đặt DbContext vì nó là một lớp chung cho DataLayer.

Đối với DataLayer \ Contracts, chúng ta sẽ đặt tất cả các giao diện đại diện cho danh mục hoạt động, chúng tôi tập trung vào các lược đồ và chúng tôi sẽ tạo một giao diện cho mỗi lược đồ và Hợp đồng cửa hàng cho lược đồ mặc định (dbo).

Đối với DataLayer \ DataContracts, chúng ta sẽ đặt tất cả các định nghĩa đối tượng cho các giá trị trả về từ Contracts namespace, bây giờ thư mục này chứa định nghĩa lớp OrderInfo.

Đối với DataLayer \ Mapping, sẽ đặt tất cả các định nghĩa đối tượng liên quan đến các lớp ánh xạ cho cơ sở dữ liệu.

Đối với DataLayer \ Repositories, đặt các cài đặt cho hợp đồng định nghĩa

Một kho lưu trữ bao gồm các hoạt động liên quan đến một lược đồ, vì vậy có 4 kho lưu trữ:

DboRepositoryHumanResourcesRepositoryProductionRepository và SalesRepository.

Bên trong EntityLayer và DataLayer \ Mapping, chúng ta sẽ tạo một thư mục cho mỗi lược đồ.

Bên trong BusinessLayer, chúng ta sẽ tạo các giao diện và các triển khai cho các dịch vụ, trong trường hợp này, các dịch vụ sẽ chứa các phương thức theo các ca sử dụng (hoặc một cái gì đó tương tự) và các phương thức đó phải thực hiện các xác nhận hợp lệ và xử lý các ngoại lệ liên quan đến kinh doanh.

Đối với BusinessLayer \ Responses, tạo ra các câu trả lời: duy nhất, danh sách và phân trang để biểu thị kết quả từ các dịch vụ. Kiểm tra mã để hiểu các khái niệm này nhưng việc xem xét sẽ là với một đối tượng trên mỗi cấp vì mã còn lại là tương tự.

Tiếp theo>>>

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *