Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 序章

Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 序章

-- 新建微软实例

1、  简介

为学习MVC4而写的文章,以项目开发的角度书写。循序渐进,同时也是自己学习的过程,博文编写过程中,我会参考相关专业书籍和网站,尽量编写和描述规范的编码和原理。若是过程中有错误,请各位看官不吝啬指出!

2、  博文定位

新手教程,所以适合刚刚准备学习MVC4的博友阅读。不过会讲述很多原理,个人认为,目的是学会如何操作,但是原理也同样重要。授人以鱼不如授人以渔。

3、  初次接触MVC

创建微软提供的MVC项目实例,初次接触一下MVC4的特性。

图 1

这里创建MVC4项目实例,至于最新的MVC5这里并不做样例,该项目是将要在生产环境下运行的项目,所以没有选用MVC5来作为Web框架,采用了前一个版本MVC4。

图 2

4、  Razor语言简介

按照图中的做法,先创建一个MVC4的实例项目,先体验一下MVC4的架构特点以及特性。这里选择Razor视图引擎,较之以前的Web Form引擎,个人感觉清爽了太多。推荐使用Razor引擎。简单介绍一下Razor引擎,Razor是一种允许把代码和内容进行平滑集成的语法,但是注意了,Razor并不是一种新的语法,而是将已知的语言来编写代码,例如我们这里会用的C#,当然其他的语言也行,例如VB.NET。MSDN:Razor语法

图 3

在创建的默认微软实例中,我们可以看到整个工程的目录结构,途中文档树上黄色黄色标记部分就是MVC的关键结构了,Controller(控制器)、View(视图)、Model(模型)。由于楼主电脑上暂时还没有安装Visio,这里就先不画结构图了,以后补上。

这里来说说MVC架构的好处吧。MVC模式是一种严格实现应用程序各部分隔离的架构模式。这种“隔离”有一个特响亮的名字“分离关注点”,通俗点儿的名字叫做”松耦合”。因此呢,MVC架构都是以实现应用程序模块之间的隔离为目标的。

既然都实现了隔离,那么好处就显而易见了,每个组件的独立,相互之间没有直接的依赖。因此在使用单一文件编译组件时,减少了相关组件之间的影响。不会‘牵一发而动全身’。

其他关于MVC的概念就不多细说,原理方面可以多看看MSDN,网上博主们也说了很多了。

好了,项目已经创建,先运行一下。该实例中提供基础的MVC编写方式与规范。

图 4

图 5

图 6

5、  MVC路由

从上图的访问路径,引入了MVC中的一个重要概念’路由’,用对比来说明把,传统的Web Form架构下,网站的每个URL都是由单个的物理文件.aspx表示的。而Web Form的单个页面和页面类是紧密耦合的,这便是代码后置技术(code-behind),当年微软弄出这个来着实是了不起的,其中的事件驱动模型更是大大提高了web开发的速度,但是现在很多项目处于维护、扩展等多方面的考虑,都放弃了这种模式。

而MVC的路由是依赖复杂的路由规则动态的映射外部的URL到正确的控制器上,并动态的操作指定要显示的视图给用户。高度的复用,便是路由的强大之处。

 另外补充一点:MVC路由功能并不是只有Asp.Net MVC程序可以使用,其实Web Form同样可以使用的。

图 7

图中显示的便是MVC下的一个标准路由配置,

 路由配置说明

提示一下:MVC的路由中控制器和操作是不区分大小写的,也就是说/Home/Action、/home/Action、/home/action是指向同一个Recent操作上的。

关于路由的原理很复杂,作为新手教程,这里不深入,若有兴趣,之后的文章中做出详细的解释。上面的代码中举例了一个简单的路由配置,Controller指初始的控制器名,注意,不用加上控制器名之后的controller,Action指向控制器方法名,id则为附带参数。这里的默认控制器就是表示,页面指向Home控制器里面的叫做Index的方法。

附上匹配路由模式的URL及其值:

URL Controller Action ID
/auctions/auction/12345 AuctionsController Acution 12345
/auctions/recent AuctionsController Recent  
/auctions AuctionsController Index  
/ HomeController Index  

6、  绑定与压缩

图 8

MVC4中引入了新的特性之一:绑定和压缩。

从字面上的意思容易理解,就是将javascript和CSS合并以及压缩,来提高网站的访问速度,其实这种事儿目前很多网站已经很常见了,并不是新鲜事儿了,比如淘宝,看看淘宝首页的源码,就知道PHP的淘宝用了一个插件,将javascript合并了,来提高页面的访问速度。这也是提交客户端体验的重要手段之一。这里同样不详细介绍,之后的文章里面再解说如何使用Asp.Net MVC来绑定压缩这些文件。

7、  最后

MVC4中其实除了上面提到的绑定和压缩外,还有异步控制器、显示模式。这两种新特性将在之后的文章中提到。

9、  参照书籍和网站

《MVC5 框架揭秘》、《Asp.Net MVC4 Web编程》、MSDN

8、 相关下载

文档:http://download.csdn.net/detail/a406502972/8375369

下一章节:

Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第一章 使用数据

 
 

Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 1的更多相关文章

  1. Asp.Net MVC4 + Oracle + EasyUI + Bootstrap

    Asp.Net MVC4 + Oracle + EasyUI + Bootstrap --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.ht ...

  2. Asp.Net MVC4 + Oracle + EasyUI 学习 第二章

    Asp.Net MVC4 + Oracle + EasyUI 第二章 --使用Ajax提升网站性能 本文链接:http://www.cnblogs.com/likeli/p/4236723.html ...

  3. Asp.Net MVC4 + Oracle + EasyUI 学习 第一章

    Asp.Net MVC4 + Oracle + EasyUI  第一章 --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.html 文章集合 ...

  4. Asp.Net MVC4 + Oracle + EasyUI 学习 序章

    Asp.Net MVC4 + Oracle + EasyUI  序章 -- 新建微软实例 本文链接:http://www.cnblogs.com/likeli/p/4233387.html 1.  简 ...

  5. sp.Net MVC4 + Oracle + EasyUI + Bootstrap2

    Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第二章   Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第二章 --使用 ...

  6. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)

    转自:http://www.cnblogs.com/ymnets/p/3424309.html 曾几何时我想写一个系列的文章,但是由于工作很忙,一直没有时间更新博客.博客园园龄都1年了,却一直都是空空 ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请 系列目录 创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分 ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充 系列目录 补充一下,有人要表单的代码,这个用代码生成器生成表Flow_Form表 ...

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支 系列目录 步骤设置完毕之后,就要设置好流转了,比如财务申请大于50000元( ...

随机推荐

  1. HDU 4916 树形dp

    Count on the path Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  2. C++学习笔记25,析构函数总是会宣布virtual

    为了永远记住析构函数声明virtual----><<effective c++>> 为这句话不一定对,但无需质疑的是这句话是非常实用的. 查看以下的样例: #includ ...

  3. 让struts2和servlet共存

    由于struts2默认的是拦截全部的请求 由配置文件能够看出 <filter> <filter-name>struts2</filter-name> <fil ...

  4. hdu 4912 Paths on the tree(lca+馋)

    意甲冠军:它使树m路径,当被问及选择尽可能多的路径,而这些路径不相交. 思考:贪心,比較忧伤.首先求一下每对路径的lca.依照lca的层数排序.在深一层的优先级高.那么就能够贪心了,每次选择层数最深的 ...

  5. StackExchange.Redis 使用-配置 (四)

    Configurationredis有很多不同的方法来配置连接字符串 , StackExchange.Redis 提供了一个丰富的配置模型,当调用Connect 或者 ConnectAsync 时需要 ...

  6. Asp.net中Postback及Callback

    我们知道,在默认的情况下,当我们点击Asp.net Page中的一个服务器Button时(默认其实是Submit Form),会导致Page被Recreated,这个过程我们称之为Postback,它 ...

  7. Smart Framework

    Smart Framework:轻量级 Java Web 框架 发表于2年前(2013-09-01 08:39)   阅读(48569) | 评论(188) 544人收藏此文章, 我要收藏 赞83 阿 ...

  8. Mongodb语法总结

    mongodb与mysql指挥控制 由数据库中的一般传统的关系数据库(database).表(table).记录(record)三个层次概念组成.MongoDB是由数据库(database).集合(c ...

  9. cocos2dx --- button点击放大中心

    自定义简单button,直接附着到代码: MenuItem* MenuItemNode::create( const char* normal,Ref* target,SEL_MenuHandler ...

  10. 探索Scala(1)-- 运算符重载

    Scala语言运算符重载全然是语法层面的小把戏,本文记录我对Scala语言运算符重载的一些理解. 方法调用语法糖 调用方法时,Scala同意省略点号和圆括号,如以下代码所看到的: 把运算符映射成单词 ...