本書假設(shè)讀者已經(jīng)熟悉C#和ASP.NET Core的開發(fā),并且對(duì)Entity Framework Core框架和關(guān)系型數(shù)據(jù)庫(kù)有所了解。
本書通過開發(fā)一個(gè)經(jīng)過簡(jiǎn)化的物流管理信息系統(tǒng)(TPLMS),介紹使用ASP.NET Core MVC應(yīng)用程序框架的開發(fā)技術(shù)。MVC將一個(gè)Web應(yīng)用分解為Model、View和Controller,有助于管理復(fù)雜的應(yīng)用程序,簡(jiǎn)化分組開發(fā),使得復(fù)雜項(xiàng)目更易維護(hù)。全書共分11章,以符合初學(xué)者的思維方式,同時(shí)結(jié)合實(shí)際項(xiàng)目詳細(xì)介紹如何基于ASP.NET Core MVC來構(gòu)建管理信息系統(tǒng),以及完成開發(fā)、測(cè)試、部署等各個(gè)工作環(huán)節(jié)。書中的系統(tǒng)主要采用三層結(jié)構(gòu)并結(jié)合DDD進(jìn)行開發(fā)。本書的重點(diǎn)是ASP.NET Core MVC和EasyUI的編程技巧,即功能代碼的實(shí)現(xiàn)過程。通過本書的學(xué)習(xí),讀者可以掌握ASP.NET Core MVC、EasyUI和EF Core的開發(fā)技術(shù)。
本書適合ASP.NET Core MVC開發(fā)初學(xué)者閱讀,也適合有一定基礎(chǔ)的ASP.NET Core MVC開發(fā)人員進(jìn)行經(jīng)驗(yàn)積累,同時(shí)還適合作為社會(huì)相關(guān)領(lǐng)域培訓(xùn)班的教材。
自2000年6月微軟公司提出.NET戰(zhàn)略,經(jīng)過16年的推廣之后,在2016年推出了升級(jí)版.NET Core。
ASP.NET Core是微軟公司推出的一個(gè)開源跨平臺(tái)框架,用于構(gòu)建Web應(yīng)用、IoT應(yīng)用和移動(dòng)后端應(yīng)用。ASP.NET Core應(yīng)用程序可以運(yùn)行于 .NET Core 和完整的 .NET Framework 之上。ASP.NET Core應(yīng)用程序可以在 Windows、Mac 和 Linux 上跨平臺(tái)地開發(fā)和運(yùn)行。
目前,使用.NET開發(fā)Web應(yīng)用程序應(yīng)當(dāng)首推ASP.NET Core,ASP.NET Core技術(shù)已成為Web應(yīng)用開發(fā)的主流技術(shù)之一,受到廣大Web開發(fā)人員的喜愛。ASP.NET Core 全面支持面向?qū)ο蟮脑O(shè)計(jì)思想,并提供了一個(gè)功能強(qiáng)大的Web應(yīng)用程序開發(fā)模式,使Web應(yīng)用程序開發(fā)變得更加直觀、簡(jiǎn)單和高效。基于ASP.NET Core 進(jìn)行Web項(xiàng)目開發(fā)需要綜合應(yīng)用服務(wù)器標(biāo)記語(yǔ)言(Razor)、數(shù)據(jù)庫(kù)技術(shù)(如SQL Server)和軟件工程等領(lǐng)域的知識(shí)和技能,并且需要經(jīng)過不斷的項(xiàng)目開發(fā)實(shí)踐,才能持續(xù)提升項(xiàng)目開發(fā)能力和對(duì)軟件開發(fā)的理論認(rèn)識(shí)。
本書通過一個(gè)簡(jiǎn)化的物流管理信息系統(tǒng)(TPLMS),并按照軟件項(xiàng)目管理的基本流程展開介紹。不過,由于本書只定位于是一本編程指南,所以并沒有把重點(diǎn)放在項(xiàng)目管理上,而是側(cè)重于開發(fā)環(huán)節(jié)中各個(gè)主要功能的實(shí)現(xiàn)。當(dāng)然,讀者學(xué)習(xí)編程不僅僅是為了編出一個(gè)個(gè)獨(dú)立的小功能、小頁(yè)面,而是為了日后能夠參與到具體的項(xiàng)目開發(fā)中。本書按照項(xiàng)目管理的思路展開論述,給讀者提供了一個(gè)試驗(yàn)環(huán)境,讀者通過學(xué)習(xí)此完整的項(xiàng)目示例,可以更快地融入項(xiàng)目開發(fā)成員這一角色中,與筆者一起思考,共同推動(dòng)項(xiàng)目的進(jìn)展。
全書共分11章。
第1章介紹項(xiàng)目背景,說明為什么需要物流管理信息系統(tǒng),這個(gè)管理系統(tǒng)面向什么用戶,需要提供哪些功能等基本問題,并通過繪制流程圖來分析物流管理信息系統(tǒng)的各個(gè)主要功能模塊。
第2~10章分為構(gòu)建TPLMS管理系統(tǒng)、用戶管理、模塊管理、權(quán)限管理、訂單管理、貨物管理、送貨單管理、入庫(kù)單管理、出庫(kù)單管理幾大功能模塊進(jìn)行介紹。由于本項(xiàng)目為一簡(jiǎn)化的物流管理信息系統(tǒng),功能相對(duì)簡(jiǎn)單,且無(wú)須考慮擴(kuò)展性,因此對(duì)數(shù)據(jù)校驗(yàn)不太嚴(yán)謹(jǐn)。系統(tǒng)主要使用SQL Server作為數(shù)據(jù)源,并應(yīng)用了DDD的部分設(shè)計(jì)思路。
第11章介紹日志記錄與項(xiàng)目部署中的一些注意事項(xiàng)。本章詳細(xì)介紹了如何在ASP.NET Core 應(yīng)用程序中集成第三方的日志組件(NLog),在ASP.NET Core應(yīng)用程序開發(fā)完成之后的獨(dú)立部署發(fā)布,以及如何部署至Linux系統(tǒng)和IIS上。
本書的目的是讓讀者掌握快速、正確編寫EF Core與ASP.NET Core MVC相結(jié)合,同時(shí)以EasyUI為前端界面的應(yīng)用程序。由于筆者能力有限,本書只能拋磚引玉,希望讀者在做項(xiàng)目時(shí)不要一頭鉆進(jìn)編程中,前期的調(diào)研、系統(tǒng)設(shè)計(jì)和后期的項(xiàng)目實(shí)施都是非常重要甚至是決定項(xiàng)目成敗的關(guān)鍵。由于作者水平有限,書中疏漏之處在所難免,希望讀者海涵并提出寶貴意見,以期共同進(jìn)步。
第1章項(xiàng)目實(shí)戰(zhàn)TPLMS介紹1
第2章構(gòu)建TPLMS管理系統(tǒng)8
2.1基礎(chǔ)準(zhǔn)備8
2.1.1開發(fā)環(huán)境要求8
2.1.2搭建TPLMS項(xiàng)目8
2.1.3給數(shù)據(jù)庫(kù)添加初始數(shù)據(jù)13
2.1.4用Autofac替換內(nèi)置的DI框架19
2.2項(xiàng)目組織結(jié)構(gòu)23
2.2.1總體架構(gòu)23
2.2.2前端框架24
2.3公共類設(shè)計(jì)25
2.3.1返回值類26
2.3.2業(yè)務(wù)操作的接口27
2.3.3基本數(shù)據(jù)庫(kù)操作類28
2.3.4控制器基類31
2.4網(wǎng)站首頁(yè)設(shè)計(jì)35
2.5網(wǎng)站首頁(yè)概述35
2.6網(wǎng)站首頁(yè)流程分析36
2.7網(wǎng)站首頁(yè)實(shí)現(xiàn)過程36
2.7.1Login.cshmtl頁(yè)面36
2.7.2接口IUserRepository38
2.7.3UserRepository類39
2.7.4登錄服務(wù) AuthoriseService40
2.7.5HomeController類42
第3章用戶管理46
3.1基礎(chǔ)準(zhǔn)備46
3.2用戶管理頁(yè)設(shè)計(jì)46
3.3用戶管理概述46
3.4用戶管理流程分析46
3.5用戶管理實(shí)現(xiàn)過程47
3.5.1Index.cshmtl頁(yè)面47
3.5.2用戶管理前端功能53
3.5.3UserRepository類60
3.5.4用戶服務(wù)類UserService62
3.5.5UserMgrController類64
3.6測(cè)試用戶管理功能65
第4章模塊管理70
4.1模塊管理頁(yè)設(shè)計(jì)70
4.2模塊管理的主要功能70
4.3模塊管理概述70
4.4模塊管理流程分析71
4.5模塊管理實(shí)現(xiàn)過程71
4.5.1Index.cshmtl頁(yè)面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ù)庫(kù)表的設(shè)計(jì)98
5.6權(quán)限設(shè)計(jì)示例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添加給用戶分配角色和分配模塊的前端頁(yè)面代碼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訂單管理頁(yè)面功能127
6.3訂單管理流程分析128
6.4訂單管理實(shí)現(xiàn)過程128
6.4.1Index.cshmtl頁(yè)面128
6.4.2訂單管理前端功能131
6.4.3文件上傳管理類139
6.4.4實(shí)體類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測(cè)試訂單管理功能168
第7章貨物管理173
7.1貨物管理介紹173
7.2貨物管理頁(yè)面功能173
7.3貨物管理流程分析174
7.4貨物管理實(shí)現(xiàn)過程174
7.4.1Index.cshmtl頁(yè)面174
7.4.2貨物管理前端功能179
7.4.3實(shí)體類186
7.4.4CargoRepository類188
7.4.5服務(wù)類CargoService189
7.4.6CargoMgrController類191
7.5測(cè)試貨物管理功能193
第8章送貨單管理195
8.1送貨單管理介紹195
8.2送貨單管理頁(yè)面功能195
8.3送貨單管理流程分析196
8.4送貨單管理實(shí)現(xiàn)過程196
8.4.1Index.cshmtl頁(yè)面196
8.4.2送貨單管理前端功能202
8.4.3實(shí)體類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測(cè)試送貨單管理功能235
第9章入庫(kù)單管理238
9.1入庫(kù)單管理介紹238
9.2入庫(kù)單管理頁(yè)面功能238
9.3入庫(kù)單管理流程分析238
9.4入庫(kù)單管理實(shí)現(xiàn)過程239
9.4.1Index.cshmtl頁(yè)面239
9.4.2入庫(kù)單管理前端功能245
9.4.3實(shí)體類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測(cè)試入庫(kù)單管理功能288
第10章出庫(kù)單管理292
10.1出庫(kù)單管理介紹292
10.2出庫(kù)單管理頁(yè)面功能292
10.3出庫(kù)單管理流程分析293
10.4出庫(kù)單管理實(shí)現(xiàn)過程293
10.4.1Index.cshmtl頁(yè)面294
10.4.2出庫(kù)單管理前端功能301
10.4.3實(shí)體類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測(cè)試出庫(kù)單管理功能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手動(dòng)創(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運(yùn)行程序344
11.2本地部署345
11.2.1命令行發(fā)布345
11.2.2Visual Studio圖形界面操作346
11.2.3本地運(yùn)行測(cè)試348
11.3IIS部署349
11.3.1創(chuàng)建IIS站點(diǎn)349
11.3.2瀏覽網(wǎng)站354
11.4部署至Linux355
11.4.1準(zhǔn)備工作355
11.4.2環(huán)境配置和啟動(dòng)測(cè)試355
參考文獻(xiàn)357