今天好不容易休息了一天,上网狂了一圈,突然想起了以前的一个轻量级的开发工具“SharpDeveloper”,于是就下载试着来开发一下ASP.NET,但是老魏没有想到的是,虽然官方提供了对ASP.NET MVC的支持,但是实际开发中却是问题多多啊。
当老魏使用SharpDeveloper建立了一个ASP.NET MVC的项目,正准备运行的时候,却发现了问题不是一般的大,虽然SharpDeveloper支持Express IIS,但是老魏并没有使用,而是用使用了IIS7,虽然如此但是在看了项目结构后,就发现有问题了。
看了上面的结构图,发现少了最主要的Controllers,Views,Models这几个文件夹,好吧,我们自己来建立。当我们创建了这几个文件夹后,的确可以创建Controller和View了,但是这里我们却需要注意的是,在创建Controller的时候需要注意的是一定要带上”Controller”后缀,否则在编译的时候不会把这个类当成Controller的。
我们创建了一个Controller,然后我们需要创建一个对象的View,可惜的是SharpDeveloper并没有提供在Action右键创建View的功能,只能是手动了。
好了,View也已经创建了,然后我们来改写一下Index.cshtml的内容,写一个HelloWorld。
、
这是第一个问题出现了,按照ASP.NET MVC的发布而言,IIS的设置是没有问题的,但是现在运行的时候却出现了这个问题。原因是什么呢?我们注意观察Views文件夹,发现比VS创建的ASP.NET MVC项目结构中少了一个非常重要的文件”Web.config”。那么好吧,我们把这个文件复制过来。但是运行的时候又发现了一个问题。还是403.14错误。这又是怎么回事呢?我们发现在Gloabl.asax中并没有初始化路由等配置,好,我们加上去。
publicclass MvcApplication : HttpApplication{publicstaticvoidRegisterGlobalFilters(GlobalFilterCollection filters){filters.Add(newHandleErrorAttribute());}publicstaticvoidRegisterRoutes(RouteCollection routes){routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute("Default", // 路由名称"{controller}/{action}/{id}", // 带有参数的 URLnew { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值 );}protectedvoidApplication_Start(){AreaRegistration.RegisterAllAreas();RegisterGlobalFilters(GlobalFilters.Filters);RegisterRoutes(RouteTable.Routes);}}
好编译一下,然后运行一下,发现的确可以运行了。到此SharpDeveloper的ASP.NET MVC配置就已经好了。
虽然我们配置好了ASP.NET MVC3的开发环境,但是我们这一路走来,却发现SharpDeveloper的确没有VS的那样强大,感觉SharpDeveloper就是一个玩具,只适合写一下简单的小程序,对于入门级的开发人员来还是不错的。整体上却不如VS强大。
在使用SharpDeveloper的时候,还遇到一些问题,比如代码不提示,使用数据库的时候需要导入手动导入System.Data.dll文件,对于ASP.NET MVC的Attribute的支持不够好,等等吧,一系列的问题,总之老魏在使用SharpDeveloper开发一个权限系统的时候绝对的是汗流浃背啊,解决了一个一个问题,最终还是遗憾的老魏没有坚持下来,最后还是改用VS来开发了,不过老魏认为SharpDeveloper未来的发展还是很不错的,希望SharpDeveloper能够像Eclipse一样,做出一个开源的,免费的,功能强大的IDE,如果到了那个时候,老魏第一个丢到庞大体积的VS的。不知道能不能等到这一天呢?
对于那些想使用SharpDeveloper的网友来说,尝尝鲜还可以,如果真的要做东西的时候,还是希望能够使用VS来开发,SharpDeveloper对于VSS而言是不支持的,所以这个还是个问题,对于SVN的支持比较蛋疼了,只能使用对应的版本,哎!问题多多啊!
好了,今天就到这里吧,明天接着加班,顺便说一下,老魏还是在4月份正式的更新Blog!