有人使用Iron speed Designer进行asp.net快速开发吗?
Visual Studio很好,但是不会自动创建存储过程。 Iron Speed设计师可以做到。但这有什么好处吗?
解决方案
回答
为了方便起见,我将其用于一个非常小的项目。它完成了我想要的工作,为我节省了几天的工作。
我发现的主要问题是在定制或者扩展生成的项目时。我必须承认,我们必须花费大量时间来了解Ironspeed的做事方式,但这不是我的方式。
如果我事先知道我以后不必再对其进行自定义,那么我会再次将其用于一个小型项目。
回答
如果只需要存储过程生成,那么CodeSmith是一个不错的选择,而成本仅为IronSpeed的一小部分。有几种sproc模板可用,我们可以创建自己的模板,也可以根据需要调整现有模板。我们还可以使用CodeSmith将.Net代码生成到心中。为此已经存在大量的业务类模板。
IronSpeed的价值不在存储过程中,而在RAD功能中。我同意@Galwegian ... IronSpeed适用于模型或者非常简单的应用程序,如果我们需要进行任何自定义,则根本不那么好。
回答
在过去的两年中,对于数据项目中的大多数ASP.NET表单,我已经广泛使用Ironiron。
有用。几件事情做得很好:存储的proc,表浏览和CRUD屏幕的快速布局,单记录CRUD屏幕的快速布局。它可以很好地管理往返(或者半往返)过程,检测后端数据库架构中的更改并更新其数据访问层,然后使更改的列可用于更改UI(在记录或者表控制面板中) )。 ISD(正如他们所说的)在使应用程序的安全性管理变得轻松无忧方面非常出色,甚至可以降低到控件级别(如果使用ISD的asp.net控件的子类版本)。最后要说的不是很多,是基于CSS的主题控件(易于更改为各种主题,易于自定义特定主题,并且通过分叉现有的喜欢的主题来构建自己的主题变体也很不错。 )。根据我们是让ISD在代码库中还是在数据库中创建存储的proc,在运行时更改DB可能是小菜一碟。
活跃的论坛,有一群有用的贡献者。我们可能可以通过论坛避免付费的技术支持。
好吧,不利的一面。创建相当大的代码集,成为三层体系结构。正如Galwegian所说的,就像任何框架一样,我们也有丝绒的手铐(如果我们正在考虑代码限制和约定以外的任何其他内容,请不要管闲事!)。天鹅绒的手铐是页面和控制模型,数据层,本身缺乏业务对象/类功能,回发模型以及使用户GUI看起来像开箱即用的用户GUI的诱惑,因为它真是简单又方便。
ISD通过组合HTML模板(在其中放置ISD特定代码生成标签和任何其他标签等,使用ISD GUI或者手工)来构建基本页面。页面模型依赖于从代码模板创建的页面背后的代码。基类几乎是完全可重写的,因此我们可以覆盖所有默认函数,重新生成应用程序,而不会丢失覆盖。数据库控件位于页面容器中,但是在特定的/ app_code文件中具有其自己的类定义(即,其代码隐藏)。同样,每种控件类型都有其自己的基类,具有完全完全可重写的方法。单个记录控件(显示单个db记录)非常简单。一个显示多个记录的表具有一个表类和一个表行类。 ISD网站(www.ironspeed.com/support)拥有完整的ISD模型文档。
那么,此模型中的问题出在哪里?
1.轻松而诱人地使用其开箱即用的GUI。将ISD指向数据库,选择要使其转入页面的表,告诉它页面的种类,为其提供主题样式,然后五分钟后查看应用程序。凉爽的。但是,很容易忘记他们的用户GUI可能不是用户想要看到的。因此,请准备好自己考虑并修改由此创建的GUI。并不难,我们可以使用VS 2005来。
- 业务对象。我们可以将自己的业务对象放在一起,但这将很困难,并且ISD也不会提供任何帮助。 ISD进行了大量的简单验证和检查(适当的查找值,范围,长度等)的构建。ISD允许我们构建自定义查询,但是这些是只读的。它足够聪明(并且在任何情况下都可以覆盖页面的写入操作),可以让我们采用一对多视图并将其写回到数据库中(我们可能会覆盖默认的基本方法,但是并不能覆盖默认方法)很难做到)。但是,当我们进行认真的依赖性检查时,ISD仍然实际上是关于表而不是业务对象的。因此,我们将要编写一些代码。
如果我们很聪明,则将其编写一次,然后将其存储在app_code中的某个位置,然后通过从表或者记录控件中的重写方法调用它来使用它。如果我们像我们大多数人一样,则首先将其意大利面打入上面的代码隐藏类之一,然后忘记这样做,或者在处理客户数据的10个页面中的每个页面中都有一个副本。在我的世界中,这通常意味着5个完全相同的功能和5个完全不同的功能(即使它们都应该是相同的)。 ISD很想订购marinara,因为该模型适合意大利面条代码。当然,我们可以完全避免这种情况,但是我们必须学习ISD模型,以确定在项目上执行此操作的最佳方法。
- 页面状态和回发。尽管ISD对这个问题非常开放,并告诉用户不要仅使用默认值以在回发流中返回整个asp.net页状态(而是在服务器上缓存),但是默认值是返回整个页。可以制作一些BIG页面。这使用户认为S L OW。正如我所说,我们可以进行操作。但是,当新手很想指向,单击并迅速发展时,新手将获得此功能。经理现在可以放心了,因为她的产品库存表位于"网络上",具有很酷的搜索和编辑GUI(如果我们有点不便,并且采用了ISD的默认行为,则为400kb状态页)。内部很棒,但现实世界中的客户。
同样,知识是关键。我们可以解决此问题,但我们需要了解自己。
- 数据库读/写回发。这里没什么大问题,但是我们还需要知道该模型将仅获取当前使用的数据。如果表以50个记录的增量显示1000条记录,那么当我们从记录1到50到51到100时,我们将回发并再次访问数据库。这样可以使数据保持最新状态,但会增加服务器流量。
总体:尝试演示版本。将其指向一个我们真正想要上交到asp.net应用程序的简单对象。建立大约三个表。然后使用以上内容作为指导进行剖析。看看想法并将其发布回该问题。
回答
我们可能想查看Evolutility CRUD框架。它提供了一些相同的功能(仅限于CRUD),并且是开源的。
回答
IronSpeed在帮助我开发数据驱动的企业Intranet应用程序方面非常出色(即开即用)。虽然代码模型需要一点时间来适应,但它对于维护一个不错的三层应用程序非常有效。与2010年的网页设计相比,页面模板显得有些花哨,但当我们需要功能而不是表单时,页面模板就可以完成工作。