现实生活中的Web Service
尽管我们已经知道了如何创建一个简单的互联网服务,并通过Web界面访问它,但这对我们在现实生活中的帮助并不大,是吗?
下面,我们来创建一个对我们有较大帮助的应用程序:
·在VB.NET中创建一个新的Windows Application。
提示:并非只有Windows Application类的应用程序才能使用Web Service,也可以将这种技术与Web Form结合使用,甚至可以在Web Service中使用Web Service,创建使用了使用Web Services创建的Web Services的Web Services。
·在Form1上添加一个Button。
·将其Text属性改变为:Get that Groovy Value, Cowboy!。
现在,我们需要为我们设计的Web Service添加一个“引用”。
·依次选择Project->Add Web Reference。
·在Address文本框处输入我们的Web Service的地址。
例如,我在Address文本框处输入了:http://abydos/WebService1/Service1.asmx
这一地址除显示我们曾看到过的同一个网页,还将包括一个独立的使我们能够浏览协议和文档的面板,这就是发现阶段的全部。
·点击Add Reference按钮。
现在我们添加一些可以利用添加的Web Service的代码:
·双击Button。
·在其Click事件中添加如下所示的代码:
Dim objTest As New abydos.Service1() MessageBox.Show(objTest.ReverseName("Karl Moore")) |
也许在这里你会改变机器的名字,但核心的代码不会因此而改变。我们在Abydos服务器上创建了Service1的一个新实例,然后运行ReverseName函数,向它传递字符串“Karl Moore”(或其他字符串),并在MessageBox中显示返回结果。
提示:可能会注意到objTest还有许多其他的功能,而不只有我们使用的ReverseName互联网方法。
·击F5键测试我们的应用程序。
图:Services Rendered4 |
注意应用程序是如何运行的,是如何调用Web Service和返回结果的?要做到这一点并不难,XML可以很方便地为我们做到这一点。
尽管在本例中我们使用了本地的Web Service,但我们可以从任何地方返回任何结果,这也正是Web Service的优势所在。
但是否会出现在VB6的COM和DCOM应用程序中曾经出现过的兼容性等问题呢?在VB.NET中,这些问题都不会出现。无论在现有的方法上添加新的函数还是新的参数,它一点都不会影响我们的应用程序。只有在改变应用程序使用的函数的名字时,才会收到一个出错信息。当然,如果完全删除掉Web Service,那将引起严重的错误。
我们可以进行进一步的实验,添加正在运行的外部Web Service的引用,例如在http://uddi.microsoft.com/vs.asp上的Web Service,然后创建测试应用程序。
此外,还可以建立更复杂的服务,并让网络上的其他机器使用它们,它的简单性将使你感到吃惊。
结论 Web Service是VB.NET中更灵活的DCOM,它带来的进步是革命性的。在上面的稿子中,我们创建了简单的Web Service,然后在应用程序中发现并使用了它。希望读者能够充分理解这种技术,建立自己的服务,并明白其工作原理。
查看本文来源