AWAS adalah paket pembuatan kode sederhana dan berpendirian keras untuk ASP.NET yang dibangun di atas T4Scaffolding. AWAS memungkinkan Anda dengan cepat melakukan scaffold boilerplate standar untuk Pengontrol API Web, Layanan, Repositori berdasarkan model Entitas yang disediakan.
GitHub
NuGet
Perancah T4 (≥ 1.0.8)
Buka Jendela Konsol Manajer Paket :
Tools > Library Package Manager > Package Manager Console
Jalankan perintah berikut:
Install-Package ASP.NET.WebApiScaffolding
Semua perintah dijalankan di Package Manager Console setelah instalasi.
####Untuk menghasilkan Pengontrol API Web untuk Student
Scaffold WebApiController Student
* Ini juga akan secara otomatis menghasilkan DbContext dan Service untuk Student
, untuk menonaktifkan perilaku tersebut gunakan flag -NoChildItems
.
* Pengontrol API Web dan semua item anak yang dihasilkan didasarkan pada Pola Lapisan Layanan, untuk menghasilkan berdasarkan Pola Repositori, gunakan tanda -Repository
.
####Untuk menghasilkan Layanan untuk Student
Scaffold Service Student
* Seperti di atas.
####Untuk membuat Repositori untuk Student
Scaffold Repository Student
* Perintah ini jelas tidak memiliki flag -Repository
####Bendera Opsional
Bendera | Perilaku |
---|---|
-Repository | Beralih ke Pola Repositori untuk boilerplate yang dihasilkan |
-NoChildItems | Jangan membuat dependensi lain secara otomatis |
-Force | Timpa file yang ada jika ada |
Scaffold WebApiController [-Project] [-CodeLanguage] [-DbContextType] [-Area] [-NoChildItems] [-Repository] [-TemplateFolders] [-Force]
Scaffold Service [-Project] [-CodeLanguage] [-DbContextType] [-Area] [-NoChildItems] [-Repository] [-TemplateFolders] [-Force]
Scaffold Repository [-Project] [-CodeLanguage] [-DbContextType] [-Area] [-NoChildItems] [-TemplateFolders] [-Force]
Scaffold DbContext [-Project] [-CodeLanguage] [-DbContextType] [-Area] [-NoChildItems] [-TemplateFolders] [-Force]
[-optional flag]
Dengan asumsi kita bekerja dengan model bernama Student
, AWAS akan menghasilkan boilerplate berdasarkan Pola Lapisan Layanan. Untuk model tertentu, tumpukannya adalah sebagai berikut:
Pengontrol Siswa |
---|
Layanan Mahasiswa |
Alternatifnya, Anda dapat menambahkan flag -Repository
untuk menghasilkan pelat rebus berdasarkan Pola Repositori, tumpukannya akan seperti berikut:
Pengontrol Siswa |
---|
Layanan Mahasiswa |
Repositori Siswa |
Project/
...
Controllers/
StudentController.cs
CourseController.cs
...
DataAccessLayer/
ProjectContext.cs
ProjectInitializer.cs
Repositories/
StudentRepository.cs
CourseRepository.cs
...
Services/
StudentService.cs
CourseService.cs
...
...
Karena paket ini dibuat di atas T4Scaffolding, kita dapat memanfaatkan CustomScaffolder
dan CustomTemplate
yang disediakan T4Scaffolding.
####Scaffolder Kustom Scaffolder kustom memungkinkan kita membuat scaffolder boilerplate kustom sehingga kita dapat menghasilkan boilerplate yang sama dengan mudah.
Untuk menghasilkan panggilan perancah khusus Foo
:
Scaffold CustomScaffolder Foo
Folder akan dibuat:
Project/
...
CodeTemplates/
Scaffolders/
Foo/
Foo.ps1
FooTemplate.cs.t4
...
Anda sekarang dapat menyesuaikan Foo.ps1
dan FooTemplate.cs.t4
dengan kebutuhan Anda. Untuk menggunakan scaffolder khusus yang baru Anda buat, jalankan:
Scaffold Foo [flags]
####Templat Khusus Templat khusus memungkinkan kami menggunakan kembali scaffolder yang ada yang disertakan dengan T4Scaffolding dan AWAS tetapi dengan gaya templat pilihan Anda.
Untuk menghasilkan Templat khusus untuk WebApiController
:
Scaffold CustomTemplate WebApiController WebApiControllerTemplate
Folder akan dibuat:
Project/
...
CodeTemplates/
Scaffolders/
WebApiController/
WebApiControllerTemplate.cs.t4
...
Anda sekarang dapat menyesuaikan WebApiControllerTemplate.cs.t4
dengan kebutuhan Anda. Selama templat kustom ada di folder, paket akan menggunakan templat Anda untuk semua scaffold WebApiController:
Scaffold WebApiController [flags]
Scaffold CustomTemplate WebApiController WebApiControllerTemplate
Scaffold CustomTemplate Service ServiceWithContextTemplate
Scaffold CustomTemplate Service ServiceWithRepositoryTemplate
Scaffold CustomTemplate Repository RepositoryTemplate
Scaffold CustomTemplate Initializer InitializerTemplate
Scaffold CustomTemplate DbContext DbContextTemplate
Scaffold CustomTemplate DbContext DbContextEntityMemberTemplate
Beberapa sumber daya yang saya gunakan selama ini...
Tipe 'ObjectContent`1' gagal membuat serialisasi isi respons untuk tipe konten 'applicationxml; rangkaian karakter=utf-8'.
Jika Anda mendapatkan pesan pengecualian ini, tambahkan cuplikan berikut ke App_Start/WebApiConfig.cs
> Register()
, mulai ulang.
var json = config . Formatters . JsonFormatter ;
json . SerializerSettings . PreserveReferencesHandling = Newtonsoft . Json . PreserveReferencesHandling . Objects ;
config . Formatters . Remove ( config . Formatters . XmlFormatter ) ;
Paket ini terinspirasi oleh MvcScaffolding. Ini dapat dilihat sebagai API Web, versi asinkron tetapi dengan beberapa perspektif pendapat dalam hal lapisan dan struktur folder.