ASP.NET Core项目中新增和删除的内容
最新一版的.NET几经改名,最终得到了.NET Core这个高大上的名称,相应的ASP.NET MVC也跟着提供了ASP.NET Core MVC版本。
在.NET Core没有稳定名称时,叫做MVC6,模糊记得主推的概念就是MCV的controller和API的controller合二为一了,还没来得及深入了解名称就改了。
目前的版本以及名称已经相对成熟,从.NET社区推荐的热点文章来看,都是针对.NET Core给出的使用介绍。
从最近的了解来看,相比之前ASP.NET版本,是一个全新的框架,程序集包之类的都独立出来了,比较的轻量级,当然能运行在Linux/Mac系统,这是基础核心卖点之一。
还可以使用Visual studio code在非windows平台开发程序,扩宽了.NET开发人员的技能应用范围。
那么新框架跟之前的ASP.NET项目结构比,增加了哪些内容和删除了哪些内容,根据最近的了解做一个简要的整理。
1.Global.asax-》Program.cs
之前版本Global是网站启动的必经之路,因此很多配置都在Application_Start中被设置好。
.NET Core的默认项目中不存在Global.asax文件,取而代之的是Program.cs文件,这个代码文件实际上提供了一个Main方法(第一感觉这是个控制台程序),默认代码创建了WebHost,然后运行这个host。看到Main方法应该很熟悉,也很好理解,程序的主入口嘛,这样也跟其他的非Web .NET程序程序就一致了。
WebHost比较关键的操作是绑定了一个Startup文件,详看接下来的说明。
2.App_Start -》Startup.cs
这个文件夹的放的内容从名称上就看得出来,在ASP.NET 5版本的时候默认保存一些网站启动时候需要执行的配置代码,比如路由,过滤器等。当然都是一些静态文件,需要在Global的Application_Start()中调用。
刚才第一点也提到了,Global.asax不存在了,是通过WebHost绑定了一个Startup.cs文件。
在这个Startup.cs文件了包揽了所以的配置工作,只要在里面执行配置就可以了。
更灵活的是可以根据不同的部署环境提供多个不同的Startup文件。
3.App_Data -》删除
这个文件夹之前版本也很少用到,一般只是做练习将数据放在本地,在.NET Core默认项目中不提供了。
4.Web.Config -》弱化
这个经典的文件从第一版的的ASP.NET就有,到了.NET Core之后还能使用,但是功能已经弱化,新的配置文件都通过appsettings.json提供,配置更加的灵活,相关的读取配置的API也更加精简。
5.Scripts文件夹 -》wwwroot
Scripts文件夹默认放在项目根目录下,当然前端开发负责人会有自己的安排。.NET Core默认吧静态文件都放入到了wwwroot文件夹下,结合bower的管理方式,会提供一个Lib文件夹,然后每一个组件一个文件夹的方式存在。
6.新增Dependencies
这里的Dependencies不是程序集的引用,而是针对客户端的组件的引用,比如使用bower管理,就会提供一个bower文件夹,里面包含了引用的组件的版本信息,类似于nuget。
7.新增project.json
我认为这是最大的变化,之前程序集的引用都是使用nuget提供的packages.config文件来管理依赖的组件,现在都转移到了project.json的dependencies节点中。
project.json的作用不仅仅是管理依赖的程序集,还可以设置目标框架版本、编译、发布选项等。
ASP.NET Core项目中新增和删除的内容的更多相关文章
- 在 ASP.NET Core 项目中使用 npm 管理你的前端组件包
一.前言 在项目的前端开发中,对于绝大多数的小伙伴来说,当然,也包括我,不可避免的需要在项目中使用到一些第三方的组件包.这时,团队中的小伙伴是选择直接去组件的官网上下载,还是图省事直接在网上搜索,然后 ...
- 在 ASP.NET Core 项目中实现小写的路由URL
在 ASP.NET MVC 早期版本中,我们可以通过在应用的 RegisterRoutes 方法中设置 routes.LowercaseUrls = true ; 来将页面的 URL 链接转小写.在 ...
- 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射
一.前言 在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能 ...
- 在 ASP.NET Core 项目中使用 MediatR 实现中介者模式
一.前言 最近有在看 DDD 的相关资料以及微软的 eShopOnContainers 这个项目中基于 DDD 的架构设计,在 Ordering 这个示例服务中,可以看到各层之间的代码调用与我们之前 ...
- Captcha服务(后续2)— 改造Captcha服务之Asp.Net Core项目中如何集成TypeScript
环境准备 .Net Core 版本:下载安装.Net Core SDK,安装完成之后查看sdk版本 ,查看命令dotnet --version,我的版本是2.2.101 IDE: Visual Stu ...
- VisualStudio2017中新建的ASP.NET Core项目中的各个文件的含义
Program.cs is the entry point for the web application; everything starts from here. As we mentione ...
- Asp.net Core 项目中如何使用 MongoDB 数据库
内容来源 https://blog.csdn.net/qq_26900081/article/details/83272132 一.添加依赖 1.MongoDB.Driver 2.MongoDB.Bs ...
- ASP.NET Core 项目简单实现身份验证及鉴权
ASP.NET Core 身份验证及鉴权 目录 项目准备 身份验证 定义基本类型和接口 编写验证处理器 实现用户身份验证 权限鉴定 思路 编写过滤器类及相关接口 实现属性注入 实现用户权限鉴定 测试 ...
- k8s+Jenkins+GitLab-自动化部署asp.net core项目
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...
随机推荐
- 域适应(Domain adaptation)
定义 在迁移学习中, 当源域和目标的数据分布不同 ,但两个任务相同时,这种 特殊 的迁移学习 叫做域适应 (Domain Adaptation). Domain adaptation有哪些实现手段呢? ...
- apply和call的用法
以前对与apply()还有call()一直处于一种我知道这是干什么,但是不知道怎么使用的情况,今天看别人的博客的时候,看到了一点这类知识,感觉有点感觉,现在把新的心得写下来. A.apply(B,[a ...
- Zabbix监控详解
Zabbix是什么 Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持. Zabbix 是一个企业级的分布式开源监控方案. Zabbix是一款能够监控各 ...
- Python3.6引入的f-string 与 Python 3的新的特性:类型注解;
f-string 1.介绍 f-string(formatted string literals):格式化字符串常量,是Python3.6新引入的一种字符串格式化方法,使格式化字符串的操作更加简便. ...
- 10分钟教你用Python玩转微信之抓取好友个性签名制作词云
01 前言+展示 各位小伙伴我又来啦.今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云.怎样,有趣吧~好了,下面开始干活.我知道你们还是想先看看效果的. 后台登录: 词 ...
- 数学 CF1068B LCM
CF1068B LCM 给定一个正整数\(b (1\leq b \leq 10^{10})\). 把一个正整数a从1枚举到\(10^{18}\),求有多少种不同的\(\large \frac{[a,b ...
- 05. flex元素水平垂直居中(三种position水平垂直居中和两种新老版本水平垂直居中)
flex元素水平垂直居中(三种position水平垂直居中和两种新老版本水平垂直居中) (1).position : <!DOCTYPE html> <html lang=" ...
- 使用FFmpeg进行视频抽取音频,之后进行语音识别转为文字
1.首先需要下载FFmpeg: 2.Gradle依赖 def void forceVersion(details, group, version) { if (details.requested.gr ...
- [原创]markdown语法学习(commonmark)
CommonMark是markdown的解析器,以下是部分学习链接: commonmark规范 https://spec.commonmark.org/ commonmark帮助 https://co ...
- c++ 用 0x3f3f3f3f 设定最大int值的优点
在许多算法中都要用到一个常量来表示最大值,例如:寻找一个最小数,就要先设定一个值a,如果比a小,a就等于这个数:再如,最短路径中基本的松弛操作: 0 在c++中可以用memset() 来初始化数组成最 ...