1

我知道有几种方法可以部署 .net windows 客户端应用程序:

Windows Installer , Click Once , 一个简单的下载 & 运行, 并在 Internet Explorer 中加载 windows 窗体/WCF 应用程序 (不要将后者与 WCF/E - Silverlight RIA 应用程序混淆)

所以...考虑一下真正的 Windows 客户端应用程序——只是为了明确一点:那些在你的文件系统中由 .exe 组成的应用程序——可以从 Internet 加载其部分或全部依赖项是一个好主意吗?

<assemblyIdentity 
    name="MyAssembly"
    publicKeyToken="89a956accc8f98e98a9e954a"
    culture="en-US" />
<codeBase 
    version="2.0.0.0"
    href="http://www.contoso.com/MyAssembly.dll" /> <!-- look here -->

显然有一些严重的缺点:必须始终连接,客户端中的CAS配置(互联网依赖项将在Internet_Zone 代码组中),更不用说加载时间了。

但我也能想到几个优点。

有哪些问题?有人在实际项目中使用过这个吗?

4

2 回答 2

2

我可以看到在公司 Intranet 环境中执行您的建议,其中自定义应用程序可以与自定义服务器通信,并且每个都可以很好地理解对方。当然,可能存在连接和同步问题,但随着时间的推移,这些问题可能会在某种程度上得到解决。我在一个应用程序对一组后端服务器执行基本 CRUD 任务的情况下完成了此操作,这些服务器对数据库运行命令。诚然,它并没有被给予太多重视,并且有一段时间是某人的宠物项目,但它最终确实做了一些不错的事情。

在互联网环境中,我认为安全问题将是我最大的担忧,因为另一个因素是如果该程序集升级它可能会使应用程序崩溃。对于互联网情况,我认为 Click Once 是我的建议。

于 2008-12-17T01:28:16.763 回答
1

如果您正在加载的程序集是从受信任的提供程序进行数字签名的,那么从安全的角度来看,它应该不会那么糟糕。如果您真的信任他们...例如,如果您从一些第三方供应商那里下载程序集,这些供应商可能不会很好地掌握他们的密钥,那么是的,我会谨慎这样做。

于 2008-12-17T02:27:34.070 回答