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.闲聊 ...
随机推荐
- [Erlang16]为什么要用MFA代替fun()–>end?
MFA:Module Function Arguments. 首先你要知道Module:Func(Args)和Func(Args)的区别在哪里? 如果对细节感兴趣,可以通过这里了解:http://ww ...
- Update语句到底是如何操作记录的?
经常会听到一些开发的朋友说,Update语句的操作原理是:先删后加!今天偶然想起这句话,索性验证一下.参考下面示例: USE CSDN go --新添加一个文件组和文件 ALTER DATABASE ...
- IIS虚拟目录加载NFS配置注意事项
1,IIS下挂载的路径不要填写挂载的盘符,填 \\NFSIP地址\NFSID\ ,正确挂载的前提是在windows下开启了NFS客户端的功能. 2,IIS 网站中读写NFS 也不要用盘符,也用 步骤1 ...
- solr7.4 centos7安装
环境:centos7.JDK1.8.solr 自带Jetty启动 一.安装JDK1.8环境 1.下载JDK jdk-8u172-linux-x64.rpm 下载地址:http://www.oracle ...
- [转载] Linux 下产生和调试core文件
原地址:http://blog.csdn.net/shaovey/article/details/2744487 linux下如何产生core,调试core 在程序不寻常退出时,内核会在当前工作目录下 ...
- PLSQL基本操作手册
第1章 用PLSQL连接Oracle数据库 PLSQL只能用来连接Oracle数据库(不象PB还可以连接JDBC.ODBC),所以必须首先安装并配置Oracle客户端. §1.1 初次登录PLSQL ...
- MyBatis框架流程
Hibernate与Mybatis的本质区别和应用场景 Hibernate:标准的ORM框架,不需要写SQL语句,但是优化和修改SQL语句比较难. 应用于需求变化固定的中小型的项目,例如后台管理系统. ...
- iOS tableview性能优化及分析
1.最常用的就是cell的重用, 注册重用标识符 每次滑动cell时需要先去缓存池中寻找可循环利用的cell,如果没有则再重新创建cell 2.减少cell中控件的数量 view对象尽量缩减控件的数量 ...
- 使用Pytesseract+Tesseract-OCR识别图片的简单步骤
1.首先安装Pytesseract,这个很简单,直接输入命令 pip install pytesseract即可 2.Tesseract-OCR https://pan.baidu.com/s/1sV ...
- 运算符重载入门demo
#include "pch.h" #include <iostream> using namespace std; class A { public: A(int x, ...