Visual Studio 相当不错,但不会自动创建存储过程。Iron Speed 设计师应该是这样做的。但这有什么好处吗?
6 回答
在过去的两年中,我在大多数 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(如果您有点发疯并且刚刚采用 ISD 的默认行为,则为 400kb 状态页面)。内部很棒,但现实世界中的客户......
再次,知识是关键。你可以解决这个问题,但你需要知道你应该。
- 数据库读/写回发。这里没什么大问题,但你也需要知道模型是只获取当前使用的数据。如果您的表以 50 条记录增量显示 1000 条记录,那么当您从记录 1 到 50 再到 51 到 100 时,您将回发并再次访问数据库。这使数据保持最新,但增加了服务器流量。
总体:试试演示版。将它指向您真正想要将其转换为 asp.net 应用程序的简单事物。建立可能三个表。然后以上述为指导对其进行剖析。看看你的想法,然后回复这个问题。
为了方便一个非常小的项目,我使用它。它完成了我想要的,并为我节省了几天的工作时间。
我发现的主要问题是在自定义或扩展生成的项目时。你必须花相当多的时间来理解 Ironspeed 的做事方式,我承认,这不是我的方式。
如果我事先知道以后不必再定制它,我会再次将它用于一个小项目。
如果您只需要生成存储过程,那么 CodeSmith 是一个不错的选择,其成本仅为 IronSpeed 的一小部分。有几个可用的 sproc 模板,如果需要,您可以创建自己的模板或调整现有模板。您还可以使用 CodeSmith 生成 .Net 代码,让您心满意足。为此已经存在大量的商务舱模板。
IronSpeed 的价值不在于存储过程的生成,而在于 RAD 功能。我同意@Galwegian ... IronSpeed 适用于模型或非常简单的应用程序,如果您需要进行任何自定义,则根本不是那么好。
您可能想查看 Evolutility CRUD 框架。它提供了一些相同的功能(仅限于 CRUD)并且是开源的。
IronSpeed 在帮助我开发数据驱动的企业 Intranet 应用程序方面表现出色(开箱即用)。虽然代码模型需要一点时间来适应,但它可以有效地维护一个漂亮的三层应用程序。虽然与 2010 年的网页设计相比,页面模板看起来很花哨,但当您需要功能而不是形式时,它可以完成工作。
Iron Speed Designer 非常适合简单的 CRUD 类型的 Web 应用程序。您可以在我们的网站http://www.dotnetarchitect.co.uk/上找到一些有用的信息