Fork me on GitHub

随笔分类 -  ASP.NET Web API

ASP.NET Web API允许开发人员通过HTTP开放他们的应用程序、数据和服务。 构建RESTful 的API
摘要:Beta7版本在9月2日发布了. 之前的DNX的跨平台特性在非Windows平台上主要依赖Mono来实现,.NET Core的支持极其有限。这个版本重点放在实现基于 .NET Core 的跨平台开发,为 Mac 与 Linux 平台提供基于 .NET Core 的 dnx,实现完整的 .NET 跨平台开发工作流,第一次实现了不再依赖于Mono。 阅读全文
posted @ 2015-09-15 06:25 张善友 阅读(4565) 评论(13) 推荐(15) 编辑
摘要:ASP.NET Web API 2.1内建支持XML、Json、Bson、form-urlencoded的MiME type,今天重点介绍下Bson。BSON是由10gen开发的一个数据格式,目前主要用于MongoDB中,是MongoDB的数据存储格式。BSON基于JSON格式,选择JSON进行改造... 阅读全文
posted @ 2015-05-16 21:53 张善友 阅读(4451) 评论(0) 推荐(1) 编辑
摘要:在早期的计算机领域,限流技术(time limiting)被用作控制网络接口收发通信数据的速率。 可以用来优化性能,减少延迟和提高带宽等。 现在在互联网领域,也借鉴了这个概念, 用来为服务控制请求的速率, 如果双十一的限流, 12306的抢票等。 即使在细粒度的软件架构中,也有类似的概念。 两种常用... 阅读全文
posted @ 2015-02-08 21:53 张善友 阅读(16628) 评论(1) 推荐(9) 编辑
摘要:通常我们需要监测ASP.NET MVC 或 Web API 的应用程序的性能时,通常采用的是自定义性能计数器,性能计数器会引发无休止的运维问题(损坏的计数器、权限问题等)。这篇文章向你介绍一个新的替代性能计数器的工具Metrics.NET,因为是它是内部的,所以我们能够向系统中添加更多更有意义的度量标准。 Metrics.NET(https://github.com/etishor/Metrics.NET)是一个给CLR 提供度量工具的包,它是移植自Java的metrics,支持的平台 .NET 4.5.1, .NET 4.5, .NET 4.0 和 Mono 3.8.0,在c#代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控 阅读全文
posted @ 2014-10-03 08:05 张善友 阅读(13671) 评论(20) 推荐(22) 编辑
摘要:我们为不同的目的开发了很多web服务,经过授权的用户就可以访问和使用这些web服务。soapUI 是一个强大的测试web服务的工具,他不仅可以测试SOAP服务,他也支持测试RESTful服务。在这里我将解释如何使用 SOAP UI 测试ASP.NET Web API。 由于 Web 服务是被程序调用的, 一般不会提供界面让最终用户或测试人员直接使用,在 soapUI 等工具出现之前,测试人员不得... 阅读全文
posted @ 2014-09-06 20:33 张善友 阅读(9350) 评论(2) 推荐(1) 编辑
摘要:Open Web Interface for .NET (OWIN)在Web服务器和Web应用程序之间建立一个抽象层。OWIN将网页应用程序从网页服务器分离出来,然后将应用程序托管于OWIN的程序而离开IIS之外,关于OWIN的详细资料可参考博客 MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN。使用OWIN 自宿主 ASP.NET WebAPI ... 阅读全文
posted @ 2014-04-07 21:15 张善友 阅读(32184) 评论(8) 推荐(4) 编辑
摘要:Microsoft技术栈最近有大量的变迁,这使得开发人员和领导者都想知道他们到底应该关注哪些技术。Microsoft自己并不想从官方层面上反对Silverlight这样的技术,相对而言他们更喜欢让这种技术慢慢淡出人们的视线,否则局面可能会更加混乱。如果你想了解该问题的答案,那么可以查看“.NET业务应用程序技术指南”这个小有名气的文档。该文档发布于去年早些时候,它深入探讨了Microsoft打算在哪些领域付出努力,我们应该回避哪些技术等内容。下面这个概要图是我们探索Microsoft及其相关技术的一个很好的起点。(单击放大图片)尽量早日放弃Silverlight和Flash虽然WinForms 阅读全文
posted @ 2014-03-28 14:03 张善友 阅读(5268) 评论(3) 推荐(4) 编辑
摘要:命令和查询责任分离(CQRS)是由Greg Young提出的一种将系统的读(查询)、写(命令)操作分离为两种独立子系统的架构模式。命令通常是异步执行的,并存储在一个事务型数据库中,而读操作则通常是最终一致的,并且数据来自于解正规化的视图。 本文在此提出并为读者展示一种为CQRS系统创建一套RESTful API的方式。这种方式结合了HTTP的语义、REST API基于资源的风格,并能够处理分布式... 阅读全文
posted @ 2014-03-20 22:16 张善友 阅读(4940) 评论(0) 推荐(1) 编辑
摘要:ASP.NET Web API 使用很长时间了,期间也碰到不少问题,升级到WebAPI2后这些问题都解决了,稳定性方面也提升不少,所以推荐使用。碰到的问题是下面的2类: 1、multipart/form-data 的支持上的稳定性: 大量并发情况下出现经常出现错误 Unexpected end of MIME multipart stream. MIME multipart message is... 阅读全文
posted @ 2014-02-20 21:22 张善友 阅读(4920) 评论(3) 推荐(0) 编辑
摘要:在邮件列表和讨论区中有很多与REST和Web API相关的讨论,下面仅是我个人对这些问题的一些见解,并没有绝对的真理,InnoQ的首席顾问Oliver Wolf在GOTO Berlin大会上开始自己的演讲“Web API设计原则”时如是说。不要考虑端点。SOAP有一个单独入口点的外观。相比之下Web有很多入口点,它们建立在关系上,彼此之间相互连接,并且以超媒体作为关键要素。为了不让你的API成为一个只有一种接入方式的黑洞,你应该使用超媒体控制按照对听众有意义的表现方式去链接你的资源。不要在API中暴露领域模型。在很多模型中存在的一个问题便是它们仅包含数据,缺乏所有形式的行为,也就是所谓的贫血模 阅读全文
posted @ 2013-10-23 06:24 张善友 阅读(2737) 评论(0) 推荐(1) 编辑
摘要:Creating a Clean, Minimal-Footprint ASP.NET WebAPI Project with VS 2012 and ASP.NET MVC 4Building Out a Clean, REST-ful Web Api Service with a Minimal Web Api ProjectMultitenancy Application Metadata driven (using WCF 4.0, WWF 4.0) http://www.codeproject.com/Articles/650284/Multitenancy-Application- 阅读全文
posted @ 2013-09-20 12:36 张善友 阅读(1453) 评论(0) 推荐(0) 编辑
摘要:软件产品常常会出现这样的情况:产品性能因某些无法预料的瓶颈而受到干扰,导致程序的处理效率降低,性能得不到充分的发挥。如何快速有效地找到软件产品的性能瓶颈,则是我们感兴趣的内容之一。 阅读全文
posted @ 2013-09-08 08:45 张善友 阅读(14579) 评论(19) 推荐(10) 编辑
摘要:各种序列化库的性能数据,ProtoBuf性能强悍,比BinaryFormatter快5倍以上哦,Json库里头ServiceStack.Text性能最好,是Json.NET的2倍以上 阅读全文
posted @ 2013-09-01 08:46 张善友 阅读(7687) 评论(10) 推荐(10) 编辑
摘要:很多的api,例如GitHub’s API 都有流量控制的做法。使用速率限制,以防止在很短的时间量客户端向你的api发出太多的请求.例如,我们可以限制匿名API客户端每小时最多60个请求,而我们可以让更多的经过认证的客户端发出更多的请求。那么asp.net webapi如何实现这样的功能呢?在项目W... 阅读全文
posted @ 2013-07-17 07:31 张善友 阅读(8881) 评论(1) 推荐(2) 编辑
摘要:目前互联网上充斥着大量的关于RESTful API(为了方便,以后API和RESTful API 一个意思)如何设计的文章,然而却没有一个”万能“的设计标准:如何鉴权?API格式如何?你的API是否应该加入版本信息? 阅读全文
posted @ 2013-06-18 07:15 张善友 阅读(4870) 评论(2) 推荐(3) 编辑
摘要:在SOA的世界中,最重要的一个概念就是契约(contract)。在云计算的世界中,有关通信的最重要的概念也是契约。XML具有强大对数据的描述能力,Atom格式和AtomPub都建立在XML之上,在Google和微软的推动下,也已经成为标准。但是,Atom/AtomPub和ODBC/OLEDB这样的真... 阅读全文
posted @ 2013-06-11 10:10 张善友 阅读(12568) 评论(18) 推荐(6) 编辑
摘要:RFC 2188: Returning Values from Forms: multipart/form-data,这份文件说明了在 HTTP POST 讯息中使用多种格式信息的作法,它可以用在许多 REST-based API 的系统,它可以混合多种资料格式并一次传送,当然非文字的资料必须要编码为二进制字符串。 在 RFC 2387 文件中,指出若要传输多种参数,多种资料型态混合的信息时,要... 阅读全文
posted @ 2013-06-07 07:23 张善友 阅读(18274) 评论(3) 推荐(1) 编辑
摘要:直到最近,关于在.NET、Silverlight、Windows Phone和Windows Store之间分享代码的问题之一,依旧是缺少发起HTTP请求的能力。每个框架支持一个或多个HTTP客户端,但在API层面它们互不兼容。要解决该问题,开发者可以创建自己的平台相关适配器,并使用依赖注入把它们添加到有需要的可移植库中。而基本上,这也正是新的可移植HttpClient所做的事情。当然,每个版本的HttpClientHandler都有不同的功能集。所以,为了尽可能地将更多的功能暴露出来,可移植HTTP客户端引入了诸如SupportsUseProxy和SupportsAllowAutoRedir 阅读全文
posted @ 2013-06-03 07:13 张善友 阅读(1498) 评论(1) 推荐(0) 编辑
摘要:大多数情况下,我是一名 ASP.NET开发人员。我不需要指定 MVC 或 Web Form,他们都是微软One ASP.NET战略的核心。我的应用程序往往是混合的,不仅包括Web Form,MVC还包括SignalR和 Web API。不要把ASP.NET想为一个孤立的小岛。它是大社区里的公民。随着越来越多的 ASP.NET 成为开源,而且我们每天努力推动其成为开放的。我们想要让ASP.NET更可插入、 更开放、 更有趣。整个ASP.NET都是开放的Web开发平台,横跨.NET/Mono.One ASP.NET Sneak Peek: Elegant Web Forms and Snowbal 阅读全文
posted @ 2013-05-22 19:22 张善友 阅读(4685) 评论(4) 推荐(0) 编辑
摘要:原文作者Mathieu Fenniak在博文中大呼:不要再设计易碎的Web API 了,否则你的合作伙伴或第三方开发者会因此恨你,而离你远去的。他认为,想设计出相对稳定、牢固的API,关键在于以应用目的为中心。文中还分享了设计优秀API需要注意的几点事项,我们一起来看下: 如果破坏了API,客户会因此而恨你 很多Web API发布后,它就像被牢牢刻在石头上无法做出兼容改变,这是个可怕的现象。倘... 阅读全文
posted @ 2013-05-03 07:37 张善友 阅读(3318) 评论(0) 推荐(0) 编辑