C#净化版WebApi框架】的更多相关文章

前言 我们都知道WebApi是依赖于Asp.Net MVC的HttpRouteCollection进行路由 . 但WebApi和MVC之间是没有依赖关系的, WebApi的基类ApiController继承于IHttpController,而MVC的基类Controller 继承于IController. WebApi和MVC虽然都使用HttpRouteCollection进行路由,但WebApi经历的通道是ServicesContainer,而MVC经历通道还是原始的IHttpModule.…
很久没自己写东西啦,早该好好总结一下啦!一个大师说过“一个问题不应该被解决两次!”,除了一个好脑筋,再就是要坚持总结. 最近需要搞个系统的插件式框架,我参照World Wind的插件方式构建了个插件框架,可以参照<WorldWind学习系列五:插件加载过程全解析>,下面与大家分享一下. 初始化时,加载前面两个插件,可以动态加载KeyBoarderLoader,如下图: 该插件框架是WW插件框架的精简改造版,非常适用于插件式系统开发,也希望帮助大家学习一下WW的插件加载机制. 缺陷在于:未实现事…
当我们学习到一定程度的时候,我们会想要去深入了解代码底层的东西,也更想拥有一个属于自己的框架,当然,博主也正是如此.本文可能成为编写一个webapi框架的开端.有研究MVC框架的朋友会发现,mvc框架的路由MvcRouteHandler是实现了IRouteHandler而得以实现我们路由,而IRouteHandler只需要返回一个对像,那就是IHttpHandler,而IHttphandler正是处理http请求的.欣喜之中,我们发现我们已经拥有了编写一个webapi最核心的东西,路由以及请求处…
当我们学习到一定程度的时候,我们会想要去深入了解代码底层的东西,也更想拥有一个属于自己的框架.本文可能成为编写一个webapi框架的开端.有研究MVC框架的朋友会发现,mvc框架的路由MvcRouteHandler是实现了IRouteHandler而得以实现我们路由,而IRouteHandler只需要返回一个对像,那就是IHttpHandler,而IHttphandler正是处理http请求的.欣喜之中,我们发现我们已经拥有了编写一个webapi最核心的东西,路由以及请求处理.可能本系列文章不会…
前言 c#的依赖注入框架有unity.autofac,两个博主都用过,感觉unity比较简单而autofac的功能相对更丰富(自然也更复杂一点),本篇将基于前几篇已经创建好的webapi项目,引入autofac功能. 前面我们已经搭建好webapi,并用了owin技术.这篇的autofac也将基于这两种技术进行开发. 步骤 引入包 共三个nuget包:Autofac.WebApi2,Autofac.Owin,Autofac.WebApi2.Owin    autofac注册组件 using Sy…
上一篇:创建项目(二) 在上一篇里,我们已经创建好了webapi应用,并已经部署到iis里,本篇讲如何用owin自宿主或是iis宿主来部署webapi应用. owin介绍 传统的asp.net网站只能部署在iis下,缺点是网站应用和服务器(即iis)耦合,这样便导致一个简单的请求在最终到达我们自己写的业务代码之前还要经过一系列iis自带的各种modules和handlers及其它的机制(asp.net request pipeline),在我的开发经验中就经常遇到各种iis的问题导致一个简单的请…
上篇:webapi快速框架搭建-创建项目(一) 在"创建项目(一)"这一篇里已经创建了一个空的项目,但项目上什么都没有,本篇描述如何将webapi配置成部署在iis上. 步骤 用nuget添加webapi包 空项目默认是没有webapi相关的dll,要自己去nuget里安装.   创建Global.asax全局应用程序类   所有以iis为载体的网站应用的入口为HttpApplication类的Application_Start方法(不管是webapi还是mvc还是web form都是…
前言 本篇讲怎么在前几篇已经创建好的项目里加上日志处理机制,我们采用Log4net技术.跟多的log4net技术的细节请查阅log4net的官网. log4net官网:http://logging.apache.org/log4net/ 步骤 引用log4net包 在nuget里引入包 此包没有任何的依赖项 编写日志处理代码 现在项目已经用到了autofac的依赖注入技术(查看webapi框架搭建-依赖注入之autofac),如果不用依赖注入,log4net的用法类似下面的代码 using Sy…
<面向对象的WebAPI框架XXL-HEX>    一.简介 1.1 概述 XXL-HEX 是一个简单易用的WebAPI框架, 拥有 "面向对象.数据加密.跨语言" 的特点.目标是: 提高Web API (如 Android.IOS 等APP接口, 或者 unity3d 等游戏服务端接口) 的开发体验以及开发效率.现已开放源代码,开箱即用. 1.2 特性 1.面向对象: 一个API接口对应 "一个Handler" 和 "Requset对象/Re…
webapi框架搭建系列博客 前言 上一篇我们已经完成了项目的日志管理,在项目开发中日志会经常记录程序中的异常,供后续问题排查使用.本篇讲如何在webapi里加入异常处理机制. 目的和原则 1.程序任何地方都不能catch掉异常,如果要catch也请重新throw异常或是将异常记录到日志里.避免异常被“吃掉“,导致无法排查程序的bug. 2.webapi接口的”请求成功“和”请求失败“以一定的标准规范提供给外部 我的规范为: 所有的成功请求返回200(response的status为200),返…