写点什么

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

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

关注

评论

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

技术分享 | 测试平台开发-前端开发之Vue.js 框架

霍格沃兹测试开发学社

快速安全的将 Azure SQL 迁移到云原生数据库 Amazon Aurora

亚马逊云科技 (Amazon Web Services)

数据库 云原生

快速上手 Pytest + Requests + Allure2 测试框架实战技能

霍格沃兹测试开发学社

技术分享 | Spring Boot 异常处理

霍格沃兹测试开发学社

供应链管理是对产品流、信息流、资金流综合管理

水滴

供应链

接口测试项目实战与经典面试题解析,挑战 BAT 大厂必会!

霍格沃兹测试开发学社

干货|app自动化测试之Appium问题分析及定位

霍格沃兹测试开发学社

技术分享 | 测试平台开发-前端开发之Vue.js 框架的使用

霍格沃兹测试开发学社

持续交付-Blue Ocean 应用

霍格沃兹测试开发学社

持续交付-Jenkinsfile 语法

霍格沃兹测试开发学社

gitlab system hook使用案例——与已有系统打通

阿呆

gitlab system hook 效能工具

Groq:从头设计一个张量流式处理器架构

OneFlow

人工智能 深度学习 处理器

EMQ亮相服贸会:夯实IoT数字底座,加速迈向工业4.0时代

EMQ映云科技

物联网 IoT 工业4.0 服贸会 9月月更

干货|app自动化测试之模拟器控制

霍格沃兹测试开发学社

技术分享 | Spring Boot 集成 Swagger

霍格沃兹测试开发学社

接口管理工具YApi怎么用?颜值高、易管理、超好用

霍格沃兹测试开发学社

干货|app自动化测试之设备交互API详解

霍格沃兹测试开发学社

接口测试框架实战(二)| 接口请求断言

霍格沃兹测试开发学社

做好产品手册,发现优质顾客

Baklib

干货|接口测试必备技能-常见接口协议解析

霍格沃兹测试开发学社

干货|移动端App自动化之触屏操作自动化

霍格沃兹测试开发学社

接口协议之抓包分析 TCP 协议

霍格沃兹测试开发学社

接口测试实战| GET/POST 请求区别详解

霍格沃兹测试开发学社

接口测试框架实战 | 流程封装与基于加密接口的测试用例设计

霍格沃兹测试开发学社

接口测试框架实战(一) | Requests 与接口请求构造

霍格沃兹测试开发学社

接口测试该怎么做?持证上岗的Charles,可以帮你做什么?

霍格沃兹测试开发学社

DolphinScheduler&RocketMQ 联合 Meetup 即将重磅开启,集中展示任务调度与消息队列能力!

阿里巴巴云原生

阿里云 RocketMQ 云原生 DolphinScheduler

干货|app自动化测试之Capability 使用进阶

霍格沃兹测试开发学社

性能测试实战 | 修改 JMeter 源码,定制化聚合压测报告

霍格沃兹测试开发学社

接口测试 Mock 实战(二) | 结合 jq 完成批量化的手工 Mock

霍格沃兹测试开发学社

数字化转型-数据资产管理

小鲸数据

数据资产 数字化 数据价值 数据管理 数据资产管理

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