AWAS เป็นแพ็คเกจการสร้างโค้ดที่เรียบง่ายและเน้นความคิดเห็นสำหรับ ASP.NET ที่สร้างขึ้นบน T4Scaffolding AWAS ช่วยให้คุณสร้างต้นแบบมาตรฐานสำหรับตัวควบคุม Web API บริการ และคลังเก็บข้อมูลได้อย่างรวดเร็วตามโมเดลเอนทิตีที่ให้มา
GitHub
นูเก็ต
T4นั่งร้าน (≥ 1.0.8)
เปิด หน้าต่างคอนโซลตัวจัดการแพ็คเกจ :
Tools > Library Package Manager > Package Manager Console
รันคำสั่งต่อไปนี้:
Install-Package ASP.NET.WebApiScaffolding
คำสั่งทั้งหมดถูกดำเนินการใน Package Manager Console หลังการติดตั้ง
####เพื่อสร้าง Web API Controller สำหรับ Student
Scaffold WebApiController Student
* สิ่งนี้จะสร้าง DbContext และบริการสำหรับ Student
โดยอัตโนมัติ หากต้องการปิดใช้งานพฤติกรรมดังกล่าว ให้ใช้แฟล็ก -NoChildItems
* Web API Controller และรายการย่อยทั้งหมดที่สร้างขึ้นจะขึ้นอยู่กับรูปแบบเลเยอร์บริการ เพื่อสร้างตามรูปแบบพื้นที่เก็บข้อมูลแทน ให้ใช้แฟล็ก -Repository
####เพื่อสร้างบริการสำหรับ Student
Scaffold Service Student
* ดังข้างต้น.
####เพื่อสร้างพื้นที่เก็บข้อมูลสำหรับ Student
Scaffold Repository Student
* เห็นได้ชัดว่าคำสั่งนี้ไม่มีแฟล็ก -Repository
####ธงเสริม
ธง | พฤติกรรม |
---|---|
-Repository | เปลี่ยนไปใช้รูปแบบพื้นที่เก็บข้อมูลสำหรับตัวอย่างที่สร้างขึ้น |
-NoChildItems | อย่าสร้างการขึ้นต่อกันอื่นใดโดยอัตโนมัติ |
-Force | เขียนทับไฟล์ที่มีอยู่หากมีอยู่ |
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]
สมมติว่าเรากำลังทำงานกับโมเดลที่เรียกว่า Student
AWAS จะสร้างสำเร็จรูปตาม Service Layer Pattern สำหรับโมเดลที่กำหนด สแต็กจะเป็นดังนี้:
StudentController |
---|
บริการนักศึกษา |
หรือคุณสามารถเพิ่มแฟล็ก -Repository
เพื่อสร้าง boileretplate ตามรูปแบบ Repository โดยสแต็กจะเป็นดังนี้:
StudentController |
---|
บริการนักศึกษา |
พื้นที่เก็บข้อมูลนักศึกษา |
Project/
...
Controllers/
StudentController.cs
CourseController.cs
...
DataAccessLayer/
ProjectContext.cs
ProjectInitializer.cs
Repositories/
StudentRepository.cs
CourseRepository.cs
...
Services/
StudentService.cs
CourseService.cs
...
...
เนื่องจากแพ็คเกจถูกสร้างขึ้นบน T4Scaffolding เราจึงสามารถใช้ประโยชน์จาก CustomScaffolder
และ CustomTemplate
ที่ T4Scaffolding มอบให้ได้
####นั่งร้านแบบกำหนดเอง โครงนั่งร้านแบบกำหนดเองช่วยให้เราสามารถสร้างโครงหม้อต้มแบบกำหนดเองได้ เพื่อให้เราสามารถสร้างหม้อต้มแบบเดียวกันได้อย่างง่ายดาย
หากต้องการสร้าง scaffolder แบบกำหนดเองให้เรียก Foo
:
Scaffold CustomScaffolder Foo
โฟลเดอร์จะถูกสร้างขึ้น:
Project/
...
CodeTemplates/
Scaffolders/
Foo/
Foo.ps1
FooTemplate.cs.t4
...
ตอนนี้คุณสามารถปรับแต่ง Foo.ps1
และ FooTemplate.cs.t4
ตามความต้องการของคุณได้แล้ว หากต้องการใช้ scaffolder แบบกำหนดเองที่สร้างขึ้นใหม่ ให้รัน:
Scaffold Foo [flags]
####เทมเพลตแบบกำหนดเอง เทมเพลตแบบกำหนดเองช่วยให้เราสามารถใช้โครงนั่งร้านที่มีอยู่ซึ่งมาพร้อมกับ T4Scaffolding และ AWAS ซ้ำได้ แต่มีสไตล์เทมเพลตที่คุณเลือก
วิธีสร้างเทมเพลตที่กำหนดเองสำหรับ WebApiController
:
Scaffold CustomTemplate WebApiController WebApiControllerTemplate
โฟลเดอร์จะถูกสร้างขึ้น:
Project/
...
CodeTemplates/
Scaffolders/
WebApiController/
WebApiControllerTemplate.cs.t4
...
ตอนนี้คุณสามารถปรับแต่ง WebApiControllerTemplate.cs.t4
ตามความต้องการของคุณได้แล้ว As long as the custom template exists in the folder, the package will use your template for all WebApiController scaffolded:
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
ทรัพยากรบางส่วนที่ฉันใช้ระหว่างทาง...
ประเภท 'ObjectContent`1' ล้มเหลวในการทำให้เนื้อหาการตอบกลับเป็นอนุกรมสำหรับประเภทเนื้อหา 'applicationxml; ชุดอักขระ=utf-8'
หากคุณได้รับข้อความแสดงข้อยกเว้นนี้ ให้เพิ่มส่วนย่อยต่อไปนี้ลงใน App_Start/WebApiConfig.cs
> Register()
แล้วรีสตาร์ท
var json = config . Formatters . JsonFormatter ;
json . SerializerSettings . PreserveReferencesHandling = Newtonsoft . Json . PreserveReferencesHandling . Objects ;
config . Formatters . Remove ( config . Formatters . XmlFormatter ) ;
แพคเกจได้รับแรงบันดาลใจจาก MvcScaffolding สามารถดูได้ในรูปแบบ Web API เวอร์ชันอะซิงโครนัส แต่มีมุมมองที่แสดงความคิดเห็นในแง่ของเลเยอร์และโครงสร้างโฟลเดอร์