一步一步开始Web Service (有代码和图) (下)
接上一篇
4. 然后有些象Java也象VB,容易理解了,那就是你要生成一个代理类,然后在客户端调用这个类中的方法,也就是Services。 这时你需要用Framework SDK中的另一个工具 wsdl.exe 用它生成一个.cs .vb 或 .js的文件,编译这个文件生成一个DLL,就是所谓的代理类了。然后就可以在dotnet的网页,GUI窗体,web窗体或控制台程序中调用HelloWorld 和Add 函数就完成全部了。具体的语句:
wsdl /out::myWebService1.cs http://localhost/WebService1/Service1.asmx
成功后你可以看到这个CS文件生成。
5. 然后编译这个类
csc /out:myWebService1.dll /t:library /r:System.XML.dll /r:System.Web.Services.dll myWebService1.cs
如果成功DLL也生成,现在就差写一个表现层也调用这个Service了。我手工方式就阻在这个表现层上,我想是我生成的.wsdl没有被用上,也就是找不到这个Services 。
4,5我是手工做的,不想再建一个Project去编译myWebService1.cs了。Dotnet有个好处,组件只用编译后自动注册,不用象Com那样还要 regsvr32 一下,而且目前Com组件和dotnet组件是完全不同的,也就是说在VB的Reference 和Oleview中你会失望的,看不到这个dotnet组件。
6. 然后就可以在你的应用中调用这个组件了,应用很简单,大体都是:
dim obj as new Service1
dim retStr as string
dim retIntVal as string
retStr = obj.HelloWorld()
retIntVal = obj.Add( 300 , 500 )
这样看来dotnet还是很有意思的,至少向你展现了一种不同的东西,我想用过Com或Com+的大侠们很容易想起这类似一种远程或Internet方式的Com,以前的com有致命的弱点,无法穿透防火墙,现在这种方式不仅灵活而且协议更加标准。底层的它封装和隐藏了SOAP和其它的网络协议,中间靠XML来传递数据和信息。你只用专心在Service功能上。
想想新浪的新闻服务如果有这样的Web Service接口,大家的网站上只有简单几句就可以有新闻显示了。同样股票站点可以为你提供股票信息,旅游航空公司提供旅游和航班信息。太多了,而且时时更新,我想以后会有一个Web Service的接口或门户网站,它也会象Yahoo一样成为众所周知的入口。
一些资源:
Framework SDK beta 2
http://download.microsoft.com/download/VisualStudioNET/Trial/2.0/W982KMeXP/EN-US/setup.exe
Microsoft ASP.NET Premium Edition 如果装VS.NET beta 2 前忘记装IIS,那么装完IIS再装它可以不用重新安装整个VS.NET beta 2
http://download.microsoft.com/download/VisualStudioNET/Trial/2/W982KMeXP/EN-US/setup.exe
SOAP Toolkit 2.0 SP2
http://download.microsoft.com/download/xml/soap/2.0/W98NT42KMe/EN-US/SoapToolkit20.exe
Programming .NET with C#
http://www.gotdotnet.com/featured_site/developmentor/assemblies2.pdf
XML Spy 4.0b2
http://www.xmlspy.com/download/beta/
Visual XSLT for VS.NET beta2
http://downloads.activestate.com/VisualXSLT/VisualXSLT-1.0.0-Beta3-1730.msi
MSDN Show : 介绍VS.NET Beta 2
不错的C#编辑器,也可开发并且支持 Framework SDK beta 2 , 新版本还有动态函数帮助
http://www.c-point.com/download/csharped.zip
SOAP Extensions with Visual Basic .NET
http://msdn.microsoft.com/msdn-files/026/002/305/VBSoapEx.exe