.net core 订阅
.NET Core是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台 [1]  ,它经常也会拿来和现有的开源 .NET 平台 Mono 比较。由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core 采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 打包式安装的作法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。.NET Core 项目的主要目标有 [2]  :支持或可以移转 (port) 到更多的操作系统平台与芯片架构 (也就是未来项目会跨出 x86 平台)。具有引人注目的性能与高可靠度。开发人员能快速与直接的获取 .NET Core 开发环境。在直觉与具生产力的情况下建造应用程序,使用文件,示例与 NuGet 组件。 展开全文
.NET Core是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台 [1]  ,它经常也会拿来和现有的开源 .NET 平台 Mono 比较。由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core 采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 打包式安装的作法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。.NET Core 项目的主要目标有 [2]  :支持或可以移转 (port) 到更多的操作系统平台与芯片架构 (也就是未来项目会跨出 x86 平台)。具有引人注目的性能与高可靠度。开发人员能快速与直接的获取 .NET Core 开发环境。在直觉与具生产力的情况下建造应用程序,使用文件,示例与 NuGet 组件。
信息
软件语言
英文
开发商
微软
软件名称
.net core
功    能
RyuJIT、Core CLR、Core RT等
软件平台
Windows、macOS、Linux
.net core核心功能
.NET Core 是由许多项目所组成,除了基本的类库(Core FX) 之外,也包含采用 RyuJIT 编译的运行平台 Core CLR、编译器平台.NET Compiler Platform、采用 AOT 编译技术运行最优化的包 Core RT (.NET Core Runtime),以及跨平台的 MSIL 编译器 LLILC (LLVM-based MSIL Compiler) 等项目。同时,微软也发展了一个建置技术文件的平台docfx, [3]  并运用于 .NET Core 的文件网站。RyuJITRyuJIT 是微软发展的新式即地编译器 (Just-in-Time Compiler),用以替换现有的 .NET Framework 的 JIT 以及 JIT64 即地编译器,依据微软公布的测试报告,RyuJIT 的性能较前一代的 JIT 提升约 25%,并支持SIMD(Single Instruction, Multiple Data) 的技术。RyuJIT 同时应用于 .NET Framework 4.6 以及 .NET Core [4]  。Core CLRCore CLR 移植 .NET Framework 的 CLR 的功能,包含核心程序库 mscorlib、JIT 编译器、垃圾收集器 (GC) 以及其他运行 MSIL 所需要的运行期环境。Core RTCore RT 是以AOT (Ahead-of-time) 编译方式为主的核心功能,在 .NET Core 内称为 Core RT,在 UWP 则是称为 .NET Native。Core RT 会在建造时期 (非运行期) 在编译时将 MSIL 转换成平台本地的机器码,以获取较短的引导时间 (JIT 采用的是运行时期编译,使得引导时间拉长),以及内存用量减少的优点。Core RT 会在不同的平台使用不同的 AOT 技术:LLILCLLILC (LLVM-based MSILCompiler,英文发音为 "lilac") 是 .NET Core 在非 Windows 平台的 MSIL 编译器 [5]  ,基于 ECMA-335 (Common Language Infrastructure) 的标准将 MSIL 编译成原生码运行,适用于可运行 LLVM 的操作系统,例如 macOS与 Linux 操作系统。LLILC 同时支持 JIT (内含 RyuJIT 的实现) 以及 AOT (未来将开始支持) 的编译方式。Roslyn.NET Compiler Platform (项目代码为 Roslyn) 是将 .NET 平台的编译架构标准化的平台,它可提供程序管理工具 (如集成开发环境) 相当多的情报,用以发展有助于编写程序与管理程序结构所需要的功能,例如类型信息、语法结构、参考链接、语义、编译器、自动化、错误回报等等功能,只要是遵循 CLI 标准的编程语言,都可以利用 .NET Compiler Platform 实现出编译器,让程序管理工具能实现如语法提示、语法自动完成、关键字高亮等可视化能力。.NET Compiler Platform 可同时支持 .NET Framework 4.6 以上版本,.NET Core 也原生支持。
收起全文
精华内容
参与话题
问答
  • net.core 官方教程

    2019-01-06 13:18:37
    net.core 官方文档 官方教程 c#
  • .NET Core 学习资料精选:入门

    千次阅读 2019-07-21 05:31:12
    开源跨平台的.NET Core,还没上车的赶紧的,来不及解释了…… 本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料。我进行了知识...
        

        开源跨平台的.NET Core,还没上车的赶紧的,来不及解释了……

        本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料。我进行了知识点归类,让大家可以更清晰的学习.NET Core。

      首先感谢资料原作者的贡献。

        第一篇:.NET Core 学习资料精选:入门

          介绍.NET历史、开源之路、基础、路由、依赖注入、HttpContext、cookie|session、HttpClient、gRPC、单元测试、发布部署等等。

        第二篇:.NET Core 学习资料精选:进阶&高级

          

    这是第一篇,知识点如图: 

               640?wx_fmt=jpeg

     

    .NET 简介

    #、.NET 开源之路

    640?wx_fmt=png

    .NetFrameWork发展史

    C# 语言版本发展史

    2014.11月 .NET Core 项目启动,2016.06月 .NET Core 1.0 发布

    微软 .NET Core3.0 规划蓝图

    .NET Core 3.0 下一个版本命名为:.NET 5

    640?wx_fmt=jpeg

     

    #、.NET Core提供的特性

    1.开源、免费

    2.轻量级、跨平台

    3.组件化、模块化、IOC+Nuget、中间件

    4.高性能

    5.统一了MVC和WebAPI编程模型

    1. a)  比如:ASP.NET Core 中MVC 和Web API 直接或间接继承同一个基类 ControllerBase,提供可使用的API也一致化

    2. b)  比如:旧ASP.NET时代,写全局filter需要针对MVC 和Web API 分别编写代码,但在ASP.NET Core,直接使用一套中间件代码即可

    3. 6.可测试性

    4. 7.微服务、容器化支持

    5. 8.标准化 .NET API 规范- .NET STANDARD

     

    #、迁移到.NET Core

    目前市面上还存在很多传统 .NET 旧项目,我们需要根据公司情况决定是否升级到.NET Core。

    如果需要进行旧项目升级的,可以参考文章:《.NET项目迁移到.NET Core操作指南

     

    VS.NET Core安装

    VS2019安装教学

    VS2019正式版注册码秘钥

    安装 .NET Core Runtime 和.NET Core SDK

    【微软官方文档】ASP.NET Core *.* 个版本新特性

    指定要使用的 .NET Core 版本

    如何删除 .NET Core 过时的运行时和 SDK

    [坑]安装 .Net Core 2.2 SDK后,VS2017依然不能设置core2.2为目标框架

     

    基础

    ASP.NET Core开发者路线指南

    微软官方 asp.net core 教程文档

    .NET Core 命令行接口 (CLI) 工具

    .NET Core 运行程序注意事项(dotnet dll 与 dotnet run)

    ASP.NET Core API 一览表

    查询 NET API 及类库在各版本中实现情况

    ASP.NET Core 项目目录结构介绍

    ASP.NET Core 程序自定义IP和端口的几种方式

    ASP.NET Core 中的Startup类

    ASP.NET Core 中使用多个环境(开发、预发布、生产)- 默认为 Production

    ASP.NET Core 动作结果(ActionResult)

    ASP.NET Core 中控制器操作的多路径返回类型(IActionResult)

    .NET Core 3.0 新的 System.Text.Json API

     

    配置

    ASP.NET Core 中的配置(json、xml、命令行、环境变量、内存变量等)

    ASP.NET Core 中的选项模式

    .Net Core 自定义配置源从远程API读取配置(ConfigurationProvider)

    迈向现代化的 .Net 配置指北(配置到类自动映射)

     

    路由、模型绑定

    ASP.NET Core WebAPI中,Controller标注 [ApiController] 特性,其路由只能使用[route]特性方式

    ASP.NET Core MVC 构建可读性更高的ASP.NET Core 路由

    ASP.NET Core 中的模型绑定

    ASP.NET Core 中的自定义模型绑定(IModelBinder)

    ASP.NET Core 中的 URL 重写中间件

     

    依赖注入(IOCDI

    什么是控制反转,和依赖注入:

    控制反转的意思就是:平常我们需要一个类对象的时候需要new出来,而现在我们把new一个类对象的工作交给了IOC容器,当我们需要一个类对象的时候直接向IOC容器要,就可以了,这个就是控制反转。(控制权交个了IOC容器)

    依赖注入的意思就是:当我需要一个类对象,IOC容器给我们这个类对象的过程其实就是依赖注入,依赖注入有构造函数注入和属性注入。 

    [官方]ASP.NET Core 依赖注入

    全面理解 ASP.NET Core 依赖注入

    官方推荐通过构造函数。这也是所谓的显式依赖。Asp.Net Core 的标准依赖注入容器不支持属性注入。(可以使用autofac或者其他来实现属性注入)

    ASP.NET Core 中依赖注入的N种玩法

    ASP.NET Core 自定义特性实现属性注入

    ASP.NET Core 原生DI实现批量注册

    可以参考 OSharp 框架,设计三个全局注入接口,来实现自动化注入ISingletonDependency 和 ITransientDependency 、 IScopedDependency ( 单例、瞬时、范围)。

    ASP.NET Core 中如何注入同一个接口的多个实现

    案例1:使用nlog时,想根据需要使用不同的配置文件Nlog.config 写日志时,就可以使用文章中介绍的 Factory 命名注入方案来实现

    案例2:使用分布式缓存 IDistributedCache 时,想根据需要在一个项目中同时使用redis和sqlserver

    ASP.NET Core 中多个接口对应同一个实现的正确姿势

    ASP.NET Core 依赖注入扩展库 Scrutor

    [OSharp]使用 IServiceProvider.GetService<T>() 实现按需注入,优化性能

     

    #、ASP.NET Core 集合 Autofac 的使用

    AutoFac三种注入方式:按类型、按名称、按键

    Asp.Net Core 2.0 之旅---AutoFacIOC容器的使用教程

    Asp.Net Core 2.0 之旅---AutoFac仓储泛型的依赖注入(泛型注入)

    Asp.Net Core 2.0 之旅---数据访问仓储模式的事务管理(uow+rp)

     

    ASP.NET Core 中使用Autofac实现属性注入的代码片段

    640?wx_fmt=png

    ASP.NET Core WebAPI

    创建ASP.NET Core Web API (ControllerBase、参数绑定源)

    ASP.Net Core WebAPI 几种版本控制对比

    使用 Web API 约定

    使用 Web API 分析器告警缺失的约定

     

    ASP.NET CoreMVC Razor Pages

    ASP.NET Core SignalR 入门

    ASP.NET Core MVC 静态文件目录配置与访问授权

    新的 Razor 机制

    ASP.NET Core Razor SDK

    ASP.NET Core 的 Razor 语法参考

    ASP.NET Core 中的 Razor 页面介绍(OnGet、OnPost、单页多Handler方式)

    ASP.NET Core 中 Razor 页面的IPageFilter

    ASP.NET Core 中 Razor 页面的路由和应用约定

    ASP.NET Core Razor 配置:预编译,动态编译,混合编译

    WebForm & MVC & Razor Pages

    [译]ASP.NET:WebForms vs MVC

    ASP.NET Core Razor页面 vs MVC

    [译]ASP.Net Core 2.0中的Razor Page不是WebForm

    ASP.NET Core Razor页面简化了 ASP.NET MVC 应用程序

     

    HttpContext

    ASP.NET Core 中访问 HttpContext 的方法

    ASP.NET Core 中通过IHttpContextAccessor实现公用静态HttpContext

     

    状态管理

    常见方式:Cookie、Session、TempData、查询字符串、HttpContext.Items、缓存、依赖关系注入

    ASP.NET Core 中的会话和应用状态

    #session

    ASP.NET Core 在通用数据保护条例规则下使用 session

    ASP.NET Core 使用Redis存储Session

    #cookie

    ASP.NET Core SameSite 设置引起 Cookie 在 QQ 浏览器中不起作用

    [github]ASP.NET Core CookieManager

     

    通信

    对比 gRPC 服务和 HTTP API 服务

    #、HttpClient

    ASP.NET Core HttpClient的演进和避坑

    ASP.NET Core HttpClient的各种用法、生命周期管理

    DotNetCore 使用Http请求及基于 Polly 的处理故障

    DotNetCore 中 HttpClientFactory 类源码分析

    #、gRPC

    ASP.NET Core 3.0 上的gRPC服务模板初体验(多图)

    ASP.NET Core gRPC的配置

     

    发布部署

    ASP.NET Core 使用 IIS 进行托管部署

    ASP.NET Core 部署到 Linux 进行托管

    ASP.NET Core 使用Supervisor进行托管部署

    ASP.NET Core 使用Docker进行容器化托管

    配置 ASP.NET Core 以使用代理服务器和负载均衡器

      使用 Nginx 在 Linux 上托管 ASP.NET Core

      使用 Apache 在 Linux 上托管 ASP.NET Core

     

    单元测试

    .NET Core 和 .NET Standard 单元测试最佳做法

    使用 dotnet test 和 xUnit 在 .NET Core 中进行 C# 单元测试

    使用 dotnet test 和 NUnit 在 .NET Core 中进行 C# 单元测试

    使用 dotnet test 和 MSTest 在 .NET Core 中进行 C# 单元测试

    使用 dotnet test --filter 进行选择性单元测试

     

    ==============================================================================








    展开全文
  • .NET Core是什么

    千次阅读 2019-06-09 00:41:59
    .NET Core就是如此,它是其它操作系统的.NET Framework翻版实现。 操作系统不止Windows,还有Mac和类Linux等系统, .NET的实现 如果按操作系统来横向分割的话,可以分为 Windows系统下的 .NET Framework 和 兼容多...

    有丑才有美,有低才有高,概念是比较中诞生的。.NET Core就是如此,它是其它操作系统的.NET Framework翻版实现。

    操作系统不止Windows,还有Mac和类Linux等系统, .NET的实现 如果按操作系统来横向分割的话,可以分为 Windows系统下的 .NET Framework 和 兼容多个操作系统的 .NET Core。

    我们知道,一个.NET程序运行核心在于.NET CLR,为了能让.NET程序在其它平台上运行,一些非官方社区和组织为此开发了在其它平台下的.NET实现(最为代表的是mono,其团队后来又被微软给合并了 ),但因为不是官方,所以在一些方面多少有些缺陷(如FCL),后来微软官方推出了.NET Core,其开源在Github中,并被收录在NET基金会(.NET Foundation,由微软公司成立与赞助的独立自由软件组织,其目前收录包括.NET编译器平台("Roslyn")以及ASP.NET项目系列,.NET Core,Xamarin Forms以及其它流行的.NET开源框架),旨在真正的 .NET跨平台。

    .NET Core是.NET 技术框架组成在Windows.macOS.Linux系统下的具体的实现。

    .NET Core是一个开源的项目,其由 Microsoft 和 GitHub 上的 .NET 社区共同维护,但 这份工作仍然是巨大的,因为在早期对.NET上的定义及最初的实现一直是以Windows系统为参照及载体,一些.NET机制实际上与Windows系统耦合度非常高,有些属于.NET自己体系内的概念,有些则属于Windows系统api的封装。 那么从Windows转到其它平台上,不仅要实现相应的CLR,还要舍弃或重写一部分BCL,因而,.NET Core在概念和在项目中的行为与我们平常有些不同。

    比如,NET Core不支持AppDomains、远程处理、代码访问安全性 (CAS) 和安全透明度,任何有关该概念的库代码都应该被替换。

    这部分代码它不仅指你项目中的代码,还指你项目中using的那些程序集代码,所以你会在github上看到很多开源项目都在跟进对.NET Core的支持,并且很多开发者也尝试学习.NET Core,这也是一种趋势。

    .NET Core指南https://docs.microsoft.com/en-us/dotnet/core/

    .NET基金会:https://dotnetfoundation.org

    .NET Core跨平台的行为变更:https://github.com/dotnet/corefx/wiki/ApiCompat

    微软宣布.NET开发环境将开源 :https://news.cnblogs.com/n/508410/

    展开全文
  • .Net目前支持构建服务器端应用程序的两种实现主要有两种,.NET Framework和.NET Core。两者共享许多相同的组件,并且您可以在两者之间共享代码。但是,两者之间存在根本差异,在我们选择使用哪种框架构建应用时,您...

    前言

    file

    .Net目前支持构建服务器端应用程序的两种实现主要有两种,.NET Framework和.NET Core。两者共享许多相同的组件,并且您可以在两者之间共享代码。但是,两者之间存在根本差异,在我们选择使用哪种框架构建应用时,您的选择取决于您要完成的工作,以下说明两种框架的应用场景,希望能够帮助您做出最正确的选择。

    在以下情况下,将.NET Core用于服务器应用程序:

    • 您有跨平台的需求。
    • 您正在针对微服务。
    • 您正在使用Docker容器。
    • 您需要高性能和可扩展的系统。
    • 每个应用程序需要并行的.NET版本。
    • 在以下情况下,将.NET Framework用于服务器应用程序:

    您的应用当前使用.NET Framework(建议扩展而不是迁移)。

    • 您的应用程序使用了.NET Core不可用的第三方.NET库或NuGet软件包。
    • 您的应用使用了.NET Core无法使用的.NET技术。
    • 您的应用使用的平台不支持.NET Core。 Windows,macOS和Linux支持.NET Core。

    何时选择.NET Core

    file

    以下各节对前面所述选择.NET Core的原因进行了更详细的说明。

    跨平台需求

    如果您的应用程序(Web /服务)需要在多个平台(Windows,Linux和macOS)上运行,请使用.NET Core。

    .NET Core支持将前面提到的操作系统作为您的开发工作站。 Visual Studio为Windows和macOS提供了集成开发环境(IDE)。您还可以使用Visual Studio Code,该代码可在macOS,Linux和Windows上运行。 Visual Studio Code支持.NET Core,包括IntelliSense和调试。大多数第三方编辑器(例如Sublime,Emacs和VI)都可以使用.NET Core。这些第三方编辑器使用Omnisharp获得编辑器IntelliSense。您也可以避免使用任何代码编辑器,而直接使用适用于所有受支持平台的.NET Core CLI。

    微服务架构

    微服务架构允许跨服务边界混合使用多种技术。这种技术组合使.NET Core可以逐渐与可与其他微服务或服务一起使用的新微服务兼容。例如,您可以混合使用.NET Framework,Java,Ruby或其他单片技术开发的微服务或服务。

    有许多可用的基础架构平台。 Azure Service Fabric专为大型和复杂的微服务系统而设计。 Azure应用服务是无状态微服务的理想选择。如``容器’'部分所述,基于Docker的微服务替代品适合任何类型的微服务方法。所有这些平台都支持.NET Core,使其成为托管微服务的理想选择。

    有关微服务体系结构的更多信息,请参见.NET微服务。容器化.NET应用程序的体系结构。

    容器

    容器通常与微服务架构结合使用。容器还可以用于容器化遵循任何体系结构模式的Web应用程序或服务。 .NET Framework可以在Windows容器上使用,但是.NET Core的模块化和轻量级的特性使其成为容器的更好选择。创建和部署容器时,.NET Core的映像大小比.NET Framework小得多。因为它是跨平台的,所以您可以将服务器应用程序部署到Linux Docker容器。

    Docker容器可以托管在您自己的Linux或Windows基础结构中,也可以托管在诸如Azure Kubernetes Service之类的云服务中。 Azure Kubernetes Service可以在云中管理,协调和扩展基于容器的应用程序。

    对高性能和可扩展系统的需求

    当您的系统需要最佳的性能和可伸缩性时,.NET Core和ASP.NET Core是您的最佳选择。 Windows Server和Linux的高性能服务器运行时使.NET成为TechEmpower基准测试中性能最高的Web框架。

    性能和可伸缩性与可能正在运行数百个微服务的微服务体系结构特别相关。使用ASP.NET Core,系统运行的服务器/虚拟机(VM)数量少得多。减少的服务器/虚拟机节省了基础架构和托管成本。

    每个应用程序级别并排的.NET版本的需求

    要安装依赖于不同版本.NET的应用程序,建议使用.NET Core。 .NET Core可在同一台计算机上并行安装不同版本的.NET Core运行时。这种并行安装允许在同一服务器上提供多个服务,每个服务都在其自己的.NET Core版本上。它还降低了风险,并节省了应用程序升级和IT运营的费用。

    何时选择.NET Framework

    file

    .NET Core为新的应用程序和应用程序模式提供了明显的好处。但是,对于许多现有方案而言,.NET Framework仍然是自然的选择,因此对于所有服务器应用程序,.NET Core都不会取代.NET Framework。

    当前.NET Framework应用程序

    在大多数情况下,您不需要将现有应用程序迁移到.NET Core。相反,建议的方法是在扩展现有应用程序时使用.NET Core,例如在ASP.NET Core中编写新的Web服务。

    需要使用不适用于.NET Core的第三方.NET库或NuGet软件包

    图书馆正在迅速拥抱.NET标准。 .NET Standard支持跨所有.NET实现(包括.NET Core)共享代码。使用.NET Standard 2.0,这甚至更加容易:

    API的表面变得更大。

    引入了.NET Framework兼容模式。此兼容模式允许.NET Standard / .NET Core项目引用.NET Framework库。要了解有关兼容模式的更多信息,请参见宣布.NET Standard 2.0。
    因此,仅在库或NuGet软件包使用.NET Standard / .NET Core中不可用的技术的情况下,才需要使用.NET Framework。

    需要使用.NET Core不可用的.NET技术

    .NET Core中不提供某些.NET Framework技术。其中一些可能在更高的.NET Core版本中可用。其他则不适用于.NET Core定位的新应用程序模式,并且可能永远不可用。以下列表显示了.NET Core中找不到的最常见技术:

    ASP.NET Web窗体应用程序:

    ASP.NET Web窗体仅在.NET Framework中可用。 ASP.NET Core不能用于ASP.NET Web窗体。没有计划将ASP.NET Web窗体引入.NET Core。

    ASP.NET Web Pages应用程序:

    ASP.NET Core中不包含ASP.NET Web Pages。

    WCF服务实施。

    即使有WCF-Client库可以使用.NET Core中的WCF服务,WCF服务器实现当前也仅在.NET Framework中可用。该方案不是当前.NET Core计划的一部分,但正在考虑将来使用。

    与工作流相关的服务:

    Windows Workflow Foundation(WF),工作流服务(单个服务中的WCF + WF)和WCF数据服务(以前称为“ ADO.NET数据服务”)仅在.NET Framework中可用。没有计划将WF / WCF + WF / WCF数据服务引入.NET Core。

    需要使用不支持.NET Core的平台

    某些Microsoft或第三方平台不支持.NET Core。某些Azure服务提供了尚无法在.NET Core上使用的SDK。这是一个过渡情况,因为所有Azure服务都使用.NET Core。同时,您始终可以使用等效的REST API代替客户端SDK。

    结语

    以上总结了.Net与.Net Framework之间的差异和每项的最佳使用场景,希望能够为刚上手.Net的朋友们答疑解惑。接下来我会陆续制作.Net与.Net Core相关基础教程,并分享到个人博客,希望大家能够关注支持,原创,喜欢的话记得帮忙点个赞。

    在这里插入图片描述

    本文由博客群发一文多发等运营工具平台 OpenWrite 发布

    展开全文
  • .Net Core 文档

    2019-03-15 15:55:47
    2018如鹏网,.Net 提高班的《.Net Core》课件,环境部署,core入门等
  • 从上面图中我们可以看到.net 主要分为三个部分 .net FrameWork,.net Core ,Xamarin XAMARIN 主要用来构建APP的主要用的是C#语言 .NET Framework 这个是我们现在经常用的,用这个可以创建windows应用程序还有web ...

     

     

     1、简单介绍

     

    从上面图中我们可以看到.net  主要分为三个部分 .net FrameWork,.net Core ,Xamarin

    • XAMARIN  主要用来构建APP的主要用的是C#语言
    • .NET Framework  这个是我们现在经常用的,用这个可以创建windows应用程序还有web applications ,
    •                              现在你可以用它创建Winform ,UWP ,wpf 等相关的应用程序 ,web 方面就是Asp.net MVC webfrom,2002年发布
    • .NET Core   是微软推出的最新的开源的,跨平台的框架,用它可以创建的应用可以运行在MAC,Linux上 ,2016年6月27日

     

     

    2、对比叫介绍,差异

    微软爸爸介绍:https://docs.microsoft.com/zh-cn/aspnet/core/?view=aspnetcore-2.2

     

    NET Core和.net framwork 各有优缺点,两者都不能取代对方,一下摘取自微软文档

    ASP.NET Core 具有如下优点:

    • 生成 Web UI 和 Web API 的统一场景。
    • 针对可测试性进行构建。
    • Razor Pages 可以使基于页面的编码方式更简单高效。
    • 能够在 Windows、macOS 和 Linux 上进行开发和运行。
    • 开放源代码和以社区为中心
    • 集成新式客户端框架和开发工作流。
    • 基于环境的云就绪配置系统
    • 内置依赖项注入
    • 轻型的高性能模块化 HTTP 请求管道。
    • 能够在 IISNginxApacheDocker 上进行托管或在自己的进程中进行自托管。
    • 定目标到 .NET Core 时,可以使用并行应用版本控制。
    • 简化新式 Web 开发的工具。 

    面向 .NET Framework 的 ASP.NET Core

    ASP.NET Core 2.x 可以面向 .NET Core 或 .NET Framework。 面向 .NET Framework 的 ASP.NET Core 应用无法跨平台,它们仅在 Windows 上运行。 通常,ASP.NET Core 2.x 由 .NET Standard 库组成。 使用 .NET Standard 2.0 编写的应用可在 NET Standard 2.0 支持的任何位置运行。

     

    与 .NET Standard 2.0 兼容的 .NET Framework 版本支持 ASP.NET Core 2.x:

    • 强烈建议使用 .NET Framework 4.7.1 及更高版本。
    • .NET Framework 4.6.1 及更高版本。

    ASP.NET Core 3.0 以及更高版本只能在 .NET Core 中运行。 有关此更改的详细信息,请参阅 A first look at changes coming in ASP.NET Core 3.0(抢先了解 ASP.NET Core 3.0 即将推出的更改)。

     

    面向 .NET Core 有以下几个优势,并且这些优势会随着每次发布增加。 与 .NET Framework 相比,.NET Core 的部分优势包括:

    • 跨平台。 在 macOS、Linux 和 Windows 上运行。
    • 增强的性能
    • 并行版本控制
    • 新 API
    • 开源 

    我们正努力缩小 .NET Framework 与 .NET Core 的 API 差距。 Windows 兼容性包使数千个仅可在Windows运行的API 可在 .NET Core 中使用。 这些 API 在 .NET Core 1.x 中不可用。

     在以下情况,对服务器应用程序使用 .NET Core:

     

    • 用户有跨平台需求。
    • 用户正在面向微服务。
    • 用户正在使用 Docker 容器。
    • 需要高性能和可扩展的系统。
    • 需按应用程序提供并行的 .NET 版本。

     

    在以下情况,对服务器应用程序使用 .NET Framework :

     

    • 应用当前使用 .NET Framework(建议扩展而不是迁移)。
    • 应用使用不可用于 .NET Core 的第三方 .NET 库或 NuGet 包。
    • 应用使用不可用于 .NET Core 的 .NET 技术。
    • 应用使用不支持 .NET Core 的平台。

     

    最大的区别就是Net Core和Net Framework 再部署IIS是不同的,

    Net Framework 选择对应的应用程序版本

    Net Core不需要选择,并且必须发布之后才可以。

    【1】、必须设置 模块

    反正你看不到 AspNetCoreModule 这个玩意的话, 运行肯定就是有问题的。

     

     

     

     【2】必须选择托管,Net Core不需要Net Framework

    应用程序池必须配置为“无托管代码”

     

    【3】发布、部署

     

     

     

     

     

     

     

     

     

    容器化未来是一种趋势,选择跨平台的。net core是一种趋势,现在可以入坑了。不过大神,此段话为自己备注打气,萌新不敢大声说话。

     

     

    3、性能比较

     

    性能做够了,处理能来同步更好更强

     

    https://www.techempower.com/benchmarks/#section=data-r17&hw=ph&test=db

     

    4、总结

     

    1、跨平台用.net core 不想升级用.net framwork 

    2、能用就行,毕竟现在还有大部分用 .net framwork 2.0的

     

     

    相关文章:

     

    【参考】简析.NET Core 以及与 .NET Framework的关系http://www.cnblogs.com/vipyoumay/p/5603928.html

    【推荐】How to Deploy ASP.NET Core to IIS & How ASP.NET Core Hosting Works:https://stackify.com/how-to-deploy-asp-net-core-to-iis/

    【推荐】ASP.NET Core Web API – IIS Deployment:https://code-maze.com/net-core-web-development-part16/

     

    以上内容有任何错误或不准确的地方请大家指正,不喜勿喷!

    本文版权归作者和博客园共有,欢迎转载。

    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    希望能够持续的为大家带来好的技术文章!想跟我一起进步么?那就【关注】我吧。

     

    转载于:https://www.cnblogs.com/sopcce/p/10676385.html

    展开全文
  • .net core版本

    2019-12-11 10:21:06
    .Net Core版本分两个方面: .NET Core Runtime .NET Core SDK 一般如果说".Net Core 2.1"大多数时候指的是.NET Core Runtime 2.1。.NET Core Runtime就是运行时环境。我们的代码经过.NET Core SDK开发并编译后,...
  • 点击蓝字“dotNET匠人”关注我哟加个“星标★”,每日 7:15,好文必达!作者丨Richard Lander译者丨核子可乐策划丨赵钰莹近日,.NET Core 3.0...
  • .NET Core 已经发布好几年了,很多.NET 程序员也一定跟我一样心中一直有以下疑问, .NET Core到底是不是 .NET 的下一个版本?还是说只是 .NET 支持跨平台的一个版本? 作为传统的 .NET 开发者或者说开发的程序都是...
  • 为什么选择.NETCore?

    万次阅读 2018-02-06 18:17:08
    为什么选择.NETCore? ...您需要学习如何在新框架中编写,构建,测试,部署和维护应用程序。作为开发人员,有许多框架可供选择,很难知道什么是最适合的。...为了理解为什么.NET Core值得一看,这有助于知道
  • 为什么选择.NETCore?

    千次阅读 2018-12-27 15:22:53
    为什么选择.NETCore?  为什么选择.NETCore?...即使您正在使用.NET开发软件,.NET Core也不相同,您需要花时间学习使用它的工具和技术。为了理解为什么.NET Core值得一看,这有助于知道你从哪里开始。 .NE...
  • 浅谈.Net Core

    千次阅读 2019-09-18 07:26:00
    好感慨,从第一次接触微软的语言(2004年自学VB,暴露年龄了,呵呵),然后升级VB.Net,之后转到C#怀抱,习惯了微软全家桶后,一直无法有效的摆脱微软的魔掌,因为项目需要陆陆续续使用过PHP,JAVA,QT等,但是别人...
  • (精华)2020年9月1日 .NET Core的介绍

    万次阅读 2020-09-01 08:35:44
    .NET Core基础理论 1、.NET Core基础理论 1.1、重要工具 .NET FlatForm下的项目:https://github.com/dotnet/ 查看.NET Core源码:https://github.com/dotnet/runtime 查看asp.net Core源码:...
  • public class Startup { public IConfiguration Configuration { get; private set; } public IHostingEnvironment HostingEnvironment { get; private set; } //在构造函数中注入 IHostingEnvironment和...
  • (精华)2020年9月2日 .NET Core 源码编译

    万次阅读 2020-09-01 22:09:08
    if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
  • if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
  • #region 使用NewtonsoftJson替换掉默认的json序列化组件 .AddNewtonsoftJson(options => { ////修改属性名称的序列化方式,首字母小写 //options.SerializerSettings.ContractResolver = new ...
  • Castle.Core.AsyncInterceptor public void ConfigureServices(IServiceCollection services) { #region 自动注入拥有ITransientDependency,IScopeDependency或ISingletonDependency的类 services.AddFxServices...
  • 首先安装如下包 Install-Package Caching.CSRedis Install-Package CSRedisCore Install-Package Microsoft.Extensions.Caching.Memory /// <summary> /// 使用缓存 /// </summary>.../return
  • public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { #region 使用静态文件和目录浏览 app.UseStaticFiles(new StaticFileOptions { ...

空空如也

1 2 3 4 5 ... 20
收藏数 390,540
精华内容 156,216
关键字:

.net core