.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
.NET 中基于internet的部署

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

要使用此部署,客户机必须有.net framework 并且要有一个internet连接.此外,用于部署的系统必须是一个安装有.net 和iis 的web服务器

被部署的应用程序放在服务器上的一个目录中,可以用一个url来定位。然后,应用程序可以通过以下二种方式之一来启动:
在WEB页面上单击指向服务器上应用程序的启动EXE的链接。
使用一个小“启动程序”应用程序指向服务器上的主应用程序。这个启动程序实际上是指向应用程序的一个本地快捷方式。
此二者都是从internet上下载应用程序并在本地执行.

以下是具体步骤:
1:严格按照开发windows窗体应用程序的方法构建窗体应用程序
2开发完成后,为应用程序中的所有windows窗体项目更改编译选项以创建一个DLL文件.假设我们已创建了一个AppDll1.dll.
3将包含应用程序的所有DLL复制到一个WEB文件夹中.这包括应用程序的用于启动WINDOWS窗体的DLL, 以及应用程序所需组件或其他DLL.
4:创建启动程序,主要使用了反射功能.开始一个新的应用程序.在窗体上放一个按钮.代码如下:
using System.Reflection;
try
{
string sUrl=“htpp://mywebserver/myapp/appdll1.dll“;
Assembly objAss=Assembly.LoadFrom(sUrl); //获得程序集
Type formType=objAss.GetType(“MyProjectName.StartForm“); //获得程序集中清单中的类型
object obj=Activator.CreateInstance(formType); //根据类型动态创建一个对象
Form f=(Form)obj;
f.Show();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}


当我们启动应用程序时,看一下后台所发生的事性:
启动时,它请求从客户机上尚未存在的程序集加载类,此时将自动从部署WEB服务器上获取程序集并放到本地客户机上.它驻留在客户机的应用程序下载缓存中.一旦将程序集放置到客户机上的应用程序下载缓存中,就可以从程序集加载和运行类.这包括所有必需的窗体(窗体也是一个类).或所有其他属于应用程序的对象.我们可以查看下载了哪些程序集:
> gacutil /ldl   此命令行可以查看客户机上下载程序集清单

应用程序由从WEB服务器加载的窗体控制,它可以根据需要执行操作和加载其他的窗体.如果从同一个程序集加载另外的窗体,那些窗体会自动加载而不需要任何特殊逻辑.
当.NET 在下载缓存中查找程序集时,如果找到了,那么它会检查程序集的版本.同时还在WEB服务器上检查相同程序集的当前版本(如果internet连接可用).如果在WEB服务器上存在程序集的新版本,则将该新版本下载缓存并代替原来的版本以进行使用.这使得自动部署会自动执行.
如果应用程序脱机模式(internet不可用).那么将会跳过当前版本测试.并在下载缓存中使用原来版本.


相关文章

相关软件