本書假設(shè)讀者已經(jīng)熟悉C#和ASP.NET Core的開發(fā),并且對Entity Framework Core框架和關(guān)系型數(shù)據(jù)庫有所了解。
本書通過開發(fā)一個經(jīng)過簡化的物流管理信息系統(tǒng)(TPLMS),介紹使用ASP.NET Core MVC應(yīng)用程序框架的開發(fā)技術(shù)。MVC將一個Web應(yīng)用分解為Model、View和Controller,有助于管理復(fù)雜的應(yīng)用程序,簡化分組開發(fā),使得復(fù)雜項目更易維護。全書共分11章,以符合初學者的思維方式,同時結(jié)合實際項目詳細介紹如何基于ASP.NET Core MVC來構(gòu)建管理信息系統(tǒng),以及完成開發(fā)、測試、部署等各個工作環(huán)節(jié)。書中的系統(tǒng)主要采用三層結(jié)構(gòu)并結(jié)合DDD進行開發(fā)。本書的重點是ASP.NET Core MVC和EasyUI的編程技巧,即功能代碼的實現(xiàn)過程。通過本書的學習,讀者可以掌握ASP.NET Core MVC、EasyUI和EF Core的開發(fā)技術(shù)。
本書適合ASP.NET Core MVC開發(fā)初學者閱讀,也適合有一定基礎(chǔ)的ASP.NET Core MVC開發(fā)人員進行經(jīng)驗積累,同時還適合作為社會相關(guān)領(lǐng)域培訓班的教材。
自2000年6月微軟公司提出.NET戰(zhàn)略,經(jīng)過16年的推廣之后,在2016年推出了升級版.NET Core。
ASP.NET Core是微軟公司推出的一個開源跨平臺框架,用于構(gòu)建Web應(yīng)用、IoT應(yīng)用和移動后端應(yīng)用。ASP.NET Core應(yīng)用程序可以運行于 .NET Core 和完整的 .NET Framework 之上。ASP.NET Core應(yīng)用程序可以在 Windows、Mac 和 Linux 上跨平臺地開發(fā)和運行。
目前,使用.NET開發(fā)Web應(yīng)用程序應(yīng)當首推ASP.NET Core,ASP.NET Core技術(shù)已成為Web應(yīng)用開發(fā)的主流技術(shù)之一,受到廣大Web開發(fā)人員的喜愛。ASP.NET Core 全面支持面向?qū)ο蟮脑O(shè)計思想,并提供了一個功能強大的Web應(yīng)用程序開發(fā)模式,使Web應(yīng)用程序開發(fā)變得更加直觀、簡單和高效;贏SP.NET Core 進行Web項目開發(fā)需要綜合應(yīng)用服務(wù)器標記語言(Razor)、數(shù)據(jù)庫技術(shù)(如SQL Server)和軟件工程等領(lǐng)域的知識和技能,并且需要經(jīng)過不斷的項目開發(fā)實踐,才能持續(xù)提升項目開發(fā)能力和對軟件開發(fā)的理論認識。
本書通過一個簡化的物流管理信息系統(tǒng)(TPLMS),并按照軟件項目管理的基本流程展開介紹。不過,由于本書只定位于是一本編程指南,所以并沒有把重點放在項目管理上,而是側(cè)重于開發(fā)環(huán)節(jié)中各個主要功能的實現(xiàn)。當然,讀者學習編程不僅僅是為了編出一個個獨立的小功能、小頁面,而是為了日后能夠參與到具體的項目開發(fā)中。本書按照項目管理的思路展開論述,給讀者提供了一個試驗環(huán)境,讀者通過學習此完整的項目示例,可以更快地融入項目開發(fā)成員這一角色中,與筆者一起思考,共同推動項目的進展。
全書共分11章。
第1章介紹項目背景,說明為什么需要物流管理信息系統(tǒng),這個管理系統(tǒng)面向什么用戶,需要提供哪些功能等基本問題,并通過繪制流程圖來分析物流管理信息系統(tǒng)的各個主要功能模塊。
第2~10章分為構(gòu)建TPLMS管理系統(tǒng)、用戶管理、模塊管理、權(quán)限管理、訂單管理、貨物管理、送貨單管理、入庫單管理、出庫單管理幾大功能模塊進行介紹。由于本項目為一簡化的物流管理信息系統(tǒng),功能相對簡單,且無須考慮擴展性,因此對數(shù)據(jù)校驗不太嚴謹。系統(tǒng)主要使用SQL Server作為數(shù)據(jù)源,并應(yīng)用了DDD的部分設(shè)計思路。
第11章介紹日志記錄與項目部署中的一些注意事項。本章詳細介紹了如何在ASP.NET Core 應(yīng)用程序中集成第三方的日志組件(NLog),在ASP.NET Core應(yīng)用程序開發(fā)完成之后的獨立部署發(fā)布,以及如何部署至Linux系統(tǒng)和IIS上。
本書的目的是讓讀者掌握快速、正確編寫EF Core與ASP.NET Core MVC相結(jié)合,同時以EasyUI為前端界面的應(yīng)用程序。由于筆者能力有限,本書只能拋磚引玉,希望讀者在做項目時不要一頭鉆進編程中,前期的調(diào)研、系統(tǒng)設(shè)計和后期的項目實施都是非常重要甚至是決定項目成敗的關(guān)鍵。由于作者水平有限,書中疏漏之處在所難免,希望讀者海涵并提出寶貴意見,以期共同進步。
第1章項目實戰(zhàn)TPLMS介紹1
第2章構(gòu)建TPLMS管理系統(tǒng)8
2.1基礎(chǔ)準備8
2.1.1開發(fā)環(huán)境要求8
2.1.2搭建TPLMS項目8
2.1.3給數(shù)據(jù)庫添加初始數(shù)據(jù)13
2.1.4用Autofac替換內(nèi)置的DI框架19
2.2項目組織結(jié)構(gòu)23
2.2.1總體架構(gòu)23
2.2.2前端框架24
2.3公共類設(shè)計25
2.3.1返回值類26
2.3.2業(yè)務(wù)操作的接口27
2.3.3基本數(shù)據(jù)庫操作類28
2.3.4控制器基類31
2.4網(wǎng)站首頁設(shè)計35
2.5網(wǎng)站首頁概述35
2.6網(wǎng)站首頁流程分析36
2.7網(wǎng)站首頁實現(xiàn)過程36
2.7.1Login.cshmtl頁面36
2.7.2接口IUserRepository38
2.7.3UserRepository類39
2.7.4登錄服務(wù) AuthoriseService40
2.7.5HomeController類42
第3章用戶管理46
3.1基礎(chǔ)準備46
3.2用戶管理頁設(shè)計46
3.3用戶管理概述46
3.4用戶管理流程分析46
3.5用戶管理實現(xiàn)過程47
3.5.1Index.cshmtl頁面47
3.5.2用戶管理前端功能53
3.5.3UserRepository類60
3.5.4用戶服務(wù)類UserService62
3.5.5UserMgrController類64
3.6測試用戶管理功能65
第4章模塊管理70
4.1模塊管理頁設(shè)計70
4.2模塊管理的主要功能70
4.3模塊管理概述70
4.4模塊管理流程分析71
4.5模塊管理實現(xiàn)過程71
4.5.1Index.cshmtl頁面71
4.5.2Module類76
4.5.3模塊管理前端功能腳本文件78
4.5.4ModuleJson類85
4.5.5IModuleRepository接口86
4.5.6ModuleRepository類86
4.5.7模塊服務(wù)類ModuleService87
4.5.8ModuleMgrController類89
第5章權(quán)限管理93
5.1概述93
5.2名詞解釋94
5.3權(quán)限管理系統(tǒng)的基本架構(gòu)95
5.4用例解讀95
5.5數(shù)據(jù)庫表的設(shè)計98
5.6權(quán)限設(shè)計示例101
5.6.1創(chuàng)建TPLMS系統(tǒng)主界面102
5.6.2接口類IRelationsRepository109
5.6.3RelationsRepository類110
5.6.4服務(wù)類RelationsService112
5.6.5修改模塊管理功能115
5.6.6添加給用戶分配角色和分配模塊的腳本116
5.6.7添加給用戶分配角色和分配模塊的前端頁面代碼121
5.6.8UserMgrController類122
5.6.9效果預(yù)覽123
5.7權(quán)限模塊介紹124
5.7.1主界面功能介紹124
5.7.2用戶管理125
5.7.3角色管理125
5.7.4模塊管理126
第6章訂單管理127
6.1訂單管理介紹127
6.2訂單管理頁面功能127
6.3訂單管理流程分析128
6.4訂單管理實現(xiàn)過程128
6.4.1Index.cshmtl頁面128
6.4.2訂單管理前端功能131
6.4.3文件上傳管理類139
6.4.4實體類142
6.4.5PurchaseOrderRepository類144
6.4.6PurchaseOrderDetailRepository類145
6.4.7服務(wù)類PurchaseOrderService146
6.4.8服務(wù)類PurchaseOrderDetailService149
6.4.9POMgrController類154
6.5安裝NPOI包159
6.6測試訂單管理功能168
第7章貨物管理173
7.1貨物管理介紹173
7.2貨物管理頁面功能173
7.3貨物管理流程分析174
7.4貨物管理實現(xiàn)過程174
7.4.1Index.cshmtl頁面174
7.4.2貨物管理前端功能179
7.4.3實體類186
7.4.4CargoRepository類188
7.4.5服務(wù)類CargoService189
7.4.6CargoMgrController類191
7.5測試貨物管理功能193
第8章送貨單管理195
8.1送貨單管理介紹195
8.2送貨單管理頁面功能195
8.3送貨單管理流程分析196
8.4送貨單管理實現(xiàn)過程196
8.4.1Index.cshmtl頁面196
8.4.2送貨單管理前端功能202
8.4.3實體類216
8.4.4DeliveryOrderRepository類219
8.4.5DeliveryOrderDetailRepository類221
8.4.6服務(wù)類DeliveryOrderService222
8.4.7服務(wù)類DeliveryOrderDetailService226
8.4.8DOMgrController類230
8.5測試送貨單管理功能235
第9章入庫單管理238
9.1入庫單管理介紹238
9.2入庫單管理頁面功能238
9.3入庫單管理流程分析238
9.4入庫單管理實現(xiàn)過程239
9.4.1Index.cshmtl頁面239
9.4.2入庫單管理前端功能245
9.4.3實體類262
9.4.4InStockOrderRepository類266
9.4.5InStockOrderDetailRepository類268
9.4.6InStockOrderDetailLocRepository類271
9.4.7服務(wù)類InStockOrderService273
9.4.8服務(wù)類InStockOrderDetailService277
9.4.9服務(wù)類InStockOrderDetailLocService280
9.4.10InStockMgrController類283
9.5測試入庫單管理功能288
第10章出庫單管理292
10.1出庫單管理介紹292
10.2出庫單管理頁面功能292
10.3出庫單管理流程分析293
10.4出庫單管理實現(xiàn)過程293
10.4.1Index.cshmtl頁面294
10.4.2出庫單管理前端功能301
10.4.3實體類315
10.4.4OutStockOrderRepository類319
10.4.5OutStockOrderDetailRepository類321
10.4.6服務(wù)類OutStockOrderService322
10.4.7服務(wù)類OutStockOrderDetailService326
10.4.8OutStockMgrController類330
10.5測試出庫單管理功能335
第11章日志與部署337
11.1添加NLog插件337
11.1.1通過NuGet安裝337
11.1.2下載相關(guān)的插件337
11.1.3NLog配置文件338
11.1.4手動創(chuàng)建NLog配置文件338
11.1.5修改NLog.config配置文件339
11.1.6修改Startup.cs文件340
11.1.7修改Program.cs文件342
11.1.8使用NLog343
11.1.9運行程序344
11.2本地部署345
11.2.1命令行發(fā)布345
11.2.2Visual Studio圖形界面操作346
11.2.3本地運行測試348
11.3IIS部署349
11.3.1創(chuàng)建IIS站點349
11.3.2瀏覽網(wǎng)站354
11.4部署至Linux355
11.4.1準備工作355
11.4.2環(huán)境配置和啟動測試355
參考文獻357