写点什么

ASP.NET Core 3.0 项目开始“瘦身”

  • 2019-01-26
  • 本文字数:955 字

    阅读完需:约 3 分钟

ASP.NET Core 3.0项目开始“瘦身”

新的ASP.NET Core 项目使用名为Microsoft.AspNetCore.App的综合包。该包也可以称为“ASP.NET Core 共享框架”,其背后的基本思想是,包括一个典型的应用程序所需要的所有东西。但是,如果看看该包的依赖项,对“需要”的定义看起来相当宽松。


目前,Microsoft.AspNetCore.App 拥有 150 个明确列出的依赖项,7 个月前则是 144 项。其中有 9 个不同的认证提供程序包。


  • Cookies

  • Facebook

  • Google

  • JwtBearer

  • Microsoft Account

  • OAuth

  • OpenIdConnect

  • Twitter

  • WsFederation


还可以发现 8 个用于支持实体框架核心(Entity Framework Core)的包,其拥有 SQL Server、SQL Server 缓存库、用于诊断的 EF 核心包、用于标识的 EF 核心包等等。


从这 150 个依赖项列表中,31个将从ASP.NET Core 3.0 的共享框架中删去,因为它们违反了新的纳入标准


(1) 依赖我们无法提供服务的第三方代码

(2) 组件本身在 3.0 中被弃用

(3) 它们实施的协议或身份验证机制极易发生变化(比如,脸书/谷歌/推特转天就可以决定改变授权的工作方式)


ASP.NET Core 项目的高级软件工程师 Nate McMaster 接着说:


我们在 2.0 中添加了太多东西,我们正在重新调整以适应我们认为在可预见的道路上可维护的一套东西。大多数从 Microsoft.AspNetCore.App 中删除的组件仍将作为 NuGet 包提供给大家。如果我们将来发现 90%的客户都引用同样的包,那么该包将成为共享框架一个很好的候选项。但是,正如在指导文档中所提到的,API 的使用量是一个重要指标,但不是我们唯一考虑的因素。


对目前的项目有什么影响?


如果你决定升级到ASP.NET Core 3.0,再使用任何不在共享框架中的包的话应用程序将会崩溃。但是,要修复也很简单,只需要把被排除的包手动添加到你的工程中即可,就像添加任何其他 Nuget 样式的依赖项一样。


我实际需要什么包?


这个问题的答案取决于你的应用程序实际执行的操作。但是,如果我们只考虑一个简单的 REST 服务器,那么只需要直接引用这三个包:


  • Microsoft.AspNetCore

  • Microsoft.AspNetCore.Mvc

  • Microsoft.AspNetCore.HttpsPolicy


其中的第一个是 Microsoft.AspNetCore,它有 18 个直接依赖项。Mvc 添加了自己的 13 个依赖项,HttpsPolicy 添加了另外 5 个。这个数字不包括重叠或间接的依赖项,但是,仍然反映了一组更小更易管理的依赖项。


阅读英文原文:ASP.NET Core 3.0 Projects Go on a Diet


2019-01-26 00:007350
用户头像

发布了 199 篇内容, 共 93.8 次阅读, 收获喜欢 295 次。

关注

评论

发布
暂无评论
发现更多内容

具有资质的昆明等保测评公司新名单看这里!

行云管家

等保 堡垒机 等级保护

数据结构学习,栈篇(顺序栈)

IC00

数据结构 算法 学习笔记 10月月更

http协议简介

芯动大师

Cookie HTTP协议 Cookie反爬虫 10月月更

如何快速打造BI大屏进行数据赋能

力软低代码开发平台

使用最小花费爬楼梯

掘金安东尼

算法 10月月更

GitLab + Jenkins + Harbor 工具链快速落地指南

胡说云原生

DevOps gitlab cicd Harbor jenkins

Vue网站自动提交百度链接

源字节1号

软件开发 后端开发 Vue网站

ESP32-C3 应用程序的启动流程

矜辰所致

ESP32-C3 10月月更 ESP-IDF

leetcode 145. Binary Tree Postorder Traversal 二叉树的后序遍历 (中等)

okokabcd

LeetCode 数据结构与算法

面试突击89:事务隔离级别和传播机制有什么区别?

王磊

Spring之IOC

楠羽

笔记 spring 源码 10月月更

【iOS逆向】某运营商签名算法分析

小陈

逆向思维 逆向 iOS逆向 逆向分析

Vue3入门指北(十二)模板引用

Augus

Vue 3 10月月更

Surpass Day——IntelliJ IDEA和eclipse的使用、super关键字

胖虎不秃头

Java 10月月更 se

Surpass Day——Java 抽象类和接口

胖虎不秃头

Java 10月月更 se

智能合约系统开发Web3.0实现核心

薇電13242772558

智能合约

实时云渲染的关键技术是什么?

Finovy Cloud

人工智能 云渲染 实时渲染

如何低成本实现客户服务自动化?

Baklib

Linux性能问题分析流程与性能优化思路

五分钟学大数据

Linux 10月月更

【愚公系列】2022年10月 Go教学课程 023-Go容器之列表

愚公搬代码

10月月更

Hacktoberfest 2022:Jenkins maven-snapshot-check Plugin 的改进实践

donghui

jenkins Hacktoberfest

【C语言内功修炼】柔性数组的奥秘

Albert Edison

数组 C语言 10月月更 柔性数组

两将军问题和TCP三次握手

有态度的马甲

TCP协议 两将军问题

【荣耀帐号服务FAQ】AuthorizationCode有效期是多久?

荣耀开发者服务平台

手机 服务 安卓 荣耀 honor

Surpass Day——Java 接口在开发中的作用、关于Object类、内部类

胖虎不秃头

Java 10月月更 se

_fitoa_word的实现:一个整型数据是如何转成字符串的呢?

桑榆

源码刨析 10月月更 C++

爬虫的简介

芯动大师

Python语法 10月月更 爬虫简介

如何从InfluxDB/OpenTSDB无缝连接到TDengine

TDengine

数据库 tdengine 开源 时序数据库

【Nacos源码之配置管理 九】客户端获取配置数据的流程

石臻臻的杂货铺

nacos 10月月更

zookeeper-四字监控命令和工具

zarmnosaj

10月月更

ASP.NET Core 3.0项目开始“瘦身”_语言 & 开发_Jonathan Allen_InfoQ精选文章