.NET 是一个免费的跨平台开源开发人员平台,用于生成许多不同类型的应用程序。 凭借 .NET,可以使用多种语言、编辑器和库来生成 Web、移动应用、桌面应用、游戏和 IoT 应用。
开始了解 .NET。 了解 .NET 的概念及其工作原理,然后在基于 Web 的 .NET 环境中快速生成一个小型应用。
简介
什么是.NET?
.NET是用于应用程序开发的生态系统
术语“生态系统”描述了应用程序开发环境及其周围社区的多方面领域。
使用.NET语言和编译器在.NET运行时中运行应用程序
软件开发人员使用 C# 和 F# 等 .NET 语言编写源代码。
在软件开发人员运行其代码之前,必须先对其进行编译。 .NET 编译器是一个将源代码转换为特殊语言(称为中间语言 (IL))的程序。 .NET 编译器将 IL 代码保存到名为“.NET 程序集”的文件中。
NET 运行时是编译后的 .NET 程序集的执行环境。
使用.NET应用程序框架和库来利用预生成功能
所有软件都是分层生成的,这意味着软件在计算机的不同抽象层次上运行:
- 在最低层,软件直接与计算机硬件通信。 它控制着主板、处理器、内存和硬盘驱动器上的数据流。
- 在下一层,软件支持最终用户通过操作系统提供指令。
- 在下一层,.NET 等软件提供开发和运行应用程序的方法。
- 在下一层,可以借助应用程序框架和功能库,使用比以前的开发方法更简单的方法,快速生成丰富的应用程序。
常用的 .NET 应用程序框架可用于 Web 开发、桌面和移动开发,以及游戏开发等应用模型。
可以直接安装 .NET SDK,也可以安装 Visual Studio 2022。 .NET SDK 预安装了一组全面的库和应用程序框架,称为“基类库”。
主要应用模型有哪些?
应用模型 | 框架 | 说明 |
Web | ASP.NET Core | 用于生成服务器端逻辑的框架。 |
Web | ASP.NET Core MVC | 用于为网页或Web API生成服务器端逻辑的框架 |
Web | ASP.NET Core Razor Pages | 用于万生服务器生成的HTML的框架 |
Web客户端 | Blazor | Blazor 是 ASP.NET Core 的一部分。 它的两种模式允许通过套接字进行文档对象模型 (DOM) 操作,作为运行服务器端代码的通信工具,或者作为在浏览器上运行已编译 C# 的 WebAssembly 实现。 |
桌面 | WinForms | 用于生成“战舰灰色”Windows 风格应用程序的框架。 |
桌面 | Windows Presentation Foundation(WPF) | 一个框架,用于生成符合不同外形规格的动态桌面应用程序。 WPF 允许外形元素在丰富的动画库的帮助下执行移动、淡出、滑动和其他效果。 |
移动 | Xamarin | 允许 .NET 开发人员为 iOS 和 Android 设备生成应用。 |
使用.NET工具生成.NET应用
Visual Studio 2022 是 Microsoft 旗舰开发环境。
Visual Studio 2022 提供三个版本:Community、Professional 和 Enterprise。
更喜欢命令行工作流的开发人员可以将 Visual Studio Code(世界上最常用的代码编辑器)与 .NET 命令行接口(也称为 .NET CLI)结合使用。
在文档和教程中查找解决方案和答案
Microsoft Docs
模式与最佳做法
.NET视频
Microsoft Learn
与.NET社区交互以了解和共享解决方案
.NET 生态系统不仅仅局限于语言、库和工具,还扩展到人员方面。
.NET生态系统与其它生态系统相比如何?
.NET简史
最初的 .NET Framework 于 2002 年初首次发布。
如何使用.NET?
开发人员如何使用.NET生成应用程序
设置开发环境
可以选择 Visual Studio 2022 或 Visual Studio Code 和 .NET 软件开发工具包 (SDK)。
对于更喜欢可视化环境的开发人员来说,Visual Studio 2022 是最佳选择。
如果你更喜欢命令行环境,请分别下载并安装 Visual Studio Code 和 .NET SDK。
入门
生成功能
编译并运行你的应用程序
调试应用程序
分发应用程序
.NET在运行时的工作方式
使用Try.NET生成第一个应用
使用C#生成简单的应用
Try .NET 提供了一种简单的方法来试验 C# 和 .NET。网址是https://try.dot.net。
步骤1-编写代码
Console.WriteLine("Hello world!");
步骤2-运行代码
你编写的代码会发生什么情况?
using System;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello world!");
}
}
下面这段话:没看懂。
代码 public static void Main()
及其一组大括号定义一种称为“方法”的代码块类型。
在插入的代码行中,Console.WriteLine()
正在调用或运行方法 WriteLine()
。 方法 WriteLine()
包含在类 Console
中。
此代码在哪里? 它位于基类库。 实际上,其全名是 System.Console.WriteLine()
。
对 Console.WriteLine()
的调用中省略了 System
一词。 但是第一行代码 using System;
将告诉 C# 编译器,如果它在代码中找不到方法定义,则在基类库中查找。
将代码插入Main()方法后会发生什么情况?
在此练习中,最重要的部分是将你编写的代码插入 Main()
方法后会发生的情况。 请记住,此过程发生在你使用的服务器上。
-
编译新代码的命令将调用 C# 编译器。
-
C# 编译器确保你的代码可以编译,且无任何语法错误。 如果它无法编译你的代码,编译器将停止并将错误消息发送回“输出”窗格。
-
如果 C# 编译器成功,.NET 运行时将打开新编译的 .NET 程序集。 默认情况下,它会在名为
Program
的类中查找名为Main()
的方法,以便开始运行指令。 -
.NET 逐条运行指令,评估每一行代码。 它运行指令,然后移到下一行代码。
-
在本示例中,当打印“Hello world!”一词的指令完成后,正在运行的路径将继续下一行,但找不到任何内容。 路径结束后,.NET 运行时从其内存中删除程序。 同时,
WriteLine()
指令的输出将传送回你的 Web 浏览器。
这一系列事件,以及编程语言、编译器和运行时之间职责的基本划分,是入门时需要了解的最重要的概念。
何时使用.NET?
.NET适用于各种规模大小的项目
工作效率重要时选择.NET
选择适用于企业级应用程序的.NET
选择适用于原型制作、初创企业和小规模应用程序的.NET
选择适用于云和AI应用程序的.NET
ML.NET 是适用于 .NET 语言的免费机器学习库。 它支持基于模型的机器学习分析和预测功能。
选择.NET以生成loT应用程序
可使用 .NET 生成适用于 IoT 设备和场景的 IoT 应用程序。 IoT 应用程序通常与需要使用常规用途 I/O (GPIO) 引脚、串行端口或类似硬件的传感器、显示器和输入设备交互。