云原生开启.NET 跨平台之路
简介
我将在5/6日《云原生开发挑战赛暨.NET 二十周年主题活动》中作为嘉宾分享一个主题《利用.NET 6.0 开发Microsoft 365应用》,其中会谈到我对.NET 二十年发展的一些切身的感受和观察,另外就是分别从集成和扩展两个角度,介绍如何基于.NET 6.0快速高效地开发Microsoft 365应用。
云原生初体验
云原生其实已经这几年已经深入民心了。简单的理解就是你的应用应该为云而生,天生适合于以云的方式来部署和运行,而且甚至还不局限于某个云,管你公有云,私有云,混合云都能无缝切换,而且无论在开发阶段,试运行阶段,大规模运行阶段,都是基于同样的一套模式在开发和运营。
好吧,说人话,云原生最简单的一个特征就是你的应用可以通过容器这个单元直接分发和部署、扩展。那么讲到容器,就不能不提 docker
了。
.NET 近些年继续成功的一个很重要的原因是它实现了跨平台,和开源,而这几乎也是支持云原生的一个必要条件。下面就简单地看一下,如何在 docker
里面运行 .NET Core的应用吧。
准备环境
如果你使用 Windows 桌面,那么你可以通过启用 WSL
(Windows subsystem for Linux), 以及安装 docker desktop for Windows
来体验,具体可以参考 官方的说明。
另外,如果你本地机器的性能一般,也可以通过创建一台远程的服务器来做学习。例如我在 Azure 里面创建了一台 Ubuntu
的虚拟机,如下:
要在 Ubuntu
中安装 docker
很容易,就一句命令搞定
sudo apt install docker.io
你可以通过 sudo docker info
和 sudo docker version
等命令来测试是否安装成功。
运行 .NET 官方范例
一旦准备好环境,你可以通过下面的方式来体验 .NET 案例。
sudo docker run --rm mcr.microsoft.com/dotnet/samples
这一行代码运行一个控制台程序,成功运行后得到的效果如下
docker run -it --rm -p 8000:80 mcr.microsoft.com/dotnet/samples:aspnetapp
这一行代码运行一个网站,并且通过8000这个端口对外提供服务
我通过这个端口就可以访问到了