C#学习教程:.net中的RESTful服务框架所以我们开始吧:)我需要为我们的应用程序实现一个完整的REST服务层。我遇到的问题是哪个框架最能解决这个问题。我只需要一个好的框架,让我可以专注于问题而不是REST或任何需要的东西。身份验证是必需的功能。这是我的一些想法;你怎么认为?我最近一直在和Nancy一起玩,我也在考虑ManosdeMono。下面是Nancy主页上的示例。publicclassHelloModule:NancyModule{publicHelloModule(){Get["/"]=parameters=>"HelloWorld";我最初启动ServiceStack是因为效率低下(开发和运行时),并且使用备用.NET框架来创建Web服务时应用的摩擦。Json序列化比MVC快3-4倍ServiceStack非常注重性能,因为我们相信它提供了最佳的最终用户UX,这就是为什么它内置了一系列强大的缓存提供程序,包括最快的.NETJSONSerializer–比使用.NET和MVC发布的序列化程序快3-4倍(其默认的JavaScriptSerializer是.NET中最慢的)。为了获得最佳性能,不使用运行时反射或正则表达式。它使用智能非线性路由匹配,建议您使用速度更快的内置缓存提供程序来解决ASP.NET会话性能不佳的问题。专注于类型化、迭代式、代码优先的开发ServiceStack允许您开发强类型的Web服务,以最少的代码自动推广开箱即用的最佳实践,无需任何代码生成、配置、构建前/后构建步骤等..简单的HelloWorld服务示例:publicclassHello{publicstringName{get;放;}}publicclassHelloResponse{publicstringResult{get;放;}}publicclassHelloService:IService{publicobjectGet(Hellorequest){returnnewHelloResponse{Result="Hello,"+request.Name};只需这些类,您所有的Web服务就可以自动提供各种不同的格式(JSON、XML、JSV、CSV、SOAP),所有这些都是开箱即用的。使用C#的强类型客户端API示例:varclient=newJsonServiceClient("http://localhost/Service");varresponse=client.Send(newHello{Name="World!"});使用jQueryJavaScript示例:$.getJSON("http://localhost/Service/hello/World!",function(r){console.log(r.Result);});开发友好,因为可以在迭代开发Web服务时可视化Webajaxstack.com/jsonreport/),它允许您一目了然地可视化Web服务响应。您还可以获得自动生成的元数据页面(可以用您自己的自定义描述进行注释),这是记录Web服务API的好方法。但是,如果他们决定停止开发怎么办?作为ServiceStack的创造者,我认为在可预见的未来我不会放弃开发。我每天都用它来构建系统,只是因为我发现它是一个更干净、更快、更高效的开发框架。促进最佳实践很少有.NETWeb服务框架提倡基于DTO的基于消息的体系结构,从而实现服务接口模式——Java生态系统中常见的Web服务最佳实践,它允许轻松开发基于批处理的粗粒度SOAWeb服务。放弃它以支持另一个.NETWeb服务框架的风险为0。仅仅是因为我们不相信任何其他.NET框架会积极促进主要关注性能的Web服务最佳实践(即DTO/远程外观和服务接口模式)。但即便如此,作为一个拥有近20名贡献者的开源项目,这种担忧还是可以消除的。MS留下了多少专有的闭源框架并迫使每个人都转向他们的继任者?开源软件在不断发展,而不是被抛弃和重写。ServiceStack的完整源代码在http://github.com/ServiceStack下,没有锁定,GitHub使任何人都可以轻松地分叉并继续已经完成的大部分开发。无处不在最后,ServiceStack可以在Windows或Linux/OSX上使用Mono的IIS6/7中的任何ASP.NET主机上运行。它还支持独立的HttpListener主机,允许您在没有Web服务器的情况下运行它,即嵌入到Windows服务中的任何控制台或Windows应用程序中,甚至托管在MonoTouchiPhone应用程序中。对我来说最简单和最干净的解决方案是在ASP.NETMVC3中使用返回JsonResult的方法将服务实现为控制器。优点:如果我今天开始,我会选择第三个选项,在ASP.NETMVC3中执行一些自定义选项,或者使用下面的框架之一。OpenRastaThjeShouldersOfGiants解决方案现在可通过CodePlex和NuGet获得...重命名为MVC上的资源。以上就是《C#学习教程:.NET中的RESTful服务框架》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
