ASP.NET Core là nền tảng xây dựng ứng dụng web ASP.NET mới nhất của Microsoft, kế thừa ASP.NET MVC 4, và còn hơn thế với việc sử dụng dotnet core hoàn toàn open-source và tương thích hầu hết với các nền tảng hạ tầng từ Windows đến Linux.

Tiếp theo chuỗi bài “Build People# Mobile App”, chương này sẽ giới thiệu cách tạo Database và API truy xuất trên nền tảng ASP.NET Core, API này sẽ được sử dụng để kết nối với ứng dụng di động của người dùng.

Bước 1: Tạo tầng Data model

Ghi chú: chúng ta sẽ làm quen với mô hình MVC (Modal-View-Controller), một mô hình được sử dụng khá rộng rãi trong thiết kế và lập trình ứng dụng web, MVC về cơ bản sẽ có 3 tầng Model, View, Controller đảm nhiệm những vai trò khác nhau. Chi tiết về MVC xin hẹn các bạn các bài sau, bây giờ chúng ta tạm hiểu, tầng Model sẽ là tầng mô phòng các thực thể thực thành Class và Đối tượng và kết nối database.

Mở Solution People trên Visual Studio, từ của sổ Solution Explorer, chuột phải vào Project People.Service và chọn Set as Startup Project, bạn sẽ thấy tên Project People.Service được in đậm lên.

step-1-set-startup-project

Tạo mới một thư mục trong Project và đặt tên là Model, sau đó thêm một class tên là Contact.csstep-2-create-contac-cs

Bạn khai báo class Contact trong file Contact.cs như sau, đây là class mô tả cho các đối tượng trong danh bạ và là class mô tả cấu trúc của một Table trên database của bạn.

Bước 2: Cài đặt thư viện Entity Framework Core

Thử viện này là một thư viện ORM nó sẽ hỗ trợ việc truy xuất database trên ứng dụng web của bạn, bạn có thể tìm và cài đặt thông qua nuget như sau:

step-3-install-nugetSau đó bạn mở file project.json, thêm các thư viện như sau:

Bước 3: Cấu hình, khởi tạo cấu trúc database

Thêm vào một file class mới vào thưu mục Model, với tên là PeopleDbContext.cs

step-4-create-db-contextClass PeopleDbContext sẽ là class chịu trách nhiệm liên kết và truy xuất đến database thông qua các class model khác (như class Contact), class PeopleDbContext  được khai báo như sau:

Mở tập tin appsettings.json, thêm vào cấu hình ConnectionString cho database như sau:

Khi bạn phát triển web trên localhost thì khuyên dùng database với SQL Server LocalDB, LocalDB đã được cài đặt sẵn cùng với Visual Studio (nếu chưa có bạn có thể cài thêm trong trình tùy chọn cài đặt của Visual Studio).

Mở tập tin Startup.cs, thêm các đoạn code và các phương thức config để khởi tạo và cấu hình PeopleDbContext như sau:

Vào menu Tools chọn Nuget Package Manager và chọn Package Manager Console, một cửa sổ Console mới xuất hiện như sau, đây là nơi bạn nhập các lệnh (cmd) sử dụng trên project của mình.

step-add-nuget-consoleNhập lần lượt các lệnh sau add-migration Initupdate-database, nếu kết quả trả về là Done thì các lệnh đã chạy thành công

step-add-ef-commandKết quả bạn được một database mới, và trong database đó có một table tương ứng với class Contact đã tạo, bạn có thể kiểm tra bằng cách mở SQL Server Object Explorer:

step-5-check-db
Bước 4: Tạo data mẫu

Thêm vào thư mục Model, một class mới có tên là SeedData
step-6-seed-data
Nội dung của class SeedData sẽ là các đối tượng chứa dữ liệu mẫu, để thêm vào database nếu trong database chưa có dữ liệu (tham khảo source code để có data mẫu đầy đủ)

Mở tập tin Startup.cs, thêm vào hàm Configure

Nhấn F5, để build và chạy ứng dụng web trên localhost.

Từ SQL Server Object Explorer chuột phải vào Table Contact và chọn View Data, bạn sẽ thấy database đã được thêm vào:

step-7-databaseBước 5: Tạo Controller

Chúng ta sẽ tạo một API controller đơn giản, chứa một action ứng với phương thức GET để trả về danh sách Contact trong database.

Đầu tiên thêm một class trên là ContactsController trong thư mục Controllers
step-8-create-controller

Class ContactsController có nội dung như sau:

Nhấn F5, để build và chạy ứng dụng web trên localhost, sau đó trỏ tới API api/contacts, bạn sẽ được kết quả tương tự như sau:
step-10-test-localhost
Bước 6: Publish lên Azure Web App.

Vào menu Build chọn Publish, chọn profile Azure Web Deploy  mà ta đã cấu hình ở bài đầu (bạn có thể tạo mới theo cách tương tự), ở mục Settings, phần Entity Framework Migrations bạn chọn lựa chọn Apply this migration on publish, kiểm tra lại ConnectionString trên Server Web App, và nhấn Publish
step-11-pre-publish-data Sau khi publish thành công thì bạn có thể truy cập API trên Azure tương ứng như sau step-13-api-now-online

Tham khảo