闲话 .NET(1):.NET Framework

简介: 闲话 .NET(1):.NET Framework

前言

还记得 2002 年微软刚推出 .NET Framework 时,我们为之欢呼雀跃的情景,第一次安装 Visual Studio 2002 时,那时还没有现在这么丰富的安装教程,磕磕碰碰地安装了几天才安装成功,当时能够像 Windows 桌面应用一样,拖拖控件就创建一个网站的 ASP.NET Web Forms 确实让大伙感觉得很神奇……

经过近20年的发展,它已经成为在微软平台上进行软件开发的主要开发平台。

无论是在桌面应用软件开发、企业信息系统开发中,还是在互联网开发中,.NET Framework 都有着广泛的应用。

尽管随着软件行业的发展,基于传统方式开发和部署的 .NET Framework 渐渐已经无法适应越来越复杂的系统和激增的访问量,时至今日,.NET Framework 已经停止了更新,但 .NET Framework 毕竟是新一代的 .NET Core 的重要基础,对于一些基于 Windows OS 开发的应用,比如工控行业等等,它依然有着不俗的表现,下面我们来盘点一下 .NET Framework 各个历史版本的亮点:

.NET Framework 历史版本的亮点

  1. .NET Framework 1.0:

这是一个重要里程牌的版本,为开发人员提供了一个全面的开发框架,包括 Windows 桌面应用程序、Web 应用程序和 Web 服务的支持。

  1. .NET Framework 2.0:

在这个版本中,开始引入了泛型类型和方法,通过使用泛型,我们可以编写更灵活、可扩展和类型安全的代码,减少了冗余代码的编写,并提高了应用程序的性能和可维护性。

泛型在 .NET 框架中被广泛应用,例如在集合类(如List、Dictionary<TKey, TValue>)、LINQ查询、委托和事件等方面。

此外,这个版本还引入了其他的许多新特性,包括 64 位支持、ASP.NET 2.0、工作流等等。

  1. .NET Framework 3.0:

引入了 WCF、WPF 等新技术,进一步丰富了 WebServices 和 桌面应用程序开发。

  1. .NET Framework 3.5:

在这个版本中,开始引入了 LINQ(Language Integrated Query)查询语言。

LINQ(Language Integrated Query)是 .NET 框架中的一项重要功能,它提供了一种统一的查询语法和操作符,用于在 .NET 应用程序中对各种数据源进行查询和操作。

LINQ 使得在 .NET 中执行查询操作变得更加简洁、直观和易于理解。同时可以使用 Lambda 表达式,它是一种简洁的匿名函数表示法,LINQ 与 lambda 表达式密切相关。

同时,还引入了 ASP.NET AJAX 等新特性,帮助更轻松地处理数据和构建交互式 Web 应用程序。

  1. .NET Framework 4.0:

引入了并行编程模型、动态语言运行时(Dynamic Language Runtime,DLR)、Entity Framework 和扩展 WCF 等新功能,进一步提高性能和开发效率。

同时,在这个版本中,ASP.NET MVC 得到了更好的支持,开发人员有了更好的 Web 应用开发方式,ASP.NET Web Forms 渐渐被淘汰。

  1. .NET Framework 4.5:

在这个版本中,增加了 WebSockets 支持,改进 EF 性能等等,最重要的,开始引入了异步编程模型(async/await)。

异步编程模型(async/await)是 .NET 框架中的一项重要特性,用于简化和改进异步编程。

它使开发人员能够以一种更直观、可读性更高的方式编写异步代码,避免了传统的回调式编程模式带来的复杂性和困扰。

一个异步编程例子:

// DownloadDataAsync 方法通过关键字 async 被标记为异步方法,
// 并使用 await 关键字等待 HttpClient 的 GetStringAsync 方法的完成。
// 在等待期间,线程可以执行其他任务,而不会被阻塞。
// 当异步操作完成后,方法会返回结果。
public async Task<string> DownloadDataAsync(string url)
{
    HttpClient client = new HttpClient();
    string data = await client.GetStringAsync(url);
    return data;
}
  1. .NET Framework 4.6:

引入了编译器优化、ASP.NET Identity 和 HTTP/2 支持等新特性,进一步提高性能和安全性。

  1. .NET Framework 4.7:

引入了高 DPI 支持、改进了 ASP.NET、WCF、WPF 性能和进一步支持 TLS 增强安全性等功能,以适应最新的 Windows 平台和技术发展。

  1. .NET Framework 4.8:

.NET Framework 的最后一个版本,在此版本中,进一步提高安全性,改进了 ASP.NET、WCF、WPF 等的性能,优化编译器等等。

结语

本文讲了一些历来每个 .NET Framework 版本比较有价值的新特征,这些特性代表了.NET Framework 在不同版本中的重要改进和创新,提升了开发人员的生产力和应用程序的性能、可用性等能力。

实际上,.NET Framework 还有很多突出的功能,您认为.NET Framework 还有哪些比较有价值的新特性,欢迎留言讨论。

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊人生。

都看到这了,求个点赞、关注、在看三连呗,感谢支持。


相关文章
|
1月前
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
42 1
|
27天前
|
开发框架 缓存 监控
NET Framework 到 .NET 5/6 的迁移是重大的升级
本文详细介绍了从 .NET Framework 4.8 迁移到 .NET 5/6 的过程,通过具体案例分析了迁移策略与最佳实践,包括技术栈评估、代码迁移、依赖项更新及数据库访问层的调整,强调了分阶段迁移、保持代码可维护性及性能监控的重要性。
46 3
|
1月前
|
机器学习/深度学习 编解码 算法
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
《nnU-Net: 自适应框架用于基于U-Net的医学图像分割》是一篇2018年的论文,发表在Nature上。该研究提出了一种自适应的医学图像分割框架nnU-Net,能够自动调整模型的超参数以适应不同的数据集。通过2D和3D U-Net及级联U-Net的组合,nnU-Net在10个医学分割数据集上取得了卓越的性能,无需手动调整。该方法强调数据增强、预处理和训练策略等技巧,为医学图像分割提供了一个强大的解决方案。
64 0
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
本文讨论了在基于.NET 6和.NET Framework的WinForms项目中添加图表控件的不同方法。由于.NET 6的WinForms项目默认不包含Chart控件,可以通过NuGet包管理器安装如ScottPlot等图表插件。而对于基于.NET Framework的WinForms项目,Chart控件是默认存在的,也可以通过NuGet安装额外的图表插件,例如LiveCharts。文中提供了通过NuGet添加图表控件的步骤和截图说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
|
3月前
|
开发框架 缓存 前端开发
实战.NET Framework 迁移到 .NET 5/6
从.NET Framework 迁移到.NET 5/6 是一次重要的技术革新,涵盖开发环境与应用架构的全面升级。本文通过具体案例详细解析迁移流程,包括评估现有应用、利用.NET Portability Analyzer 工具识别可移植代码、创建新项目、逐步迁移代码及处理依赖项更新等关键步骤。特别关注命名空间调整、JSON 序列化工具更换及数据库访问层重构等内容,旨在帮助开发者掌握最佳实践,确保迁移过程平稳高效,同时提升应用性能与可维护性。
121 2
|
3月前
|
开发框架 JSON 监控
实战指南:从 .NET Framework 迁移到 .NET 5/6 的策略与最佳实践
【8月更文挑战第28天】从 .NET Framework 迁移到 .NET 5/6 是一次重要的技术升级,涉及开发环境与应用架构的改进。本文通过具体案例分析,介绍迁移策略与最佳实践,帮助开发者顺利完成转变。
79 1
|
3月前
|
缓存 程序员
封装一个给 .NET Framework 用的内存缓存帮助类
封装一个给 .NET Framework 用的内存缓存帮助类
|
3月前
|
XML JSON 程序员
总结一下 .NET FrameWork 和 .NET Core 创建的项目的不同点
总结一下 .NET FrameWork 和 .NET Core 创建的项目的不同点
|
3月前
|
消息中间件 开发框架 .NET
闲话 .NET(7):.NET Core 能淘汰 .NET FrameWork 吗?
闲话 .NET(7):.NET Core 能淘汰 .NET FrameWork 吗?
|
3月前
|
JSON API C#
闲话 .NET(6):.NET Core 各个版本的特性
闲话 .NET(6):.NET Core 各个版本的特性