1.2 .NET的开发环境
受到.NET开发人员广泛欢迎的集成开发环境(Integrated Development Environment,IDE)是被称为“宇宙最强IDE”的Visual Studio,它包括整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、IDE等。Visual Studio提供了社区版、专业版和企业版,社区版是完全免费的,专业版和企业版需要付费购买。Microsoft这款为开发人员精心打造的开发工具,不仅能用于常规的.NET应用程序开发,还能用来开发Python、Java、前端等多种语言的应用。目前,Visual Studio不仅能在Windows平台上使用,还能在mac OS平台上使用,开发人员使用mac OS版本能够获得与Windows版本相同的操作功能。
图1-6所示为Visual Studio在mac OS中的界面,可以看到,该界面与Visual Studio在Windows平台上的界面类似。
图1-6 Visual Studio在mac OS中的界面
除了Visual Studio,还可以使用Visual Studio Code和Rider。Visual Studio Code是免费且提供全平台(Windows、macOS和Linux)支持的IDE,支持语法高亮、代码自动补全、代码重构功能,并且内置了命令行工具和Git版本控制系统。用户不仅可以通过更改主题和键盘快捷方式实现个性化设置,还可以通过内置的应用商店安装扩展插件以拓展软件功能,如Visual Studio Code代码自动补全,如图1-7所示。
图1-7 Visual Studio Code代码自动补全
Rider是JetBrains公司开发的专注于.NET的IDE,并且是跨平台的IDE。开发人员可以在Windows、macOS和Linux平台上使用Rider。Rider提供了30天的试用权,并且支持学校、开源项目、社区组织等申请激活码,当然,也可以直接购买它的授权码。
除了上述3种开发工具,还有一种备受社区开发人员支持的开发工具——LINQPad。LINQPad是面向.NET Framework和.NET Core开发的实用工具,用于LINQ交互式查询SQL数据库,以及交互式编写C#代码,而无须IDE。LINQPad可以作为通用的“测试工作台”,利用该工作台,开发人员可以在Visual Studio外部快速为C#代码创建原型。图1-8所示为利用LINQ在LINQPad中查询数据。
下面先介绍Visual Studio和Visual Studio Code的安装过程,读者可以根据自己的喜好选择感兴趣的工具自行安装。
图1-8 利用LINQ在LINQPad中查询数据
1.2.1 安装Visual Studio
打开Visual Studio官网,单击Visual Studio板块的“下载Visual Studio”下拉按钮,在弹出的下拉列表中任意选择一个版本即可下载Visual Studio,如图1-9所示。
图1-9 Visual Studio板块
单击如图1-9所示的“下载Visual Studio”下拉按钮,即可下载Visual Studio 2022,而Visual Studio 2022包含以下几个版本。
• 社区版:完全免费的IDE,适合学生和个人开发人员使用。
• 专业版:适合小型开发团队使用。
• 企业版:适合中型和大型企业使用。
关于上述3个版本的详细功能,读者可以通过Visual Studio官网的资料进行对比。另外,上述3个版本可同时安装在同一台计算机上,因为这3个版本是相互独立的。
下载完Visual Studio安装程序后,运行安装程序,如图1-10所示。在Visual Studio安装程序对话框中单击“工作负荷”选项卡,开发人员可以根据需要,按需安装ASP.NET和Web开发、桌面应用开发、游戏开发等环境。
图1-10 Visual Studio 2022安装程序的运行
例如,创建一个C#应用程序,启动Visual Studio,在Visual Studio 2022窗口中可以看到“开始使用”栏,如图1-11所示,单击“创建新项目”链接。
打开如图1-12所示的“创建新项目”窗口,选择的语言为C#,选中“控制台应用”项目模板,单击“下一步”按钮。
图1-11 Visual Studio 2022窗口
图1-12 “创建新项目”窗口
打开如图1-13所示的“配置新项目”窗口,在“项目名称”文本框中输入ConsoleApp1,单击“下一步”按钮。
图1-13 “配置新项目”窗口
打开如图1-14所示的“其他信息”窗口,选择目标框架的版本作为项目的版本,单击“创建”按钮。
图1-14 “其他信息”窗口
先在“解决方案资源管理器”面板中选择ConsoleApp1文件,再在代码编辑器中添加一个实例(整数运算),如图1-15所示,
图1-15 在代码编辑器中添加一个实例
当需要运行应用程序时,按F5键,随后开启一个控制台窗口,如图1-16所示,输出运行结果。
图1-16 控制台窗口
当需要断点调试时,可以在指定行的左侧单击并插入断点,如图1-17所示。
插入断点后,可以进一步运行并调试应用程序,如图1-18所示,调试并查看变量。
图1-17 插入断点
图1-18 调试并查看变量
1.2.2 安装Visual Studio Code
打开Visual Studio Code官网,如图1-19所示,可以看到,Visual Studio Code支持macOS、Windows和Linux,选择对应的版本下载即可。
图1-19 Visual Studio Code官网
Visual Studio Code安装包下载完成后,双击安装包可以直接安装,安装成功后还需要下载并安装.NET SDK。
打开.NET SDK的下载页面,单击页面中的Download.NET SDK x64按钮,下载.NET SDK安装包。.NET SDK的下载页面如图1-20所示。
图1-20 .NET SDK的下载页面
下载完成后,运行安装包,将.NET SDK安装到本地环境中,在如图1-20所示的页面中不仅可以下载.NET SDK安装包,还可以下载.NET运行时(.NET Runtime)安装包。
1.2.3 设置Visual Studio Code环境
在安装完.NET SDK后,还需要安装开发.NET应用程序所需的C#扩展插件,在Visual Studio Code编辑器左侧的“扩展工具栏”中搜索C#安装即可,如图1-21所示。
图1-21 安装C#扩展插件
在插件安装完成后,重启编辑器,并使用dotnet CLI工具在Visual Studio Code终端中创建一个控制台实例,如代码1-2所示。
代码1-2
在执行完上述命令后,不仅创建了一个控制台实例,还通过code.命令打开了Visual Studio Code编辑器,并且会加载当前创建的目录,如图1-22所示。
图1-22 Visual Studio Code编辑器
1.2.4 Visual Studio Code调试
使用Visual Studio Code打开.NET项目后,右下角会出现一个通知提示,如图1-23所示,提示是否为该项目创建编译和调试文件。
图1-23 通知提示
单击Yes按钮,可以看到项目文件中会多出一个名为.vscode的文件夹,如图1-24所示。.vscode文件夹中包含两个文件:tasks.json是任务配置文件,用于放置命令任务;launch.json是调试器配置文件。
在这些条件必备的情况下,就可以在代码中进行打断点和调试。首先,打开.cs文件,在某行代码的左侧单击,此时会显示“小红点”,这说明已经成功添加了断点;然后,按F5键调试控制台实例,如图1-25所示。
图1-24.vscode文件夹
图1-25 调试控制台实例
1.2.5 .NET CLI
事实上,CLI(Command-Line Interface,命令行界面)本身也可以作为一种开发手段,开发人员可以在不方便安装开发工具的情况下,使用CLI进行.NET项目的创建、编译、运行等操作。
在安装.NET SDK时,.NET CLI也会随着工具链一并安装。开发人员可以通过在控制台窗口中输入dotnet-version命令来查看计算机安装的.NET的版本。
可以通过CLI快速创建项目,如WebAPI等项目。在控制台窗口中输入dotnet new list命令后显示的相关界面提示如图1-26所示。
图1-26 在控制台窗口中输入dotnet new list命令后显示的相关界面提示
通过dotnet CLI控制台窗口,可以看到丰富多样的dotnet项目模板,因此可以选择所需的项目模块开发项目。图1-27所示为.NET常用项目模板列表。
图1-27 .NET常用项目模板列表
当然,也可以通过执行dotnet new--help命令查阅更多的信息。
1.2.6 LINQPad
LINQPad是一个功能强大且轻量级的工具。虽然Visual Studio可以满足大多数场景的要求,但是它比较笨重,因此LINQPad脱颖而出。
LINQPad具有如下特点。
• 具有简约的代码编辑界面。
• 占用的体积不到20MB,即超轻量级。
• 具有强大的格式化输出功能,可以输出文字、表格和动态数据。
• 支持多种数据库等。
使用LINQPad可以快速构建一个测试输出。使用LINQPad执行C#代码并输出结果,如图1-28所示。
图1-28 输出结果
除此之外,还可以在Language的下拉列表中选择C#Statement(s)选项,并通过Dump扩展方法将实例的值展示出来,并使用LINQPad执行C#代码,如图1-29所示。
在需要一些数据的ETL下,开发人员可能会有如下几种选择。
• 使用二进制可执行文件,但无法了解到运行细节。
• 使用源代码,但需要经历一个具体的编译环节。
• Node.js或Python脚本不需要编译即可运行,但依赖要定义在package.json文件中。
综上所述,LINQPad的源文件为.linq,它可以像Node.js、Python那样,不需要单独编译也可以了解到运行细节。
如代码1-3所示,创建一个名为test的.linq文件。
图1-29 展示实例的值
代码1-3
在LINQPad工具下,有一个名为lprun7的命令行工具,可以通过该工具运行。图1-30所示为通过lprun7命令行工具执行.linq文件。
图1-30 通过lprun7命令行工具执行.linq文件