vb.net express 中客户端-服务器应用程序的 WCF 替代方案?

Posted

技术标签:

【中文标题】vb.net express 中客户端-服务器应用程序的 WCF 替代方案?【英文标题】:Alternative to WCF for client-server application in vb.net express? 【发布时间】:2012-01-17 04:58:32 【问题描述】:

我正在开发一个多用户电话银行软件。我最初计划使用 Windows Communication Foundation。但是,我使用的是 Visual Basic 2010 Express,虽然我可以创建 WCF 客户端,但我无法创建 WCF 服务器。作为一名大学生,我没有钱购买 Visual Studio 2010 Professional,虽然它可以通过 DreamSpark 程序获得,但许可条款不允许用于商业用途(我希望开发一个低成本的电话银行系统[这不是家庭作业;我实际上是一名会计学生])。

我可以使用 WCF 的替代品吗?我提出的应用程序设计如下:

    在服务器上创建的作业具有从数据库中调用的所有电话号码(即,创建作业的人可以从通用数据库创建过滤后的电话号码列表)。这些号码进入队列。 客户端连接到服务器并登录。每个客户端连接时,都会从队列中传递一个数字。 当每个呼叫者完成一个呼叫时,他们会按下一个按钮来指示该呼叫的响应。然后客户端向服务器发送一条更新消息,并在响应中获得队列中的下一个编号。

我在这里推测,但我不能对一般列表和过滤列表都使用 SQL 数据库吗?也就是说,每个列表都在自己的表中,并且有一个变量指向过滤列表中的下一个数据库记录。当客户端请求一条记录时,它会发送下一条记录,当客户端更新一条记录时,它可以发送一条 SQL 语句进行相应的更改。

我听说过事务和缓存,我需要将它们用于这种类型的应用程序吗?如果是这样,我会怎么做?

然后我会使用 System.Net 或类似的东西将客户端连接到服务器,对吗?

感谢您的帮助!

【问题讨论】:

使用 express 版本创建 WCF 服务应该没有任何问题。你确定,这在某处有记录吗? 关于 2008 Express 版的 VB,有http://msdn.microsoft.com/en-us/library/bb531269%28v=VS.90%29.aspx。除了缺少 WCF 服务器模板之外,我找不到任何关于 VB 2010 的信息。 看来,模板没有安装/打包快递版。但是,您可以从任何专业版安装中复制模板或尝试在线查找。此页面建议:msdn.microsoft.com/en-us/library/bb552362.aspx 呼叫者是否会通过互联网连接到此服务?还是在局域网上? 【参考方案1】:

您可以将服务器构建为REST 服务。有很多框架可以做到这一点(例如,ServiceStack、OpenRasta、Resources over MVC)。这是当今构建服务的一种非常流行的方式,因为它有很多好处,包括简单性,它比许多其他类型的服务更容易扩展,并且您可以构建跨平台客户端(包括 Windows 窗体和 html/javascript,但实际上任何东西)带有 HTTP 客户端堆栈的客户端可以是客户端)。

【讨论】:

【参考方案2】:

是的,您可以使用的一种方法是使用 SQL Server 数据库、编写 SQL 存储过程来访问 SQL 表中的数据并实现您的服务器功能。您将使用 .Net 的 SqlClient 来调用这些存储过程(不是 System.Net)。

或者,您可以只编写一个 Windows 服务(而不是 WCF 服务)并使用 RPC、System.NET 或 .Net Remoting 等调用它...

【讨论】:

【参考方案3】:

WCF 服务不过是一个类库项目。所以创建一个类库项目,添加对 system.servicemodel 和 system.runtime.serialization 的引用,然后就可以了。 WCF 是 .Net 中任何分布式系统开发的最佳选择。

【讨论】:

【参考方案4】:

您使用的 Visual Studio 版本无关紧要。

我不确定您为什么认为您无法创建 WCF 服务。

可以在任何版本的 Visual Studio 中对 WCF 服务进行编码。

更新

好的,您是问VB Express 是否可以自动生成测试客户端?好吧,我不确定,但使用 WCF 不需要此功能。您可以轻松编写自己的测试客户端。

Google 上有大约 500 万个这样的例子。这是其中之一: http://weblogs.asp.net/ralfw/archive/2007/04/14/a-truely-simple-example-to-get-started-with-wcf.aspx

【讨论】:

我知道我观看的有关创建 WCF 服务的截屏视频显示,常规 Visual Studio 创建了一个 WCF 测试客户端来测试您的服务。 VB Express 也有这种能力吗? Ralf Westphal 网站似乎不再托管他的示例代码,但仍然值得一看。

以上是关于vb.net express 中客户端-服务器应用程序的 WCF 替代方案?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在最初使用 C# 安装的 Visual Studio Express 中运行 VB.Net 吗?

C# 应用程序与 C++ 和 VB.Net 中的其他应用程序之间的 IPC

将 VB.NET 代码从 Visual Studio Express 复制到 Microsoft Access 2013

[VB.NET]Upnp/udp打孔聊天程序tcp/udp sockets

在 VS2010 express 中对 vb.net 进行单元测试

平台更改后调试 vb.net 应用程序的问题