2014年暑假在一家公司工作,由于是小公司软件部门只有六个人(都没有接触过Android开发),经理要求我给把公司的会计软件做出手机版本的,刚进公司还不熟悉该公司的业务流程,如果在手机端直接开发的话得花一个月多熟悉公司的业务流程和公司的软件。刚好在学校那段时间做了一个小的软件正好用到webservice,于是就想到webservice的跨平台性,只要照搬公司的项目所有类自己封装一下需要的方法就可以了,简单使用。公司的软件使用asp.net开发的,所以从那以后就学会asp.net的创建和调用webservice。貌似我直说了webservice,没有提到WCF,那简单描述一下它们的区别吧,
【1】Web Service:严格来说是行业标准,也就是Web Service 规范,也称作WS-*规范,既不是框架,也不是技术。 它有一套完成的规范体系标准,而且在持续不断的更新完善中。它使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。WSDL来实现服务接口相关的描述。此外Web services 可以注册到UDDI中心.供其客户查找使用。 后来微软做了ASP.NET Web Service的安全,性能,数据加密、解密,托管宿主等多方面的扩展,称为WSE系列,这个是过度产品,最高到WSE3.0.后来就是WCF时代。
【2】ASP.NET Web Service:微软提供了Web服务的开发框架,属于ASP.NET Framework的一部分,但是支持早起的WS规范。比如SOAP1.1。
【3】WCF:WCF 是一个分布式应用的开发框架,属于特定的技术,或者平台。既不是标准也不是规范。
Web Service太旧了:框架都版本的差异,功能特性上却是有新旧之分,但是对于特定的系统,适合自己的就是最好的。 Web Service 就是 ASP.NET Web Service:同样不是一个范畴。前者规范,后者是框架 WCF比Web Service性能好:不是一个范畴, WCF 比 ASP.NET Web Service快:不一定,需要特定的限制条件,WCF使用BasicHttpBinding的时候与ASP.NET Web Service协议一样。 WCF比Web Service速度快:同样概念不严格。 WCF比Web Service强大:WCF却是集成了多种微软的分布式技术,但是这里应该严格说是:ASP.NET Web Service WCF比 Web Service安全:不严格。其次WCF也可以开发完全裸奔的应用程序。 Web Service必将被WCF取代;Web Service不会被WCF取代!前者是一套广泛使用的规范。如果说WCF能取代的是ASP.NET Web Service,因为二者都是.NET平台上的技术。 WCF其实就是Web Service:WCF在某些情况下不遵守 Web服务规范,也就是可以开发非服务性质的应用。而且不能简单等同。 WCF非常简单,其实没有什么:WCF虽然是个服务开发框架,但是如果你深入学习,会发现WCF架构的强大之处。单单是WCF安全这一块已经相当的复杂了。况且还要统一编程模型,兼容和支持许多早期的分布式技术。很多人轻易下这样的结论,一定是仅仅看了一些文章或书籍,不一定写过代码。高手不会这样武断地下结论。
WCF和webservice各有优缺点,貌似更亲向与WCF,但是在Android中调用它们没有多大的区别。
创建webservice的工具 VS2010、IIS(会部署IIS)
第一步:打开VS2010,新建空项目,注意选择.NET Framework的版本.这里我选择的是.NET Framework 4
新建好项目后,在项目中添加一个WebService项
打开这个文件,我们可以看到,代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace service
{
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
}
<p style="margin: 10px auto; padding-top: 0px; padding-bottom: 0px; line-height: 19.5px; font-size: 13px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: rgb(254, 254, 242);"><span style="margin: 0px; padding: 0px; line-height: 1.5; font-family: KaiTi_GB2312; font-size: 18px;">接下来我们要将这个WebService打包发布</span></p><p style="margin: 10px auto; padding-top: 0px; padding-bottom: 0px; line-height: 19.5px; font-size: 13px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: rgb(254, 254, 242);"><span style="margin: 0px; padding: 0px; line-height: 1.5; font-family: KaiTi_GB2312; font-size: 18px;">在项目上点击右键,点击菜单中的发布</span></p>