N久都没有关注技术上的东西了,blog也荒了很久,这两天倒腾了下asp.net mvc,说说感受。
asp.net mvc也不是什么新东西了,因为自己不做技术一段时间了,最近想给今后自己的发展定个方向,最终还是选择了.net,
于是就装了虚拟机,windows2003 + VS2008,然后一看,还需要Ado.net entity framework,于是又下载了个vs2008 sp1这里不得不鄙视下微软,
我不就是想要个Ado.net entity framework嘛,还要我下载800多M的vs2008 sp1 ,好不容易下载完了,安装上,又下载了asp.net mvc 2 RC2 for vs2008,
安装完。
本以为OK了,结果打开VS2008,新建项目里找不到mvc的模板,上网查了查,原来是因为VS2008是中文的,asp.net mvc 2是英文的,于是到:
C:\program files\microsoft visual studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 2目录下,把1033目录里的文件全部拷贝到2052目录下,
然后把1033目录删除掉。
接下来:
C:\program files\microsoft visual studio 9.0\Common7\IDE\ItemTemplatesCache\CSharp\Web\MVC 2
C:\program files\microsoft visual studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Web\
C:\program files\microsoft visual studio 9.0\Common7\IDE\ProjectTemplatesCache\CSharp\Web\
把这三个目录下的1033目录里的文件拷贝到2052目录下,
在VS2008的命令行里运行命令:devenv.exe /setup
重启VS2008,发现新建项目里MVC的模板了,OK,新建一个例子工程,发现里面Controller,View,Model都有了,然后就按照网上的例子创建Controller,结果出现异常:"Unable to find a matching template for this operation."
google了一大圈也没发现解决办法,asp.net mvc重装了都不行,网上关于这个问题的搜索结果更是少之又少。
没办法,自己试吧,中间过程省去一千字。。。。。。。。。。。。。。。。。。。。。。。。。。。。
最后想,肯定是找不到codetemplate里面的Add Controller目录里的Controller.tt文件,于是 把:
C:\program files\microsoft visual studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 2 \2052\CodeTemplates目录拷贝到
C:\program files\microsoft visual studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 2 \目录下 ,ItemTemplatesCache目录也做同样的操作。
终于OK了,泪奔啊。。。。。。。。。。。。。
接下来照着例子做了一遍,学生信息添删查改。
感觉asp.net mvc还是在模仿Rails,从目录结构的设置,命名上,使用了模板来生成controller和View的代码,但是没有Rails那么全面,设置一个model,全部都生成好,asp.net mvc还只能一个一个的生成。
同时,asp.net mvc 的代码生成是单向的,例如,我生成好了一个Controller,现在我要是再添加一个同名Controller,就必须把前面的那个删除掉,而不能覆盖。
这也就意味着,我第一次生成一个Controller以后,就无法再使用代码生成对其中的内容操作,只能完全手写,这样,代码生成对生产率的提高就很有限了。
后面还会继续尝试,权限,页面输入的判断,等等,目前的感觉是在正式的项目中应用还是要很谨慎的。毕竟以前的WebForm模式已经用了这么多年了,大家也都熟悉了,成熟的方案也比较多了。
先写这么多,很久不写blog,现在写就很随意了,到哪儿算哪儿吧。