致.NET 的一封情书
简短的历史课
当今世界的.NET
前端解决方案
我喜欢什么?
结论
今天微软正式发布.NET Core 3,我想给大家介绍一下我对.NET 的看法,并告诉大家该平台如何不断创新解决现代问题的方案。
我从 2001 年 .NET 框架的 Beta 2 版本开始就一直在使用,这些年来见证了它的诸多变化。当然,我也尝试过 JavaScript、TypeScript 等多种编程语言的开发,但我仍然会回归 .NET。
让我来告诉你为什么。
简短的历史课
当微软推出 .NET 时,他们决定不构建单一语言,而构建一个可编译运行不同语言的托管框架。这是有道理的,因为 .NET 的主要目标之一是解决“DLL 地狱”问题,并通过为人们提供更智能的COM开发替代方案来简化托管代码的互操作性。
这意味着,如果您习惯使用 Visual Basic,可以使用 VB .NET 进行编程;如果您更喜欢 C++ 或 Java 风格的语法,则可以尝试新的 C# 编程语言。这也为微软未来推出F#等新语言提供了空间。
.NET 在解决 COM 问题以及提高开发人员生产力和应用程序质量方面取得了巨大的成功。
但当今世界与 21 世纪初相比已大不相同。
当今世界的.NET
.NET最初是 Windows 桌面和 Web 开发的生产力解决方案,但有趣的是,它后来如何彻底拥抱跨平台和云开发。微软意识到,人们希望在 Docker 容器之类的平台上以及 Windows 以外的平台上运行服务器。这并非微软勉强承认,而是真正张开双臂拥抱跨平台开源世界,并向其冲刺。
世界已然改变,云服务已成为常态。微软技术在各种云托管环境中运行良好,并且每次发布都会提供更多功能。微软当然希望您使用 Azure,但如果您的团队更喜欢 AWS,那也同样很棒。
前端解决方案
前端技术的变化或许比其他任何技术都要大。这一点在微软的技术栈中显而易见,从 Windows Forms、WPF、XBAPs、Silverlight、Windows Phone、Windows Universal、ASP .NET WebForms、MVC 以及现在的 Blazor 就可以看出来。
在 .NET 诞生之初,JavaScript 只是一个在点击提交之前验证购物车的小工具。如今,JavaScript 已成为技术栈的重要组成部分,也是用户体验的关键部分。微软也为 JavaScript 的繁荣做出了一定贡献,他们推出了 TypeScript,为 JavaScript 带来了编译时类型安全。
微软还发布了VS Code,这是一款功能强大且免费的跨平台 IDE,非常适合 JavaScript 开发。说到跨平台开发,Visual Studio 现在也可以在 Mac 上运行了。
微软继续通过Blazor进行创新,他们采用编译语言并生成 Web Assembly,以允许开发人员使用 JavaScript 以外的语言编写 Web 应用程序。这仍然是一项新兴技术,尚处于早期阶段,但微软始终致力于此并承诺提供持续的支持。
我喜欢什么?
那么,既然我们已经介绍了框架是什么以及它是如何变化的,为什么我个人喜欢它呢?
它并非适合所有项目,但对我来说,.NET 非常适合后端代码和桌面/移动开发。当然,它的 Web 功能也很棒,但我个人更倾向于使用 Angular 和 JavaScript/TypeScript SPA 进行 Web 演示——搭配功能强大的 .NET 后端 API 解决方案。
C# 为您提供了一些非常强大的语法来处理面向对象的问题。
.NET 提供了丰富的内置库来解决已知问题。此外,还有大量通过NuGet免费提供的库,让您在不到一分钟的时间内将其他技术集成到您的应用程序中。
如果您更注重函数式编程,F# 提供了 .NET Framework 的功能以及函数式编程的结合。此外,F# 代码可以与 C# 或 VB .NET 代码交互,反之亦然,从而允许您混合使用函数式和面向对象代码。
就实际的语言特性而言,我特别喜欢 .NET 的泛型、扩展方法、lambda 表达式和 LINQ。EntityFramework 使数据库灵活性变得更加轻松高效。
.NET Core Web 应用程序的样板代码非常少,让您可以专注于重要的事情,并轻松地将各种中间件组件集成到您的应用程序中。
结论
我之前写过,.NET 就像博格人一样,会慢慢习得新特性和能力。这一点至今依然适用,也是该框架得以延续的重要原因——它能够随着世界的变化而适应新情况,并提供新的能力。
这让我想起了2008 年的一个笑话帖子,将各种编程语言比作船。在评论中,名为 RJ 的用户这样评价 .NET:
.Net 无疑是一支由各种破损程度的中型船只组成的舰队,没有哪艘船能引领其他船只。每隔一段时间,就会有部分完工的新船加入舰队——但由于这些船只与其他一些船只一样,没人会费心去完成它们。有时,有些船只会沉没,从此消失,但没有人真正注意到。
RJ 距离目标并不遥远。诚然,我们损失了一些舰船,但 .NET 现在已经是一支光荣的舰队,能够征服任何海域。
如果你正在考虑学习 .NET,不妨一试。虽然学习难度不大,但你一定会有所收获。我建议你从小处着手,比如开发一个控制台应用程序或构建一个 .NET Core Web API。
如果您遇到困难,请联系社区。.NET 社区专业、热情、富有创新精神,我很自豪能够成为其中的一员。
.NET 并不适合每个团队或每个问题,但成为其中的一部分是一件很棒的事情,而且我并不后悔多年来在这项技术上投入的时间。
照片由 Matt Popovich 在 Unsplash 上拍摄
鏂囩珷鏉ユ簮锛�https://dev.to/integerman/a-love-letter-to-net-2nhg