ASP.NET网站制作之WCF Web API 轻松完成 REST仓酷云
呵呵,那你就关注微软的招聘信息以及别人的招聘经验啊,还有也不一定去做技术的,你如果真的想去就多了解了解。(其实我的意思是说想到微软做技术是很不容易的。先体验一下,假如没有WCFWebAPI,间接用WCF完成REST有多贫苦:1.创立WCF服务(ServiceContract)。
2.创立.svc文件指向该WCF服务。
3.在web.config中增加<service>/<endpoint>设置,并将binding设置为webHttpBinding,示例设置以下:
<services><servicename="CNBlogs.OpenAPI.Service.NewsRestService"><endpointbinding="webHttpBinding"contract="CNBlogs.OpenAPI.Service.INewsRestService"behaviorConfiguration="RESTFul"/></service></services>
4.在web.config中增加<endpointBehaviors>/<behavior>设置,并在个中增加<webHttp/>,在第3步的设置中增加该behaviorConfiguration(好比下面代码中的behaviorConfiguration="RESTFul"),示例设置以下:
<endpointBehaviors><behaviorname="RESTFul"><webHttp/></behavior></endpointBehaviors>
5.在OperationContract办法上增添WebInvoke属性,示例代码以下:
IQueryable<NewsItem>GetRecentNews(intitemcount);
下面的5步已够贫苦了。入手下手觉得到此就能够出工了,哪知不运转不晓得,一运转吓一跳:
OperationGetRecentNewsincontractINewsRestServicehasapathvariablenameditemcountwhichdoesnothavetypestring.VariablesforUriTemplatepathsegmentsmusthavetypestring.
参数居然不克不及用int范例,必需要用string。只能看WCF心叹,不能不进进第6步。
6.将int改成string
IQueryable<NewsItem>GetRecentNews(stringitemcount);
这是纯WCF完成REST的扮演节目,节目称号叫“WCF完成REST六步走”,扮演得分6分。
接上去,我们看看WCFWebAPI的扮演
(假如不晓得WCFWebAPI是何方崇高,请看演员先容http://wcf.codeplex.com/wikipage?title=WCF%20HTTP)
1.在供应REST服务的办法上增添属性,示例代码以下:
publicclassNewsRestService{publicIQueryable<NewsItem>GetRecentNews(intitemcount){returnnewsList.AsQueryable();}}
2.在Global.asax的Application_Start中增加路由,示例代码以下:
protectedvoidApplication_Start(objectsender,EventArgse){varconfig=newHttpConfiguration();RouteTable.Routes.Add(newServiceRoute("news/recent",newHttpServiceHostFactory{Configuration=config},typeof(NewsRestService)));}
注:必要经由过程NuGet增加对WebApi.All的援用。news/recent就是REST会见网址。
出工!只需两步就完成REST,WCFWebAPI的扮演得分2分。
2:6,WCFWebAPI年夜获全胜!(分数少的怎样反而得胜?这是代码天下,不是实际天下,程序员说了算,谁的代码少,谁就得胜)
小结
WCFWebAPI是“First-classprogrammingmodelforHTTPinWCF”,而HTTP是Web天下的通行证,WebAPI可让我们更轻松地畅游于Web编程天下。
完成REST只是WCFWebAPI小试牛刀,我们还能够不必修正任何服务端代码,只改动客户端哀求的体例,就能够前往不现范例的数据。
好比:
1)将HTTPHeader中的Accept改成“application/json”,前往的就是JSON数据。
2)经由过程Url参数倡议OData查询(好比“?$top=4&$orderby=Title”),服务器收到哀求后,会对前往了局举行LINQ查询(因而示例代码中的前往值范例是IQueryable<NewsItem>)。
相干内容
英文:
WCFWebAPIOverview
GettingStarted:BuildingasimpleWebAPI
WCFWebAPIs,HTTPyourway
中文:
WCFWebAPI第一印象
WCFWebApi
进门:构建复杂的WebAPI
进门:增加一个撑持猎取单一资本和撑持POST,PUT和DELETE办法
net网页编程的设计机制:首先产生一个中间码,第二部编译为本地(机器)码。这个机制有很大的缺点。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。 有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。 微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。 在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。 asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
页:
[1]