- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
创建ASP.NETWebAPI2.0应用实例
由于ASP.NETWebAPI具有与ASP.NETMVC类似的编程方式,再加上目前市面上专门介绍ASP.NETWebAPI的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NETMVC的书籍“额外奉送”的),以至于很多人会觉得ASP.NETWebAPI仅仅是ASP.NETMVC的一个小小的扩展而已,自身并没有太多“大书特书”的地方。而真实的情况下是:ASP.NETWebAPI不仅仅具有一个完全独立的消息处理管道,而且这个管道比为ASP.NETMVC设计的管道更为复杂,功能也更为强大。虽然被命名为“ASP.NETWebAPI”,但是这个消息处理管道却是独立于ASP.NET平台的,这也是为什么ASP.NETWebAPI支持多种寄宿方式的根源所在。
为了让读者朋友们先对ASP.NETWebAPI具有一个感性认识,接下来我们以实例演示的形式创建一个简单的ASP.NETWebAPI应用。这是一个用于实现“联系人管理”的单页Web应用,我们以Ajax的形式调用WebAPI实现针对联系人的CRUD操作。
一、构建解决方案
VisualStudio为我们提供了专门用于创建ASP.NETWebAPI应用的项目模板,借助于此项目模板提供的向导,我们可以“一键式”创建一个完整的ASP.NETWebAPI项目。在项目创建过程中,VisualStudio会自动为我们添加必要的程序集引用和配置,甚至会为我们自动生成相关的代码,总之一句话:这种通过向导生成的项目在被创建之后其本身就是一个可执行的应用。
对于IDE提供的这种旨在提高生产效率的自动化机制,我个人自然是推崇的,但是我更推荐读者朋友们去了解一下这些自动化机制具体为我们做了什么?做这些的目的何在?哪些是必需的,哪些又是不必要的?正是基于这样的目的,在接下来演示的实例中,我们将摒弃VisualStudio为我们提供的向导,完全在创建的空项目中编写我们的程序。这些空项目体现在如右图所示的解决方案结构中。
如右图所示,整个解决方案一共包含6个项目,上面介绍的作为“联系人管理器”的单页Web应用对应着项目WebApp,下面的列表给出了包括它在内的所有项目的类型和扮演的角色。
·Common:这是一个空的类库项目,仅仅定义了表示联系人的数据类型而已。之所以将数据类型定义在独立的项目中,只要是考虑到它会被多个项目(WebApi和ConsoleApp)所使用。
WebApi:这是一个空的类库项目,表现为HttpController类型的WebAPI就定义在此项目中,它具有对Common的项目引用。
WebHost:这是一个空的ASP.NETWeb应用,它实现了针对ASP.NETWebAPI的WebHost寄宿,该项目具有针对WebApi的项目引用。
SelfHost:这是一个空的控制台应用,旨在模拟ASP.NETWebAPI的SelfHost寄宿模式,它同样具有针对WebApi的项目引用。
WebApp:这是一个空的ASP.NETWeb应用,代表“联系人管理器”的网页就存在于该项目之中,至于具体的联系人管理功能,自然通过以Ajax的形式调用WebAPI来完成。
ConsoleApp:这是一个空的控制台应用,我们用它来模拟如何利用客户端代理来实现对WebAPI的远程调用,它具有针对Common的项目引用。
二、定义WebAPI
在正式定义WebAPI之前,我们需要在项目Common中定义代表联系人的数据类型Contact。简单起见,我们仅仅为Contact定义了如下几个简单的属性,它们分别代表联系人的ID、姓名、联系电话、电子邮箱和联系地址。
1:publicclassContact
2:{
3:publicstringId{get;set;}
4:publicstringName{get;set;}
5:publicstringPhoneNo{get;set;}
6:publicstringEmailAddress{get;set;}
7:publicstringAddress{get;set;}
8:}
表现为HttpController的WebAPI定义在WebApi项目之中,我们一般将ApiController作为继承的基类。ApiController定义在“System.Web.Http.dll”程序集中,我们可以在目录“%ProgramFiles%\MicrosoftASP.N
您可能关注的文档
- 冬天上海休闲度假好去处.docx
- 春节家庭晚会主持词.docx
- 大学生优秀自我介绍.docx
- 贷款装修申请书.docx
- 教科版科学三年级下册3.蚕长大了 (课件) (1).pptx
- 教科版科学三年级下册。4.物体在斜面上运动 (课件) (2).pptx
- 人教版三年级上册数学第八单元 几分之一(课件).pptx
- 岭南版美术一年级上册第12课 有趣的吊饰(课件).pptx
- 教科版科学三年级下册4.月相变化的规律 (课件).pptx
- 北师大版六年级下册数学《《总复习 数与代数》》(课件) (8).pptx
- 教科版科学三年级下册,3.直线运动和曲线运动 (课件).pptx
- 教科版科学三年级下册8.动物的一生 (课件) (2).pptx
- 教科版科学三年级下册2.阳光下物体的影子+(课件).pptx
- 教科版科学三年级下册5.茧中钻出了蚕蛾 (课件) (3).pptx
- 人教版四年级上册数学《点到直线的距离》(课件).pptx
- 人教版四年级上册数学《平行与垂直》(课件) (2).pptx
- 教科版科学三年级下册。4.物体在斜面上运动 (课件) (1).pptx
- 教科版科学四年级下册1.电和我们的生活 (课件) (1).pptx
- 广西版美术一年级下册诱人的水果(课件).pptx
- 人教版六年级下册数学数的认识(课件).pptx
最近下载
- 部编人教版六年级上册语文全册教学课件+单元复习课件.pptx
- 2024至2030年中国产业金融服务市场预测与投资规划分析报告.docx
- ClinicalPharmacy(临床药学英文版).ppt
- 「情绪管家」教学教案.pdf
- Q_SY 05593-2018 输油管道站场储罐区防火堤技术规范.docx VIP
- 2024年初级会计实务考试真题答案.pdf VIP
- 新教材 高中英语外研版必修第二册全册各单元英语作文写作指导.doc
- 中国国家标准 GB/T 44461.1-2024智能网联汽车 组合驾驶辅助系统技术要求及试验方法 第1部分:单车道行驶控制.pdf
- 运维开发人员KPI绩效考核方案.docx
- 医院职称聘任管理办法修订(聘评分离).pdf
文档评论(0)