Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >信息系统开发平台OpenExpressApp - ClickOnce智能部署

信息系统开发平台OpenExpressApp - ClickOnce智能部署

作者头像
用户1172223
发布于 2018-01-26 08:29:17
发布于 2018-01-26 08:29:17
8050
举报
文章被收录于专栏:哲学驱动设计哲学驱动设计

    这里讲的是OpenExpressApp的部署方案。主要使用的是ClickOnce作为实施方案来实现:智能部署和智能客户端。不过,这里的使用方式跟以往的不太一样……

部署概述

    OpenExpressApp中,界面是自动生成的。而框架使用者所开发的应用程序(以下简称客户程序),只需要按照特定的格式约定编写自己的业务逻辑模型类,然后与框架一同发布,就可以直接运行并显示出所有的界面了,这样就可以实现比较大粒度的重用。如图:

    也就是说,当框架使用者使用本框架时,得到的是已经通过ClickOnce发布好的文件夹,里面有应用程序的.exe和.dll文件,而他们只能在Library和Module文件夹中添加他们自己编写的业务模型类库dll。这样,在开始运行后,框架会自动加载指定的dll并运行客户程序的业务逻辑。(上图中的Module文件夹,也是类似功能,当框架使用者想扩展界面功能时,需要在这里放置自己的界面模块。)

    虽然并不是所有的应用程序都适合使用这种模式,但是在一些并不要求界面灵活多变的Windows程序中,这样大粒度的重用,确是提高开发效率的好方法。:)

     其它问题

    由于使用了ClickOnce来实现智能客户端,所以我们在每次发布框架的时候,都会直接对没有任何业务模型类库dll的程序进行发布。使用过ClickOnce的人就会知道,这样生成的文件夹中,会包含分别以.application和.manifest为扩展名的两个文件。文件中存储了所有发布的文件的清单和它们的的Hash值(本来还会有签名的信息,不过目前在框架中并没有使用。),这样可以防止恶意篡改发布后的程序。

    也就是说,框架使用者无法直接把自己编写的业务逻辑类DLL,直接拷贝进文件夹中,同框架一起发布到IIS来实现自动升级。

解决方案

    框架使用者可以使用工具:ManifestManagerUtility.exe 对发布后生成的.application文件进行修改,在清单中里面加入客户程序的dll。最后再一同在IIS下进行发布。如图:

    图中红框处可以添加新的文件引用。在这个工具中,同样可以对application文件中的其它属性进行修改,如Server的Url等。

    这样,虽然可以使程序成功发布,但是却无法实现“智能”。因为ManifestManagerUtility虽然这次计算出新的Hash值,并对.application文件进行更改。但是当框架使用者对客户程序再次进行更新时,由于hash值也会变化,所以客户端就无法获取到更新过的dll。这样还必须再重复一次上面修改.application文件的操作,才能正常发布,这样当然不能算“智能升级”。

    所以我们提供了VersionAdd.exe控制台程序。当客户程序升级后,框架使用者把升级后的dll覆盖上个版本的dll,然后调用此exe实现更新,即可自动维护application文件清单并升级ClickOnce的版本。这些发布工作,只需要编写一个简单的脚本文件来完成就可以了。例如,我们现在正在开发的项目GIX4,原来使用FinalBuilder进行发布,现在换成了一个脚本文件,AutoBuild.bat。它的工作主要是实现:从服务器更新文件,编译,发布,邮件通知等……如:

…………其它脚本…………… rem 更新文件 ……………… rem编译 ……………… rem 版本号增加 VersionAdd.exe -FileName "D:\Publish\Intranet\OpenExpressApp.Host.WPF.application" rem 邮件通知所有测试人员 ……………… …………其它脚本…………

结束语

    目前我们现在开发的GIX4项目,由于使用了OpenExpressApp框架,所以它的部署工作正是使用了上面的方法实现的一键部署。这对于实施每日构建,提高开发和测试的效率有很大的帮助。

相关文章链接:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2009-11-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
091023 T GIX4 项目中的 智能部署 和 智能客户端
先说一下ClickOnce的使用方法: 先给一个要发布的工程设置安全和签名。然后发布到iis中。当用户访问该iis目录下的.application文件时,就会自动安装整个应用程序。 再说一下我们目前的应用程序。相对还是比较复杂的,分为框架部分和特定应用程序部分。其中的框架部分,以后会作为开源框架发布。由于是AutoUI,框架部分就包含了生成最后客户端运行的exe的工程。而特定的应用程序只需要实现自己的类库和模块(Module)。最后发布的时候,需要把生成好的类库和Module放到exe文件所在目录的子目
用户1172223
2018/01/26
7040
基于OEA框架的客户化设计(一) 总体设计
    这篇文章还是对工作内容的总结,主要是总结一下这几天做的产品的客户化工作内容。     关于产品线工程中客户化的理论知识和概念,请见金根的《产品线工程》。具体的,OEA框架中的客户化理论,见:《软件产品线工程方法:如何在OpenExpressApp做客户化工作》。     本文主要从以下几个方面来叙述如何在OEA框架中设计和实现客户化框架: OEA客户化框架设计目标 方案设计 具体实现 设计目标 支持实体类的扩展。 支持实体扩展包的动态加载。 支持界面扩展及界面扩展包的动态加载。
用户1172223
2018/01/29
1.9K0
基于OEA框架的客户化设计(一) 总体设计
应用SAAS结构技术的开源药店管理系统-如何自己部署这种SOA/SAAS结构的应用
一、药店系统内容说明 在前些时间,我们发布了一个基于AgileEAS.NET平台的SAAS结构的案例-AgileEAS.NET平台开发实例-药店系统-快速的SAAS开发体验,在文章中同时向大家提供了基于SAAS部署安全的演示客户端下载,也向大家提供了包含全部源代码下载。 AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的,AgileEAS.NET应用开发平台包含基础类库、资源管理平台、运
魏琼东
2018/01/12
1.9K0
应用SAAS结构技术的开源药店管理系统-如何自己部署这种SOA/SAAS结构的应用
WinForm中ClickOnce发布至广域网
  ClickOnce智能客户端,是微软提供比较早的一项技术,用于实现WinForm开发的应用程序能够自动更新,省去给每台客户端升级带来的困扰。   从网上的贴子里看,有的说好用,有的说不好用。客观的说,微软的东西其实都很好用的,不好用的原因是我们不会用。微软技术是上手容易,精通难,需要不断的摸索和研究,才能灵活运用。当然,我不是微软的水军,但我是用Net开发。。。好了,废话不多说,下面介绍下这个技术。   在网上找了下相关资料,发现这两篇介绍的很全面。不懂的童鞋可以详细阅读,我也不用粘贴复制,这样太没技术
用户1219352
2018/02/01
2.2K0
WinForm中ClickOnce发布至广域网
Navi.Soft31.微信WinForm框架(含下载地址)
1.概述 1.1应用场景 微信的出现,改变了我们日常生活。而微信公众平台的出现,使我们每个人都可能成为一个品牌,微商的普及、微店越来越多。越来越多的人,借助微信公众平台,实现了自己的梦想 在此背景环境下,开发出基于微信公众平台的一套框架,方便开发员二次开发,也可以直接使用。 1.2面向对象 Net程序开发员 1.3开发环境 开发环境 描述 VS2012或以上 整个框架只有此一个解决方案.Net类库版本是4.0 EntityFramework 版本6.0
用户1219352
2018/02/01
1.7K0
Navi.Soft31.微信WinForm框架(含下载地址)
Updater Application Block自动更新实施方案[源代码]
概述     本方案采用Updater application block简称UAB,是Microsoft patterns & practices(模式&实践组)早期开发的一个自动更新的组件为基础,并且更具实际情况扩展了多项功能,来实现对客户端应用程序或Web应用程序实现自动在线更新的功能。 背景     随着业务的不断扩展,产品已经开始在全国各省开始部署,同时也给实施和客服部门带来了非常大的压力,随之而来的实施成本也在不断的增加。除了提高产品质量,我们需要解决一个紧迫的问题就是统一版本,降低实施难
阿新
2018/04/12
1.5K0
Updater Application Block自动更新实施方案[源代码]
Updater application block 2.1使用和扩展
Updater application block 2.1使用和扩展 概述 Updater application block简称UAB,是Microsoft patterns & practices(模式&实践组)早期开发的一个自动更新的组件,在Click-Once(.net 2.0)之前发布的,所以最新的版本也到2.0号就就停止更新了。 UAB使用了"推模式"的自动更新,在无需用户的干预下发布新版本的更新; 应用场景 保持应用程序总是最新版本 用户可以使用多个插件 保持数据文件总是最新版本
阿新
2018/04/12
7920
Updater application block 2.1使用和扩展
Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署
本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能。 《福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!》 《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》 《Rafy 领域实体框架演示(2) - 新功能展示》 以 Rafy 开发的应用程序,其实体、仓库、服务代码不需要做任何修改,即可同时支持单机部署、C/S 分布式部署。本文将说明如果快速使用 C/S 分布式部署。 前言 截止到上一篇,我们开发的应用程序都是采
用户1172223
2018/01/30
6590
Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署
RDIFramework.NET ━ .NET高速信息系统开发框架钜献 V2.9 版本震撼发布
继上个版本号“RDIFramework.NET V2.8版本号公布”5个多月的时间。V2.9版本号面世了,感谢各位的支持。欲了解2.8版本号新增与更新的内容能够查看以下的链接地址,此文就不再展示2.8版本号中的特色了。
全栈程序员站长
2022/07/06
7240
RDIFramework.NET ━ .NET高速信息系统开发框架钜献 V2.9 版本震撼发布
Excel催化剂开源第6波-Clickonce部署之自动升级瘦身之术
Clickonce无痛自动更新是我最喜欢使用VSTO开发并Clickonce部署的特性之一,但这个自动更新,通常会更新整个程序文件,包含所有的引用dll和一些资源文件等。
Excel催化剂
2021/08/19
4550
Wix 安装部署(五) Bootstrapper 捆绑安装
Wix的xml配置确实很费劲,忍不住有点像吐槽一下,前四篇完成的功能在Windows Installer中通过配置能很快的弄出来。可惜有很多加了锁的功能在InstallShield Limited Edition 版本中是用不了的。 但基本满足安装需求了。按照这个目录(下图)一个一个去配,配出来的也像样了(这里就不说了)。但是无法定制行为,以及打补丁等。wix又是一个极端,完全依赖xml。这两天想解决自动检测.net framework版本没有就自动安装的功能和注册dll的就很费劲。 在Windows Installer中分别在Redistributables和Registry中设置就行了,特别是注册,可以直接把目录从你自己的电脑上拖过来。但今天要讲的,就是wix中的Bootstrapper 项目,制作一个捆绑安装程序,也是Windows Installer中没有的。将多个需要安装的文件,按照顺序一次性装完。
全栈程序员站长
2022/09/09
1.3K0
Wix 安装部署(五) Bootstrapper 捆绑安装
快速创建软件安装包-ClickOnce
今天介绍使用ClickOnce制作软件安装包,首先我们先了解什么是ClickOne。
沙漠尽头的狼
2022/11/03
9790
快速创建软件安装包-ClickOnce
Smart Client Software Factory 初试
Smart Client Software Factory 初试 介绍     智能客户端的介绍我就不再这里说明了,大家可以通过Google去发现。 智能客户端软件工厂提供给建筑师和开发商能够快速综合智能客户端地模式和做法。该软件工厂提供了一套行之有效的综合做法,通过接触模式,如何主题,快速入门,参照执行,在Visual Studio指导自动化工具包,和架构文件。该软件工厂项目就是智能客户端应用程序的基础上的复合用户界面应用程序块。通过使用软件工厂,建筑师和开发人员可以集中更多的精力在业务需求上面。
阿新
2018/04/12
1.3K0
Smart Client Software Factory 初试
保姆级教程:使用dify源码本地部署LLM应用开发平台
现在大模型应用平台让人挑花了眼,想创建个人智能体的选择越来越多了,列举一些国内主流AI平台:
languageX
2024/06/16
26.1K0
保姆级教程:使用dify源码本地部署LLM应用开发平台
C# 搭建自己的NuGet服务器,上传自定义NuGet包
以上就成功部署了自己的NuGet服务器了。关于.nupkg文件其实就是程序的安装包压缩文件,它包含了程序包的版本信息,dll及相关的外部依赖,NuGet安装包时会进行自动解压。因此上传至NuGet服务器Packages目录的只需要.nupkg文件。
zls365
2021/04/23
1.7K0
C# 搭建自己的NuGet服务器,上传自定义NuGet包
AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境
一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。      AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模
魏琼东
2018/01/12
1.1K0
AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境
.Net桌面系统架构设计
面临问题 1.人机交互和用户界面不够友好 2.个性化UI需求 3.没有一套便捷的通用数据导入导出高效解决方案 4.系统安装包太大,应用部署和升级发布麻烦,版本控制较乱 5.不支持二次开发,系统模块化、组件化较差,扩展性不太好,应对业务变化不够灵活 系统技术总体架构——参考技术架构 此版本的C/S系统,基于.NET Framework 4.0, Windows技术平台下的富客户端应用; 采用自主的模块化可扩展的开发框架; O/R Mapping组件IBatis.Net 数据访问支持Access、
程序你好
2018/07/20
1.7K0
WPF ClickOnce应用程序IIS部署发布攻略「建议收藏」
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说WPF ClickOnce应用程序IIS部署发布攻略「建议收藏」,希望能够帮助大家进步!!!
Java架构师必看
2022/03/22
1.7K0
WPF ClickOnce应用程序IIS部署发布攻略「建议收藏」
Excel催化剂开源第21波-使用Advanced Installer打包VSTO几个注意问题
VSTO项目开发完毕完,最终需要分发给用户,需要Excel催化剂用的是Clickonce发布方式,但也面临到部分用户环境要求太高,设置过程太繁锁,而要求有一些简单的安装方式,用打包工具将其打包为一个EXE文件,然后分发给用户安装,这个可以带来很好的安装体验。
Excel催化剂
2021/08/19
1.2K0
.NET实现之(自动更新)
做开发的人,尤其是做客户端(C/S)系统开发的人都会遇到一个头疼的问题,就是软件的自动更新;系统发布后怎样自动的更新程序,在下有幸开发过一个自动更新程序,更新程序与任何宿主程序是完全独立的;只要在主程序里面启动更新程序就行了;更新程序也是一个可执行文件,在启动的时候可以设置是否是自动更新和是否是手动更新,自动更新的意思就是说不需要人工的干预实现从远程服务器下载更新包,而如果是手动更新就会涉及到用户点击程序中的按钮实现更新;在自动更新与手动更新中可以根据项目的需要进行选择,有的程序必须要求用户进行更新才能继续使用,所以程序自动更新是有必要的;手动更新就是用户可以随时更新程序,不需要严格的控制版本问题;下面本人就来讲一下具体的实现细节,我贴出部分代码,源码属公司财产本人不宜上传;
王清培
2022/03/14
1K0
.NET实现之(自动更新)
推荐阅读
相关推荐
091023 T GIX4 项目中的 智能部署 和 智能客户端
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文