报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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

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

关注

评论

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

Mybatis系列全解(七):全息视角看Dao层两种实现方式之传统方式与代理方式

潘大壮

Java 后端 mybatis mybatis源码

MapReduce练习案例3 - 自定义分区

小马哥

大数据 hadoop mapreduce 七日更

在质量管理中掘金

L3C老司机

惊艳全网!阿里人开源了K8s进阶宝典笔记,从理论到实践!

996小迁

Java 编程 架构 面试 k8s

第三周作业 利益相关方排序

Eva

混合云管平台openkube日志系统介绍

香喷喷!2021最新出炉Java程序员面试全方位贴身指南

比伯

Java 编程 程序员 架构 面试

Mybatis系列全解(六):Mybatis最硬核的API你知道几个?

潘大壮

Java 后端 mybatis mybatis源码

MapReduce博文体系

小马哥

大数据 mapreduce 知识体系 架构师 七日更

区块链技术发展现状

CECBC

区块链

产品经理训练营 Week02

柚子君~

极客大学产品经理训练营

产品经理训练营-作业二

胡小湖

产品经理训练营-第二周作业

懒杨杨

喜报丨京东科技主导的开源项目ShardingSphere荣登报告榜单国人主导开源项目中活跃度第五名!

京东科技开发者

分布式数据库 京东 ShardingSphere

第二周作业

纳豆卡玛

第二周作业

第三期(2020-2021)传统行业云原生技术落地调研

York

灵雀云 云原生

张红珊—第二章作业

zzz

小程序抽奖助手产品利益相关者分析

夏天的风

产品经理训练营

极客大学·产品经理训练营·第二章作业

二大爷

产品经历

Hadoop之HDFS 内部机制知多少?

hanke

大数据 hadoop hdfs 开源 数据存储

云原生基座OpenKube日志系统介绍

第二周作业

大熊猫

席卷图文学习前端Flex布局

我是哪吒

html 面试 大前端 html/css Flex

太牛了!这是什么神仙级的面试pdf(含答案),跳槽大厂不是问题

Java架构之路

Java 程序员 架构 面试 编程语言

滴普技术荟-云原生基座OpenKube开放容器实践(四):linux模拟pod并配置上外网

新世界的智能,旧梦中的暖气

脑极体

2021 年产品训练营 - 第二周作业

Meng

第二次作业&第三次作业

yoki

奥里给,通过这几份PDF,终于拿到了阿里,腾讯等一线大厂的offer

Java架构之路

Java 程序员 架构 面试 编程语言

Alibaba内部晋升手册面试题集 ,Java岗位

Java架构之路

Java 程序员 架构 面试 编程语言

作业

Eva

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