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

Genesis 混合智能客户端框架 第 VI 部分

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.78/5 (11投票s)

2009 年 6 月 18 日

Ms-PL

16分钟阅读

viewsIcon

38900

这是 VII 部分系列文章的第六部分。本文介绍如何使用 Genesis 管理系统来管理托管的应用程序、用户界面和安全性。

在 Code Project 下载本文的最新源代码 (在新窗口中打开)

从 Code Plex 下载最新版本 (在新窗口中打开)

引言 - 管理 Genesis Smart Client Framework

理解如何管理 Genesis Smart Client Framework 对于应用程序开发人员和操作员都非常重要。它有助于应用程序开发人员在框架上开发和测试他们的应用程序,并帮助操作员管理生产环境。

如果您启动任何 Smart Client Windows 应用程序项目,并使用 *user1* 或 *user2* 登录,您将被允许登录到 **Genesis Management System 2010** 应用程序。这就是本文将演示的应用程序。

本文是 VII 部分的第六部分。请转到第一部分查看目录。

有关 Genesis Smart Client Framework 或我们任何新闻源的最新信息,请访问我们的网站 www.bluemarble.co.za
新闻源
开发动态
浏览我们的博客
关注我们的推文

为了积极推动我们将此版本的 Genesis Smart Client Framework 开源,我们在 www.codeplex.com 上创建了一个资料档案,我们在那里维护着最新的源代码副本。如果您需要 Genesis Smart Client Framework 的最新源代码,请访问我们的 Code Plex 资料档案从 Code Plex 下载最新版本

应用程序管理

由于 Genesis Smart Client Framework 允许开发人员在 Genesis Smart Client Framework 中托管他们的应用程序,因此管理 Genesis Smart Client Framework 的重要部分就是管理可供用户登录的应用程序。

托管应用程序只是一个文件和 DLL 的集合,它们保存在 Genesis 文件系统 (Genesis.FileHost) 和 Genesis 数据库中进行同步。这些文件和设置通过 Genesis Smart Client Framework 客户端 API 提供,并允许实现 IHost 接口的代码从 DLL 中加载和执行。

Application

创建新应用程序时,用户需要登录到 **Genesis Management System 2010** 托管应用程序。一旦用户获得授权并构建了用户界面,用户就需要转到“Genesis Administration”功能区。该功能区中添加了许多自定义按钮。这些按钮按功能区条分组,分别为 *Users & Groups*(用户与组)、*File & Commands*(文件与命令)和 *Ribbon & Items*(功能区与项)。

021.png

点击 *File & Commands* 功能区条中的“Application”(应用程序)按钮。这将打开“Application”屏幕。该屏幕返回一个可用托管应用程序的列表。用户可以通过点击网格上方的“新建文件”图标来添加新应用程序,或者通过点击应用程序 ID 来编辑现有应用程序。

024.png

添加新应用程序时,用户需要输入应用程序名称、描述、应用程序在显示给授权用户的列表中的顺序以及应用程序是否可见。

应用程序名称在用户授权后立即显示给用户,以便用户选择要登录的托管应用程序。这通常发生在登录过程中。

描述字段很少使用,对系统操作员最有帮助。

顺序是应用程序在用户登录时显示的列表中的顺序。

可见字段跟踪应用程序是否隐藏,即使对授权用户也是如此。如果托管应用程序正在进入维护模式,设置此字段非常有用。

点击保存后,新应用程序将被注册。通过将应用程序订阅到安全组,该应用程序将交付给属于这些安全组的用户。

文件

026.png

应用程序由一个或多个文件组成。要管理与托管应用程序关联的文件,请点击 *File & Commands* 功能区条中的“Files”(文件)按钮。这将打开“File”屏幕。该屏幕返回一个可用文件的列表。用户可以通过点击网格上方的“新建文件”图标来添加新文件,或者通过点击文件 ID 来编辑现有文件。

文件在用户被授权使用特定应用程序后立即下载。

029.png

添加新文件时,用户需要指定文件名详细信息、文件类型、该文件所属的托管应用程序、文件版本及其下载路径。

文件名用于在与文件系统进行数据库同步时查找文件,以及在向用户显示信息时使用。

类型字段包含一个查找,用于查找您正在添加的文件类型。

描述字段用于向用户显示文件下载进度。

应用程序字段指示该文件与哪个托管应用程序相关联。

顺序字段决定了 Smart Client 应用程序与服务器同步时文件的下载顺序。

路径字段包含本地服务器路径(相对于 Genesis.FileHost Web 项目的 web.config 文件中存储的 DevelopmentPath 值),数据库/文件系统同步从中加载文件。

URL 字段包含服务器必须提供文件的 Web URI。Smart Client 应用程序将连接到这里以下载该文件。在数据库/文件系统同步过程中,该过程会计算如何将文件从路径复制到 URL 的本地系统路径。

版本字段决定了文件的版本。对于 Library 类型的文件,它会在数据库/文件系统同步期间自动更新。只有当此值与 Smart Client 应用程序的本地文件缓存不同时,它才会被重新同步。

文件不通过组订阅进行安全控制。主要原因是您不希望将未完成的解决方案部署到用户。如果您可以从用户的视图中排除一个文件,您就可以排除代码的潜在执行路径。如果下载所有文件,就可以避免可能的运行时错误。如果您想创建仅对特定用户组可见的文件,请为这些用户创建新的应用程序。

命令

030.png

如果文件是 Library,那么它可能包含 Commands(命令)。Commands 是代码单元,通过反射找到,信息在此部分进行管理。要管理与文件关联的 Commands,请点击 *File & Commands* 功能区条中的“Commands”(命令)按钮。这将打开“Command”屏幕。该屏幕返回一个可用 Commands 的列表。用户可以通过点击网格上方的“新建文件”图标来添加新 Command,或者通过点击 Command ID 来编辑现有 Command。

Commands 在所有文件下载完成后、主窗体显示之前加载。每个注册了 Commands 的文件都使用反射进行打开,Commands 被加载到内存表中以便快速访问。此时也会应用安全策略,因此未经授权的代码无法执行。

033.png

File 值显示此命令链接到哪个文件。该文件将使用反射进行加载和分析。

Command Name 是 Command 的简短名称。在菜单和查找中引用 Commands 时使用此值。

Code 是 Command 的内部 Genesis Smart Client Framework 引用。当脚本执行命令或命令执行其他命令时,Code 是使用的引用。

Description 值存储 Command 的简单描述。

Type 字段存储 .NET 的完全类型名称(完整命名空间 + 完整类名),供反射用于在 Library 中查找 Command。在数据库/文件系统同步过程中,在分析 Libraries 并创建或更新相关 Command 条目时,也会使用此字段。

点击保存后,新 Command 将被注册。通过将 Command 订阅到安全组,属于这些安全组的用户将可以访问该 Command。

Commands 在数据库/文件系统同步执行时自动添加到/更新到配置中。通常,操作员会注册应用程序和文件,执行数据库/文件系统同步,然后设置应用程序和 Command 对象的安全性。

用户界面管理

商业 Smart Client 应用程序实现了一个 Office 2007 风格的功能区控件。其配置更侧重于 Office 2007 风格的功能区菜单,而非标准菜单。但是,正如自定义 Smart Client 应用程序所演示的,仍然可以使用标准菜单控件来渲染信息。

056.png
057.png
058.png
059.png

配置包括 Ribbon(功能区),即屏幕顶部的主要条带;Ribbon Bars(功能区条),即每个功能区内包含的分组面板;以及 Bar Items(条目),即显示在功能区上的按钮、文本框、分隔符、容器和其他控件。

Ribbon

037.png

Ribbon 是其他菜单控件的主要容器。Ribbons 允许操作员为用户和组定义可访问的功能区域。要管理 Ribbons,请点击 *Ribbon & Items* 功能区条中的“Ribbon”(功能区)按钮。这将打开“Ribbon”屏幕。该屏幕返回可用 Ribbons 的列表。用户可以通过点击网格上方的“新建文件”图标来添加新 Ribbon,或者通过点击 Ribbon ID 来编辑现有 Ribbon。

Ribbon Name 值是 Ribbon 的名称。此值会显示在 Ribbon 中。

Application 字段将 Ribbon 链接到托管应用程序。如果用户登录到其他托管应用程序,即使他们通过其安全配置文件允许访问,此 Ribbon 也不会对用户可见。

Order 值用于确保用户界面中显示的项目的特定顺序。

点击保存后,新 Ribbon 将被注册。通过将 Ribbon 订阅到安全组,Ribbon 将对属于这些安全组的用户可见。

功能区条

040.png

Ribbon Bar 是 Ribbon 内菜单控件的分组容器。Ribbon Bars 允许操作员为用户和组定义可访问的功能区域。要管理 Ribbon Bars,请点击 *Ribbon & Items* 功能区条中的“Bar”(条)按钮。这将打开“Ribbon Bar”屏幕。该屏幕返回可用 Ribbon Bars 的列表。用户可以通过点击网格上方的“新建文件”图标来添加新 Ribbon Bar,或者通过点击 Ribbon Bar ID 来编辑现有 Ribbon Bar。

Bar Name 值是 Ribbon Bar 的名称。此值会显示在 Ribbon Bar 中。

Ribbon 字段将 Ribbon Bar 链接到 Ribbon。

Order 值用于确保用户界面中显示的项目的特定顺序。

点击保存后,新 Ribbon Bar 将被注册。通过将 Ribbon Bar 订阅到安全组,Ribbon Bar 将对属于这些安全组的用户可见。

条目

043.png

Bar Item 是 Ribbon 内菜单控件的分组容器。Bar Items 允许操作员为用户和组定义可访问的功能区域。要管理 Bar Items,请点击 *Ribbon & Items* 功能区条中的“Item”(项)按钮。这将打开“Bar Item”屏幕。该屏幕返回可用 Bar Items 的列表。用户可以通过点击网格上方的“新建文件”图标来添加新 Bar Item,或者通过点击 Bar Item ID 来编辑现有 Bar Item。

Bar Item Name 值是 Bar Item 的名称。此值会显示在 Bar Item 中。

Parent Bar Item 字段为该 Bar Item 创建了一个层次结构。这允许操作员定义带有选项列表的下拉按钮。如果使用容器,Parent Bar Item 将引用该容器。

Bar Item Type 字段指定要创建的 Bar Item 的类型。它可以是按钮、文本框、组合框、分隔符、容器或任何其他控件。

Ribbon Bar 字段将 Bar Item 链接到特定的 Ribbon Bar。

Command 字段将 Bar Item 链接到特定的 Command。当用户通过用户界面激活 Bar Item 时,将执行此 Command。

Image 和 Image Size 值存储要为 Bar Item 显示的图像名称及其显示大小。

Order 值用于确保用户界面中显示的项目的特定顺序。

Bar Item 不能链接到特定的安全组。

用户访问管理

Genesis Smart Client Framework 中的用户访问管理是通过维护用户列表及其所属组的成员资格,以及用户可以属于的组列表来实现的。

047.png

Group 是用户可以属于的安全对象,其他安全元素(如应用程序和命令)可以订阅。要管理 Groups,请点击 *Users & Groups* 功能区条中的“Groups”(组)按钮。这将打开“Group”屏幕。该屏幕返回可用 Groups 的列表。用户可以通过点击网格上方的“新建文件”图标来添加新 Group,或者通过点击 Group ID 来编辑现有 Group。

048.png

Group Name 是安全组的名称。

Description 字段包含对组及其可能成员的描述。

用户

044.png

User 是用户可以属于的安全对象,其他安全元素(如应用程序和命令)可以订阅。要管理 Users,请点击 *Users & Users* 功能区条中的“Users”(用户)按钮。这将打开“User”屏幕。该屏幕返回可用 Users 的列表。用户可以通过点击网格上方的“新建文件”图标来添加新 User,或者通过点击 User ID 来编辑现有 User。

045.png
046.png

User name 值定义用户的登录名。

Password 和 Confirm Password 字段确保用户密码已确认,并允许操作员更改用户密码。

e-mail 和 confirm e-mail 字段确保用户电子邮件地址已确认,并允许操作员为用户定义协作地址。

Is User Active 字段用于禁用用户帐户。如果用户帐户不活动,则不允许他们登录任何托管应用程序。

User Login Script 是登录脚本的路径,该脚本在用户每次登录任何应用程序时执行。

点击保存后,将创建新用户。通过将用户订阅到安全组,用户将能够访问也订阅到同一安全组的资源。

数据库/文件系统同步

060.png

为了使 Smart Client 应用程序更新本地文件缓存中的所有正确版本的文件,必须同步数据库和文件系统。此过程在开发阶段很重要,因为开发人员每次更新托管应用程序库代码时,都必须同步数据库和文件系统。在操作员将更新部署到生产环境后,也会使用此过程,以确保 Smart Client 应用程序能够感知已进行的更新。

该过程通过从 Genesis.Filehost Web 应用程序启动 Update.ASPX 文件来执行。在开发周期中,开发人员只需在解决方案资源管理器中右键单击 Update.ASPX 文件,然后选择“在浏览器中查看”。如果操作员正在更新生产环境,则 Genesis.Filehost Web 应用程序应托管在生产服务器上。在这种情况下,操作员将浏览到 Genesis.Filehost Web 应用程序的服务器地址,包括 Update.ASPX 文件名。

生产环境部署

061.png

将代码部署到活动的生产环境始终存在风险。我们为开发人员创建了一种可靠的方式,可以将正确的代码发布给操作员以部署到生产环境。

部署包

开发人员可以使用 Genesis.Deployment 工具创建部署包。该工具允许开发人员创建文件模板(称为模块),这些文件始终部署到服务器上的同一位置。开发人员还可以选择文件在服务器上的部署方式,方法是覆盖现有文件或先创建备份再部署新应用程序。

一旦定义了模块,开发人员就可以通过选择他们想要部署的模块来创建部署包。然后,这些文件将从文件系统中收集并压缩成一个 zip 文件。还将一个指令 XML 文件嵌入到存档中,以指示服务器如何部署文件。

开发人员将部署包交付给操作员,然后操作员将使用在线部署工具将更新部署到所需服务器。

在线部署

部署应用程序更新到生产环境的操作员使用在线部署工具。该工具允许操作员上传部署包并在服务器上执行部署脚本。

在部署包通过在线部署工具处理后,操作员必须执行数据库/文件系统同步过程。这将更新所有生产文件和应用程序的元数据,以确保 Smart Client 应用程序下次连接到 Genesis Smart Client Framework 后端时自动下载所需文件。

数据库备份

Genesis Smart Client Framework 允许操作员创建数据库备份,并且文件通过 Genesis 文件系统暴露。要创建备份,只需浏览到 Genesis.Filehost Web 应用程序,然后添加 /deployment/database/backup.aspx,并提供 DatabaseName 和 ConnectionStringKey 参数。

延伸阅读

本文是 VII 部分的第六部分。请转到第七部分阅读有关源代码的内容。

其他信息

Blue Marble 很荣幸成为一家 Microsoft BizSpark 初创公司。

免责声明

Genesis Smart Client Framework 是一款商业闭源应用程序。它已在 Code Project 上提供,并享有 Code Project 文章赋予用户的各项权益(例如,免费和公平使用)。但是,必须注意,某些模块包含我们无法通过 Code Project 许可的第三方控件。一旦所有文章上传完毕,代码将被提取到一个单独的混淆库中,以保护我们的供应商的知识产权。此库将提供完整的源代码,但不包括可能泄露我们许可证的几行代码。我们还将为希望使用完全免费版本的开发人员提供替代方案。

免责声明更新

已实现一个标准的 Microsoft.NET 控件用户界面,并可在 Code Plex 上获取,发布日期为 版本 1.30.1024.0。此版本符合所有 Code Project 文章发布条款和条件。

© . All rights reserved.