单一解决方案中的多个应用

Neo*_*Neo 4 c# client multiple-projects winforms

我相信这是可能的,但不确定如何解决它,我需要创建一个服务器/客户端解决方案,通常我会为服务器创建一个新的解决方案,并为客户端创建一个新的解决方案,但我希望在一个单独的内容中解决方案,因为他们都将使用相同的自定义类,并不真正想要两次更改同一文件的问题.

所以问题是我可以在单个解决方案中创建多个exe,以及实现此目的的步骤是什么.

我在这里搜索过,但是没有完全理解这个程序,所以如果有人能指出我一般的正确方向,那就太好了.:)

VS2010使用C Sharp和Windows Forms

Dr.*_*ABT 10

请参阅以前的答案,我介绍了跨平台的客户端服务器应用程序的开发,特别是与多个客户端的代码重用.这也适用于您的Winforms客户端服务器应用程序.

正如许多答案所说,您可以构建解决方案,以便按如下方式共享代码:

项目结构

解决方案
..常见(消息,Datacontracts,实用工具)
..中间件(参考常见,提供常用服务)
.. .. Server Exe(参考通用,中间件)
.. ..客户端Exe(参考文献通用,中间件)

顶级客户端 - 服务器架构

跨平台应用程序堆栈

你的筹码变成了

客户:

客户端具有Web服务/中间件的序列化,客户端实现以及视图的Model-View-Presenter模式.

中间件:

中间件,即服务器/客户端桌面上的共享服务和数据传输实现可以是相同的.或者,您可以调用此服务.仅客户端(或仅服务器)的任何特定服务应该位于单独的程序集中,并且仅由特定的exe(客户端或服务器)引用.即不要共享不共享的代码!

消息/ DataContracts:

使用上面概述的技术在所有客户端/服务器之间共享.在您的情况下,这些可能是客户端和服务器之间共享的常见域对象

服务器:

所有业务逻辑,数据库访问和服务器端服务实现.对于DB Access,我建议将PetaPoco作为优秀的MicroORM.

开发和调试

是的,一个解决方案可以有多个exe,只需通过右键单击Server Exe或Client Exe来调试其中一个启动项目.

如果您希望一起运行客户端和服务器,则可以从命令行运行它们并将调试器附加到两个进程.

最好的祝福,