写系列文章的时候,我都会写一下前言:
为什么要写这系列的文章,因为作为.NETFrameWork API (我这边讲的是.NETFRAMEWORK API,而不是 NETCORE –NETCORE 本身就是跨平台部署) 研发,很多开发人员认为微软在跨平台这方面把自己做死掉了,因为 NETFRAMEWORK API 只能跟IIS绑定死了。在跟JAVA ,GO 竞争上面毫无优势可言, 还有些同学认为,NETFrameWork 跨不了平台,这在中国的非.net 领域的人都有这种共同认知。
其实: 我要在这里 需要为.NET 澄清一点: .NET的 C 井 语言不能跨平台,这是错误的。那为什么什么跨不了平台?因为早期微软想 让 .NETFRAMEWORK 的 RESTFUL 只能在 IIS 运行,因此没有开发出配套的 LINUX 运行库。
上述原因都引起了 .NETFRAMEWORK 的 RESTFUL 不能跨平台的原因,主要有两点:
1:服务绑定了 IIS
2:没有提供跨平台的 C# 运行库
因此,而不是C# 跨不了平台,如果解决上述两个问题,C# 本质上就是跨平台语言。因为微软在设计C# 的时候,就已经为跨平台做了准备。C# 其实也跟 JAVA 一样,是运行在虚拟解析平台上。JAVA 成为JAVA 虚拟机(JAVA 官方提供了 WINDOWS 以及 LINUX 运行环境的 虚拟机)。而C#-NETFRAMEWORK 称之为CLR 动态语言运行库,可惜微软官方没有提供LINUX 动态语言运行库---这并不代表C# 跨不了平台。只是微软没有提供出来其他环境的运行库而已。
大家痛点:做为开发人员都是一样,公司的老的 服务 api 使用了.NETFRAMEWORK 开发,现在开发了好多这样的服务,现在重构到NETCORE,重构成本很大,为了迁移服务到 LINUX,把代码迁移到NETCORE 上,理论上可以,
现实面临的问题很多。 但是,现在不想把 .NETFRAMEWORK 服务放在 IIS 运行?那么怎么去做这个事情呢,有没有比较好的方案呢?
我相信上面的这个痛点做为.NET 的开发者,应该都有过。也曾经怪微软,为啥把我们的坑的这么惨)—我只能呵呵了。 没事,来我这里就对了,此篇文章就是告诉你一个方案,将你现有的.NETFRAMEWORK API 不需要改动业务层代码,轻而易举
的将其迁移到LINXU 上,并且 还支持Docker 集群部署。
想让 NETFRAMEWORK 服务 迁移到 LINUX 环境中,必须要解决以上两个问题。
1:服务脱离IIS 绑定运行
2:C# FOR .NETFRAMEWORK 在Linux 上的动态语言运行库。
如果能解决上面两个问题,按就完美了。
谁说NETFRAMEWOR API 不能微服务化?---让 NETFRAMEWOR API 也上DOCKER—LINUX 服务化 系列文章