写点什么

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:007126
用户头像

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

关注

评论

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

从6大应用场景,看边缘计算落地生根

BoCloud博云

容器 边缘计算 PaaS 云平台 博云

云原生技术采用增加,全球60%后端开发人员都在使用容器 | 趋势分享

BoCloud博云

云计算 容器 云原生 PaaS 博云

MySQL redo与undo日志解析

Simon

MySQL Redo MySQL日志

CRM企业到底该不该做PaaS?

ToB行业头条

PaaS SaaS CRM

不得不了解系列之限流

梦朝思夕

限流

GitMaster 更新v1.9.0,支持Gitea,Gist拥抱黑暗模式

neo

gitlab tree gitee GitHub、

LeetCode题解:155.最小栈,使用两个栈,详细注释

Lee Chen

大前端 LeetCode

微服务架构下,DLI的部署和运维有何奥秘?

华为云开发者联盟

Docker 大数据 Serverless 数据湖 DLI

学习Python真的能找到工作吗?

代码制造者

Python 程序员 编程语言 低代码 零代码

我也没想到 Springboot + Flowable 开发工作流会这么简单

程序员小富

java 14

新金融分布式架构之SOFAStack解决方案

阿里云金融线TAM SRE专家服务团队

分享一个阿里云轻量级开源前端图编排,流程图js组件——butterfly-dag

InfoQ_39ba186c207f

Java 流程图 flow canvas html/css

温故知新——Spring AOP(二)

牛初九

spring aop ioc

GrowingIO AWS 成本优化之路

GrowingIO技术专栏

AWS 成本优化

【写作群星榜】8.15~8.28 写作平台优秀作者 & 文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

币期权DAPP 8月28日全球同步耀世上线,掀起币圈追捧热潮

InfoQ_967a83c6d0d7

oeasy教您玩转linux010106这儿都有啥 ls

o

数据挖掘学习指南(转载)

Jackchang234987

数据挖掘 产品经理

“全球+”浪潮下,企业出海选择合适的“技术船舶”成关键

华为云开发者联盟

网络 华为云 企业出海 网络加速 宽带

华为云会议的前世今生

华为云开发者联盟

直播 云服务 华为云 视频编码 视频会议

柔性电子拥有改变地球的能力吗?

脑极体

ShardingSphere简介+实战

云淡风轻

ShardingJDBC

性能相关,内存

Linuxer

性能

炒股不要看K线图(分享最近学习投资的一点心得)

Nick

投资 理财

硬核科技:莱克立式吸尘器,引领家居清洁“新态度”

InfoQ_967a83c6d0d7

mPaaS 客户端证书错误避坑指南

阿里云金融线TAM SRE专家服务团队

莱卡、宾利都在用,英特尔oneAPI渲染工具带来高质量视觉体验

E科讯

全民加速节:动态加速在在线教育应用上的最佳实践

阿里云Edge Plus

在线教育 CDN

软件开发丨关于软件重构的灵魂四问

华为云开发者联盟

软件 开发者 软件开发 代码 软件重构

有为而治:平衡吞噬世界的系统之熵

IT民工大叔

开发者的福音,LR.NET模块化代码生成器

Philips

敏捷开发 快速开发 模块化流程 代码质量 .net core

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