Công cụ tạo mã ASP.NET Core (aspnet-codegenerator)
Lệnh dotnet aspnet-codegenerator chạy công cụ scaffolding (tạo khung mã) của ASP.NET Core. Việc chạy lệnh dotnet aspnet-codegenerator là bắt buộc khi scaffold (tạo khung) từ dòng lệnh hoặc khi sử dụng Visual Studio Code. Lệnh này không cần thiết khi dùng scaffolding với Visual Studio, vì Visual Studio đã bao gồm scaffolding engine (công cụ tạo khung) theo mặc định.
Cài đặt và cập nhật công cụ tạo mã
Cài đặt .NET SDK.
dotnet aspnet-codegenerator là một global tool (công cụ toàn cục) phải được cài đặt riêng. Lệnh sau cài đặt phiên bản ổn định mới nhất của công cụ tạo mã ASP.NET Core:
dotnet tool install -g dotnet-aspnet-codegenerator
Lưu ý: Theo mặc định, kiến trúc của các file nhị phân .NET được cài đặt khớp với kiến trúc hệ điều hành đang chạy. Để chỉ định kiến trúc khác, xem cách sử dụng lệnh dotnet tool install với tùy chọn --arch.
Nếu công cụ đã được cài đặt, lệnh sau cập nhật công cụ lên phiên bản ổn định mới nhất:
dotnet tool update -g dotnet-aspnet-codegenerator
Gỡ cài đặt công cụ tạo mã
Đôi khi cần gỡ cài đặt công cụ tạo mã ASP.NET Core để giải quyết sự cố. Ví dụ: nếu bạn đã cài đặt phiên bản preview, hãy gỡ cài đặt trước khi cài đặt phiên bản chính thức.
Các lệnh sau gỡ cài đặt công cụ tạo mã và cài đặt lại phiên bản ổn định mới nhất:
dotnet tool uninstall -g dotnet-aspnet-codegenerator dotnet tool install -g dotnet-aspnet-codegenerator
Cú pháp tổng quát
dotnet aspnet-codegenerator [arguments] [-b|--build-base-path] [-c|--configuration] [-n|--nuget-package-dir] [--no-build] [-p|--project] [-tfm|--target-framework] dotnet aspnet-codegenerator [-h|--help]
Mô tả
Lệnh toàn cục dotnet aspnet-codegenerator chạy công cụ tạo mã và scaffolding engine của ASP.NET Core.
Đối số
generator
Generator (bộ tạo mã) cần chạy. Các generator có sẵn được liệt kê trong bảng sau:
| Generator | Thao tác |
|---|---|
area | Scaffold một area (khu vực). |
blazor | Scaffold các trang Blazor CRUD (tạo, đọc, cập nhật, xóa, danh sách). |
blazor-identity | Tạo các file Blazor Identity. |
controller | Scaffold một controller (bộ điều khiển). |
identity | Scaffold Identity (xác thực người dùng). |
minimalapi | Tạo file endpoints với các API endpoint CRUD cho model và database context tùy chọn. |
razorpage | Scaffold các Razor Pages (trang Razor). |
view | Scaffold một view (giao diện). |
Tùy chọn
-b|--build-base-path
Đường dẫn cơ sở cho build.
-c|--configuration {Debug|Release}
Định nghĩa cấu hình build. Giá trị mặc định là Debug.
-h|--help
In hướng dẫn ngắn cho lệnh.
-n|--nuget-package-dir
Chỉ định thư mục gói NuGet.
--no-build
Không build project trước khi chạy. Truyền --no-build cũng ngầm bật cờ --no-restore.
-p|--project <PATH>
Chỉ định đường dẫn đến file project để chạy (tên thư mục hoặc đường dẫn đầy đủ). Nếu không chỉ định, công cụ mặc định sử dụng thư mục hiện tại.
-tfm|--target-framework
Framework (nền tảng) mục tiêu cần sử dụng.
Tùy chọn cho từng Generator
Tùy chọn Area
Cách dùng: dotnet aspnet-codegenerator area {TÊN AREA}
Placeholder {TÊN AREA} là tên area cần tạo.
Lệnh trên tạo ra các thư mục sau:
Areas{TÊN AREA}ControllersDataModelsViews
Dùng tùy chọn -h|--help để xem trợ giúp:
dotnet aspnet-codegenerator area -h
Tùy chọn Blazor
Razor components (thành phần Razor) có thể được scaffold riêng lẻ cho ứng dụng Blazor bằng cách chỉ định tên template cần dùng. Các template được hỗ trợ:
EmptyCreateEditDeleteDetailsListCRUD: Tạo ra các componentCreate,Edit,Delete,DetailsvàIndex(List).
Các tùy chọn của generator blazor:
| Tùy chọn | Mô tả | |
|---|---|---|
| `-dbProvider | --databaseProvider` | Database provider (nhà cung cấp cơ sở dữ liệu) cần dùng. Gồm sqlserver (mặc định), sqlite, cosmos, hoặc postgres. |
| `-dc | --dataContext` | Lớp database context cần dùng. |
| `-m | --model` | Lớp model cần dùng. |
| `-ns | --namespaceName` | Chỉ định namespace cho file Endpoints được tạo ra. |
| `--relativeFolderPath | -outDir` | Đường dẫn thư mục output tương đối. Nếu không chỉ định, file sẽ được tạo trong thư mục project. |
Ví dụ sau tạo một component Edit (Edit.razor) trong thư mục Components/Pages/MoviePages:
dotnet aspnet-codegenerator blazor Edit -dbProvider sqlite -dc BlazorWebAppMovies.Data.BlazorWebAppMoviesContext -m Movie -outDir Components/Pages
Tùy chọn Blazor Identity
Scaffold các Razor component Identity vào ứng dụng Blazor với generator blazor-identity.
| Tùy chọn | Mô tả | ||
|---|---|---|---|
| `-dbProvider | --databaseProvider` | Database provider cần dùng. Gồm sqlserver (mặc định) và sqlite. | |
| `-dc | --dataContext` | Lớp database context cần dùng. | |
| `-f | --force` | Ghi đè các file hiện có. | |
| `-fi | --files` | Danh sách các file cần scaffold, phân cách bởi dấu chấm phẩy. | |
| `-lf | --listFiles` | Liệt kê các file có thể scaffold bằng tùy chọn `-fi | --files`. |
| `-rn | --rootNamespace` | Root namespace để tạo mã Identity. | |
| `-u | --userClass` | Tên lớp user cần tạo. |
Tùy chọn Controller
Các tùy chọn chung:
| Tùy chọn | Mô tả | |
|---|---|---|
| `-b | --bootstrapVersion` | Chỉ định phiên bản Bootstrap và tạo thư mục wwwroot cho Bootstrap assets nếu chưa có. |
| `-dbProvider | --databaseProvider` | Database provider cần dùng. Gồm sqlserver (mặc định), sqlite, cosmos, postgres. |
| `-dc | --dataContext` | Lớp database context cần dùng hoặc tên lớp cần tạo. |
| `-f | --force` | Ghi đè các file hiện có. |
| `-l | --layout` | Trang layout tùy chỉnh cần dùng. |
| `-m | --model` | Lớp model cần dùng. |
| `-outDir | --relativeFolderPath` | Đường dẫn thư mục output tương đối. |
| `-scripts | --referenceScriptLibraries` | Thêm tham chiếu thư viện script vào các view được tạo. |
| `-sqlite | --useSqlite` | Cờ để chỉ định dùng SQLite thay vì SQL Server. |
| `-udl | --useDefaultLayout` | Dùng layout mặc định cho các view. |
Các tùy chọn riêng cho controller:
| Tùy chọn | Mô tả | |
|---|---|---|
| `-actions | --readWriteActions` | Tạo controller với các action đọc/ghi mà không cần model. |
| `-api | --restWithNoViews` | Tạo controller với REST style API. noViews được giả định và các tùy chọn liên quan đến view bị bỏ qua. |
| `-async | --useAsyncActions` | Tạo các controller action bất đồng bộ. |
| `-name | --controllerName` | Tên của controller. |
| `-namespace | --controllerNamespace` | Chỉ định namespace cho controller được tạo. |
| `-nv | --noViews` | Không tạo view. |
dotnet aspnet-codegenerator controller -h
Tùy chọn Identity
Xem thêm: Scaffold Identity trong các project ASP.NET Core.
Tùy chọn Minimal API
Scaffold backend Minimal API với template minimalapi.
| Tùy chọn | Mô tả | |
|---|---|---|
| `-dbProvider | --databaseProvider` | Database provider cần dùng. Gồm sqlserver (mặc định), sqlite, cosmos, hoặc postgres. |
| `-dc | --dataContext` | Lớp database context cần dùng. |
| `-e | --endpoints` | Lớp endpoints cần dùng (không phải tên file). |
| `-m | --model` | Lớp model cần dùng. |
| `-namespace | --endpointsNamespace` | Chỉ định namespace cho file endpoints được tạo. |
| `-o | --open` | Bật OpenAPI. |
| `-outDir | --relativeFolderPath` | Đường dẫn thư mục output tương đối. |
| `-sqlite | --useSqlite` | Cờ để chỉ định dùng SQLite thay vì SQL Server. |
Ví dụ sau tạo lớp endpoints tên SpeakersEndpoints với các API endpoint ánh xạ đến database operations:
dotnet aspnet-codegenerator minimalapi -dc ApplicationDbContext -e SpeakerEndpoints -m BackEnd.Models.Speaker -o
Tùy chọn Razor Page
Razor Pages có thể được scaffold riêng lẻ bằng cách chỉ định tên trang mới và template cần dùng. Các template được hỗ trợ:
EmptyCreateEditDeleteDetailsList
Các tùy chọn riêng cho razorpage:
| Tùy chọn | Mô tả | |
|---|---|---|
| `-namespace | --namespaceName` | Tên namespace cho lớp PageModel được tạo. |
| `-npm | --noPageModel` | Không tạo lớp PageModel cho template Empty. |
| `-partial | --partialView` | Tạo một partial view (view con). |
Ví dụ sau dùng template Edit để tạo CustomEditPage.cshtml và CustomEditPage.cshtml.cs trong thư mục Pages/Movies:
dotnet aspnet-codegenerator razorpage CustomEditPage Edit -dc RazorPagesMovieContext -m Movie -outDir Pages/Movies
Tùy chọn View
Views có thể được scaffold riêng lẻ bằng cách chỉ định tên view và template. Các template được hỗ trợ:
EmptyCreateEditDeleteDetailsList
Các tùy chọn riêng cho view:
| Tùy chọn | Mô tả | |
|---|---|---|
| `-namespace | --controllerNamespace` | Chỉ định namespace cho controller được tạo. |
| `-partial | --partialView` | Tạo một partial view. |
Ví dụ sau dùng template Edit để tạo CustomEditView.cshtml trong thư mục Views/Movies:
dotnet aspnet-codegenerator view CustomEditView Edit -dc MovieContext -m Movie -outDir Views/Movies