Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 1
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 1的更多相关文章
- Asp.Net MVC4 + Oracle + EasyUI + Bootstrap
Asp.Net MVC4 + Oracle + EasyUI + Bootstrap --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.ht ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 第二章
Asp.Net MVC4 + Oracle + EasyUI 第二章 --使用Ajax提升网站性能 本文链接:http://www.cnblogs.com/likeli/p/4236723.html ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 第一章
Asp.Net MVC4 + Oracle + EasyUI 第一章 --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.html 文章集合 ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 序章
Asp.Net MVC4 + Oracle + EasyUI 序章 -- 新建微软实例 本文链接:http://www.cnblogs.com/likeli/p/4233387.html 1. 简 ...
- sp.Net MVC4 + Oracle + EasyUI + Bootstrap2
Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第二章 Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第二章 --使用 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)
转自:http://www.cnblogs.com/ymnets/p/3424309.html 曾几何时我想写一个系列的文章,但是由于工作很忙,一直没有时间更新博客.博客园园龄都1年了,却一直都是空空 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请 系列目录 创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充 系列目录 补充一下,有人要表单的代码,这个用代码生成器生成表Flow_Form表 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支 系列目录 步骤设置完毕之后,就要设置好流转了,比如财务申请大于50000元( ...
随机推荐
- LeetCode——Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...
- Android 常规任务的高度【schedule】与【scheduleAtFixedRate】差额
于android计划定期任务有两种方法 1.schedule 2.scheduleAtFixedRate 这两种方法的差别在于 首次调用时间(Date when)这个參数 <span style ...
- StackExchange.Redis 使用 - 事件(五)
ConnectionMultiplexer 可以注册如下事件 ConfigurationChanged - 配置更改时 ConfigurationChangedBroadcast - 通过发布订阅更新 ...
- 使用一个T-SQL语句批量查询数据表占用空间及其行数
原文:使用一个T-SQL语句批量查询数据表占用空间及其行数 要找到数据库中数据表占用的空间和存在的行数.可以使用sp_spaceused搭配数据表的名称.就可以产生该表耗用的空间和现有行数. 如: U ...
- XCL-Charts画一个图(CurveChart)
情节线图与往常不同的是,它是一个比较特殊线位置计算.所以我得到一个单独的类.相同.只需要输入数据源的基类, 加,控制要添加的.你可以画出你自己主动设置按照预期的效果. 代码: //图基类 chart ...
- IQ调制、整形滤波器与星座映射
http://www.cnblogs.com/touchblue/archive/2013/01/15/2861952.html 现代通信中.IQ调制基本上属于是标准配置,由于利用IQ调制能够做出全部 ...
- android sdk linux 文本 64 位置
android sdk linux 64 之前获得模.现在补上一,然后,小伙伴们下载 版权声明:本文博主原创文章,博客,未经同意不得转载.
- Youtube最佳Red5 官方视频下载指南,字幕【亲测成功】
前言 最近在研究Red5 流媒体服务框架,官网上的信息足以让一个新手入门 有官方參考手冊 -- 高速了解red5的相关信息 有Red5 on Stackoverflow -- 在上面能够提问或者回答 ...
- CPU 风扇清理灰尘加油全过程图解
主机电源风扇因为使用时间长,风扇轴承的润滑油耗尽,导致风扇转速下降或是不转,引起电源热量无法有效排除而造成电脑常常死机,解决的方法有几种. 现图讲解明最简单省钱的办法例如以下: 1.把电源从主机上拆下 ...
- Windows平台Oracle使用USE_SHARED_SOCKET角色
前两天在一个朋友QQ集团提出了一个问题.背景例如,下面的: 继续问后,有例如以下回复: 1.对方server连接无问题. 2.从client能够telnetserver的1521port. 3.tns ...