1.前言
- 1.1声明
遗憾前面的《ASP.NET vNext总结》系列篇没写完也不再续了。原因:一是这段时间备考压力很大,无暇顾及分享;二是觉得对vNext学习还不够深入,尽可能不误人子弟,就及时加密(密码:givecase)帖子;三是vNext技术,出于Beta阶段,技术细节还在不断变化。
强调一下:在这里和大家交流不是为了表现我多么地无私高尚,重要的是对我来说也是一个知识总结的过程。我也总是心中(呵呵,没付钱的支持,就算我虚伪吧!)感恩很多热心的园友,感谢他们的付出。不知道我心理是否健康?反正评论不希望得到不说原因的“反对”,唉!安慰自己,就当你手滑啦。
- 1.2标题
本文的标题“玩转”二字肯定彪了,纯属标题党吸引眼球。想玩转ASP.NET 5,不是随心所欲的事,我还在“取经”路上,也许你比我更会玩它。无法长篇大论的文章怎能让人精通掌握?所以也希望你安慰自己说:哥,当作路过!
2.准备
- 2.1VS2015安装
VS官方下载地址http://www.visualstudio.com(看了园友们帖子说,连下载地址都被坑过。其实微软的东东率先发布地址,先看原始英文页面。)
如果网速足够快,可以联网安装,当然还是建议下载ISO安装。VS2015 CTP5相对于Preview版,把众多跨平台移动开发安装包又集成了(又少一个联网安装的坑)。
温馨提示:基于VS2015工具开发还处于beta阶段(关注myget.org和githup.com几乎每天都有更新),生产环境建议不要使用,仅供尝鲜!
在hyper虚拟的win8.1系统(按照惯例VS正式版发布前会再出 RC版,实在不便在真实系统折腾了)下安装过程,勾选Web开发一个即可,如图:
Next漫长之旅开始了,不得不吐糟一下,耗时比安装操作系统还长。MS的决心和前瞻性太大了,刚刚发布的预览版win10来说,要统一电脑、平板和手机系统(三屏一云战略)。理想很美好,MS这么大的公司,智慧的人多、钱多,相信现实最终会完善起来。
VS开发工具也变化很大,这也许是趋势。可是MS总是先坑一下“时髦”追随者,windows平台的CoreCLR模块没分离好,就想着跨平台;windowsphone和windows app没整合好,也是想着集成Android及IOS开发。甚至插件工具也要集成一堆,如NPM技术应用……。为啥想要一嘴吃成胖子?先出个windows平台下 asp.net5开发的vs2015正式版就行了。呵呵,当然大家又会说变化太小,亮点不多。其实是MS卖钱点太少,不愿意出吗?好吧,MS No Zuo No Die!我们慢慢等吧。敢于折腾的仙人,就当消磨时间来跟着MS的节奏玩Beta没完没了。
一些MS大铁粉会说,谁让你傻呀!呵呵,工作压力大,自身技术要提升。就凭MS动不动整技术秀,让人口水、眼神、欲望……就算出于好奇心(这会害死猫的),很怕自己out了,甭管自己有没有学会真本事,起码做到会忽悠人,也得先了解一些啦。
好了,扯淡几句后,喝喝茶功夫。下面安装成功的界面(如安装环境不符合或过程失败,会有错误日志):
此时重起电脑,它完成一些配置和更新,就可以使用了。
- 2.2项目模板
在玩ASP.NET 5前,先知道目前vNext有四种模板(据说CTP5也可以WPF模板,因为不关注,所以你自行去了解),如下图所示:
其中Web Application下有两个:
ASP.NET 5 Class Library:类库模板
ASP.NET 5 Console Application:控制台应用程序
ASP.NET 5 Empty:web应用程序,目录结构比较简洁
ASP.NET 5 Starter Web:web应用程序,模板较为完整(初学者建议用它先体验一下)
3.概述
- 3.1mvc6
什么是MVC6?如图:
主要支持包括如下图:
HTML静态页在web项目都支持;Razor视图,在Web项目引用mvc就支持了;HTML Helpers通常是Razor的扩展方法,所以在Web项目里都支持。
MVC和WebAPI的看似区别不大(怎么说呢?别过于纠结!),其实WebAPI支持REST风格,也就是Action方法名可以用HTTP方法或HTTP方法前缀;两者的路由管道在MVC6中已经统一。
- 3.2EntityFramework7
(本想这里不概述EF7,但因为用到它”老人家“的地方很方便)
它是一种ORM框架(另行查阅了解)。(注:以下部分支持还有待完善。)
EF7支持的应用平台:所有.NetFramework(包括原有的项目)、Windows Phone、Windows Store 、ASP.NET 5、Mac及Linux。
EF7支持的数据库:SQLServer(关系型数据库)、SQLLite(嵌入式数据库,一般APP项目使用)、Azure Table Storage(微软云表存储)、Redis(NoSQL非关系型数据库) 、In Memory(运行在内存中,模拟测试)。
就象VS2015当IDE界最强大一样,EF7也想做ORM领域最牛。值得微软粉丝期待啦!不管再强大不得了的玩意,大家还是认为被封装的框架相对直接用底层Provider肯定会牺牲性能的。这是事实,不抬杠。不管怎样,我们用一样的东西,尽量用它所长,避它所短。
- 3.3项目结构
在讲下一章实例之前,先创建一个ASP.NET 5 Starter Web模板项目,介绍一下目录:
wwwroot:放静态文件,如:js,css,图片,html等。(也就是项目发布部署时的目录 )
Dependencies:依赖的意思,是NPM工具安装及管理下载包的逻辑文件夹(物理不存在此文件夹,你可以去实际文件目录下,看它组织情况)。
References:引用的意思,同样是逻辑文件夹。 也就是项目要用到的dll程序集引用。ASP.NET 5.0是完整的CLR支持的;Core 5.0是分离成模块的CLR支持。
Controllers:MVC的控制器
Migrations:是EF添加迁移配置后的文件夹
Models:模型文件夹
Views:MVC的视图文件夹
bower.json:bower工具配置
config.json:配置文件,相当于传统的web.config/app.config
gruntfile.js:Task Runner(grunt)工具配置
package.json:配置下载npm
project.json:主要References的配置
Startup.cs:程序运行时入口
注:以上说明只是大概 的情况,除了默认约定外,其它可以自行组织。
4.小结
本文概要的不详细,进一步了解地址:
http://www.asp.net/vnext(官方地址)
https://github.com/aspnet/home (源码托管)
https://www.myget.org/F/aspnetrelease/(beta版暂时发布,正式可用的要去nuget.org找)
另外视频学习:
http://www.microsoftvirtualacademy.com/(微软虚拟学院)
还有别的社区,可惜被伟大的墙堵了,或者收费。其实博客园也有很多大牛尝鲜ASP.NET5写了不少帖子,自行搜索!
便于志同道合的朋友一起交流,新开个QQ群:290576772(加时注明博客园)