国产人伦视频在线观看_欧美福利视频午夜福利_日本免费三级黄色网址_re99热在线观看精品_在线观看水蜜桃小心视频网站_亚洲国产欧美一区二区麻豆_久久精品国产69精品亚洲_农村女人一级毛片农村妇女_日韩不卡免费av_毛片无码高潮喷液视频

當(dāng)前位置:首頁 > 網(wǎng)站建設(shè) > 正文內(nèi)容

asp.netmvc不攔截html(net攔截器)

網(wǎng)站建設(shè)1年前 (2024-01-19)449

↓推薦關(guān)注↓

?前言

從實(shí)習(xí)到現(xiàn)在回想自己已經(jīng)入行四年了,很慶幸自己一直還是從事著開發(fā)的工作。

這幾年不管是工作還是生活都有很多不甘與失落還有收獲,從學(xué)校出來之后有時(shí)候覺得自己的心態(tài)受不了小小的打擊,可能就像平凡的世界中的孫少平一樣,有著一顆敏感而脆弱的自尊心。

春種一粒粟,秋收萬顆子。從2021年1月份到現(xiàn)在一直沒有更新過博客,在這個(gè)播種的季節(jié)我想我應(yīng)該要總結(jié)一下過去的技術(shù)經(jīng)驗(yàn),對(duì)自己是提升,對(duì)別人可能或多或少都有幫助。

阿里巴巴大神畢玄曾說過,"一個(gè)優(yōu)秀的工程師和一個(gè)普通工程師的區(qū)別,不是滿天飛的架構(gòu)圖,他的功底體現(xiàn)在所寫的每一行代碼上"。這句話我與諸君共思共勉!

分層目標(biāo)

大道至簡:能提高開發(fā)效率,讓剛進(jìn)公司的實(shí)習(xí)生也能快速上手CRUD

結(jié)構(gòu)清晰:不僅要遵循DIP原則(降低耦合),而且也要保證每一層或每一個(gè)類庫職責(zé)單一,減少后期維護(hù)成本

擴(kuò)展/復(fù)用:分層之后有很高的復(fù)用性和更方便的橫向擴(kuò)展性

大道至簡:能提高開發(fā)效率,讓剛進(jìn)公司的實(shí)習(xí)生也能快速上手CRUD

結(jié)構(gòu)清晰:不僅要遵循DIP原則(降低耦合),而且也要保證每一層或每一個(gè)類庫職責(zé)單一,減少后期維護(hù)成本

擴(kuò)展/復(fù)用:分層之后有很高的復(fù)用性和更方便的橫向擴(kuò)展性

傳統(tǒng)三層架構(gòu)

傳統(tǒng)的三層架構(gòu):表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層,如下圖所示:

展開全文

DDD四層架構(gòu)

基于DDD的四層架構(gòu):用戶接口層、應(yīng)用層、領(lǐng)域?qū)雍突A(chǔ)設(shè)施層,如下圖所示:

與傳統(tǒng)的三層架構(gòu)相比DDD的分層架構(gòu)將業(yè)務(wù)邏輯層拆為了應(yīng)用層與領(lǐng)域?qū)?/p>

下方左圖為傳統(tǒng)四層架構(gòu),右圖為依賴倒置后的四層架構(gòu)。應(yīng)用層與領(lǐng)域?qū)犹峁┙涌?,基礎(chǔ)設(shè)施層提供實(shí)現(xiàn)。

領(lǐng)域?qū)硬灰蕾嚾魏我粚?,只專注與業(yè)務(wù)。個(gè)人認(rèn)為基礎(chǔ)設(shè)施層迭代頻率要低于接口層,抽象程度高于表現(xiàn)層。所以讓表現(xiàn)層依賴基礎(chǔ)設(shè)施層更合適。

我的本系列博客對(duì)應(yīng)的項(xiàng)目也是基于DDD的架構(gòu)思想,當(dāng)然也會(huì)加入自己的一些想法在其中。

想學(xué)習(xí)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的同學(xué)可移步《DDD 實(shí)戰(zhàn)課》

我的本系列博客對(duì)應(yīng)的項(xiàng)目也是基于DDD的架構(gòu)思想,當(dāng)然也會(huì)加入自己的一些想法在其中。

想學(xué)習(xí)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的同學(xué)可移步《DDD 實(shí)戰(zhàn)課》

整體項(xiàng)目結(jié)構(gòu)如下方三張圖所示:

層級(jí)介紹

1、ICore.WebApi這一層主要構(gòu)建 RESTful 應(yīng)用程序,提供HTTP服務(wù)。管道中間件、過濾器、跨域、路由、模型驗(yàn)證等都在此配置。

3、ICore.Task這一層主要用于處理系統(tǒng)內(nèi)小型定時(shí)任務(wù)。繁多、復(fù)雜的定時(shí)任務(wù)建議用第三方調(diào)度平臺(tái),例如:XXL-JOB。

4、ICore.Domain.Core這一層主要用于實(shí)現(xiàn)核心的業(yè)務(wù)邏輯!內(nèi)部主要包含Entity(實(shí)體)、Domain Event(領(lǐng)域事件)、Domain Service(領(lǐng)域服務(wù))等。

5、ICore.Domain.Abstractions這一層主要用于定義一些基類的接口和領(lǐng)域事件的接口。例如:IAggregateRoot聚合根接口、IEntity、IEntity TKey 實(shí)體接口等。

6、ICore.Infrastructure.Core這一層主要對(duì)整個(gè)應(yīng)用程序提供基礎(chǔ)實(shí)現(xiàn),例如倉儲(chǔ)的實(shí)現(xiàn)、工作單元模式的實(shí)現(xiàn)、Redis緩存、隊(duì)列服務(wù)等。

7、ICore.Test這一層主要用于對(duì)整個(gè)程序的單元測(cè)試,減少不必要的BUG以及提高測(cè)試效率。

其它規(guī)范

編碼、格式規(guī)范

我強(qiáng)烈建議大家看阿里巴巴Java開發(fā)手冊(cè),以上面的規(guī)范來約束自己的編碼。

配置文件規(guī)范

全部采用json格式文件

建立映射類,使用IOptions T方式讀取配置信息

數(shù)據(jù)庫連接字符串、數(shù)據(jù)傳輸?shù)募用苊荑€等不建議寫在配置文件中,應(yīng)放到分布式配置中心中

全部采用json格式文件

建立映射類,使用IOptions T方式讀取配置信息

數(shù)據(jù)庫連接字符串、數(shù)據(jù)傳輸?shù)募用苊荑€等不建議寫在配置文件中,應(yīng)放到分布式配置中心中

加入惡意請(qǐng)求IP黑名單

防SQL注入攻擊

日志應(yīng)記錄請(qǐng)求時(shí)間、操作人ID、IP地址、是否成功等重要信息

CORS策略應(yīng)加上白名單限制

生產(chǎn)環(huán)境的接口文檔不對(duì)外暴露

加入惡意請(qǐng)求IP黑名單

防SQL注入攻擊

日志應(yīng)記錄請(qǐng)求時(shí)間、操作人ID、IP地址、是否成功等重要信息

CORS策略應(yīng)加上白名單限制

生產(chǎn)環(huán)境的接口文檔不對(duì)外暴露

首先.Net Core同Spring Boot一樣都是自宿主程序,其不是必需在IIS內(nèi)部托管。實(shí)現(xiàn)跨平臺(tái)離不開.Net Core內(nèi)置的kestrel高性能服務(wù)器,如下圖所示(圖片來自官網(wǎng)):

修改端口

1、在launchSettings.json文件中修改站點(diǎn)信息,把IIS Express節(jié)點(diǎn)刪掉

2、在appsettings.json中設(shè)置啟動(dòng)端口

"Kestrel": {

"Endpoints": {

"Https": {

"Url": "https://*:8000"

},

"Http": {

"Url": "http://*:8001"

}

}

}

3、在Program中設(shè)置啟動(dòng)端口

app.Run( "http://*:8001");

加入Startup.cs

從.NET 6.0開始已去除了Startup.cs 文件,依賴注入服務(wù)和Middleware全在Program.cs中配置。

我從寫.NET Core 2.0開始一直到現(xiàn)在,Startup.cs文件我覺得還是有必要存在,個(gè)人使用習(xí)慣而已

改造Program.cs

using ICore.WebApi;

var builder = WebApplication.CreateBuilder(args);

var startup = new Startup(builder.Configuration);

startup.ConfigureServices(builder.Services);

startup.Configure(builder.Build);

重寫Startup.csnamespaceICore.WebApi

{

publicclassStartup

{

publicIConfiguration Configuration { get; }

publicStartup( IConfiguration configuration) = Configuration = configuration;

// This method gets called by the runtime. Use this method to add services to the container.

publicvoidConfigureServices( IServiceCollection services)

{

services.AddControllers;

// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle

services.AddEndpointsApiExplorer;

asp.netmvc不攔截html(net攔截器)

services.AddSwaggerGen;

}

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.

publicvoidConfigure( WebApplication app)

{

if(app.Environment.IsDevelopment)

{

app.UseSwagger;

app.UseSwaggerUI;

}

app.UseAuthorization;

app.MapControllers;

app.Run( "http://*:8001");

}

}

}

Run起來!

使用命令行啟動(dòng)dotnet ICore.WebApi.dll --urls="http://*:8001" --ip="127.0.0.1" --port=8001

這一節(jié)就到這里,后面會(huì)繼續(xù)上新!

轉(zhuǎn)自:江北

轉(zhuǎn)自:江北

- EOF -

點(diǎn)擊標(biāo)題可跳轉(zhuǎn)

微軟公布 .NET最新的編程語言支持策略

.NET 提升開發(fā)效率的強(qiáng)大多功能工具箱

.NET 6.0 開發(fā)的配置中心開源項(xiàng)目

看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多人

推薦關(guān)注「DotNet」,提升.Net技能

點(diǎn)贊和在看就是最大的支持??

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://mbtw.com.cn/post/80791.html

標(biāo)簽: asp.netmvc不攔截html

“asp.netmvc不攔截html(net攔截器)” 的相關(guān)文章

網(wǎng)站制作公司(上海網(wǎng)站制作公司)

網(wǎng)站制作公司(上海網(wǎng)站制作公司)

本篇文章給大家談?wù)劸W(wǎng)站制作公司,以及上海網(wǎng)站制作公司對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、網(wǎng)站制作哪家公司好 2、想做個(gè)網(wǎng)站,哪家網(wǎng)站建設(shè)公司比較靠譜? 3、揚(yáng)州網(wǎng)站制作哪家好 網(wǎng)站制作哪家公司好 增長超人Growthman網(wǎng)站制作公司。增長超人Gro...

網(wǎng)站優(yōu)化外包公司(網(wǎng)站推廣外包公司)

網(wǎng)站優(yōu)化外包公司(網(wǎng)站推廣外包公司)

今天給各位分享網(wǎng)站優(yōu)化外包公司的知識(shí),其中也會(huì)對(duì)網(wǎng)站推廣外包公司進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、找seo外包公司需要注意什么? 2、網(wǎng)站優(yōu)化外包公司是干什么的? 3、SEO外包公司服務(wù)費(fèi)用是多少 找seo外包公司需要注意什么? 在“...

ppt創(chuàng)建自己的模板(ppt自己做模板)

ppt創(chuàng)建自己的模板(ppt自己做模板)

本篇文章給大家談?wù)刾pt創(chuàng)建自己的模板,以及ppt自己做模板對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、如何快速設(shè)置ppt模板 2、如何制作PPT模板 3、如何制作ppt模板 如何快速設(shè)置ppt模板 新建一個(gè)PPT。新建一個(gè)自己需要的PPT,然后打開,接著...

WPS還有免費(fèi)模板嗎(wps還有免費(fèi)模板嗎怎么用)

WPS還有免費(fèi)模板嗎(wps還有免費(fèi)模板嗎怎么用)

本篇文章給大家談?wù)刉PS還有免費(fèi)模板嗎,以及wps還有免費(fèi)模板嗎怎么用對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、wps是免費(fèi)的嗎? 2、WPS稻殼兒的開通會(huì)員已下載的模板,后期沒續(xù)費(fèi)后那模板還可以用嗎? 3、WpS超級(jí)模板收費(fèi)嗎 4、wps2019版是免...

雙減初中英語作業(yè)設(shè)計(jì)PPT(雙減初中英語作業(yè)設(shè)計(jì)大賽)

雙減初中英語作業(yè)設(shè)計(jì)PPT(雙減初中英語作業(yè)設(shè)計(jì)大賽)

今天給各位分享雙減初中英語作業(yè)設(shè)計(jì)PPT的知識(shí),其中也會(huì)對(duì)雙減初中英語作業(yè)設(shè)計(jì)大賽進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、雙減背景下作業(yè)設(shè)計(jì)課題研究 2、如何布置有創(chuàng)意的英語作業(yè) 3、雙減下的英語特色作業(yè)怎么寫? 4、雙減背景下的作業(yè)設(shè)計(jì)...

設(shè)計(jì)概念論述怎么寫(設(shè)計(jì)概念論述怎么寫的)

設(shè)計(jì)概念論述怎么寫(設(shè)計(jì)概念論述怎么寫的)

本篇文章給大家談?wù)勗O(shè)計(jì)概念論述怎么寫,以及設(shè)計(jì)概念論述怎么寫的對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、設(shè)計(jì)理念怎么寫 2、建筑設(shè)計(jì)概念怎么寫? 3、作品設(shè)計(jì)理念怎么寫? 4、設(shè)計(jì)的概念是什么 5、設(shè)計(jì)理念怎么寫? 6、設(shè)計(jì)的基本概念? 設(shè)計(jì)理...