目录

5.0 WebAPI项目主体结构

5.1 总体结构

架构图:

项目使用分层架构,Web层依赖Interfaces存储接口,Service是接口的唯一实现类库,使用 Castle Windsor 实现服务 "Service"注入。
模型包含存储模型(Models)和系统模型(ViewModels).
Core.Web是对Web层的扩展,包含MVC和API控制器基类。

显示层

  • Web应用程序

内核部分

  • 公共类库(Yiim.Common)
  • Web扩展实现(Yiim.Core.Web)

应用层:

  • 存储接口层(Yiim.Interfaces)
  • 存储和存储模型(Yiim.Models)
  • 存储实现成(Yiim.Service)
  • 系统模型(Yiim.ViewModels)

5.2 创建解决方案

创建解决方案“Yiim.UserManagement”:

解决方案完成后效果:

5.3 添加Web层项目

显示层 包含.NET MVC,WebAPI两个部分。
.NET MVC主要返回主页面,控制angularjs 的部分视图的输出。
WebAPI主要返回JSON 数据

项目目标我们选择 "ASP.NET MVC 4 Web Application",因为此项目模板已经集成了 MVC 和 API.

项目类型记得选择为 "WebAPI",

创建完成后项目应该是这样的。

但是有些东西我们不需要。删除我们不需要的东西后Yiim.Web项目的最终效果

删除了部分文件和文件夹,并添加 "App" 这个文件夹。"App" 主要用于存放angularjs,jQuery,css,image 等前端资源文件。

5.4 所有项目创基完毕后

其他类库我们就不在叙述了,按照普通的添加类库即可,项目最终呈现出来的结果是这样的。

5.4 WebAPI 输出类型

WebAPI 返回给浏览器的都是JSON数据,如果我们仅仅只返回集合(List),模型(Model)。显然不能满足我们的需求。还需定义返回的状态,错误信息。输出方式分别对应http协议动作 “DELETE”,"GET","POST","PUT".的输出类型。
其中Get有两个输出类型:单模型输出(GetResult)和集合模型(GetsResult)输出.
放一张整个WebAPI的输出类型类图:

把定义的输出类型放到 系统模型(Yiim.ViewModels)中

Angularjs,WebAPI 搭建一个简易权限管理系统 —— WebAPI项目主体结构(四)的更多相关文章

  1. Angularjs,WebAPI 搭建一个简易权限管理系统

    Angularjs,WebAPI 搭建一个简易权限管理系统 Angularjs名词与概念(一)   1. 目录 前言 Angularjs名词与概念 权限系统原型 权限系统业务 数据库设计和实现 Web ...

  2. Angularjs,WebAPI 搭建一个简易权限管理系统 —— Angularjs 前端主体结构(五)

    目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 6 Angularjs 前端主体结构 6.1 A ...

  3. Angularjs,WebAPI 搭建一个简易权限管理系统 —— 基本功能演示(二)

    目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 基本功能演示(二) 非常抱歉这个月实在太忙,一直 ...

  4. Angularjs,WebAPI 搭建一个简易权限管理系统 —— 系统业务与实现(三)

    目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 系统业务与实现(二) 上一章我们讲解的 Angu ...

  5. Angularjs,WebAPI 搭建一个简易权限管理系统 —— Angularjs名词与概念(一)

    目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 2. 前言 Angularjs开发CRUD类型的 ...

  6. [后端人员耍前端系列]AngularJs篇:使用AngularJs打造一个简易权限系统

    一.引言 上一篇博文已经向大家介绍了AngularJS核心的一些知识点,在这篇博文将介绍如何把AngularJs应用到实际项目中.本篇博文将使用AngularJS来打造一个简易的权限管理系统.下面不多 ...

  7. AngularJs打造一个简易权限系统

    AngularJs打造一个简易权限系统 一.引言 上一篇博文已经向大家介绍了AngularJS核心的一些知识点,在这篇博文将介绍如何把AngularJs应用到实际项目中.本篇博文将使用AngularJ ...

  8. 亲手搭建一个基于Asp.Net WebApi的项目基础框架1

    目标:教大家搭建一个简易的前后端分离的项目框架. 目录: 1:关于项目架构的概念 2:前后端分离的开发模式 3:搭建框架的各个部分 这段时间比较闲,所以想把之前项目里用到的一些技术写到博客里来,分享给 ...

  9. 使用EF Code First搭建一个简易ASP.NET MVC网站,允许数据库迁移

    本篇使用EF Code First搭建一个简易ASP.NET MVC 4网站,并允许数据库迁移. 创建一个ASP.NET MVC 4 网站. 在Models文件夹内创建Person类. public ...

随机推荐

  1. alt属性和title属性差异---终于分清楚了!

    凡是接触过前端的开发者,相信都会接触到<img>标签,自然alt title更是不会陌生,但对他们真正的含义和使用方法,你确定了解吗? 参考: http://www.junchenwu.c ...

  2. WindowsCE project missing - 转

    00x0 前言 之前在Windows 7系统中开发的WindowsCE项目,最近换成Windows 10系统,需要将项目进行修改,打开项目后提示如下错误: 无法读取项目文件“App.csproj”.. ...

  3. PHP cURL应用实现模拟登录与采集使用方法详解

    对于做过数据采集的人来说,cURL一定不会陌生.虽然在PHP中有file_get_contents函数可以获取远程链接的数据,但是它的可控制性太差了,对于各种复杂情况的采集情景,file_get_co ...

  4. iOS开发之应用内检测手机锁屏,解锁状态

    iPhone的锁屏监测分为两种方式监听: 1. 程序在前台,这种比较简单.直接使用Darwin层的通知就可以了: #import <notify.h> #define Notificati ...

  5. mysql查看和修改最大数量

    通常,mysql的最大连接数默认是100, 最大可以达到16384.1.查看最大连接数:show variables like '%max_connections%';2.修改最大连接数方法一:修改配 ...

  6. [转]非OpenVZ下利用谷歌TCP-BBR协议单边加速你的VPS

    前段时间谷歌推出了新的 TCP-BBR 开源算法,可以起到单边加速 TCP 连接的效果,也就是不用客户端的配合,用来替代收费的锐速再合适不过,毕竟开源免费.TCP-BBR 的目的是要尽量跑满带宽,并且 ...

  7. 【Thinking in Java-CHAPTER 3】操作符

    优先级 赋值 对象在使用c=d,那么c和d都指向原本只有d指向的那个对象. 方法调用中的别名问题:当一个对象作为参数传递到一个函数中,函数改变了这个参数,则改变了传递进来的对象: 自增和自减 浮点型的 ...

  8. mybatis配置文件(其中,注意节点先后顺序)

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC & ...

  9. maven中文乱码问题——编译错误

    新建了个web应用,用maven配置的. Java源代码采用了utf-8编码格式. 本地编译打包,报错误.   由于系统默认编码是GBK,因此需要采用utf-8来编译. 采用如下方式: 在pom中添加 ...

  10. 代码演示 .NET 4.5 自带的 ReadonlyCollection 的使用

    代码如下: 1. using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...