博客
关于我
.NET生态系统掠影
阅读量:433 次
发布时间:2019-03-06

本文共 2209 字,大约阅读时间需要 7 分钟。

.NET生态系统的核心优势在于其多样性和灵活性,但同时也带来了开发者在技术选择上的困惑。本文将详细探讨.NET的历史、运行时选项以及如何在实际项目中选择和使用这些技术。

.NET的历史

.NET平台的发展始于20世纪90年代,微软推出了.NET战略,旨在整合其所有产品并添加.NET标签。2000年代初,.NET Framework被称为下一代Windows服务(NGWS),并于2002年2月13日发布了第一个正式版本。随后的版本迭代不断丰富了功能,例如:

  • .NET Framework 2.0(2005年): 引入了泛型集合、迭代器和可空类型。
  • .NET Framework 3.0(2006年): 包含WPF(Windows Presentation Foundation)、WCF(Windows Communication Foundation)和WWF(Windows Workflow Foundation)。
  • .NET Framework 4.0(2010年): 引入了MEF(多扩展应用程序框架)、动态语言运行时(DLR)和任务并行库。
  • .NET Core 1.0(2014年): 首个跨平台支持的版本,带来了ASP.NET 5和.NET Native。
  • .NET Core 2.0(2017年): 提升了性能,并实现了.NET Standard 2.0。

.NET生态系统概述

.NET生态系统涵盖了多种运行时选项:

  • .NET Framework:以Windows为中心,支持WPF、Windows窗体和ASP.NET。
  • .NET Core:跨平台支持,适用于服务器、物联网、Linux等多种环境。
  • Xamarin的Mono:专为移动平台(iOS、Android、Windows 10 UWP)设计,支持本地编译和高性能运行。
  • 所有这些运行时都基于.NET Standard库,该库定义了一套规范性API,每个运行时都有其实现。通过共享代码,可以实现跨运行时的代码重用。

    .NET运行时

    1. .NET Framework

    .NET Framework是.NET生态系统的核心运行时,基于公共语言运行时(CLR),支持托管代码(如C#、VB.NET)的执行。它包含丰富的类库,适用于Windows平台的各种应用开发,例如WPF、Windows窗体和ASP.NET。

    2. .NET Core

    .NET Core是一个独立的开源运行时,支持跨平台开发。它包括CoreCLR和.NET Core类库,适用于从Windows到Linux、macOS的多种环境。与传统.NET Framework相比,.NET Core的优势在于其轻量级和高性能。

    3. Mono for Xamarin

    Mono是.NET框架运行时的开源克隆,专为移动开发设计。它支持iOS、Android和Windows 10 UWP,提供本地化的高性能运行时体验。

    其他框架

    除了上述核心运行时,.NET生态系统还包括其他专用框架:

    • .NET Compact Framework:为资源受限的设备(如PDA、移动设备)设计。
    • .NET Micro Framework:针对内存和存储极为有限的设备。
    • Silverlight:专为浏览器开发,支持丰富的媒体体验。
    • 社区项目:如DotGNU Portable.NET等,提供多种.NET运行时实现。

    .NET Standard

    .NET Standard是.NET生态系统的规范化API集合,旨在解决不同运行时之间代码共享的困难。它定义了一个平台无关的API集,各运行时实现对应于特定版本的.NET Standard。例如,.NET Framework 4.6.1实现了.NET Standard 2.0。

    工具

    1. .NET Framework工具

    .NET Framework的构建和调试依赖于MSBuild和Roslyn编译器,生成IL代码,通过CLR进行即时编译。

    2. .NET Core工具

    .NET Core工具采用dotnet CLI,支持命令行构建和发布。CoreCLR支持多平台JIT,提供高性能运行时。

    3. Xamarin工具

    Xamarin工具支持本地化编译和高性能运行,通过Mono运行时实现跨平台支持。

    Visual Studio IDE

    Visual Studio是.NET开发的首选IDE,支持跨平台开发,包括Windows、Linux和macOS。它提供强大的调试和代码协作功能,适用于所有.NET运行时的开发。

    库与语言

    .NET生态系统拥有丰富的库和工具,NuGet包管理器提供超过90,000个可用的库。开发者可以选择C#、F#或Visual Basic等语言进行编码。

    使用建议

    • .NET Framework:适合传统Windows应用开发,如桌面应用程序。
    • .NET Core:适合需要跨平台支持的高性能应用。
    • Xamarin:专为移动应用开发,支持本地化和高性能运行。

    未来展望

    .NET 5将统一.NET Core和.NET Framework,提供一个一致的跨平台开发体验。未来还将推出.NET MAUI,简化跨平台UI开发,支持多平台应用开发。

    通过合理选择和优化.NET运行时,可以充分发挥其优势,构建高性能、跨平台的应用程序。

    转载地址:http://oiouz.baihongyu.com/

    你可能感兴趣的文章
    OpenCV 人脸识别 C++实例代码
    查看>>
    OpenCV 在 Linux 上的 python 与 anaconda 无法正常工作.收到未实现 cv2.imshow() 的错误
    查看>>
    Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上
    查看>>
    opencv 模板匹配, 已解决模板过大程序不工作的bug
    查看>>
    OpenCV 错误:(-215)size.width>0 &&函数imshow中的size.height>0
    查看>>
    opencv&Python——多种边缘检测
    查看>>
    opencv&python——高通滤波器和低通滤波器
    查看>>
    OpenCV+Python识别车牌和字符分割的实现
    查看>>
    OpenCV-Python接口、cv和cv2的性能比较
    查看>>
    OpenCV/Python/dlib眨眼检测
    查看>>
    opencv1-加载、修改、保存图像
    查看>>
    opencv10-形态学操作
    查看>>
    opencv11-提取水平直线和垂直直线
    查看>>
    opencv12-图像金字塔
    查看>>
    opencv13-基本阈值操作
    查看>>
    opencv14-自定义线性滤波
    查看>>
    opencv15-边缘处理
    查看>>
    opencv16-Sobel算子
    查看>>
    opencv17-laplance算子
    查看>>
    opencv18-canny检测算法
    查看>>