65.9K
CodeProject 正在变化。 阅读更多。
Home

在企业中使用 Silverlight:RAD 或用户友好的数据库访问

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.81/5 (17投票s)

2009年7月31日

CPOL

8分钟阅读

viewsIcon

59578

downloadIcon

7027

本文介绍了 FulcrumWeb RAD Framework - 一个 Silverlight UI 引擎,用于构建用户友好的数据库驱动应用程序。

Sample Image - maximum width is 600 pixels

引言

本文介绍了一种快速简便地构建 Silverlight Web UI 以实现数据库访问的有趣方法。FulcrumWeb 公司在开发和支持制造业、金融业、法律业、医疗保健业和政府行业的企业业务解决方案的同时,已经发展了 7 年多的内部 RAD 框架。最近,我们决定免费向您提供我们框架的 Silverlight 版本,并附带 **完整源代码**。也许了解我们框架能做什么的最佳方式是查看 FulcrumWeb 公司网站上的 **在线演示**。演示中您看到的一切都以 Visual Studio 解决方案的形式提供给您,并附带完整源代码和文档。

背景

该框架的核心思想是通过提供一个元数据驱动的应用程序引擎来消除耗时的常规 C# 编码。开发人员无需编写 DataAccess 类和 ASCX/WinForm/Silverlight 控件,而是将实体、属性、关系、命令以及帧、面板和选项卡等 UI 元素定义为 XML 元数据。这种方法显著提高了开发速度,并在支持阶段节省了成本。

XML 元数据

举个例子——您在数据库中有一个“Customer”表,并希望实现客户搜索/查看/编辑/新建表单。

您只需定义下面的元数据即可

  <entity id="Customer" plural_caption="Customers"  single_caption="Customer"
             db_object="Customers" image_id ="Sample_Customer">
    <attributes>
      <attribute id="Id" primary_key="true" type="int"
                 visible="false"  default="=@sequence" />
      <attribute id="FirstName" caption="First Name" type="string"
                 max_length="50" nullable="false" />
      <attribute id="LastName" caption="Last Name" type="string"
                 max_length="50" nullable="false" />
      <attribute id="ContractDate" caption="Contract Date"
                 type="date" default="=SQL.select getdate()" />
      <attribute id="ContractFileContent" caption="Contract File" type="file"
                 nullable="true" filterable ="false" />
      <attribute id="CreditLimit" caption="Credit Limit"
                 type="float" default="100" />
      <attribute id="IsActive" caption="Is Active" 
                 type="boolean" />
      <attribute id="Notes" caption="Notes" type="string"
                 control_width="3" max_length="2000" />
    </attributes>
  </entity>

开发人员可以手动编写 XML 元数据文件,也可以使用我们的元数据生成器工具,根据数据库结构在几秒钟内创建 XML 文件。

自动生成的用户界面

在我们将此元数据添加到应用程序后,将自动创建以下用户界面屏幕,**无需一行 C# 代码。**

搜索表单

搜索表单允许用户按元数据中定义的任何属性过滤数据。每个属性都可以选择不同的搜索运算符:等于、开头是、介于、大于、类似、不为空、为空等。对于具有大量属性的大型搜索表单,开发人员可以将一些不常用的过滤器移至默认隐藏的“高级搜索”面板。还可以添加任何自定义搜索条件,并将其映射到构建结果 SQL SELECT 语句时使用的 SQL 模式。

数据网格

搜索结果显示在 DataGrid 中。用户可以随时重新打开搜索表单以进一步调整过滤器条件。在 Silverlight 框架中,DataGrid 支持排序、分页和内联数据编辑。在 ASP.NET 和 WinForms 框架中,DataGrid 具有更全面的功能,如分组、网格层次结构、布局自定义、存储用户定义的搜索条件以供将来使用等。

编辑表单

基于元数据定义,框架引擎会自动创建实体编辑表单。默认情况下,框架会根据属性的数据类型(文本框、日期编辑器、文件上传、数字编辑器、复选框等)选择编辑控件,但程序员可以重新定义任何控件或整个表单。简单的验证会自动完成。根据属性级别的安全设置,框架会自动隐藏或禁用某些属性。例如——如果我们配置一个用户角色,该角色可以编辑所有客户属性,但不能编辑信用额度,那么在编辑表单上,框架会自动创建一个只读状态的文本框来显示 CreditLimit 值,但不允许用户编辑它。同样——如果某个用户无权查看信用额度值——那么该属性将在所有实体表单(搜索、列表、编辑和查看)中隐藏。

实体查看表单

实体查看表单允许用户查看所有实体属性。可以通过将属性分组到不同的面板和选项卡来定义复杂的布局。

文件上传表单

对于 BLOB/图像属性,框架会自动创建用于上传和下载文件的用户界面。文件大小没有限制。对于大文件,如果连接中断,可以重新启动并继续上传操作。

值得一提的是,以上所有 Silverlight 表单都是由我们的框架引擎在运行时完全创建的。例如,如果您向 Customer 元数据添加一个新属性——它将自动出现在与 customer 实体相关的所有搜索/列表/查看和编辑表单上。这个例子展示了非常基本的框架功能。我们设计框架的方式允许基于元数据描述构建具有复杂依赖关系的非常复杂的 UI,从而节省大量开发时间和成本。

查看工作原理

有经验的 .NET 开发人员现在可以通过遵循下面的技术文档和简单步骤来开始评估框架

  1. 下载 RAD Framework Visual Studio 项目和教程,并附带完整源代码
  2. 按照安装说明配置数据库和 Web 服务
  3. 打开我们的 IssueTracker 应用程序项目,查看其工作原理,研究完整源代码
  4. 打开 Framework Tutorial 项目,创建自定义数据库表和 Silverlight Web UI,在 15 分钟内完成
  5. 阅读详细的元数据描述手册,测试其功能
  6. 创建自定义项目
  7. 请求 FulcrumWeb 的协助,请发送电子邮件至 fw@fulcrumweb.com

为了帮助初学者 .NET 开发人员入门我们的 RAD Framework,我们正在准备一系列视频教程、用户友好的数据库和 WebService 安装说明以及元数据配置向导,所有这些将于 2009 年 9 月中旬在我们的网站上提供。

下载完整源代码

请按照下面的链接下载 RAD FrameWork 源代码和教程项目:Fulcrumweb_src.zip

该软件包包含

  • License.doc:许可协议
  • InstallationNotes.doc:安装说明
  • Tutorial1.doc:创建 RAD Framework 插件以访问自定义数据库表数据的指南
  • Framework Metadata Description.doc:详细的框架元数据描述
  • Database \ FulcrumWeb_Demo.bak:Microsoft SQL Server 2005 数据库备份文件
  • Sources\Tracker\Source\Tracker.sln:Microsoft Visual Studio 2008 解决方案 - IssueTracker 项目
  • Sources\Tutorial\Source\Tutorial.sln:Microsoft Visual Studio 2008 解决方案 - 教程

安装说明

  1. 确保服务器计算机已安装这些软件单元
    • Microsoft .NET Framework 3.0 Service Pack 2
    • Microsoft .NET Framework 3.5 Service Pack 1
    • Microsoft Internet Information Services 5.1 (IIS)。也许,拥有更高版本就足够了。
    • Microsoft SQL Server 2005
  2. 将归档文件解压到任意目录
  3. 一般说明:下面,您应该使用您尝试在其上托管的网站的默认别名,而不是“localhost”一词。它可以是网站的 IP 地址,也可以是自定义别名。否则,应用程序的 Web 服务将无法正常工作,从而导致应用程序本身无法使用。选择正确的服务器名称后,您还应该通过浏览器使用它来访问 Web 应用程序。要检查网站的宿主头名称,请转到 IIS 控制台,打开承载应用程序的网站的属性,然后在“Web 站点”选项卡上单击“高级...”按钮。那里将列出适用的宿主头名称。优先选择已定义的名称而不是空的。如果没有名称而是默认名称,则使用 IP 地址或计算机名称。
  4. 将“Tracker”文件夹设置为 Web 共享文件夹。这可以通过右键上下文菜单 -> 属性 -> “Web 共享”选项卡 -> “共享此文件夹”单选按钮项 -> 输入应用程序的文件夹名称(例如,“Tracker”)来完成,以便在那里托管(https:///Tracker)。
  5. 转到 Internet Information Services 控制台(控制面板 -> 管理工具 -> Internet Information Services),然后在树中找到应用程序的文件夹,右键单击 -> 属性,转到“目录安全性”选项卡,单击“编辑”按钮,然后勾选第一个(“匿名访问”)复选框。应用更改。
  6. 在 IIS 控制台中,应用程序属性,转到 HTTP Headers 选项卡,然后在“MIME Map”组中单击“文件类型...”按钮。然后单击“新建类型”按钮,填写扩展名“.xap”和 MIME 类型“application/x-silverlight-app”。应用更改。
  7. 从备份文件(例如,Tracker_2009_04_17.bak)恢复数据库。
  8. 编辑“Tracker\web.config”文件
    • 首先,设置正确的数据库连接字符串(意味着,将数据库服务器名称和数据库名称更改为正确的,以及登录名和密码)。如果您使用集成安全选项,请不要忘记将 ASPNET 用户添加到可以访问数据库的用户列表中。
    • 其次,将“AppServerUrl”变量设置为正确的值,例如 https:///Tracker/Main.svc,应根据您的 Web 共享文件夹名称进行调整。
  9. 尝试通过浏览器访问应用程序。默认情况下,地址应为 https:///Tracker/Default.aspx。请确保您输入的地址的大小写与您在 web.config 文件中指定的完全一致(这实际上只对应用程序文件夹名称有意义)。因此,如果 web.config 包含“https:///Tracker/Default.aspx”,请不要在浏览器地址栏中输入“https:///tracker/Default.aspx”,否则您将无法正确登录。目前,我们正在考虑如何消除此限制。
  10. 当出现登录表单时,输入正确的凭据。对于管理员:登录“admin”,密码“admin”。

协助

如果您有任何疑问或需要 FulcrumWeb 的进一步协助,请发送电子邮件至 fw@fulcrumweb.com

© . All rights reserved.