近两个星期以来主要在学习MVC的相关的知识,以前一直在听说大名鼎鼎的MVC,一直不知道是什么东东,学习了三层架构之后,总是不由自主的和三层对应起来,现在想想真是自己的臆测啊。
自己的初步学习还是主要是看博客园的入门文章,和传智的教程,在这里自己表示衷心的感谢。下面谈一谈自己学的的知识点吧。
M即是Model,自己做的实例比较少,基本上觉得与三层的Model区别不大,但是翻阅了很多文章,发现其实这里的model还涉及到数据的操作,而不仅仅是数据库中表的字段的映射。现在的学习还不够深入,希望以后能更深刻的理解。
V即是View,主要是负责网页的呈现。我一直不喜欢webform这样的页面,放很多的服务器控件,让我感觉很不爽,总感觉跑起来会卡死服务器。而这里,就没有服务器控件了,我们依然可以使用aspx,当然Razor也不错。View可以获取Controller传递过来的数据,数据可以存放在Viewdata、Tempdata等中,也可以直接return到View,在页面端,只需获取数据,然后呈现就ok了。
C其实就是Controller了,主要作为连接View和Model的桥梁,告诉我们该呈现哪一个View,该如何处理业务。当然,我觉得他兼有三层中BLL层的一部分功能,有点像aspx中的cs文件了,负责获取表单数据,调用业务逻辑等。
在MVC中,另一个不得不说的就是路由了,路由真的是极好的,每次我们请求数据,都要写文件名还有一大堆的参数,如*.aspx?id=1&action=add感觉真的是不爽,看到没有后缀名请求真的很清爽,当然我们也可以使用URL重写。有了路由之后,我们可以自己添加很多的路由规则,匹配各种请求,使用routes.MapRoute方法添加规则。
当然,MVC真的不错,不过本质上还是.net,之前学JAVAEE的时候也学过MVC,可惜完全没听懂,现在想来自己还是太年轻啊,加油!