.NET5真的来了,你准备好了吗?

简介: .NET5真的来了,你准备好了吗?

1月了,期待已久的.NET5即将发布,你做好准备了吗?如果还只是在Windows上用Visual Studio + SQL Server做跨平台开发,真心对不住这个时代了!强烈建议你去尝试Linux,不仅是程序部署,而是全Linux环境去开发、运行、部署.NET 5项目,从开发工具到数据库到各种中间件全部Linux,你会收获无法想象的快感!真的,让我们一起拥抱Linux吧!

文:Sifan-H

来源:DotNetdaily

DotNetdaily

拥抱Linux

Linux开源优势

Linux是完全开源的,轻松查看源码并修改和定制,完全免费的属性也深得企业青睐,而且稳定性、安全性、灵活性都远超Windows服务器,当下全球大量数据中心的服务器已经开始向基于 Linux Server 平台转移。

image.png

开源组件最佳平台

耳熟能详的各种高并发组件,Redis、MongoDB、RabbitMQ、Nginx、Kafka等等,都是基于Linux服务器开发和发布的,虽然也为Windows Server提供了安装版本,但都是阉割版的,版本更新都严重迟滞,像Redis在Windows下的性能表现,达不到Linux下的50%。

互联网大势所趋

当下互联网技术的发展方向是容器化、K8S、DevOps、CI/CD、云原生,90%的工具环境都是基于Linux的,微软都出.NET5去适配Linux,还推出了VS Code开发工具,甚至连SQL Server都支持Linux了,互联网技术大势浩浩荡荡,顺之者昌!

image.png

DotNetdaily

全Linux实战踩坑

微软.NET跨平台开发4年多了,Linux下开发运行部署都已经有完整的解决方案了,我来给大家分享下全体的工具和技术选型(文末有做工具的打包分享)。

服务器准备

不习惯双系统的小伙伴儿,可以用VMware workstation弄个虚拟机,Linux操作系统繁多,这里我推荐最新版本CentOS8。开始可能不太习惯,用用就好了。

开发环境准备

当然是Visual Studio Code,微软出品必属精品,然后是.NET5 RC2的环境。数据库我推荐用MySQL标配,不要试图用SQL Server for Linux了。

image.png

项目框架选择

这个跟Window下开发是没啥区别的,直接前后分离架构,前端Vue,后端是Core WebApi,O/RM选择的轻量级Dapper,连接MySQL也方便。

部署运行

用Docker容器部署的Nginx + WebApi实例集群,然后MySQL和Redis就直接安装在Linux的宿主机上面,一个小项目就这样构建起来了。

说了这么多,那到底怎么开发实操??

相关文章
一起谈.NET技术,.Net令人纠结的Null
  从我们刚学.Net编程起,我们的程序不断被从天而降NullReferenceException打断。直到今天,我们仍然时常为C#的Null或者VB的Nothing困惑。什么情况下我们该返回null,如果参数是null代表什么。
785 0
.Net令人纠结的Nu“.NET研究”ll
  从我们刚学.Net编程起,我们的程序不断被从天而降NullReferenceException打断。直到今天,我们仍然时常为C#的Null或者VB的Nothing困惑。什么情况下我们该返回null,如果参数是null代表什么。
946 0
|
C# 数据库
C“.NET技术”# 中奇妙的函数之ToLookup
  我将和大家一起来学学C#中一些非常有用函数,对于有些人来说可能它们不起眼,因此常常忽略它们。它们不会嚷嚷到:使用我吧!我会让你节省很多的时间,而且让你的代码变得更加的简洁! -- 但是,这些话会从对它们熟悉的程序员的脑海中涌现出来。
1038 0
|
C# 数据库
一起谈.NET技术,C# 中奇妙的函数之ToLookup
  我将和大家一起来学学C#中一些非常有用函数,对于有些人来说可能它们不起眼,因此常常忽略它们。它们不会嚷嚷到:使用我吧!我会让你节省很多的时间,而且让你的代码变得更加的简洁! -- 但是,这些话会从对它们熟悉的程序员的脑海中涌现出来。
1141 0
一起谈.NET技术,20条.NET编码习惯
1、不要硬编string/ numeric,可以使用一些常量代替。 (提高可读性) int Count;Count = 100;private static const int ZERO  =  0;if(  Count  ==  ZERO ){// 执行一些操作} 2、对于字符串比较-使用String. Empty ,而不是""。
816 0
|
网络协议
回顾.NET R“.NET研究”emoting分布式开发
  记得在下第一次接触.NET Remoting分布式开发是在2003年,那时候是Framework1.0初次亮相之时,Remoting分布式开发是Framework1.0其中一个亮点。经过多年的发展,在2005年,WCF随着Framework2.0首先亮相。
1234 0
|
安全 C#
一起谈.NET技术,对.net事件的看法
一、事件的本质 事件是软件系统里的两个子系统之间,或者两个模块之间,或者两个对象之间发送消息,并处理消息的过程。在面向对象的世界里,就可以统一认为是两个对象之间的行为。 两个对象之间发送的这种消息,对发送方来讲是产生一个事件,对接受方来讲是需要处理某个事件。
1026 0
艾伟_转载:20条.NET编码习惯
1、不要硬编string/ numeric,可以使用一些常量代替。 (提高可读性) int Count;Count = 100;private static const int ZERO  =  0;if(  Count  ==  ZERO ){// 执行一些操作} 2、对于字符串比较-使用String. Empty ,而不是""。
749 0