有人使用 Iron speed Designer 进行快速 asp.net 开发吗?

发布于 2024-07-05 14:44:39 字数 1448 浏览 6 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

楠木可依 2024-07-12 14:44:39

为了方便起见,我在一个非常小的项目中使用了它。 它满足了我的要求,并节省了我几天的工作时间。

我发现的主要问题是在自定义或扩展生成的项目时。 你必须花费相当多的时间来尝试理解 Ironspeed 的做事方式,我承认,这不是我的方式。

如果我事先知道以后不需要对其进行太多自定义,我会在一个小项目中再次使用它。

I have used it for convenience for a very small project. It did what I wanted and saved me a couple of days work.

The main problem I found was when it came to customising or extending the generated project. You have to spend quite a bit of time trying to understand Ironspeed's way of doing things which, I'll admit, is not my way.

I'd use it again for a small project if I knew in advance I wouldn't have to customise it much after.

兲鉂ぱ嘚淚 2024-07-12 14:44:39

Iron Speed Designer 非常适合简单的 CRUD 类型的 Web 应用程序。 您可以在我们的网站 http://www.dotnetarchitect.co.uk/ 上找到一些有用的信息

Iron Speed Designer is great for simple CRUD type web applications. You can find some useful information on our web site http://www.dotnetarchitect.co.uk/

恰似旧人归 2024-07-12 14:44:39

如果您只需要生成存储过程,CodeSmith 是一个不错的选择,而且成本只是 IronSpeed 的一小部分。 有多个可用的存储过程模板,您可以创建自己的存储过程模板,也可以根据需要调整现有的存储过程模板。 您还可以使用 CodeSmith 生成您满意的 .Net 代码。 为此已经存在大量的商务舱模板。

IronSpeed的价值不在于sproc生成,而在于RAD功能。 我同意@Galwegian...IronSpeed 对于模型或非常简单的应用程序来说还可以,但如果您需要进行任何自定义,那就不太好了。

If stored procedure generation is all you are after, CodeSmith is a decent option at a fraction of the cost of IronSpeed. There are several sproc templates available, and you can create your own or tweak an existing if that is what you need. You can also gen .Net code to your hearts content with CodeSmith. Tons of business class templates already exist for this.

IronSpeed's value is not in the sproc generation, but in the RAD features. I agree with @Galwegian... IronSpeed is OK for mock ups or very simple apps, not so good at all if you need to do any customization.

决绝 2024-07-12 14:44:39

您可能想查看 Evolutility CRUD 框架。 它提供了一些相同的功能(仅限于 CRUD)并且是开源的。

You may want to check out Evolutility CRUD framework. It provides some of the same features (limited to CRUD) and is open source.

烟燃烟灭 2024-07-12 14:44:39

IronSpeed 在帮助我开发数据驱动的企业 Intranet 应用程序方面表现出色(开箱即用)。 虽然代码模型需要一些时间来适应,但它可以有效地维护一个漂亮的三层应用程序。 虽然与 2010 年的网页设计相比,页面模板可能显得花哨,但当您需要功能而不是形式时,它可以完成工作。

IronSpeed has been great (out-of-the-box) at helping me develop data-driven corporate Intranet applications. While the code model takes a little getting used to, it is effective at maintaining a nice three-tier app. While the page templates can appear garish compared to 2010's web-design, it gets the job done, when you need function over form.

榕城若虚 2024-07-12 14:44:39

在过去的两年里,我在大多数 ASP.NET 表单数据项目中广泛使用了 Ironspeed。

有用。 做得很好:存储过程、表浏览和 CRUD 屏幕的快速布局、单记录 CRUD 屏幕的快速布局。 它妥善管理往返(或半往返)过程,检测后端数据库架构中的更改并更新其数据访问层,然后使更改的列可供您更改 UI(在记录或表控制面板中) )。 ISD(他们这样称呼它)在使您的应用程序的安全管理变得非常轻松方面做得非常出色,甚至可以深入到控制级别(如果您使用 ISD 的 asp.net 控件的子类版本)。 最后一个优点,不是一个小优点,是基于 CSS 的主题控件(易于更改为各种主题,易于自定义特定主题,甚至可以通过分叉您喜欢的现有主题来构建自己的主题变体) )。 根据您是否让 ISD 在代码库或数据库中创建存储过程,在运行时更改数据库可能是小菜一碟。

相当活跃的论坛,拥有一群乐于助人的贡献者的核心小组。 您也许可以通过论坛避免付费技术支持。

好吧,缺点。 创建相当大的代码集合,成为三层架构。 正如 Galwegian 所说,与任何框架一样,您都戴着天鹅绒手铐(如果您正在考虑代码限制和约定以外的任何事情,请将您的思想从阴沟里拿出来!)。 天鹅绒手铐是页面和控制模型、数据层、缺乏业务对象/类功能本身、回发模型以及使您的用户 GUI 看起来像开箱即用的用户 GUI 的诱惑,因为它真是太简单又方便了。

ISD 通过组合 HTML 模板(您可以在其中放置 ISD 特定代码生成标签和任何其他标签等,使用 ISD GUI 或手动)来构建基本页面。 页面模型依赖于从一段代码模板创建的页面隐藏代码。 基类几乎是完全可重写的,因此您可以重写所有默认函数、重新生成应用程序并且不会丢失您的重写。 数据库控件位于页面容器中,但在特定的 /app_code 文件中具有自己的类定义(即它们的代码隐藏)。 同样,每个控件类型都有自己的基类,并具有完全可重写的方法。 单个记录控件(显示单个数据库记录)非常简单。 显示多条记录的表具有表类和表行类。 ISD 网站 (www.ironspeed.com/support) 提供了完整的 ISD 模型文档。

那么,这个模型的问题出在哪里呢?
1. 开箱即用的 GUI 简单易用。 将 ISD 指向您的数据库,选择您想要将其转换为页面的表格,告诉它页面的类型,为其指定主题样式,五分钟后您就可以查看该应用程序。 凉爽的。 但是,很容易忘记他们的用户 GUI 可能不是您的用户想要看到的。 因此,请准备好自己思考并修改由此创建的 GUI。 这并不难,你可以使用 VS 2005 来帮助你。

  1. 业务对象。 您可以将自己的业务对象组合在一起,但这会很困难,而且您不会从 ISD 获得任何帮助。 ISD 进行了大量简单验证和检查的构建(适当的查找值、范围、长度等)。ISD 允许您构建自定义查询,但这些查询是只读的。 它足够智能(并且在任何情况下您都可以覆盖页面的写入),让您可以采用一对多视图并将其写回数据库(您可能会覆盖默认的基本方法,但它不是很难做到)。 然而,当您进行严格的依赖性检查时,ISD 实际上仍然是关于表而不是业务对象。 因此,您将编写一些代码。

如果您很聪明,您将编写它并将其存储在 app_code 中的某个位置,并通过从表或记录控件中的重写方法调用它来使用它。 如果您像我们大多数人一样,您会首先将其放入上面的代码隐藏类之一中,然后忘记您这样做了,或者在操作客户数据的 10 个页面中的每个页面中都有一个副本。 在我的世界里,这通常意味着 5 个相同的函数和 5 个完全不同的函数(即使它们都应该是相同的)。 ISD 让人很容易订购 marinara,因为该模型适合意大利面条代码。 当然,您可以完全阻止这种情况,但您必须学习 ISD 模型才能确定在您的项目中实现此目的的最佳方法。

  1. 页面状态和回发。 尽管 ISD 对这个问题相当开放,并告诉用户不要只采用在回发流中返回整个 ASP.NET 页面状态的默认值(而是在服务器上缓存),但默认值是返回整个页面。 可以制作一些大页面。 这让用户认为 SLO W。正如我所说,你可以操纵它。 但是,当新手很想点击、点击、然后点击“即时应用程序”时,新手会得到什么。 您的经理现在可以摆脱您的困扰,因为她的产品库存表位于“网络上”,具有很酷的搜索和编辑 GUI(如果您有点疯狂并且刚刚采用了 ISD 的默认行为,则有 400kb 的状态页面)。 内部很棒,但现实世界中的客户......

同样,知识是关键。 你可以解决这个问题,但你需要知道你应该这样做。

  1. 数据库读/写回发。 这里没什么大问题,但您还需要知道该模型仅获取当前使用的数据。 如果您的表以 50 条记录增量显示 1000 条记录,那么当您从记录 1 到 50 到 51 到 100 时,您将回发并再次访问数据库。 这可以保持数据最新,但会增加服务器流量。

总体而言:尝试演示版本。 将其指向您真正想要转换为 ASP.NET 应用程序的简单内容。 建造也许三张桌子。 然后使用上述内容作为指导对其进行剖析。 看看您的想法并回复此问题。

I have used Ironspeed extensively for the past two years for most of our ASP.NET forms over data projects.

It works. Does several things well: stored procs, fast layout of table browse and CRUD screens, fast layout of single record CRUD screens. It manages the round-trip (or half-round trip) process decently, detecting changes in your back end db schema and updating its data access layer, then making the changed columns available for you to alter your UI (in record or table control panels). ISD (as they call it) does an excellent job in making security management for your app pretty painless, even down to the control level (if you use ISD's subclassed versions of asp.net controls). Final plus, not a small one, is the CSS-based theme control (easy to change to a variety of themes, easy to customize a particular theme, and not even too bad to build your own theme variant by forking an existing one you like). Depending upon whether you let ISD create your stored procs in the code base or the database, changing DB's at run time can be a piece of cake.

Fairly active forum with a core group of helpful contributors. You can probably avoid the paid tech support through the forum.

Okay, the down sides. Creates fairly large code conglomerations, being a three tiered architecture. As Galwegian says, like any framework, you've got the velvet handcuffs (get your mind out of the gutter if you are thinking about anything other than code limitations and conventions!). The velvet handcuffs are the page and control model, the data layer, lack of a business object/class capability per se, the postback model, and the temptation to make your user GUI look like THEIR user GUI that comes out of the box because it is so darned easy and convenient.

ISD builds a basic page by combining an HTML template (in to which you place ISD specific code generation tags and any other tags, etc., you which using the ISD GUI or by hand). The page model relies upon a code behind page created from a piece of code template. The base classes are almost completely overridable, so that you can override all of the default functions, regenerate the application and not lose your overrides. The database controls live in the page container, but have their own class definitions (i.e., their code-behind) in specific /app_code files. Again, each control type has its own base class with pretty completely overridable methods. A single record control (showing a single db record) is pretty simple. A table, showing several records, has a table class and a table row class. The ISD website (www.ironspeed.com/support) has good documentation of the ISD model as a whole.

So, where are the problems in this model?
1. Easy and tempting to live with their out of the box GUI. Point ISD at your database, pick the tables you want to have it turn in to pages, tell it the kinds of pages, give it a thematic style and five minutes later you're viewing the application. Cool. But, it is very easy to forget that their user GUI is probably not what your user wants to see. So, be prepared to think for yourself and tinker with the GUI thus created. Not hard to do, and you can use VS 2005 to help you.

  1. Business objects. You could put together your own business objects, but it would be difficult and you would get no help from ISD. ISD does a LOT of building of simple validation and checking (appropriate look up values, ranges, lengths, etc.) ISD lets you build custom queries, but these are read-only. It is smart enough (and you can override the write from a page in any case) to let you take a one to many view and write it back to the database (you'd probably override the default base method, but it isn't that hard to do). However, when you get in to serious dependency checking, ISD is still really about tables and not business objects. So, you're going to write some code.

If you are smart, you'll write it once store it in app_code somewhere and use it by calling it from an overridden method in your table or record controls. If you are like most of us, you'll first spaghetti it in to one of the code-behind classes above, and then forget you did so, or have a copy in each of the 10 pages that manipulates customer data. In my world, that has usually meant 5 identical functions and 5 that are all different (even though they are all supposed to be the same). ISD makes it tempting to order marinara, because the model lends itself to spaghetti code. Of course, you can completely prevent this, but you gotta learn the ISD model to determine the best way to do it on your project.

  1. Page state and postbacks. Although ISD is quite open about this problem and tells users not to just take the defaults of returning the whole asp.net page state in the postback stream (cache on the server instead), the default is to return the whole page. Can make for some BIG pages. Which makes users think S L O W. As I said, you can manipulate this. But, what newbie is going to get this when it is SO tempting to just point, click, and boom - instant application. Your manager is now off your back because her product inventory table is "on the web" with a cool search and edit GUI (of 400kb state pages if you've gone a bit nuts and have just taken the default behaviors of ISD). Great in-house, but the customers in the real world....

Again, knowledge is the key. You can fix this, but you need to know you SHOULD.

  1. Database read/write postbacks. No big problem here, but you also need to know that the model is to fetch only the data used at the moment. If your table shows 1000 records in 50 record increments, when you go from records 1 to 50 to 51 through 100, you will postback and hit the database again. This keeps data current, but increases server traffic.

Overall: Try the demo version. Point it at something simple that you really want to turn in to an asp.net application. Build maybe three tables. Then dissect it using the above as a guide. See what YOU think and post back to this question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文