硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

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

关注

评论

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

EventBridge 事件总线及 EDA 架构解析

阿里巴巴云原生

有奖互动|中国信通院联合 OceanBase 邀您参加《数据库发展研究报告(2022)》调研问卷

OceanBase 数据库

大数据培训Flink中常见问题定位

@零度

大数据 flink

OpenHarmony 标准系统 HDF 框架之 I2C 驱动开发

Anna

开源 后端 直播 OpenHarmony I2C

关于 Nvm

隔壁的猫

node.js 前端 NVM 3月月更

DevSecOps邂逅云原生:云原生时代下的持续安全

火线安全

DevOps 云原生 云安全 云原生安全

碰到运维难题怎么快速解决?有工具推荐吗?

行云管家

运维 网络运维 IT运维 服务器运维

尚硅谷监控告警系统(Zabbix)视频教程发布

@零度

大数据 zabbix

4种典型限流实践保障应用高可用|云效工程师指北

阿里云云效

云计算 阿里云 云原生 系统安全 研发

web前端培训JS解构赋值知识点分享

@零度

JavaScript web前端

性能指标、响应时间、并发量…聊聊性能优化的衡量指标

华为云开发者联盟

性能优化 高并发 响应时间 性能指标 并发量

DevSecOps: 让大家都 Happy 的安全软件构建模式

火线安全

云原生 软件架构 DevSecOps 云安全

【Zeekr_Tech】软件定义汽车之SOME/IP介绍

Zeekr_Tech

中间件 软件架构

平衡树:为什么Redis内部实现用跳跃表

华为云开发者联盟

redis 数据结构 集合 跳跃表 平衡树

浅谈SaaS多租户数据隔离和共享

数商云

SASS

java培训SpringBoot性能优化

@零度

Java springboot

云计算时代,好用的IT运维软件我给推荐行云管家!

行云管家

云计算 运维 网络运维 IT运维

《OceanBase 数据库系统概念》首次发布,系统精准定义 OceanBase !

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版

Flink 在米哈游的落地实践

Apache Flink

大数据 flink 编程 流计算 实时计算

NextArch基金会微服务技术组成立,腾讯为创始单位之一

科技热闻

云原生安全实践

火线安全

云原生 安全 云安全

关于React项目本地开发设置Https的过程

隔壁的猫

前端 React 3月月更

使用vite创建vue3项目

隔壁的猫

前端 Vite2 vue3.2 3月月更

TypeScript里string和String,真不是仅仅是大小写的区别

华为云开发者联盟

JavaScript typescript string ts

产品经理必看的高效产品文档撰写指南

小炮

产品文档

数字经济“双碳”目标下,“东数西算”数据中心为何依靠液冷散热技术节能减排?

GPU算力

东数西算 GPU服务器

数盾科技加入,携手龙蜥社区提升网络安全整体防护能力

OpenAnolis小助手

开源 网络安全 数盾科技 密码算法

负载均衡,你想了解的全在这里!

博文视点Broadview

贝壳Flutter UI 自动化测试原理与实践 - 已开源

贝壳大前端技术团队

flutter 测试 UI自动化 贝壳找房

ABAP 常用日期处理

Jasen Ye

Date 日期处理 abap

谷歌云对象存储攻防

火线安全

云原生 云安全 云存储

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