• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 解读ASP.NET 5 & MVC6系列教程(2):初识项目

解读ASP.NET 5 & MVC6系列教程(2):初识项目

作者:汤姆大叔 字体:[增加 减小] 来源:互联网 时间:2017-05-11

汤姆大叔通过本文主要向大家介绍了精通asp.net mvc 5,html5 asp.net,pro asp.net mvc 5,asp net mvc 5,asp net培训等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

初识项目

打开VS2015,创建Web项目,选择ASP.NET Web Application,在弹出的窗口里选择ASP.NET 5 Website模板创建项目,图示如下:

我们可以看到,此时Web Forms\MVC\Web API复选框都选择不了,原有是因为在ASP.NET 5中做了大量更改,移除了Web Forms功能,将MVC、Web API、Web Pages这些功能合在了一起,所以自然就不需要这些复选框了。另外由于是CTP版,所以目前还没有提供单元测试项目的创建。

新创建的项目在VS的解决方案目录结构和实际文件夹的目录结构分别如下:

注意:上图是在VS 预览版中的截图,在新版的RC版本中,默认的客户端构建工具变成了gulp(即配置文件是gulpfile.js),而非原来的grunt了。

两个图的差异非常大,我们来一一分析一下这些差异。

项目结构差异

通过图示,我们可以看到,在根目录中,不仅项目文件从从csproj变成了xproj,还少了很多之前的文件(如web.config),但也多了很多不同的文件以及文件夹,我们先列出这些不同的文件盒文件夹,再来一一讲解这些内容。

文件/文件夹 功能描述
config.json 程序的配置文件,类似于web.config。
project.json 该项目的主要配置,主要是负责程序集、项目部署等方面。部分功能类似于之前的package.config。
package.json npm的配置文件,npm是基于Nodejs的包管理器。
bower.json Bower管理器的配置文件,Bower是专门用于管理前端项目的包管理器。
gulpfile.js 是gulp的配置文件,gulp是基于Nodejs的Javascript任务管理器,在ASP.NET5中主要是用于管理NPM和Bower中的内容。
Stratup.cs 程序启动入口,类似于Global.asax。
Project_Readme.html 项目说明文件,没啥用。
wwwroot 静态资源文件(如css、图片、js)的存放目录。
Dependencies Bower和NPM的依赖管理包。
References 程序集引用,和以前的类似,但现在有了版本之分(如ASP.NET 5.0和ASP.NET Core 5.0)。

project.json

project.json是项目的核心配置文件,示例如下:

{
 "webroot": "wwwroot",
 "version": "1.0.0-*",
 "dependencies": {
 "Microsoft.AspNet.Diagnostics": "1.0.0-beta4",
 "Microsoft.AspNet.Mvc": "6.0.0-beta4",
 "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta4",
 "Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
 "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
 "Microsoft.AspNet.StaticFiles": "1.0.0-beta4",
 "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta4",
 "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
 "Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta4",
 "Microsoft.Framework.Logging": "1.0.0-beta4",
 "Microsoft.Framework.Logging.Console": "1.0.0-beta4",
 "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta4",
 "Microsoft.Framework.ConfigurationModel.UserSecrets": "1.0.0-beta4"
 },
 "commands": {
 "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000",
 "gen": "Microsoft.Framework.CodeGeneration"
 },
 "frameworks": {
 "dnx451": { },
 "dnxcore50": { }
 },
 "exclude": [
 "wwwroot",
 "node_modules",
 "bower_components"
 ],
 "publishExclude": [
 "node_modules",
 "bower_components",
 "**.xproj",
 "**.user",
 "**.vspscc"
 ],
 "scripts": {
 "postrestore": [ "npm install", "bower install" ],
 "prepare": [ "gulp copy" ]
 }
}
</div>

由于该文件的详细参数非常多,具体详细内容请参考http://go.microsoft.com/fwlink/?LinkID=517074 ,在这里我们主要讲解如下3个类型的内容。

webroot

webroot是指定该web项目的静态文件存放地址,目前是用于在发布的时候讲该目录中的内部发布的正确的位置(详细内容可以在部署发布章节中找到)。注意BookStore解决方案中带有地球图标的wwwroot目录是真实的文件夹路径,我们可以对其进行修改,比如将其修改为wwwroot1,那么相应的webroot的值也应该修改为wwwroot1,因为gulpfile.js里代码要通过project.webroot来使用该目录,以便能够将bower管理的前端库都复制到正确的目录。

程序集管理

在解决方案的References节点点,我们看到有两个分类,分别是:DNX 4.5.1和DNX Core 5.0,其中DNX Core 5.0就是我们所说的云优化版(即可以在其它操作系统下部署的跨平台版),而DNX 4.5.1则是和之前版本一样的全功能版,这两个版本的程序集是通过dependencies节点进行管理的。

在一级dependencies节点,主要是定义该项目的通用程序集引用以及版本,而不同的版本的程序集则在framworks下的各版本下的dependencies节点进行维护,比如:

"frameworks": {
 "dnx451": {
 "dependencies": {"log4net": "2.0.3"} /* 只在全功能版中引入log4net程序集*/

 },
 "dnxcore50": { }
}
</div>

上述两种类型的程序集在维护的时候,都有智能提示(包括程序集名称以及版本号),在当定义完自己要用的程序集并保持之后,系统会自动从Nuget上下载所需要的程序集,你也可以通过右键References选择Restore Packages来更新所有的程序集引用。同时你依然可以通过右键References的形式通过Nuget来管理这些程序集。

脚本事件

新版的VS2015允许我们在build解决方案之前、之后、过程;下载程序集之前、之后;更新程序集之前、之后自定义一些基于Nodejs的自定义事件来执行。该事件在project.json中的定义节点是scripts,示例如下:

"scripts": {
 "postrestore": [ "npm install" ], // 在更新所有的程序集之前执行npm install事件
 "prepare": [ "gulp copy" ]
 // 在打开解决方案之前,执行gulp任务,调用bower的install方法。
}
</div>

具体的事件名称如下:

时机 描述
prebuild 构建之前执行
postbuild 构建之后执行
prepack packing之前执行
postpack packing之后执行
prerestore restoring packages之前执行
postrestore restoring packages之后执行

package.json

package.json是NPM管理器的配置文件,由于在VS2015默认就深度集成了Nodejs,而NPM又是Nodejs的默认包管理器,所以所有基于Nodejs的包都要在这里进行配置。该配置文件的默认配置如下:

{
 "name": "ASP.NET",
 "version": "0.0.0",
 "devDependencies": {
 "gulp": "3.8.11",//gulp任务管理器
 "rimraf": "2.2.8" // 递归删除文件的nodejs包
 }
}
</div>

上述代码中的rimraf是一个递归删除文件的nodejs包,我们也可以引用其他插件,像project.json文件中管理程序集一样,在package.json文件中来管理前端程序的各种包,例如jquery,bootstrap等等,比如我们要安装一个express包,只需要在json文件中添加一个express字符串键,并选择器版本就可以了,系统会自动下载该NPM包并显示在解决方案的Dependencies->NPM节点下。

注意:已经安装的包不能自动移除(即不能通过在JSON中移除配置),需要右键执行该包,并手工卸载。

bower.json

所有的前端包都配置子bower.json文件中,比

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
  • ASP.NET MVC从视图传参到控制器的几种形式
  • ASP.NET MVC 4 中的JSON数据交互的方法
  • ASP.NET MVC制作404跳转实例(非302和200)
  • 详解ASP.NET MVC 利用Razor引擎生成静态页
  • 详解ASP.NET MVC 解析模板生成静态页(RazorEngine)
  • Asp.net MVC下使用Bundle合并、压缩js与css文件详解
  • 详解Asp.Net MVC——控制器与动作(Controller And Action)
  • ASP.NET MVC生成静态页面的方法
  • ASP.NET MVC 导出Word报表

相关文章

  • 2017-05-11.aspx中的命名空间设置实现代码
  • 2017-05-11ASP.NET中为DataGrid添加合计字段
  • 2017-05-11ASP.NET通用权限验证的实现代码思路
  • 2017-05-11asp.net 定时间点执行任务的简易解决办法
  • 2017-05-11删除特殊字符和限定用户输入长度的示例代码
  • 2017-05-11asp.net Linq to Xml学习笔记
  • 2017-05-11那些年,我还在学习asp.net(二) 学习笔记
  • 2017-05-11ASP.NET Web Api 2实现多文件打包并下载文件的实例
  • 2017-05-11Asp.net获取当前目录的方法小结
  • 2017-05-11ASP.NET获取MS SQL Server安装实例实现思路及代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net模板引擎Razor中cacheName的问题分析
    • asp.net(C#) 动态添加非ASP的标准html控件(如添加Script标签)
    • wireshark抓取本地回环数据包和取出数据的方法
    • ASP.NET中FileUpload文件上传控件应用实例
    • 在ASP.NET Core中显示自定义的错误页面
    • SqlCommandBuilder如何实现批量更新
    • asp.net Linq To Xml上手Descendants、Elements遍历节点
    • asp.net中的GridView分页问题
    • asp.net下遍历页面中所有的指定控件的代码
    • ASP.NET使用My97DatePicker日期控件实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有