HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

阿里云无影向RPA开闸,金智维、影刀、弘玑已落地|生态商机

B Impact

中东地区被低估,沙特偏好企业服务和云,新加坡稳定,东南亚复杂|出海

B Impact

C++进阶之哈希(unordered_map/set的使用及其模拟)

雪芙花

c c++ 10月月更

如何提高Docker容器的安全性

乌龟哥哥

10月月更

【ArchSummit】众安金融微服务架构演进实战

小明Java问道之路

架构 微服务 全球架构师峰会 ArchSummit 10月月更

消息推送渠道那么多,该怎么设计消息中心?

产品海豚湾

产品经理 产品设计 消息系统 产品架构 10月月更

liunx:进程概念

雪芙花

c c++ 10月月更

ZooKeeper应用案例

穿过生命散发芬芳

zookeeper 10月月更

C++精通之路:红黑树的应用(模拟实现map/set)

雪芙花

c c++ 10月月更

2022-10-22:以下go语言代码输出什么?A:moonfdd1;B:编译错误;C:运行时 panic。 package main import “fmt“ func main() {

福大大架构师每日一题

golang 福大大 选择题

“程”风破浪的开发者 | 基建及团队建设的方法论

甜点cc

团队管理 学习方法 基建 “程”风破浪的开发者

极客时间运维进阶训练营第一周作业

老曹

“程”风破浪的开发者|元宇宙?Are you Sure?

六月的雨在InfoQ

虚拟世界 平行世界 元宇宙 10月月更 “程”风破浪的开发者

AfterShip 国际化获客冷启动经验:痛点、借力、连接

B Impact

一起学习 Go 语言设计模式之设计模式概述

宇宙之一粟

设计模式 Go 语言 10月月更

【web 开发基础】PHP 快速入门(7)-PHP 运算符之比较运算符详解

迷彩

10月月更 PHP基础 比较运算符

趁年少,多读书

暮春零贰

读书笔记 10月月更

JS事件,你真的懂吗(捕获,冒泡)?

乌龟哥哥

10月月更

[HCTF 2018]WarmUp题解(较为详细的)

w010w

Web CTF 每日一题 10月月更

谈谈曾经做的一个测试报告平台(1)

MegaQi

Python 测试平台 10月月更

“程”风破浪的开发者|区块链与Web3.0辨析

timerring

区块链 Web3.0 10月月更 “程”风破浪的开发者 Web2.0

golang中的字符串

六月的

golang 字符串

【愚公系列】2022年10月 Go教学课程 036-类型断言

愚公搬代码

10月月更

Web3.0杂谈-#008(55/100)

hackstoic

Web3.0

数据湖(八):Iceberg数据存储格式

Lansonli

数据湖 10月月更

ubuntu使用apt-get安装docker

忙着长大#

Ubuntu20.04

云计算商业周期超过其他产业,技术的天花板是商业机遇

B Impact

再聊加班的感受

李印

成长感悟

2022年中国数字疗法市场洞察

易观分析

医疗

微服务的常见架构方式

乌龟哥哥

10月月更

git fetch&pull讲解 | Git

Appleex

git

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