随着 Web、iOS、Android、智能设备的流行,新的编程语言纷纷涌现并表现不俗,如 Ruby,Python,Scala。Go,Node.js,Swift 等。反观已经发展了近20年的 C# 语言(或者这里应该更准确的说是 .Net Framework),由于天生的平台局限,导致非常多的 C# 程序猿为了生计和前途纷纷转行投入的新语言的怀抱。
就在此时,微软的 .Net Core 横空出世
- 跨平台:能够在 Windows、MacOS 和 Linux 上执行。
- 兼容性: .NET Core 通过 .NET 标准库与 .NET Framework、Xamarin 和 Mono 兼容。
- 开源:执行时、库、编译器、语言和工具都是 GitHub 的开放源码。
- 统一:通过标准库来保证代码复用。
- 强大的生态环境
依据以上 .Net Core 所具备的优势,无疑是给以 C#(包含VB.NET)作为首选编程语言的project师的一剂强心针。
下面将从6个方面阐述为什么 C# 成为最值得学习的编程语言,甚至能够说 C# 是给初学编程最值得推荐的语言。
具备现代语言的全部特点
.NET Core 有一些顶级功能:
- 强类型。
- 强大的基类库。
- 异步编程 - 易于使用的异步/等待模式。
- 垃圾收集,自己主动内存管理。
- LINQ - 语言集成查询。
- 泛型 - List<T>, Dictionary<T, T>。
- 包管理。
- 跨多个平台和框架共享二进制文件的能力。
- 使用的框架来创建 MVC Web 应用程序和 RESTful API。
多功能性:Web,移动。server,桌面应用
关于 C# 和 .NET 的最出众的一点就是它的多功能性。Xamarin 能够编写桌面应用程序,Web 应用程序,后台服务。甚至移动应用程序。除了 C#,我真正须要知道的仅仅是少量的 JavaScript 来将一些 UI 代码集中在一起。ASP.NET Core 模板甚至使用 Bootstrap 布局和 npm 来存入client库。
多功能性是一个非常大的优势,这样你所学的语言就能够用于各种各样的场景中。你的技能适用性就更强。假设你想组合所做的东西,就能够从开发 web 应用程序跳转到开发移动应用程序。对于仅仅能在server端工作的大多数其他编程语言,这是一个非常大的差别。
同一时候,也请不要忘记 Microsoft Azure 的支持。
Microsoft Azure 让启动和执行变得如此简单,仅仅需点击几下就可以将应用部署到云端。
Microsoft Azure 还支持 Docker 容器。能够轻松地将应用程序部署到 AWS 或其他托管提供商。
最好的开发工具(没有之中的一个)
Visual Studio 一直被视为适用于开发者的最佳 IDE,微软已经公布了最新的 VS 2017 用来支持 .Net Core,在一个环境中支持代码编写、调试、分析、git 集成、单元測试等功能。Visual Studio 如今提供了功能齐全的免费社区版本号。
当然,也能够使用自己喜欢的文本编辑器。作为编写 .NET Core 代码的基本文本文件。
你也能够在不论什么操作系统上将 Visual Studio 编码工具当做一个良好的基本代码编辑器。即使对于那些永远不会放弃 vim 或 emacs 的人来说,依然能够做 C# 开发。
你还能够为 Visual Studio 安装一个插件,来加入全部喜欢的快捷键。
整个 .NET 生态系统也充满了令人惊奇的开发者工具。比如,我无法想象没有 Jetbrains 中的 Resharper 的生活。
.NET 生态系统存在数十种极好的的工具,既包含开源的,也包含商业产品的。
标准化类库
.NET 带有了一套非常好的基类库。与 Node.js 不同。.NET 内置了简单的字符串函数,如 LeftPad()。各种各样的基础类降低了对外部包的需求。Microsoft 也乐于像 JSON.NET 这种社区项目一样,成为大多数项目中广泛使用的关键库。
Microsoft 为 .NET 提供了一套非常好的模式和实践。
比如,有内置的标准数据訪问(实体框架)和模型 - 视图 - 控制器(MVC)框架。大多数开发者都在使用这些标准框架,这使开发者能够轻松地在团队之间迁移,并高速了解项目的工作原理。正式由于这一点,你的知识和技能才变得更加具有适用性。