2016年6月27日,微軟正式發(fā)布 .NET Core 1.0.0 RTM版本,標(biāo)志著.NET Core 可以正式開(kāi)始用于生產(chǎn)環(huán)境,并同時(shí)支持 Windows, MacOS, Linux 三大主流平臺(tái),以下總結(jié)使用.NET Core進(jìn)行跨平臺(tái)開(kāi)發(fā)的注意事項(xiàng)和開(kāi)發(fā)資源。
官方資源
博客資源
開(kāi)發(fā)環(huán)境配置
- 按照 官方指南 搭建Windows開(kāi)發(fā)環(huán)境。
- 安裝 Docker for Windows 到開(kāi)發(fā)機(jī)上,用于測(cè)試開(kāi)發(fā)的項(xiàng)目程序在linux環(huán)境中的可用性,docker目前在windows上只支持較新版本的 Windows 10 系統(tǒng)。
- Windows 開(kāi)發(fā)環(huán)境配置
- Ubuntu 開(kāi)發(fā)環(huán)境配置
- MacOS 開(kāi)發(fā)環(huán)境配置
- 微軟官方 dotnet core 容器
開(kāi)源組件(持續(xù)更新)
以下是截止提交時(shí)間前對(duì).NET Core 和 ASP.NET Core 提供支持的開(kāi)源框架和庫(kù),隨著.NET Core 開(kāi)發(fā)的普及,相信很多高質(zhì)量的庫(kù)都會(huì)提供對(duì).NET Core的支持。
- RestSharp.CoreNet Web 客戶端
- HttpClient Web客戶端,設(shè)計(jì)反人類,謹(jǐn)慎使用
- Microsoft ASP.NET Core API Versioning API接口版本化
- Entity Framework Core (EF Core) ASP.NET Core 官方 ORM 框架
- MySql.Data.EntityFrameworkCore EF Core MySql官方驅(qū)動(dòng)
- Pomelo.EntityFrameworkCore.MySql EF Core MySql Pomelo第三方驅(qū)動(dòng)
- AutoMapper 對(duì)象映射庫(kù)
- Dapper 輕量級(jí) ORM 框架
- Nancy 輕量級(jí)web框架
- NLog 日志框架
- Orleans 微軟開(kāi)源的一個(gè)分布式計(jì)算程序開(kāi)發(fā)框架
- XUnit 單元測(cè)試框架
- ImageProcessor 一個(gè)全新的跨平臺(tái)2D圖像處理框架
- MailKit 郵件收發(fā)套件
- BenchmarkDotNet 性能測(cè)試庫(kù)
- Orchard2 CMS內(nèi)容管理系統(tǒng)
- Json.net Json序列化和反序列化
- RabbitMQ.Client RabbitMQ 消息隊(duì)列 .NET Core 客戶端庫(kù)
- Redis Redis 數(shù)據(jù)庫(kù) .NET Core 客戶端庫(kù)
- Npgsql EF Core PostgreSQL 數(shù)據(jù)庫(kù)驅(qū)動(dòng)
- Swagger API自動(dòng)化文檔工具
- Google Protocol Buffer 結(jié)構(gòu)化數(shù)據(jù)序列化框架
- Google GRPC 跨語(yǔ)言跨平臺(tái)RPC框架
Web 服務(wù)器
- Kestrel
注意事項(xiàng)
- 監(jiān)聽(tīng)地址問(wèn)題
如果將ASP.NET Core網(wǎng)站發(fā)布到linux服務(wù)器時(shí),如果使用的監(jiān)聽(tīng)地址是:localhost或者是127.0.0.1,這個(gè)服務(wù)只能再該主機(jī)內(nèi)部可以訪問(wèn),外網(wǎng)無(wú)法訪問(wèn),如果網(wǎng)站是通過(guò)docker運(yùn)行的,則無(wú)法通過(guò)指定端口docker run -d -p 3721:3721 website:v1.0.0讓docker服務(wù)器訪問(wèn)該網(wǎng)站,如果在docker服務(wù)器上使用curl http://127.0.0.1:3721試圖訪問(wèn)網(wǎng)站時(shí)將拋出異常:curl: (56) Recv failure: Connection reset by peer。
解決方法就是監(jiān)聽(tīng)地址使用0.0.0.0,即在所有地址上監(jiān)聽(tīng)。
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://0.0.0.0:3721/")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}