asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

微软最新ASP.NETMVC框架Beta版技术细节


发布日期:2024年06月30日
 
微软最新ASP.NETMVC框架Beta版技术细节
近日微软发布了最新的ASPNET MVC框架的beta版(点击这里下载)ASPNET MVC Beta版可用于NET NET SP同时支持VS 和 Visual Web Developer Express SP版本(该版本是免费的现在还支持类库和web应用项目类型)

今天的ASPNET MVC Beta版本带有一个明确的上线(golive)许可允许你将其部署于生产环境中以前的预览版本也允许上线部署但其做法只是没有拒绝部署的许可而不是明确地允准许可(此乃很容易混淆之处)今天的版本在这一点上在许可中说得很清楚

该beta版本的特性已经非常接近于正式版V的完整特性虽然还会在最终的V版发布之前加入若干个特性(包括几个VS工具增强等)但开发团队决定将这个版本称为beta版本是因为其品质和测试要比以前的预览版本高(其中包含了许多缺陷修补和性能调校方面的工作)他们感觉其中的核心功能现在已经烧制得足够好从这个版本到最终版不会有重大变动了

对该版本中一些新的特性和与早先的第五个预览版之间的变动的简短概述

Visual Studio中新的添加视图菜单项

新的 \Scripts目录和jQuery支持

对复杂类型的内置模型绑定器支持

重构的模型绑定器设施

强类型的UpdateModel和TryUpdateModel白名单过滤

改进的UpdateModel和TryUpdateModel场景的单元测试

强类型的[AcceptVerbs]特性

更好的验证错误信息

HTML辅助方法的清理和重构

Silverlight / ASPNET MVC 项目集成

ASPNET MVC Futures 程序集

\Bin 和 GAC 程序集部署

我还计划在将来的几个星期内发表几个全程(endtoend)教程给尚未研究过ASPNET MVC的人以及想从头学起想知道如何起步的人更深入地解释ASPNET MVC的概念

Visual Studio中新的添加视图菜单项

在以前的ASPNET MVC预览版中你需要通过VS中的项目>添加新项对话框手工地添加视图创建好一切然后将它们连接起来要求若干个手工步骤(确认目录/文件结构是对的进入后台文件指定强类型的 ViewData模型类型等等)

今天的beta版本简化了这些步骤你现在只要在源码编辑器中将光标移进一个Controller action方法之内然后右击选择新的添加视图(Add View)上下文菜单项(或者你也可以键入CtrlM CtrlV快捷键组合来启动手不必离开键盘)

这会调出一个新的添加视图对话框允许你指定你想要创建的视图名称其母版页以及可选地它的强类型ViewData模型类型

Visual Studio会根据你的光标所在的action方法自动地填充视图名称(然后你想要的话也可以改动)例如如果在选择添加视图我们的光标是在Edit action方法中的话它会在视图名称对话框中填Edit而不是Browse

视图的强类型ViewData模型可从可编辑的ComboBox中选择该ComboBox列出了MVC项目中所有的类(或者引用的类)

然后你可以从列表中选一类型或在ComboBox中手工输入一个类型或者你也可以先从列表中挑一初始类型然后做些改动例如我们可以从列表中选择Product然后使用ComboBox的编辑支持将其改成IEnumerable

意即一个产品序列

在点击添加按钮后Visual Studio会自动地生成合适的视图目录结构往我们的项目中加一个适当名称和基类的强类型视图例如我按上面的步骤做的话它会为我生成一个新的\Views\Products目录(因为我的控制器类名是ProductsController)在其中加一个强类型的Browseaspx视图(该视图从ViewPage>继承而来,因为这是我们在上面对话框中指定的模型类型):

新生成的视图会在IDE中自动打开,然后我们可以使用完整的intellisense实现视图(小技巧:确认在创建视图后立刻编译一下,以确保你的强类型模型会在intellisense中出现):

在运行时,我们就能得到一个用ASP.NET MVC建造的SEO优化的产品浏览网页:

注: 在这个beta版本中通过“添加视图”生成的视图文件是空白的,在最终版中,我们希望在“添加视图”对话框中加一些“scaffolding(脚手架)”功能,允许你指定你想要根据“添加视图”对话框中指定的强类型模型来自动生成HTML列表/细节视图或者编辑/插入表单(然后你可以从这起始的html视图开始,改成你想要的东西)。tW.wIngwiT.COM在将来,我们还将把ASP.NET动态数据与MVC集成,来支持更丰富的“scaffolding”选项。

               

上一篇:Asp.net中处理一个站点不同Web应用共享Session的问题

下一篇:ASP.NET实现进度条