我应该在c中使用WCF而不是DLL吗#

我应该在c中使用WCF而不是DLL吗#,wcf,dll,architecture,Wcf,Dll,Architecture,我需要一些关于在我的程序中使用WCF或DLL的建议。我正在开发一个程序,将是桌面应用程序和网络应用程序。该体系结构是多层的。我应该在业务层做什么,我应该把它作为一个名称空间,并将其构建为一个dll,然后在我的桌面应用程序和Web应用程序中添加引用此dll,或者我应该让业务层成为一个Web服务,然后我可以在我的应用程序中使用。当使用Web服务而不是DLL时,我必须考虑什么。p> 您可以创建一个解决方案,其中包括: 业务逻辑项目 Web应用程序项目 桌面项目 Web应用程序项目和桌面项目将仅引用

我需要一些关于在我的程序中使用WCF或DLL的建议。我正在开发一个程序,将是桌面应用程序和网络应用程序。该体系结构是多层的。我应该在业务层做什么,我应该把它作为一个名称空间,并将其构建为一个dll,然后在我的桌面应用程序和Web应用程序中添加引用此dll,或者我应该让业务层成为一个Web服务,然后我可以在我的应用程序中使用。当使用Web服务而不是DLL时,我必须考虑什么。p> 您可以创建一个解决方案,其中包括:

  • 业务逻辑项目
  • Web应用程序项目
  • 桌面项目
Web应用程序项目和桌面项目将仅引用您的业务逻辑项目。然后(如果需要),您可以继续将业务逻辑项目与数据访问项目、服务层项目等分离


然后,如果您觉得需要“真正的”WCF服务,那么可以很容易地从解耦的体系结构中创建一个。

您应该使用restful服务,如http webapi,它具有广泛的客户范围。

谢谢您的回答,但这不是我所要求的。我对软件结构很了解,但我的问题是在决定DLL和Web Service之间时,我应该考虑什么,这是关于WCF/DLL的消费者是谁的问题。如果您事先知道会有几个消费者(他们希望通过网络使用服务),那么WCF可能是一个自然的选择。如果(到目前为止)除了你自己没有消费者,并且你不想在网络连接、防火墙等方面遇到困难,那么DLL可能是一个自然的选择。从简单(但不耦合)的解决方案开始,然后根据需要将其发展为WCF是正常的。如果您想要最大的灵活性,请将业务逻辑放入类库(DLL)中。然后,当/如果您需要一个服务时,您可以在现有DLL周围编写一个作为包装器的服务。