无需手动编码即可构建 .NET 应用程序





0/5 (0投票)
Iron Speed Designer 可构建 .NET 的数据库、表单和报表应用程序 — 无需手动编码。快速创建功能齐全的自定义应用程序,这些应用程序集成了网页、控件、数据访问、验证和安全性。加速开发并消除基础设施编程。
这是我们对 The Code Project 赞助商的展示性评测。这些评测旨在为您提供我们认为对开发人员有用且有价值的产品和服务信息。
Iron Speed Designer 5.0 版本现已发布:PDF 报表生成和 Excel 导出功能增强了数据库应用程序。
“数据库层 — 所有 SQL 和事务管理:用于数据显示和报表的所有 SQL 查询,以及记录的插入、修改和删除。高级功能包括多表连接和分页事务模型。”
目录
快速构建令人惊叹的 Web 2.0 应用程序
![]() |
开发 Web 2.0 应用程序提供了将桌面功能带到 Web 上的机会,通过构建富有创意、用户友好的应用程序,例如这些。
对大多数应用程序用户而言,Web 2.0 应用程序比传统的桌面应用程序看起来更好,而且使用起来也更方便。Web 2.0 应用程序提供了前所未有的机会触达内部和外部用户,许多组织正在增强 Web 应用程序,以整合客户和供应商,以及内部用户。
同时,构建 Web 应用程序使您(开发人员)进入一个完全不同的范式。Web 2.0 应用程序增加了安全性、无状态事务管理、分页导航以及各种用户界面功能的额外开发负担,这些是您在传统桌面客户端-服务器应用程序中通常不会担心的问题。尽管 Microsoft .NET Framework 等平台提供了这些应用程序的操作系统级别服务,但您仍然必须编写 SQL 语句、创建数百个网页,并编写应用程序的业务逻辑。

智能 IT 部门正在高效地解决其中许多关键问题,并将资源集中在创建对其业务真正独特的知识产权上。他们正在使用一种称为应用程序生成器的新型软件工具来消除基础设施编程的手动编码。应用程序生成向前迈出了一大步,提供了一个更广泛、更全面的解决方案。Iron Speed Designer 等应用程序生成器为您创建了大部分应用程序,通常高达 80%-90%。
在不牺牲性能、功能和互操作性的情况下加速开发周期是应用程序生成所提供的关键优势。本白皮书介绍了 Iron Speed Designer 这个应用程序生成器的工作原理。它将“即点即选”的应用程序生成与 Web 2.0 功能相结合,加速开发并降低成本。
为什么选择应用程序生成器?
为什么应用程序生成对于现代应用程序开发如此重要和有用?
- 加速应用程序的开发和部署。 应用程序生成通过生成例行的基础设施代码,节省了数周甚至数月的开发时间,让您可以专注于业务逻辑。大多数应用程序开发项目始于少量页面模型 — 或白板草图 — 以及数据库模式。Iron Speed Designer 使用您的数据库模式作为输入,生成您应用程序的基础设施,包括事务管理代码和 SQL 查询,其速度比手动编码快得多。
- 降低开发成本。在更短的时间内创建应用程序意味着您可以更快、更高效地开发和部署应用程序,并减少人力成本。您的客户会惊叹于您构建概念验证系统、收集反馈和部署应用程序的速度。
- 最大限度地提高 IT 部门的生产力。大多数开发人员都厌恶构建分页报表、分层导航、过滤和全文搜索等功能,因为所需时间与它们带来的挑战或兴趣不成比例。应用程序用户期望这些功能,但通常需要大量的编码。Iron Speed Designer 让您的团队能够专注于支持您特定业务需求的高级开发方面。
- 减少单调乏味的工作。 Web 应用程序中的每个页面可能包含五个或十个单独的 SQL 查询,每个查询都必须编写、调试并经过性能审查。然而,通过使用应用程序生成工具,您无需担心手动编程网页、控件或 SQL。数据插入、检索和显示操作的重复性允许它们在应用程序生成器中用作可重复模板或代码模式。
什么是 Web 2.0 应用程序?
Web 2.0 应用程序没有精确的定义。就我们的目的而言,我们将它们描述为将桌面应用程序功能带入 Web 应用程序,以提供丰富的以事务为中心的 UI。
企业应用程序已迁移到 Web,随之而来的是对丰富应用程序 UI 的需求,特别是对于数据录入、工作流和报表。Web 已远远超出信息显示和订单录入/购物车应用程序的范畴,成为部署复杂企业应用程序的首选环境。Web 2.0 应用程序在无状态的 Web 环境中提供桌面式交互,这充其量是一项艰巨的任务。
这些丰富的 UI 是如何实现的?主要通过使用一组新技术,如 Ajax(异步 JavaScript 和 XML)和 ASPX 进行 UI 开发,以及 Web 服务和 ADO.NET 进行数据源访问。
![]() |
Ajax 启用的控件,如弹出窗口和富文本编辑器,是 Web 2.0 应用程序中常见的示例功能。 |
Web 2.0 应用程序的一些具体特征是什么?
- 丰富的组件是标志,通常是从各种来源“聚合”而成,以创建丰富、全面的应用程序。这些组件可能托管在各种服务器和站点上,从而实现真正的分布式应用程序。
- 单个网页控件与服务器端代码进行密集交互。交互式搜索、日历和日程安排控件,以及递增和递减按钮,都与服务器端代码实时交互,为用户提供动态更新的信息。
- 它们不回发(postback),或者至少看起来不像回发。回发会刷新页面,导致令人烦恼的闪烁。Web 2.0 应用程序使用 Ajax 和其他技术提供受影响屏幕区域的“平滑面板更新”。
从企业应用程序的角度来看,Web 2.0 应用程序通过 Web 2.0 应用程序取代桌面应用程序用于数据录入和工作流使用,从而提供丰富的交互。
Web 2.0 应用程序类型
大多数 Web 2.0 应用程序都是数据库驱动的,这意味着它们用于数据输入、数据显示和数据操作。大多数定制应用程序属于这些基本类型:
- 数据录入和管理 — 收集用户数据并允许编辑这些数据的应用程序。
- 报表和跟踪 — 报表和汇总数据的应用程序。
- 工作流和调度 — 实现基本分步业务流程的应用程序。
- 业务流程自动化 — 实现高级业务流程的应用程序,通常会编排多个系统之间的数据流。
![]() |
这个 Web 2.0 工作流应用程序允许用户在一个网页上处理事务。 |
如果这些应用程序类型听起来像 20 世纪 80 年代和 90 年代的客户端服务器应用程序,那么您就对了。现代 Web 2.0 应用程序就是您过去会使用桌面应用程序(用于丰富的用户交互)结合后端服务器(用于集中式数据存储和处理)来构建的那些应用程序。幸运的是,这些 Web 2.0 应用程序类型非常适合应用程序生成方法。
Iron Speed Designer 的方法
想象一下,只需将一个向导指向应用程序(或应用程序们)的底层数据库,就能创建 80% 到 90% 的应用程序?所有网页和组件 — 表格、面板和控件 — 都神奇地相互连接,并与底层数据库连接,并且所有相关代码都为您生成。这正是 Iron Speed Designer 所做的,它展示了应用程序生成的力量。Iron Speed Designer 的应用程序生成方法非常直接:
- 从您的应用程序特定数据模型开始 — 一个现有的数据库或其他数据资产。
- 自动创建一套功能齐全的应用程序网页,用于常见的数据库操作,例如添加、编辑和查看数据。
- 自动创建一套功能齐全的应用程序网页,用于报表和工作流。
- 生成功能性 N 层应用程序所需的一切 — 所有网页、源代码和 SQL 查询 — 并交付一个可运行、无错误的应用程序。
- 自动生成纯净的源代码,使用 C# 和 Visual Basic 等原生 .NET 语言,无需任何专有的运行时服务器或库。
- 生成内置应用程序安全性。
- 生成完整且组织良好的源代码,易于修改和扩展。允许对手动生成的应用程序进行代码自定义,并在后续应用程序重新生成时自动保留这些自定义。
Web 2.0 应用程序生成
应用程序生成认识到,任何应用程序中只有一小部分代码是“秘方” — 区分一个应用程序与其他应用程序的真正独特的业务逻辑元素。大多数 Web 应用程序的绝大部分由相当标准的组件组成 — 表格、面板和控件 — 这些组件适合由应用程序生成器自动生成和连接。只有独特的应用程序逻辑需要手动编写。
一个简单的例子说明了这一点。假设您需要构建一个订单录入系统,允许销售人员创建、编辑和检索销售订单。此应用程序可能有一个用于添加和编辑订单的输入表单,以及一个用于显示特定客户订单的表页。使用应用程序生成器,开发人员选择各种数据库表和视图,以及底层数据库与网页组件之间的适当映射。准备就绪后,开发人员让应用程序生成器生成底层应用程序网页、源代码和 SQL,包括所有网页、控件和数据库连接基础设施的代码。
![]() |
Iron Speed Designer 中的应用程序向导从选定的数据库表和视图生成复杂的 Web 2.0 页面。 |
像这样的数据库驱动型应用程序适合应用程序生成,因为它们使用典型的数据库连接和应用程序基础设施。它们都需要为选定的数据库表和视图提供数据录入页面,为查看和分析应用程序中的数据提供报表页面,以及应用程序安全和其他应用程序基础设施。
数据要么是从网页表单输入并插入数据库,要么是从数据库检索数据并在网页上显示。这些数据操作非常适合采用模板化的应用程序开发方法,使应用程序生成器能够基于页面和代码模板创建应用程序及其基础设施,并采用标准化且普遍接受的方式来执行某些常见操作。
生成 Web 2.0 应用程序
将最终用户的设想转化为功能齐全且智能的 Web 应用程序需要三个主要步骤,每个步骤都非同寻常。
- 设计并创建访问和运行您的应用程序所需的数百个网页,包括数据录入表单和报表;
- 构建应用程序的基本 Web 2.0 功能 — 从过滤和排序到搜索和分页的复杂功能;
- 将网页及其组件连接到数据库,实现底层 SQL 和事务管理代码。
幸运的是,Iron Speed Designer 可以帮助您完成这些步骤。Iron Speed Designer 可在几分钟内为 .NET 生成功能齐全的 Web 2.0 应用程序,缩短开发周期数月。Iron Speed Designer 与其他快速开发工具不同,因为它会生成复杂的 UI 和所有 SQL 及支持代码,而您无需设计或编写页面代码,也无需了解 SQL。
使用 Iron Speed Designer,可以快速生成一个自定义的、可运行的应用程序 — 而不仅仅是原型或单个组件。生成的应用程序架构在每次应用程序重新生成时都能保留您的修改和增强。
生成 N 层体系结构
大多数 Web 2.0 应用程序都构建在 N 层体系结构之上,该体系结构由以下部分组成:
- 网页 — 组成应用程序的 ASPX 网页。
- 表示层 — 基于 Web 的用户界面,包括数据库连接的表单、表格和报表。
- 应用程序或业务层 — C# 或 Visual Basic .NET 应用程序功能。
- 数据访问层 — SQL 和事务管理代码。
- 存储过程 — 数据库服务器端 SQL。
由于 Web 的无状态性,实现基于事务的 Web 2.0 应用程序可能很困难。由于 Web 应用程序是无状态的,它们可能需要复杂的数据库管理来实现复杂的事务,特别是跨越多个网页的事务,例如多页数据输入向导。虽然客户端浏览器可以显示页面,但不能用于实现数据库事务逻辑。因此,服务器端应用程序必须协调和管理这些数据库事务的各个方面。
![]() |
Iron Speed Designer 生成完整的 N 层应用程序。 |
接下来的几节将展示 Iron Speed Designer 如何生成这些层。
创建数百个应用程序网页
虽然设计应用程序的外观并非易事,但对于 Web 应用程序中的数百个页面来说,一遍又一遍地重复这项工作是一项艰巨的任务。Iron Speed Designer 通过自动为应用程序中的每个数据库表或数据库视图创建一套页面来消除这种麻烦。这些页面反映了对任何数据库表执行的基本操作:创建记录、检索记录、更新记录和删除记录 — 有时称为 **C/R/U/D** 页面。
- 添加记录 — 用于输入单个表或多个表的数据的页面。
- 编辑记录 — 用于编辑单个记录或查询中的数据的页面。
- 显示记录 — 用于查看一个或多个表和查询数据的页面。
- 显示表 — 用于查看表或查询数据的分页、交互式报表视图。
- 编辑表 — 一个可编辑的数据网格,用于编辑大量记录。
生成的页面包括相应的应用程序层代码、数据库事务管理代码以及底层的 SQL 查询和存储过程。所有生成的页面都通过菜单导航结构自动链接在一起,提供开箱即用的应用程序,无需额外编码。
![]() |
这些四个标准的数据库连接网页可以为应用程序中的每个表自动生成。 |
Web 2.0:超越 C/R/U/D 页面
然而,Iron Speed Designer 不仅限于基本的 C/R/U/D 页面,它还创建了各种 Web 2.0 页面和功能,而这些通常只能在自定义桌面应用程序中找到,例如:
- 主-明细页面 — 用于显示、添加和编辑从属“明细”表中信息(引用“主”父表,通常通过外键关系)的页面。
- 工作流页面 — 用于显示和处理自动化业务流程的工作流序列的页面。
- 报表 — 汇总数据的页面,包括可以打印和电子邮件发送的 PDF 和 Microsoft Word 报表。
- 数据集成 — 用于将数据导出为各种格式,以供应用程序用户进一步分析的功能。
![]() |
主-明细页面是 Iron Speed Designer 生成的高级 Web 2.0 功能之一。 |
Web 2.0 功能超出了页面类型,扩展到页面中的组件。这些组件可能包括富文本编辑器、树控件、多级菜单和用于数据录入和显示的标签页面板。复杂的导航尤其定义了 Web 2.0 应用程序,其中包含用于数据收集的多步向导和由应用程序用户交互控制的工作流流程。
![]() |
Iron Speed Designer 生成的此富文本编辑器等 Web 2.0 组件将桌面功能带入 Web 应用程序。 |
高级应用程序功能,如集成安全、报表、多语言支持和数据集成,也是 Web 2.0 应用程序的标志。
![]() |
将格式化数据直接导出到 Microsoft Excel 进行进一步分析和报表。可读的 Excel XML 文件减少了导入后格式化数据的需求。只需单击“导出到 Excel”按钮即可直接在 Microsoft Excel 中查看数据。 |
将网页连接到数据库
在生成应用程序时,Iron Speed Designer 读取页面和代码生成,并生成相应的 .NET 数据绑定控件、服务器端代码隐藏逻辑和事务管理代码 — ASPX、C# 或 Visual Basic 和 SQL — 这是应用程序的大部分。Iron Speed Designer 会自动为访问数据库的每个基于 Web 的组件生成所有 SQL 查询及其包装代码。因此,您无需编写任何代码即可使用 Iron Speed Designer 创建复杂的基于 UI 的应用程序。
确保应用程序的可伸缩性
即使是经验丰富的开发人员,应用程序的可伸缩性也很难实现。由于 Web 应用程序中的所有业务逻辑都集中在应用程序层中的服务器端,因此可伸缩性成为 Web 应用程序的一个大问题。功能不会像客户端-服务器应用程序那样分发到客户端,因此您不能依靠应用程序用户的计算机来分载计算密集型任务。因此,设计不当的应用程序可能导致中间件性能瓶颈。
Iron Speed Designer 构建具有易于扩展的三层体系结构的应用程序,包括优化的 SQL 以及高级事务、缓存和会话管理技术。
生成 SQL 查询和事务管理

您的应用程序中可能包含数十甚至数百个页面,每个页面都需要 SQL 查询来实现功能,以及包装代码来将其粘合在一起。这些页面包括输入表单、报表以及以各种格式显示数据的各种页面。编写 SQL 查询通常是 Web 应用程序开发人员面临的最具挑战性的任务,通常需要 DBA 或 SQL 专家的帮助。考虑这些应用程序生成问题很重要:
- 事务管理
- SQL 语句的位置
- SQL 效率
- 并发处理
- 游标管理
事务管理
在基于 Web 的应用程序中,由于 Web 的无状态性,在不同页面之间维护状态尤其困难。这使得理解什么是事务以及何时应将其提交到数据库变得很重要。例如,典型的基于 Web 的订单结账过程,如购物车,会在一系列页面中收集订单的各个方面,例如客户姓名和地址、信用卡信息和送货说明。
困难之处在于,除了存储在数据库中、.NET 缓存或浏览器 cookie 中之外,存储从这些页面收集的信息的选择很少。不幸的是,将用户的事务信息存储在浏览器 cookie 中存在安全和带宽问题。因此,对于大多数应用程序来说,将事务信息存储在数据库中是最佳选择。这使得理解什么是事务以及何时将其提交到数据库变得很重要。
Iron Speed Designer 以“分页”事务模型生成应用程序。这意味着在当前网页上对任何底层数据库表所做的所有更改将在用户单击“确定”(或页面上的类似操作)时提交。也就是说,在单击“确定”(或类似操作)时,页面上的所有更改都将作为单个事务提交到数据库。具体来说,Iron Speed Designer 应用程序使用 ADO.NET 中的事务类来执行提交和回滚。
![]() |
此订单表单说明了如何将多个数据库表中的数据以父子关系调用到一个页面中。单击“保存”时,记录会被插入到多个表中,包括订单、订单明细和客户表。特别是,多条记录会被插入到订单明细表中,每条记录对应一个行项目。整个事务以一次提交结束。 |
Iron Speed Designer 在适当的时候使用存储过程更新数据库。如果作为单个事务的一部分添加或更新了多个相关记录(例如,订单带有多个订单项),则每条记录都会单独更新,需要多次往返数据库。记录的插入、更新和删除本身是在数据库存储过程中执行的,但调用这些存储过程的应用程序逻辑驻留在生成的代码中。
在多部分事务中,整个事务在事务结束时以单个 COMMIT 语句结束。也就是说,尽管这些多对多更新确实需要多次往返数据库,但它们最终会通过单个 COMMIT 提交到数据库。也就是说,尽管这些多对多更新确实需要多次往返数据库,但它们最终会通过单个 COMMIT 提交到数据库。
SQL 位置:内联或存储过程
大多数 DBA 更喜欢将 SQL 放在存储过程中,因为它将所有查询集中在一个地方,可以方便地访问和审查。此外,将 SQL 存储在存储过程中可以通过预解析查询和减少与数据库的往返来提高效率。例如,Iron Speed Designer 允许您选择将生成的 SQL 语句放在存储过程中,而不是内联在应用程序代码本身中。
大多数开发人员使用存储过程来提高运行时性能并最大限度地减少应用程序与数据库之间的往返次数。必须通过与数据库接口的技术(例如 ADO.NET)来获取信息进出存储过程。
保护您的 DBA 的理智大多数 IT 部门都有数据库专家,他们要么编写所有 SQL 语句,要么帮助单个开发人员编写。这种方法确保所有 SQL 语句都编写正确并经过优化。 使用 Iron Speed Designer 等应用程序生成工具来生成您的应用程序 SQL,可以让您的 DBA 专注于数据库管理。Iron Speed Designer 生成您的应用程序所需的所有 SQL,并将它们放入存储过程中,以便 DBA 可以按需找到它们。应用程序生成消除了您的应用程序开发人员对 DBA 的依赖,并使您的 DBA 从这项经常艰巨的任务中解脱出来。 |
当然,将 SQL 查询直接放入数据库也有充分的理由(例如:遗留应用程序和 DBA 的偏好)。因为 Iron Speed Designer 生成所有 SQL 语句,所以开发人员不必学习专有的存储过程语言,例如 PL/SQL(Oracle 的存储过程语言)或 Transact-SQL(Microsoft 的 SQL Server 语言)。
SQL 效率
SQL 语句很难编写,即使您是专家。但是,编写高效的 SQL 查询可能对应用程序的性能和可伸缩性产生真正的影响。在 Web 的无状态环境中尤其如此,在这种环境中,在页面之间维护事务状态很困难。

Iron Speed Designer 从效率的角度处理 SQL 生成。例如,它将多表连接的查询放在单个查询中,以减少与数据库的往返次数。为了获得最佳性能,它会考虑索引字段。它甚至允许您选择将 SQL 直接放在应用程序层或存储过程中。
生成 SQL 语句的技术必须与您的数据库模式特定绑定。通用查询(即时组成的、不使用参数化字段值的查询)可能会减慢应用程序性能,因为它们通常需要多次往返数据库才能完成。包含字段值名称的特定查询通过使用数据库中的实际字段名来节省往返次数。这就是您手动编写语句的方式。
并发处理
在任何多用户环境中,当两个用户先后更新同一数据库记录时,都会出现并发问题。您的应用程序处理并发的方式会影响应用程序处理同一记录的并发事务的能力。
![]() |
并发处理可确保应用程序用户不会覆盖彼此的更改。 手动实现并发处理很困难,但自动生成时无需开发工作。 |
在某些应用程序中,第二个更新记录的用户将覆盖第一个用户所做的更改。在其他应用程序中,应用程序会警告第二个用户他们正在查看的记录已被更新。在其他应用程序中,当第一个用户更新记录时,第二个用户的视图会自动更新。
在传统的应用程序开发中,开发人员必须将并发处理手动编码到应用程序层中。这可能是一段棘手的代码,而且必须为应用程序中的每个事务编写。不幸的是,做得好不会获得任何特殊认可,而错误可能会让您花费数天时间查找 bug。
Iron Speed Designer 为您创建此并发管理代码,节省了数小时的手动编码烦恼。它为您的每个事务生成乐观并发处理代码,这样用户就不会无意中覆盖彼此的更改。
游标管理
数据库游标是 SQL 查询返回的记录集。游标允许您按顺序请求每条记录,以便查询结果可以显示在数据网格、报表或其他操作中。例如,当应用程序用户在屏幕报表中从一页翻到下一页时,下一页的数据将从游标中检索并显示。应用程序迭代结果集,对结果集中的每条记录执行某些计算或其他更新也很常见。
![]() |
游标管理可确保只有请求的数据才被拉取到应用程序服务器,从而显著减少服务器端处理需求。 |
数据时效性。游标的一个问题是结果集数据的时效性。只要游标在使用中,它就包含查询最初执行时检索到的记录集。但是,随着时间的推移,这些数据可能会过时,特别是如果查询结果显示在应用程序用户在几分钟或几小时内查看的屏幕上。在底层数据频繁更改的应用程序中,当应用程序用户在报表中翻页时,可能希望重新运行 SQL 查询。这可以确保显示的每一页都是最新的数据。尽管这也会给数据库增加额外的负载,因为它必须更频繁地重新运行查询,但所有现代关系数据库都有很好的数据缓存管理,可以显著降低频繁重新运行查询的成本。
数据管理。第二个需要考虑的问题是整个结果集是否被拉取到应用程序层,这是 .NET 数据网格的一个著名问题。当结果集只包含几百条记录时,将所有数据移到应用程序程序中只需要很少的带宽和内存来存储和操作应用程序中的结果集。但是,当结果集包含数十万甚至数百万条记录时,将所有数据高效地移到应用程序程序中几乎是不可能的。很少有应用程序程序结构化到可以在内存中操作如此大量的数据而无需额外的文件管理逻辑,这使得使用提供这些设施的底层数据库的目的落空。因此,在结果集可能很大的应用程序中,最好只从游标中检索一小部分可管理的结果集 — 例如一页数据 — 操作该数据,然后请求下一部分。
Iron Speed Designer 生成的应用程序使用数据库游标从数据库检索数据。游标用于检索在数据库表视图网页上显示的记录数。一次只从数据库检索一页数据并显示,最大限度地减少了数据传输负载和应用程序的内存存储需求。查询结果不存储在临时数据库表中。它们直接从数据库检索并显示给用户。
生成应用程序安全性
大多数应用程序服务于各种各样的用户 — 客户、客户服务、营销、销售和管理,仅举几例。在当今的 Web 应用程序中,允许比客户端服务器应用程序(其用户群更受限制)更广泛地访问应用程序及其底层数据是越来越普遍的。随着使用范围的扩大,对根据用户类型 — 有时甚至细分到个人用户 — 来划分数据的需求也随之增加。

尽管大多数公司都在网络级别采取安全措施,但大部分应用程序安全性必须内置到应用程序代码本身中。此外,尽管我们都希望如此,但黑客和窃贼不会消失,特别是当我们的网络连接到公共互联网并与外部客户和供应商系统接口时。底线是,您应用程序安全性的很大一部分在于程序代码本身。通过利用应用程序生成的强大优势,可以提高应用程序的安全性。
Iron Speed Designer 生成的应用程序具有内置功能,例如:
- 基于角色的访问控制
- URL 参数加密
- 自动注销
- 数据传输加密
生成基于角色的应用程序安全性
总的来说,Iron Speed Designer 生成三种类型的基于角色的安全:
- 简单登录身份验证。应用程序用户必须登录应用程序。只有拥有用户名和密码的用户才能登录,从而让您可以控制谁可以访问您的应用程序。
- 单角色身份验证。应用程序用户必须拥有指定的角色才能访问特定网页。各个网页都经过配置,只有具有指定角色的用户才能访问该页面。
- 多角色身份验证。各个网页都经过配置,以接受具有多个指定角色之一的用户。
简单的登录身份验证区分已登录用户和未登录用户。未登录的用户称为匿名用户。由于 Iron Speed Designer 的基于角色的安全模型具有灵活性,您可以授予已登录用户或匿名用户,或两者都授予访问单个页面的权限。这在您希望应用程序向已登录用户显示一种数据视图,而向未登录或没有账户的用户(匿名用户)显示另一种(可能更有限)视图时非常有用。
![]() |
自动生成基于角色的安全性等功能可以节省大量编程时间。 |
在更复杂的基于角色的安全系统中,用户可以被分配多个角色,有效地让他们获得比单个角色授予的更广泛的访问权限。一个简单的例子是,并非所有客户服务代表都有权访问客户信用卡数据。在此示例中,客户服务主管扮演“代表”角色,可以访问客户账户信息,并扮演“经理”角色,有权退款或抵免。理想情况下,这些角色可以同时访问,而无需用户使用第二个角色登录。
通过基于角色的安全,您可以:
- 定义用户名和密码。
- 为您的用户创建和分配多个用户角色。
- 为指定用户角色配置每个网页的访问权限。
- 生成您应用程序的整个基于角色的安全基础设施。
使用 Iron Speed Designer 生成的应用程序利用 .NET Framework 中最高级别的安全功能,并包含内置安全。此外,您可以轻松添加 Windows 身份验证和 Active Directory 单点登录等功能。而且,Iron Speed Designer 生成的应用程序与现有的网络防火墙配合良好。
URL 参数加密
通过 URL 从页面传递到页面的参数可以加密,以防止黑客解码记录 ID,从而使他们能够通过他们不应该访问的 URL 访问记录。当在 Iron Speed Designer 中启用时,Show Record 和 Edit Record 页面的 URL 会使用 Session ID 作为加密密钥进行加密。在某些情况下,Add Record 页面的 URL 也会被加密,例如在复制记录时。
自定义生成的应用程序
几乎不可能生成不需要**代码自定义**的应用程序 — 通过手动对生成应用程序进行的扩展,以添加自定义应用程序逻辑、与第三方组件集成以及与外部系统接口。虽然许多管理和数据管理应用程序可以避免自定义的需要,但大多数生成的生产应用程序都有一定程度的手动编码。
![]() |
应用程序生成鼓励迭代开发风格。 |
应用程序生成过程必须生成易读、易懂且易于修改的代码;否则,应用程序生成所带来的时间效益将付之东流。使用应用程序生成器可能存在两个主要问题:
- 了解如何自定义生成的应用程序。应用程序生成器以某种代码模型生成代码。自定义生成的代码取决于您理解该代码模型的能力。
- 每次重新生成应用程序时都要保留。应用程序生成器的优点在于它们能够使用不同的数据源和开发人员偏好快速重新生成应用程序。该重新生成过程必须保留您所做的任何代码自定义,这样您就不会丢失任何工作。
这两个问题将在以下各节中得到解决。
设计主题提供外观自定义
这些自动创建的网页在物理上有多吸引人?Iron Speed Designer 使用模板驱动的方法来生成网页。该产品包含 25 种以上不同的设计主题,提供各种布局、配色方案和其他重要的视觉属性。简而言之,生成的应用程序看起来很棒,无需任何自定义。更重要的是,这些设计主题可以自定义,允许开发人员修改其中一个设计主题以符合其喜好,或创建自己的主题。
![]() |
样式表几乎可以控制 Iron Speed Designer 生成的应用程序中的所有样式元素。这使得外观自定义非常简单。 |
设计主题由几个重要组件组成:
- 一个样式表 (.CSS 级联样式表),定义了设计主题的基本样式方面,例如字体、颜色和表格样式。
- 一组包含 HTML 和代码生成标签的页面和面板,这些标签封装了有用的功能,例如一组记录字段或表格显示。
- 按钮、缩略图和其他纯图形元素的图像,用于设计主题。
几乎所有外观方面都可以通过更改适当的 CSS 类来控制,这使得非开发人员和图形设计师可以轻松修改生成应用程序的样式元素。
网页自定义
修改生成的应用程序页面上的控件布局以实现比应用程序生成器猜测的更紧凑或更符合逻辑的布局是很常见的。Iron Speed Designer 生成的 ASPX 网页符合 CSS 2.0 和 XHTML 1.0 标准,因此修改它们是一个直接的过程,只需在您喜欢的网页编辑器(如 Dreamweaver、Microsoft Visual Studio、Microsoft Front Page 或 Iron Speed Designer 本身)中打开相应的文件。
自定义和扩展生成的代码
使用您喜欢的编程语言,包括 C# 和 Visual Basic,您可以扩展生成的应用程序以:
- 添加自定义应用程序逻辑
- 添加其他用户界面代码
- 与外部系统集成
Iron Speed Designer 生成的类层次结构源自 .NET Framework 中的基类。在大多数为 Microsoft .NET Framework 编写的应用程序中,应用程序层中的功能和逻辑源自一组 C# 或 Visual Basic .NET 类,这些类实现了页面管理、UI 控件、数据库访问和数据验证。
此对象继承代码模型允许您通过子类化适当的类和方法来拦截发送到窗体或控件的 Windows 消息,除此之外还有其他好处。使用您喜欢的代码编辑器,例如 Microsoft Visual Studio 或 Iron Speed Designer 本身的代码编辑器,只需子类化适当的页面、控件或数据库类,然后添加您的代码自定义。
![]() |
Iron Speed Designer 生成的典型网页的继承层次结构。 |
您可以覆盖生成类或 .NET Framework 类中的任何函数或方法,或者将您自己的方法与现有的基类方法结合使用。然后,重新生成应用程序以反映您的更改。
Iron Speed Designer 生成原生 .NET 代码,包括 ASPX 页面、ASCX 控件、SQL 语句、C# 和 Visual Basic 代码。开发人员可以无限制地访问 100% 的生成代码,并且在应用程序重新生成时,对应用程序的任何修改都会自动保留。使用 Iron Speed Designer 构建的应用程序没有运行时许可费或特殊服务器软件要求。
重新生成而不丢失代码自定义
应用程序生成最大的挑战之一是**代码孤岛**。当您的应用程序无法修改或扩展,而又不破坏应用程序生成器在不丢失代码自定义的情况下重新生成该应用程序的能力时,就会发生代码孤岛。应用程序生成鼓励迭代开发实践,但如果自定义应用程序会删除重新生成它的能力,那么这是不可能的。
Iron Speed Designer 允许应用程序被反复重新生成,而无需您重新集成外部代码扩展。这是通过对象继承模型实现的,这样您为代码自定义创建的继承类永远不会在应用程序重新生成时被覆盖。
类层次结构意味着您的代码自定义可以访问从 .NET 框架到底层的生成应用程序的全部功能。只有**生成的类** — 您应用程序的自动生成部分 — 才会被重新生成;您的继承类和方法永远不会被重新生成,从而保留您的代码自定义。
只要您的修改被隔离在子类化的方法中而不是代码中,您的应用程序就可以被反复重新生成,而无需重新集成您的代码扩展。您的代码扩展在应用程序重新生成时不会被覆盖,这为您对应用程序进行代码扩展提供了高度的灵活性。
扩展应用程序生成器
基于模板的页面和代码生成
Iron Speed Designer 的应用程序向导使用一套页面模板和代码模板来生成基本应用程序。页面模板包含每个页面的底层 HTML/ASPX 以及条件代码生成逻辑,这些逻辑指导 Iron Speed Designer 根据开发人员的偏好和输入生成特定的应用程序和页面功能。代码模板包含 C# 或 Visual Basic .NET 代码以及条件代码生成逻辑,这些逻辑指导 Iron Speed Designer 根据开发人员的输入生成特定的应用程序功能。
![]() |
Iron Speed Designer 使用页面和代码模板来生成应用程序。 |
与更基本的页面类型和功能一样,高级页面类型和 Web 2.0 功能被实现为一套页面和代码生成模板,Iron Speed Designer 使用这些模板来生成应用程序。
由于页面和代码生成是基于模板的,应用程序开发人员可以更改为每个应用程序生成的页面内容和底层代码,以包含在组织内可能常用的专用功能。这些自定义功能可能包括自定义或第三方 UI 控件、专用安全或访问控制以及自定义数据源访问逻辑。
添加新的页面类型
页面生成模板是 HTML 代码片段,可以简单地是一个标签,也可以复杂到整个页面。它们包含代码生成指令,用于在网页中的特定位置生成数据绑定控件。由于开发人员可以修改这些页面生成模板,因此他们可以向 Iron Speed Designer 添加自己的页面和面板。
虽然添加新的页面类型超出了本白皮书的范围,但足以说明这为高级开发人员提供了极其强大的功能。