从5月底开始,觉得要学些东西了,重新拿起MVC(此时已经是4)看了起来。心里暗想着这次要坚持。买了很多书,一些源码,但觉得这还不够。想要有动力能坚持学下去,对我来说,必须要有实际的项目支持,可这种大事怎么是我能说了算的?于是把MHC的代码COPY了一份,把WEB层删了重新建立,去掉所有工程与TFS的联系,开始连学习带编码。目前看来效果很好,断断续续的还在坚持,有思考,有成果,有深入。

  但有一个问题一直萦绕着心头:因为我仅仅是想把原项的功能照搬,结构不想改变。实践的过程中麻烦重重,问题的根源就在于MHC是基于WebForm。我一直在思考这个问题:在我们选择某种技术编写WEB程序后,缺斤短两的设计文档,客户需求,会给开发人员高度的自由,最后整个网站的结构一定会想所基于的技术结构靠拢。其实不只是MHC,从Conductor branch出来的几个项目,无不带有浓重的“WinForm”风。因为WebForm本就是效仿WinForm而诞生的,其灵魂就是倚仗一个或多个看不见的“状态”,来实现一个页面堆积多种功能,复杂无比。而现在MVC则与之差之千里,如果我所有结构都照搬,必然要吃尽了苦头。比如我现在正在修改的一个页面,本身设计的领域模型十分的简单,就是一堆被称作Plan的字符串,在数据库中对应一个ID,一个Name。可正因为简单,在原项目中我生怕这个界面太简单了...把增删改都集中在此页面中,列表有分页,还有复杂的查询...现在好了,我不知道MVC中要怎么处理这个家伙了。如果把Edit和Delete功能分到其他页面去会简单很多(也许这才是符合REST的设计),可我又不太想这么做,怎么办?

注:实际上有人会觉得使用Ajax不就好了?...没错,但我想把各种情况都试一下,例如这种带有查询和分页的功能页面在项目中有4-5个,我会各自使用不同的风格来实现,包括分页的方式,以达到学习的目的,所以我要把Ajax留给后面一个功能点Order List,如果在那里运用的比较成功,我会返回头再重新考虑现在这个Plan List页面的解决方案,这就是我目前采取的迭代式学习模式。

  我想,如果我有权利设计网站结构,我会将Edit和Delete功能分出去的,但现在我的主要目标还是学习。我想看看其他项目,那种真实的运作在production的项目是怎么处理这种事情的(至少MusicStore是单功能单页),是否还是用了基于.NET MVC之上的小型框架?我想我还是没法躲避单页面功能很多的情况,毕竟,一些使用MVC 架构 大型的网站就是这样的。

  另外,在github上搜索MVC C#语言,能找到那么多那么多的好东西,真是很令我兴奋。这些甚至小到404NoFound的解决方案,都是我在学习过程中思考并且苦恼过的,如果有时间应该多看看这些。

  后记:我最终还是选择了Ajax方式,后面一篇开头有提到 http://www.cnblogs.com/apodemakeles/p/3287993.html

转载于:https://www.cnblogs.com/apodemakeles/p/3285934.html

20130827 MHC的MVC之路相关推荐

  1. Spring MVC学习路(三) 编写第一个demo

    2019独角兽企业重金招聘Python工程师标准>>> 新建包com.test里面新建Test.java文件 package com.test;import org.springfr ...

  2. 走入asp.net mvc不归路:[4]说说Action有哪些常见成员

    一个控制器中,功能最终会落实到一个个Action中实现,最常见的是增删查改操作.这些Action是一个个的方法,一般返回值是ActionResult,并且是public 方法,可以带参数,可以添加元标 ...

  3. 第一章 打开MVC4的大门:(一)了解MVC

    1.MVC模式 Mvc将应用程序分离为三个部分: Model:是一组类,用来描述被处理的数据,同时也定义这些数据如何被变更和操作的业务规则.与数据访问层非常类似. View:是一种动态生成HTML的模 ...

  4. DOTNET Core MVC(二)路由初探

    搁置了几天,工作忙的一塌糊涂,今天终于抽空来继续看看MVC的知识.先来看看MVC的路由是如何处理的.以下为替代的路由: app.UseEndpoints(endpoints =>{endpoin ...

  5. Jm 18.4 MVC 报告一

    JM18.4 支持双目视差结构的立体视频,ProfileIDC = 128为Stereo High Profile. 两视点的.yuv文件经JM18.4编码生成的是一个.264文件. 提到High P ...

  6. SpringBoot2.6.x集成swagger: Failed to start bean ‘documentationPluginsBootstrapper问题解决

    在使用SpringBoot2.6.x集成swagger的时候,启动的时候出现了:Failed to start bean 'documentationPluginsBootstrapper 的空指针异 ...

  7. SpringBoot教程(十六) | SpringBoot集成swagger(全网最全)

    一. 接口文档概述 swagger是当下比较流行的实时接口文文档生成工具.接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发 ...

  8. RabbitMQ——入门介绍

    目录 1.消息队列 1.1.MQ 的相关概念 1.1.1.什么是 MQ 1.1.2.为什么要用 MQ 1.1.3.MQ 的分类 1.1.4.MQ 的选择 1.2.RabbitMQ 1.2.1.Rabb ...

  9. [ASP.NET MVC 小牛之路]10 - Controller 和 Action (2)

    继上一篇文章之后,本文将介绍 Controller 和 Action 的一些较高级特性,包括 Controller Factory.Action Invoker 和异步 Controller 等内容. ...

最新文章

  1. 智能车竞赛技术报告 | 单车拉力组 - 长春理工大学- 追风零队 2021
  2. Revising Aggregations - Averages(集合函数-avg)
  3. php单屏网站源码,关于原生js实现类似fullpage的单页/全屏滚动的方法
  4. 弱口令的分析和爆破工具使用
  5. CSS3:linear-gradient,线性渐变的使用方法
  6. oracle未找到远程连接,Oracle ORA-02019:未找到远程数据库的连接说明 | 学步园
  7. 企业级应用,如何实现服务化一(项目架构演化)
  8. HTML+CSS+JS实现 ❤️爱心文字3D旋转动画特效❤️
  9. pythonATM,购物车项目实战_补充2-模块功能
  10. 模糊综合评价模型原理及matlab实现
  11. 按键精灵python插件_按键精灵必须掌握的命令之插件命令
  12. ps制作哈7海报字体
  13. artDialog | 经典的网页对话框组件
  14. 如何成为微信小程序的开发者?
  15. _itemmod_extract_enchant
  16. [OpenAirInterface实战-16] :OAI 软件无线电USRP X300/X310硬件详解
  17. Rust 调用标准C接口的自定义c/c++库,FFI详解
  18. PDF怎么合并?分享几种非常简单的合并方法
  19. 使用customRef自定义ref,解决setup中处理异步问题。
  20. 全球语言标准码及其国家或地区对照

热门文章

  1. linux常用命令(1):cd命令
  2. PAT(乙级)2020年冬季考试真题解析
  3. loadrunner Web_类函数之web_reg_save_param_ex()
  4. 2021年中国内地城市地铁客流量排行榜:北上广深日均客运量超500万人次,深圳客流强度最大(附年榜TOP43详单)
  5. 开放共赢 平安云AI生态合作开启
  6. 数字证书基础-X.509协议
  7. STM32 读保护的实现
  8. Asp.Net使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖
  9. 笔试总结——0322联通软笔C++
  10. 实战:centos7上containerd的安装-20211023