AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

钱从哪里来 - 中国家庭的财富方案

石云升

读书笔记 工作 财富 买房 资产配置

简述 HTTP 缓存相关的首部及其行为

黄耗子皮

缓存 HTTP

OAM v1alpha2 新版:平衡标准与可扩展性

孙健波

JVM最佳学习笔记---总览

Loubobooo

Java JVM

JVM最佳学习笔记<二>---垃圾收集器与内存分配策略

Loubobooo

Java JVM

RocketMQ broker.properties

李绍俊

RocketMQ

最长回文算法(马拉车算法)分析

Gadzan

Java 算法 LeetCode

如何用五步建设数据中台?

博文视点Broadview

大数据 数据中台 架构 中台

Python 沙盒环境配置

黄耗子皮

JVM最佳学习笔记<四>---虚拟机类加载机制

Loubobooo

Java JVM

[JVM] String#intern 面试必会

猴哥一一 cium

Java JVM string pool string Java 25 周年

将footer固定在底部: Flexbox vs Grid

寇云

CSS css3

DevOps知识点——3C知多少

禅道项目管理

DevOps 测试 持续集成

2020年全球经济萎缩,飞链热交易所逆袭而来闪耀数字经济

极客编

运维与云

yann [扬] :曹同学

JVM最佳学习笔记<一>---Java内存区域与内存溢出异常

Loubobooo

Java JVM

ESP8266远程控制+MicroPython 固件初体验

黄耗子皮

物联网 esp8266

JVM最佳学习笔记<三>---虚拟机性能监控与故障处理工具

Loubobooo

Java JVM

到底谁是你老板

Neco.W

工作 创业心态

Yii2.0 RESTful API 之版本控制

Middleware

php RESTful Yii2

技术工作的一二三之价值观方法论

拖地先生

个人成长 方法论

Yii2.0 RESTful API 之速率限制

Middleware

php RESTful Yii2

技术工作的一二三之内功

拖地先生

个人成长

一周信创舆情观察(5.18~5.24)

统小信uos

基础软件 操作系统

介绍一下自研开源NLP工具库---MYNLP

陈吉米

自然语言处理 中文分词 mynlp nlp

七年老程序员面试经历

代码诗人

如何成为高手: 到知识的源头去

lmymirror

学习 方法论 高手

运维那点事 - jenkins流水线

yann [扬] :曹同学

Yii2.0 RESTful API 基础配置教程

Middleware

php RESTful Yii2

Yii2.0 RESTful API 认证教程

Middleware

php RESTful Yii2

技术工作的一二三之快餐

拖地先生

项目管理 软件开发 技术管理 软件开发流程

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