Visual Studio非常好,但不会自动创建存储过程.据说Iron Speed设计师确实如此.但它有什么好处吗?
在过去的两年里,我在大多数ASP.NET表单中都使用了Ironspeed而不是数据项目.
有用.有好几件事:存储过程,表浏览和CRUD屏幕的快速布局,单个记录CRUD屏幕的快速布局.它可以正常地管理往返(或半往返)过程,检测后端数据库模式中的更改并更新其数据访问层,然后使更改的列可用于更改UI(在记录或表控制面板中) ).ISD(他们称之为)在为您的应用程序进行安全管理方面做得非常出色,甚至达到控制级别(如果您使用ISD的子网格版本的asp.net控件).最后的加号,不是一个小的,是基于CSS的主题控件(易于更改为各种主题,易于自定义特定主题,甚至不太糟糕,通过分配你喜欢的现有主题来构建自己的主题变体).
相当活跃的论坛,由一群有用的贡献者组成.您可以通过论坛避免付费技术支持.
好的,不利的一面.创建相当大的代码集合,是一个三层架构.正如Galwegian所说的那样,就像任何框架一样,你有天鹅绒手铐(如果你正考虑除了代码限制和约定之外的任何事情,那就让你的思绪脱离阴沟!).天鹅绒手铐是页面和控件模型,数据层,缺乏业务对象/类功能本身,回发模型,以及使用户GUI看起来像开箱即用的用户GUI的诱惑,因为它是如此的轻松和方便.
ISD通过组合HTML模板(在其中放置ISD特定代码生成标签和任何其他标签等,使用ISD GUI或手动)来构建基本页面.页面模型依赖于从一段代码模板创建的页面后面的代码.基类几乎完全可以覆盖,因此您可以覆盖所有默认函数,重新生成应用程序而不会丢失覆盖.数据库控件存在于页面容器中,但在特定的/ app_code文件中有自己的类定义(即代码隐藏).同样,每个控件类型都有自己的基类,并且具有非常完全可覆盖的方法.单个记录控件(显示单个db记录)非常简单.显示多个记录的表具有表类和表行类.ISD网站(www.ironspeed.
那么,这个模型中的问题在哪里?1.轻松诱人的开箱即用GUI.在您的数据库中指向ISD,选择要将其转入页面的表格,告诉它各种页面,给它一个主题样式,并在五分钟后查看应用程序.凉.但是,很容易忘记他们的用户GUI可能不是您的用户想要看到的.所以,要准备好自己思考并修补这样创建的GUI.不难做到,你可以使用VS 2005来帮助你.
业务对象.您可以将自己的业务对象组合在一起,但这很困难,您将无法获得ISD的帮助.ISD做了很多简单的验证和检查(适当的查找值,范围,长度等).ISD允许您构建自定义查询,但这些是只读的.它足够聪明(你可以在任何情况下覆盖页面中的写入)让你进行一对多视图并将其写回数据库(你可能会覆盖默认的基本方法,但它不是那很难做到).但是,当您进行严格的依赖性检查时,ISD仍然是关于表而不是业务对象.所以,你要编写一些代码.
如果你很聪明,只要将它存储在某个地方的app_code中就可以编写它,并通过在表或记录控件中的重写方法调用它来使用它.如果你像我们大多数人一样,你首先将意大利面条转移到上面的一个代码隐藏类中,然后忘记你这样做了,或者在操作客户数据的10个页面中都有一个副本.在我的世界中,这通常意味着5个相同的功能和5个都是不同的(即使它们都应该是相同的).ISD很有可能订购marinara,因为该模型适用于意大利面条代码.当然,您可以完全阻止这种情况,但您必须学习ISD模型以确定在项目中执行此操作的最佳方法.
页面状态和回发.虽然ISD对这个问题非常公开,并且告诉用户不要只是在回发流中返回整个asp.net页面状态的默认值(而是在服务器上缓存),默认是返回整个页面.可以制作一些大页面.这让用户认为SLO W.正如我所说,你可以操纵它.但是,当它很容易被指向,点击和繁荣 - 即时应用时,新手会得到这个.你的经理现在已经不在了,因为她的产品库存表是"在网上",有一个很酷的搜索和编辑GUI(400kb状态页,如果你有点疯了,刚刚采取了ISD的默认行为).伟大的内部,但在现实世界的客户....
同样,知识是关键.你可以解决这个问题,但你应该知道你应该知道.
数据库读/写回发.这里没什么大问题,但您还需要知道该模型仅用于获取当前使用的数据.如果您的表以50个记录增量显示1000条记录,当您从记录1到50到51到100时,您将回发并再次点击数据库.这可以保持数据最新,但会增加服务器流量.
总体而言:尝试演示版.将它指向一个简单的东西,你真的想要转入asp.net应用程序.建立可能三个表.然后使用上述指南进行剖析.看看你的想法,并回到这个问题.