用OS X轻松上手.NET Core
微软前几天正式发布了.NET Core 1.0。开源、跨平台、运行速度快的.NET Core很可能会成为Java强有力的竞争对手。它支持用ASP.NET开发web应用,但目前的问题是支持的第三方库太少了。本文尝试在Mac的OS X平台上开发.NET Core应用。
简介
请参考《.NET Core 1.0发布:微软开源跨平台大布局序幕》和《.NET Core》。官方也提供了一个docker镜像以供快速试用。
安装环境
根据微软的Getting Started文档介绍,首先需要安装最新版OpenSSL:
下载.NET Core SDK,50M左右:
安装完SDK后,可以很轻易地启动一个Hello World应用:
其中的dotnet
命令就是.NET Core SDK提供的。顺利的话,就能看到控制台打印出了Hello World!
。命令dotnet new
会生成两个文件:Program.cs
和project.json
。打开生成的Program.cs就能看到其实就是一个标准的Main
函数,内容为Console.WriteLine("Hello World!");
。文件project.json
内容如下所示,指定了依赖和框架:
命令dotnet restore
会使用NuGet来导入project.json
里指定的包并生成一个文件:project.lock.json
。命令dotnet run
编译并运行这个项目。如果只想编译,用dotnet build
就可以了。现在把Hello World中的World改成Qinghua
,再试一下:
果然就变成了Hello Qinghua!
。
IDE
下载Visual Studio Code集成开发环境,也是50M左右,解压后100多M:
如果下载页面发生变化,那就参考Visual Studio Code的主页下载。安装并打开Visual Studio Code之后,按下快捷键⌘+P
并输入以下命令来安装C#的扩展:
IDE会提示重新启动。接下来就可以试试C#开发了。按下快捷键⌘+O
并打开刚才生成的Program.cs
文件,然后把Qinghua
改为世界
。再次dotnet run
一下,就会看到Hello 世界
,汉字支持良好。
整个IDE非常轻量,给人的印象比较简洁,不像Visual Studio那般花里胡哨。支持代码高亮、代码补全、错误提示、内置Git的支持,但是错误修复、重构等就没有了。甚至如何在里面运行代码也令人颇费一番周折。
关于调试代码,可以参考Instructions for setting up the .NET Core debugger。如果⌘+O
打开的是包含project.json
的文件夹,C#扩展便会自动生成两个文件:.vscode/tasks.json
和.vscode/launch.json
。前者告诉VS Code如何来构建项目,后者告诉VS Code如何来运行程序。我们需要修改一下launch.json
里,name
为.NET Core Launch (console)
的program
,将<target-framework>/<project-name.dll>
替换为netcoreapp1.0/hwapp.dll
,这样便能在VS Code的调试窗口运行程序了:
Visual Studio Code支持众多插件。除了C#以外,还有Python、C/C++、Go、PowerShell、JavaScript、Ruby等语言,除此之外,还有不少功能性插件,如Git Blame、IIS Express、ftp-sync等。完整列表请参考Marketplace。
C Sharp
语法层面上,C#比起Java来最吸引我的点就是Linq+Lambda。虽然Java 8也提供了lambda表达式,但是始终在整洁性上差了那么一点。Java 8 Stream和C#在Linq上的语法区别可以参考《Java Streams Preview vs .Net High-Order Programming with LINQ》,里面有着非常丰富的例子。现在我们来改造一下Program.cs
,用Linq和Lambda输出10~90之间能被10整除的数字的平方:
再次dotnet run
一下,就会看到程序按照我们的预期输出了结果。
ASP.NET
下面让我们来试一下用.NET Core运行ASP.NET的官方教程。首先像Hello World的例子那样,创建一个新的工程:
然后需要把project.json
里的"dependencies": {},
替换成下文:
依赖变化了,需要restore
一下:
然后添加一个文件,处理http request:
接下来修改Program.cs
文件来启动web服务:
现在就可以运行啦:
访问http://localhost:5000/就可以看到在Startup.cs
里写的Hello from ASP.NET Core!
啦。确实上手比较容易。