2011-05-31 31 views
1

问:问题使Web服务作为替代时对DLL

最近,我遇到了一些问题,我有很多的应用中常见的一个dll,任何改变这个DLL需要构建它,复制并将其粘贴到这些应用程序的每个bin文件夹中,并添加新的引用,所以我决定将此dll转换为一个web服务,以代替这个过载。 我使Web服务应用程序包含一组Web服务(映射到每班)。

我在这里遇到了一些问题:

  • 在原始的dll文件,还有 类使用其他 类存在于同一个DLL的方法,当我 试图使用Web服务,我面临的问题方法在 其他网络服务类中如何修复 这个问题。

  • 在原来的DLL在那里设立 静态类的静态 methods.how使在 我的Web服务应用程序的等价物。

  • 任何过载方法都会在我的Web服务中导致问题 。在我的方法中使用Dictionary<string, string> 作为参数。

:原dll包含对数据库的连接。将它转换为网络服务是最佳的解决方案?在我的情况下,哪一个更快的Web服务或DLL?我应该倾向于WCF而不是?

在此先感谢。

回答

1

在我的应用程序中,我通常在同一解决方案中拥有所有相关项目。但是当我需要跨应用程序使用项目时,我将项目替换为dll参考。

因为我使用Subversion,我通过添加一个外部属性来执行我的libs文件夹,引用dll的构建来解决复制dll的问题。

如果外部DLL更新经常比你可能需要一个持续集成系统来处理你。

+0

我需要的是:我在一组web应用程序中有一个共同的dll,如果我更改了dll,这需要复制和粘贴在从属应用程序的bin中,将dll作为项目添加到我的应用程序解决了部分问题,但是当我想发布的时候会发生什么,然后如果我在dll中更改,我必须再次发布所有依赖应用程序。 – 2011-05-31 13:42:51

+1

如果您使用的是未签名的程序集,您可以发布已更改的dll。只要不更改应用程序所期望的dll版本,就不需要发布整个应用程序。 如果你想自动做一个DLL的大规模部署,那么你也许可以做一个复制脚本。 – Megacan 2011-05-31 13:45:14

+0

这个问题不是在发布整个应用程序或只是dll,因为如果我必须发布dll,在发布中根本没有问题。问题是:我必须发布即使在所有应用程序的DLL取决于该DLL的任何变化。是否有任何解决方案使我能够在对此dll进行任何更改时,所有应用程序都可以在没有复制,粘贴或发布操作的情况下查看更改。 – 2011-05-31 13:51:02

1

我通常会添加项目引用并将所有项目保留在单一解决方案下,因此我没有文件复制问题。您可能会缺少项目引用,而是可能使用了程序集引用。先验证一下。

首先建议,如果您不知道它是什么以及如何使用它,请勿创建Web服务。人们倾向于认为一切都是Web服务,因为使用Visual Studio工具在WCF中创建Web服务非常简单。既然你要求把DLL转换成一个Web服务,我假设你是从学习Web服务开始的。

所有你需要的是一种持续集成系统,否则就是一个简单的构建系统,它为你构建,并且它复制文件在任何依赖于应用程序文件夹的地方。因此,您可以节省手动处理文件的时间。当你这样做时,你将不会遇到你提到的4个问题中的任何一个。

如果你懒得学习构建系统,只需编写一个批处理文件,为你复制文件。我确实有批处理文件,它执行xcopy文件。

+0

非常感谢,这解决了我的问题.. 还有两个问题请问, 1-我不知道你的意思是'build system',你的意思是源代码控制吗? 2-将所有依赖项目添加到解决问题的相同解决方案中,批处理文件的好处是什么,我不需要复制文件,您是否指其他一些内容? – 2011-05-31 13:16:34

+0

我需要的是:我有一个共同的DLL之间的Web应用程序集,如果我改变DLL这需要复制和粘贴在从属应用程序的斌,将DLL作为项目添加到我的应用程序解决的一部分问题,但是当我想发布的时候会发生什么,然后如果我在dll中更改,我必须再次发布所有依赖应用程序。 – 2011-05-31 13:43:29