金沙澳门官网:MVC深入浅出系列,新的开始

作者: 网络编程  发布:2019-11-21

2017工作学习总结

一. ASP.NET体系

  2017年最大的一件事当然是结婚了,正式步入婚姻生活后,才真正意识到了人生已经进入到了下一个阶段了,即从“天生”的三口之家,变成了独立的新家。对于这个新的开始,我无比的激动,并充满幻想,我希望将来能和我的妻子,共同分享我们努力换来的幸福生活。

   从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模式,ViewState功不可没,通过的控件的拖拽和绑定,很快就可以搭建出来一个Web项目,其开发速度远胜Java、PHP,当年Web项目并不很重视体验,没有今天响应式,没有各种前端js框架,所以在当年的WebForm,微软是以引以为豪的。

  2017年,另一件事情是我开始了对编程的正式学习。由于高中时就接触到了VB,大学时学了C语言,对编程来说,我是很感兴趣的。我想其中的一个原因可能跟我的思维习惯有关系,我认为很多事情都是有规律可循的,而计算机编程为我们提供了一个很好的平台,供我们去用人的意识去操纵机器,从而让机器代替人类,去做一些有规律可循的事情,我相信对于这些事情,让计算机去做,比人去做效率更高,效果更好。当然,计算机在逻辑设计之初(图灵机)就定义计算机的功能限制:计算机只能用于计算可计算的问题(人的感情属于不可计算的问题)。但是在我们的生活中,大部分问题仍是可计算的,因此学习计算机编程无疑是未来长远发展的必修课。在3月份底,我再三犹豫后,在腾讯课堂上购买了常老师的C#编程课程,用了很短的时间(大概一个月),就把CS架构的课程都学习完了,对于后面的BS内容,由于当时的使用需求所限,因为没有仔细的学习,只是大概的看了一遍。

  该框架毕竟有时代局限性,随着前端的崛起,随着人们对项目体验的提高,随着项目的体量的增大,WebForm在当下强调松耦合、模块化、组件化的时代,略显落后,故微软于2009年推出第一个开源框架,即MVC框架,俗称ASP.Net MVC1,后面又陆续的推出 MVC2、3、4、5。现在最新的跨平台Web开发框架 Core MVC,它隶属于.Net Core框架,而非 .Net FrameWork下。

  在系统地学习了编程后,学会了基本的面向对象设计方式,和简单的设计模式,以及C#的一些高级特性。但学习后,我又在腾讯课堂上看到了软谋的视频,里面详细介绍了泛型,反射,多线程等一系列我认为很有用,但在常老师的课程中没有具体讲的内容,因此于5月底,我购买了软谋高级班的课程,跟着Eleven老师,进入.Net的高级开发,开始学习架构思维。在高级班,我学习了泛型,反射,Lambda,多线程,序列化,面向服务编程的概念,WebService,WCF,WebApi,AOP面向切面,依赖注入DI,EF,MVC框架,学到的内容基本都是Net开发中使用的高级特性,这些特性,满足了我对之前学习常老师课程中留下的很多问题,“原来问题还可以这样解决”,是我最大的感受。

  下面用一张图表示一下在Core出现之前,.Net在Web开发即ASP.NET中包含的内容。

  由于高级的内容较多,有很多需要理解的部分只有实践才能真正掌握其中的精华,而我目前的工作中没有一个具体的实践机会,因此很多学到的知识,也只是停留在了解的程度。

金沙澳门官网 1

  9月中旬,第一次学完了高级班的所有课程,我目测大概学会了40%的内容。

   简单分析一下:WebPages(没用过哎)、WebForms、MVC均为ASP.NET下的Web开发框架,WebAPI负责构建HTTP常规服务,SignalR负责构建实时服务。

  10月份结婚,蜜月很是幸福,从泰国回来后,感觉好像喜欢上游泳了,即原来在游泳的时候都是手脚同时发力,因此在两次划水动作的交替时,都会感到非常的紧张,就怕自己划水动作慢了,就会沉下去。但在泰国酒店的泳池里,我终于明白其实手脚不应该同时发力,应该交替发力,这样在手不发力的时候,脚发力,脚不发力的时候,手发力,这样手脚循环发力就可以轻松的游下去了,其实结婚后,两个人组成的新家庭也是这个道理,“手脚”呼应,交替前行。

   MVC和WebAPI简单对比一下:MVC用来构建网站既关心页面又关心数据,WebAPI只关心数据;MVC通过可以通过Action的名字来接受CURD操作,而WebAPI通过HTTP的访问方式(GET、PUT、POST、DELETE)来表达不同的CURD操作。

  11月第二次开始了高级班的学习,在学习的过程中,突然想到了真实的业务需求。为我们工作中所写的帮助手册做一个搜索服务,以支持手册的查询和更新功能。于是我在网络上搜索了一些网站的源码(前端aspx 后端dll),然后用ILSpy反编译学习了一下基本的思路,最后自己重新写了一个Lucene的帮助类库,然后又新建了一个WebForm的网站成功,真正实现了想要的功能。但在实践的过程中,我对网站编程的兴趣越来越浓,总是在想,这么简单的一个网站,我用WebForm已经完成了,但我在高级班学的MVC框架是不是还需要在重新用MVC在写一遍,后来又下载一些MVC后台管理的网站后台源码,Jucheap这个框架为我打开了一个网站设计的大门,从框架的源码中,我看到了很多自己在学完了高级班之后仍然很不了解的地方,后来通过对框架中用到的知识一点一点的百度,学到了更多的MVC框架的知识,并且也有了自己的一些想法,例如一个很简单的需求,能不能我在后台动态添加(配置)一个页面,用于用户录入一些我规定的字段信息。从这里面我又想起了一个我一直以来想的一件事情:用户界面UI能不能通过后台直接生产,这样风格即统一,也减少了前台页面的设计,但这里面存在一个问题必须解决,那就要模型信息验证,通过学习MVC,发现Model实体上添加特性,利用HTMLHelper即可在前台生成基于JQuery的前台模型验证(必须使用BeginForm和TextBoxFor等方法)。看到这种方法后,我又产生了一种新想法,我能不能通过扩展HtmlHelper,去实现一个BeginFormForModel的方法,将模型自动转换为前台界面,这个方法无疑是可行的,于是我就去看了HemlHelper的源码,里面确实并不是我想象的那么简单(ViewContext等),但我知道,我的这个想法一定可以实现

  (WebService、WCF、WebAPI、SignalR在后面会有单独的章节详细介绍)

  后来在博客园里面接触到了更多的程序设计等其他方面的内容,越来越有兴趣,到现在2018年2月,刚刚接触到NetCore就有了非常高的兴趣。感觉现在学习编程的感觉正如一开始学习时,常老师所说的,老师只是教最基础的知识,等你学会了这些基础知识后,再看其他内容就会非常轻松了。我现在学习的感觉就是:头脑中已经有了一定的知识储备,但目前急需要扩展自己的视野,跟上互联网技术发展的前沿,而NetCore是2014年微软推出的跨平台的Net平台,NetCore平台上仍然使用C#语言,并且对NetFramework进行了库的迁移,在NetCore中使用的方式和Net中是一样的,但是NetCore平台使用了很多先进的设计理念,如NetCore中的MVCCore和EFCore都更加的轻量级,高性能,可扩展。这两天在看了博客园大神腾飞Jesse的一些文章,并且看了他录制的NetCore快速入门教程,真的感觉到了之前从Jucheap框架中看到的很多不懂的东西,这NetCore的快速入门教程中都有体现,感觉这种前后呼应的感觉真是棒棒哒。

 

  至此总结了我2017年的学习和生活的一些感谢。希望以后再看的时候,能够回忆起当时的美好。

二. WebForm和MVC对比

  最后对上述本文中提到的喜课堂教育的常老师,软谋教育的Eleven老师表示衷心的感谢。希望你们的课程越办越好。

  1. WebForm

而我的梦想也是成为一名教书育人的老师(IT),目前正在努力的学习过程中,感谢你们的帮助。

   做过WebForm开发的朋友们应该很清楚,WebForm开发形式主要分为三种:

金沙澳门官网 ,  同时感谢腾飞Jesse和Jucheap框架的作者。

  ①:服务器端控件,即拖拽控件(aspx)

  由于本人排版水平有限,第一次写博客,希望大家多提意见。

  ②:一般处理程序(ashx) html模板

                                                                                                                                                                                               2018年2月7日星期三

  ③:html静态页 ajax 一般处理程序(ashx)

  请求模型:

  金沙澳门官网 2

  WebForm的几个臭名昭著的缺点:封装太强,导致开发不灵活;ViewState的无状态;声明周期模型复杂,对于初学者不易于理解。

  1. MVC

  我们经常从各种开发工程师(JAVA 、.NET、PHP)口中听到MVC,但不同人说的MVC貌似类似,但又有区别,那么MVC到底是什么呢?(类似的还有MVP和MVVM)

  1. 从宏观上来说:MVC是框架分层的一种搭建思想,在最原始的项目中,没有什么框架分层之说,所有的项目代码都在一个层里,这样会导致代码冗杂,耦合性强,项目迭代升级困难,MVC是一种分层思想,将一个项目代码分为几类,分别放到不同的层里,Model层存储一些数据和业务逻辑,View层处理页面问题,Controller层用来接收人机交互指令。MVC分层思想和传统的三层(数据库访问层、业务逻辑层、表现层)还是有区别的。

  MVC的核心是分离了View和Model(即页面和数据),Controller负责接收和发送指令,交给Model层处理。

  2. 从.Net的角度来说,MVC是微软提供一个Web开发框架,全称ASP.NET MVC,它是传统三层中View层的一种功能细分,一种表现形式而已,与三层没有直接关系。ASP.NET MVC框架中的开发流程围绕:

  ① Model:存储实体类,实现系统中的业务逻辑。

  ② View:页面展示(Razor模板),展现给用户。

  ③ Controller:页面的逻辑处理,用来与用户的交互,处理接受的Http请求。然后从Model中获取相应的数据,转发给View进行页面展示。

 补充:通过Controller中的Action,可以充当APP的服务端接口的作用,和WebAPI达到的效果一致,但访问方式是有区别的。

  请求模型:

金沙澳门官网 3

  下面列举MVC框架的几个典型的优点:

  ①:松耦合,M-V-C分工明确,有利于代码的维护。

  ②:便于Seo优化,能自定义url的生成规则。

  ③:ASP.NET MVC5是个出色的表现层框架。

  ④:对单元测试支持友好。

本文由金沙澳门官网发布于网络编程,转载请注明出处:金沙澳门官网:MVC深入浅出系列,新的开始

关键词: 金沙澳门官网

上一篇:八十年再回首,追书神器API
下一篇:没有了