MVC系列博客之排球计分(八)总结

总结:

完成这个程序大约用了半个月时间,期间遇到了很多问题,也很难受,学了好久,还是不太会。自己亲手做了这个程序,对controller和view的关系理解的很好了。

在这个过程中还存在着一些问题,比如razor语法不太懂,还有就是遇到了错误,自己不知道怎么解决。

另外就是MVC确实比webform好用一些。至少在我看来,MVC有以下优点:

大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。

首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。 其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。

再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。

最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。

但与此同时,MVC也暴露出一些缺点:

   (1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
  (2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
  (3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
  (4) 目前,一般高级的界面工具或构造器不支持MVC架构。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难当然,这些并不是不能克服的,我觉得只要提高你的代码水平,熟悉工具的使用,这样才能更好的写出好的代码。最后说一句,愿你的努力都会有回报。
时间: 2025-01-12 11:14:25

MVC系列博客之排球计分(八)总结的相关文章

MVC系列博客之排球计分(一)需求分析

项目简介: 这是MVC系列博客之排球计分程序,该程序可以是对教练或者裁判使用的,让教练有权限对队员进行查询得分情况,让教练对队员的优势劣势进行了解,以便对队伍进行调整. 让裁判更好的判定比赛输赢. 需求分析:     作为一名排球教练,我需要统计对方球队的队员信息,得分情况,技能得分,以便能做出针对性的训练. 进入本程序后,需要选择身份,然后就可以对队员信息进行操作了.(增删改查) 本身份只能对本队队员进行操作,要想操作对方队员,只能退出程序,重新选择身份. 作为一名裁判,我需要对场上两队得分进

MVC系列博客之排球计分(七)具体实现

前几篇已经讲了程序的大概实现,现在具体来实现 打开Visual Studio2015,点击新建项目,命名VolleyBall 点击确定 然后添加一个CoachController和RefreeController, 如下: 添加两个模型类 点击models,右键单击添加类,Score.cs和player 代码如下: Players类: public class Players    {        public int ID { get; set; }        [DisplayName(

MVC系列博客之排球计分(六)Controller的实现(二)

上一篇博客没有完整的展现controller的代码,现在展示一下 HomeController CoachController代码如下 public class CoachController : Controller    {        private gDBContext db = new gDBContext(); // public ActionResult Index()        {            return View(db.Students.ToList()); 

MVC系列博客之排球计分(二)构架概要设计

MVC 编程模式 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列表). View(视图)显示数据(数据库记录). Controller(控制器)处理输入(写入数据库记录). MVC 模式同时提供了对 HTML.CSS 和 JavaScript 的完全控制. Model(模型)是应用程序中用于处理应用程序数据逻辑的部分. 通常模型对象负责在数据库中存取数据. Vie

MVC系列博客之排球计分(五)Controller的实现

Controllers 文件夹 Controllers 文件夹包含负责处理用户输入和响应的控制类. MVC 要求所有控制器文件的名称以 "Controller" 结尾. 在我们的实例中,Visual Web Developer 已经创建好了以下文件: HomeController.cs(用于 Home 页面和 About 页面)和AccountController.cs (用于登录页面): Web 服务器通常会将进入的 URL 请求直接映射到服务器上的磁盘文件.例如:URL 请求 &q

MVC系列博客之排球计分(四)视图的实现

Views 文件夹 Views 文件夹存储的是与应用程序显示(用户界面)相关的文件(HTML 文件).根据所采用的语言内容,这些文件可能扩展名可能是 html.asp.aspx.cshtml 和 vbhtml. Views 文件夹中包含每个控制器对应的一个文件夹. 在 Views 文件夹中,Visual Web Developer 已经创建了一个 Account 文件夹.一个 Home 文件夹.一个 Shared 文件夹. Account 文件夹包含用于用户账号注册和登录的页面.(本程序中没有用

MVC系列博客之排球计分(三)模型类的实现

最初我使用的是连接数据库的方法来建立数据连接的,后来听了同学用EF框架来生成数据库自动连接,感觉很好用,然后我就重新用EF框架生成数据库 使用EF框架生成数据库,要有相应的模型类,模型类如下: public int ID { get; set; }        [DisplayName("球员编号")]        public string Name { get; set; }        [DisplayName("球员姓名")]        publi

关于算法导论系列博客的说明

本系列博客主要为练习<算法导论(第三版)>的记录.发表目的在于希望通过大家的帮助,不断地改进程序,使其在时间和空间方面效率不断提高.由于水平有限,错误在所难免.但是,我一定尽力消除.另外, 欢迎大家指出错误,提出宝贵的建议,感谢大家的指点和帮助. 特别注明: 你们的评论对我是一种莫大的鼓励,哪怕一个字也好,万分感谢. 在开始之前,对各练习的程序作出统一说明,以后不再重复. 一  程序一般用C语言写,编译为GCC. 二   程序一般为子程序的形式,不提供调用主程序,只完成要求的功能. 三   不

JavaScript 系列博客(七)

JavaScript 系列博客(八) 前言 本篇博客介绍页面节点概念.文档结构以及如何使用 js 操作文档节点还有事件 target 以及 BOM 操作. 节点 dom与dom属性 // DOM: 文档对象模型 => 提高给用户操作document obj的标准接口 // DOM树: 以document为根, 树状展开所有子节点 节点分类 // 节点分类: 6个 // document | doctype | element | text | attr | comment 节点常规操作 var