首页 > 代码库 > 玩转ASP.NET 5:前言--准备--概述

玩转ASP.NET 5:前言--准备--概述

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://channel9.msdn.com/

          http://www.microsoftvirtualacademy.com/(微软虚拟学院)  

          还有别的社区,可惜被伟大的墙堵了,或者收费。其实博客园也有很多大牛尝鲜ASP.NET5写了不少帖子,自行搜索!    

          便于志同道合的朋友一起交流,新开个QQ群:290576772(加时注明博客园)       

     

 

玩转ASP.NET 5:前言--准备--概述