来源:http://www.zhidao91.com/asp-net/

在经过对.Net平台深入的学习以后,我发现很多语言开发动态网站时,它的后台逻辑都差不多是相同的,今天在这里我给大家来聊聊在.Net平台下网站的开发!

目前,ASP.NET中两种主流的开发方式是:ASP.NET Webform和ASP.NET MVC。从下图可以看到ASP.NET WebForms和ASP.NET MVC是并行的,也就是说MVC不会取代WebForms(至少目前是这样)而是多了一个选择,Webform在短期之内不会消亡,尽管存在许多缺点,但过去许多老项目依旧是使用的WebForms进行开发的,虽然许多公司已经在积极的将WebForms项目迁移或升级到MVC项目,但WebFoms项目依然会存在很长一段时间。

WebForm的开发方式

  1. 服务器端控件
  2. 一般处理程序+Html静态页+Ajax
  3. 一般处理程序+Html模板

WebForm模型

MVC请求模型


DomainModel – 领域模型: 不仅仅是一个实体类,而是整个业务才处理流程的一个规则.

WebForm 优点

  1. 支持事件模型开发。得益于丰富的服务器端组件,webfrom开发可以迅速的搭建web应用
  2. 使用方便,入门容易
  3. 控件丰富

WebForm 缺点

  1. 封装太强,很多底层东西让我们初学者不是很明白
  2. 入门容易,提升很难
  3. 复杂的生命周期模型学习起来并不容易
  4. 控制不灵活
  5. ViewState处理

ASP.Net MVC的开发方式

  1. 2009年第一个开源项目版本发布
  2. 更加简洁,更加接近原始的“请求-处理-响应”
  3. 不会取代WebForm
  4. 底层跟WebForm都是一样的。管道上不同的处理而已
  5. MVC只是表示层的一种新的方式
  6. MVC是微软2009对外公布的第一个开源的表示层框架,这是微软的第一个开源项目
  7. MVC目的不是取代WebFrom开发,只是web开发的另外一种选择

为什么要学习ASP.Net MVC?

MVC架构模式诞生30年后,因为其提供的良好的松耦合、易于扩展、高可维护性等优点,重新在开发社区火起来。作为微软全新的Web网站开发框架,ASP.NET MVC提供了全新的开发模式,完美支持经典的MVC架构模式。为.NET工程师提供了完全不同的开发体验。

越来越多的公司和开发者开始加入到MVC开发模式中来,使他进入了一个高速发展的状态,而现在MVC已经变成了ASP.NET下的一种常见的开发模式,它能让你学习一种完全不同的架构,所以这是我们有理由也有必要掌握的一项开发技能。

ASP.Net MVC学习路线

要有C#、ADO.Net、html、javascript、ASP.Net WebForm的基础

MVC简介

MVC 模式两种理解:一种是表现模式,另外一种是架构模式。这里我主要将其理解为表现模式。

它将应用程序分成三个主要组件即:视图(View)控制器(Controller)模型(Model)

M:Model 主要是存储或者是处理数据的组件Model其实是实现业务逻辑层对实体类相应 数据库操作,如:

CRUD(C:Create/R:Read/U:Update/D:Delete)。它包括数据、验证规则、数据访问和业务逻辑等应用程序信息。ViewModel:视图模型

V:View 是用户接口层组件。主要是将Model中的数据展示给用户。ASPX和ASCX文件被用来处理视图的职责。

C:Controller 处理用户交互,从model中获取数据并将数据传给指定的view

表现模式(UI/Presentation Pattern)三个角色

Model:用于存储数据的组件

View:根据Model数据进行,内容展示的组件

Controller:接受并处理用户指令(操作Model),选择一个View并输出内容

MVC是 模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。其中Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现; View层用于与用户的交互,通常用JSP来实现; Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

MVC请求模型


控制器(Controller)- 负责转发请求,对请求进行处理。
视图 (View) – 界面设计人员进行图形界面设计。
模型 (Model)-业务逻辑、数据、验证规则、数据访问等等
模型是一个概念,不要对应到多架构的某个层

View 和 Controller都可以直接请求Model,但是Model不依赖View和controller

Controller可以直接请求View来显示具体页面,View不依赖Controller

真正和用户打交道的是 控制器,视图/模型 只是被控制器调用并产生html代码而已。

MVC优点

  1. 很容易将复杂的应用分成M、V、C三个组件模型。通过model、view和controller有效的简化了复杂的架构,体现了很好的隔离原则
  2. 因为没有使用server-based forms 。所以我们程序员控 制的更加灵活,页面加干净
  3. 可以控制生成自定义的url。对于seo友好的url更是不在话下
  4. 强类型View实现,更安全、更可靠、更高效。
  5. 让web开发可以专注于某一层,有利于开发中的分工,更利于分工配合适用于大型架构开发
  6. 很多企业已经使用MVC作为项目开发框架,招聘明确要求熟悉MVC开发模式,我现在做的项目架构就是mvc+ef+wcf+
  7. 松耦合、易于扩展和维护
  8. 有利于组件的重用
  9. ASP.NET MVC更好的支持单元测试(Unit Test)
  10. 在团队开发模式下表现更出众

MVC 代码和页面彻底分离,WebForm:codebehind技术没有完全对代码和前台页面进行分离

控制器的约定大于配置

  1. Controller放到controllers文件夹中,并且命名方式以Controller结尾
  2. 每个Controller都对应View中的一个文件夹,文件夹的名称跟Controller名相同Controller中的方法名都对应一个View视图(非必须,但是建议这么做)而且View的名字跟Action的名字相同
  3. 控制器必须是非静态类,并且要实现IController接口
  4. Controller类型可以放到其他项目中。

视图的相关约定

  1. 所有的视图必须放到Views目录下
  2. 不同控制器的视图用文件夹进行分割,每个控制器都对应一个视图目录
  3. 一般视图名字跟控制器的Action相对应(非必须)
  4. 多个控制器公共的视图放到Shared

总体来说,MVC是一个很强大的东西,你对他有多了解,你就能做出来多好的网站!

0

 

Asp.Net的两种开发方式的更多相关文章

  1. 6、ASP.NET MVC入门到精通——ASP.Net的两种开发方式

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 目前,ASP.NET中两种主流的开发方式是:ASP.NET Webform和ASP.NET MVC.从下图可以看到ASP.NET WebFo ...

  2. ASP.Net的两种开发模式

    一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...

  3. mybatis两种开发方式

    本文首先讲解从JDBC到mybatis的演变过程,然后是使用mybatis进行开发的两种方式. 一 JDBC的使用及其优化 1.使用JDBC进行数据库操作 加载JDBC驱动: 建立并获取数据库连接: ...

  4. 在ASP.Net中两种利用CSS实现多界面的方法

    通过使页面动态加载不同CSS实现多界面(类型于csdn的blog): 方法一: <%@page language="C#"%><%@import namespac ...

  5. 二 Mybatis架构&MybatisDao的两种开发方式(原始Dao,接口动态代理)

    MyBatis架构图 三个对象: SqlSessionFactoryBuilder.SqlSessionFactory.SqlSession SqlSessionFactoryBuilder:主要用来 ...

  6. web.config中配置数据库(多数据)连接的两种方式

    这是我的第一篇文章,既然是第一篇了,那就从最基础的只是说起--web.config中配置数据库连接. 网上有很多这方面的资料,但发现并没有一篇从头到位很清楚明了说完的,今天就把我的整理写在这里吧. 在 ...

  7. web.config文件中配置数据库连接的两种方式

    web.config文件中配置数据库连接的两种方式 标签: 数据库webconfig 2015-04-28 18:18 31590人阅读 评论(1)收藏举报    分类: 数据库(74)  在网站开发 ...

  8. SAPUI5 freestyle vs SAP Fiori Elements —— 两种开发SAP UI5 Apps的方式对比

    概述 目前SAPUI5 SDK 提供了两种方式来开发一个SAPUI5 App.一种方式是传统的SAPUI5开发方式,一种是利用SAP Fiori Elements通过模板快速构建应用的方式. 本文简单 ...

  9. web.config中配置数据库连接的两种方式

    在ASP.NET中有两种配置数据库连接代码的方式,它们分别是 appSettings 和 connectionStrings .在使用 appSettings 和 connectionStrings ...

随机推荐

  1. C#XmlHelper操作Xml文档的帮助类

    using System.Xml; using System.Data; namespace DotNet.Utilities { /// <summary> /// Xml的操作公共类 ...

  2. Centos 下oracle 11g 安装部署及手动建库过程

    Oracle 11g 手动建库,在虚拟环境中,不使用DBCA工具进行创建数据库 1.Linux环境的基本配置 2.ip  10.11.30.60 3.Oracle 11g安装过程 ---------- ...

  3. 烂泥:KVM、kickstart与NFS集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 其实这篇文章原本是可以不写的,不过为了学习NFS的使用形式还是写下,算是作为一个笔记. 有关NFS的搭建与配置,可以参考我以前的文档<烂泥:NFS ...

  4. avahi-daemon启动失败-解决方法-linux

         avahi-daemon是一种Linux操作系统上运行在客户机上实施查找基于网络的Zeroconf service的服务守护进程. 该服务可以为Zeroconf网络实现DNS服务发现及DNS ...

  5. C#连接MySql数据库的方法

    1.要连接MySql数据库必须首先下载MySql的连接.net的文件, 文件下载地址为http://download.csdn.net/detail/xiaoliu123586/91455792.解压 ...

  6. [转]JavaScript实现 页面滚动图片加载

    本文转自:http://www.cnblogs.com/Darren_code/archive/2011/07/21/LoadImage.html 又到了这个月的博客时间了,原计划是打算在这个月做一个 ...

  7. Tomcat 长连接与短连接性能测试

    环境: 操作系统:centos 6.5 x64 cpu:32 core 内存:  32G web服务器:tomcat 6.x jdk :1.6x 测试环境: 操作系统:centos 6.5 x64 c ...

  8. Maxwell’s Equations

    A=cos(pi*x-pi/2)i+sin(pi*x)j 正电荷形成的电场 负电荷形成的电场   正负电荷形成的电场 无限长导线上均匀分布的正电荷 电场 均匀分布电荷的平面 电场 电荷均匀分布的球面形 ...

  9. [Android Studio] Android studio 多渠道打包(超简洁版)

    [Android Studio] Android studio 多渠道打包(超简洁版) 转载:http://xuyazhou.com/archives/461 http://relex.me/usin ...

  10. View (三) 视图绘制流程完全解析

    相 信每个Android程序员都知道,我们每天的开发工作当中都在不停地跟View打交道,Android中的任何一个布局.任何一个控件其实都是直接或间 接继承自View的,如TextView.Butto ...