第1章 微软“云+端”战略 1
1.1 云计算介绍 1
1.1.1 我们为什么要拥抱云计算 1
1.1.2 当今计算模型的变化 2
1.1.3 云计算是什么 4
1.1.4 什么样的云是一朵好云 5
1.2 微软的公有云Azure简介 7
1.3 端的变革 9
1.4 微软的端战略 10
第2章 革命性的ASPN.ET Core 14
2.1 完全开源的ASPN.ET Core 14
2.1.1 N.ET Core实现了开源跨平台的使命 15
2.1.2 ASPN.ET是什么 16
2.1.3 ASPN.ET早期开源 19
2.2 ASPN.ET Core的新特性 20
2.2.1 使用JSON格式配置文件 21
2.2.2 使用OWIN与IIS解耦 21
2.2.3 全新的HttpContext 22
2.2.4 内置依赖注入 23
2.2.5 支持开放的包管理工具 23
2.2.6 采用即时编译运行 24
2.3 M VC 6的新特性 24
2.3.1 合并技术栈 24
2.3.2 改进路由功能 25
2.3.3 模型绑定 26
2.3.4 TagHelper 27
2.4 dotnet命令行工具 28
2.4.1 dotnet命令 28
2.4.2 dotnet-new 28
2.4.3 dotnet-restore 29
2.4.4 dotnet-run 29
2.4.5 dotnet-build 29
2.4.6 dotnet-publish 30
第3章 开源跨平台的设备端开发 31
3.1 移动开发简史 31
3.1.1 Windows的精简版Windows CE 31
3.1.2 工控起家的Symbian 32
3.1.3 Android的革命性崛起 33
3.2 移动开发的显著特性 33
3.2.1 用户体验是第一位的 33
3.2.2 移动设备的资源限制颇多 35
3.2.3 移动应用程序需要处理移动设备的特殊事件 35
3.2.4 移动应用程序需要处理好数据同步和数据冲突的问题 36
3.3 主流跨平台移动开发技术介绍 36
3.3.1 QT Library介绍 37
3.3.2 Xamarin介绍 38
3.3.3 Cordova介绍 39
3.4 移动应用开发方式的选择 40
3.4.1 Web页面还是App 40
3.4.2 移动应用开发方式的选择 42
3.4.3 Cordova还是Xamarin 43
第4章 项目介绍和需求分析 45
4.1 项目展望 45
4.2 系统需求 45
4.3 网站功能需求 46
4.3.1 首页功能 46
4.3.2 搜索功能 46
4.3.3 商品详细信息展示 46
4.3.4 购物车功能 47
4.3.5 订单 47
4.3.6 用户账户管理 47
4.4 移动端程序功能需求 47
4.4.1 主界面功能 47
4.4.2 商品信息展示功能 47
4.4.3 购物车功能 48
4.4.4 订单功能 48
第5章 构建开发环境 49
5.1 安装Visual Studio 49
5.1.1 在云端创建开发机 49
5.1.2 Visual Studio的版本选择 54
5.1.3 安装Visual Studio 2015 Community版本 54
5.1.4 安装小贴士 57
5.2 启用Visual Studio Online 60
5.3 使用Azure PowerShell管理缓存服务 64
5.4 安装ASP.NET Core 1.0和Apache Cordova 65
第6章 构建实体模型 67
6.1 识别实体模型 67
6.1.1 Muscle Fellow用户关键用例 67
6.1.2 实体类型之间的关系 68
6.2 创建实体模型项目 69
6.2.1 Entity Framework Core介绍 69
6.2.2 创建Muscle Fellow.Models项目 70
6.3 创建实体模型 72
6.3.1 创建用户模型 72
6.3.2 创建商品模型 74
6.3.3 创建商品图片模型 75
6.3.4 创建品牌模型 76
6.3.5 创建商品类型模型 77
6.3.6 创建购物车模型 77
6.3.7 创建订单实体 78
6.3.8 创建订单明细实体 79
6.3.9 创建送货地址实体 80
6.3.10 配置Muscle Fellow数据上下文对象 81
6.3.11 将实体对象映射到数据库 82
6.4 创建数据访问项目 84
6.4.1 什么是Repository模式 84
6.4.2 创建Muscle Fellow.Data项目 85
6.4.3 设计和实现Repository模式 86
第7章 创建Web网站 89
7.1 创建Web项目 89
7.1.1 创建Muscle Fellow.Web项目 89
7.1.2 ASPN.ET Core Web项目基本结构 89
7.1.3 ASPN.ET Core Web项目的入口 92
7.1.4 引用前端框架 93
7.1.5 引用NuGet包 95
7.2 依赖注入 95
7.3 实现商品展示相关功能 97
7.4 实现首页功能 102
7.5 实现购物车的相关功能 104
7.6 实现收货地址管理相关功能 108
7.7 实现订单相关功能 113
第8章 创建Web API 119
8.1 几种远程调用方式 119
8.1.1 套接字调用 119
8.1.2 RPC服务调用 120
8.1.3 Web Service调用 121
8.1.4 Web API调用 121
8.2 设计好用的Web API 122
8.2.1 Web API应具有版本标识 122
8.2.2 Web API应简单明了 122
8.2.3 选择恰当的数据格式 123
8.3 Web API的配置和验证 124
8.3.1 实现ASPN.ET Core配置 124
8.3.2 Web API的用户身份验证 125
8.4 创建Muscle Fellow.API项目 128
8.5 设计Muscle Fellow的Web API 131
8.5.1 商品实体Web API的设计 131
8.5.2 商品实体WebAPI的实现 132
8.5.3 商品实体Web API的调试 136
8.5.4 用户账户实体Web API的设计 139
8.5.5 用户账户实体Web API的实现 140
8.5.6 购物车实体 Web API的设计 143
8.5.7 购物车实体Web API的实现 144
8.5.8 订单实体Web API的设计 146
8.5.9 订单实体Web API的实现 146
第9章 在Azure上部署服务 149
9.1 在Azure上部署示意 149
9.2 在Azure上部署的注意事项 150
9.2.1 永远要为虚拟机附加一块磁盘 150
9.2.2 故障域和可用性集 151
9.2.3 SQL.Azure PaaS服务 151
9.3 在Azure上创建虚拟网络 152
9.4 在Azure上创建Linux虚拟机 154
9.5 为Linux虚拟机附加磁盘 159
9.6 在Ubuntu上部署.NET Core 162
9.7 迁移SQL数据库到云端 163
9.8 部署Muscle Fellow.Web和Muscle Fellow.API 169
9.8.1 发布前修改配置 169
9.8.2 制作和部署发布包 169
9.9 使用Nginx实现反向代理 170
9.10 设置虚拟机端口映射 173
第10章 AngularJS和Ionic Framework 176
10.1 AngularJS入门 176
10.1.1 Angular基本概念 176
10.1.2 AngularJS模块 177
10.1.3 AngularJS的作用域 178
10.1.4 控制器 178
10.1.5 依赖注入 178
10.1.6 HTML页面中加载AngularJS 179
10.1.7 AngularJS的全局API 179
10.1.8 AngularJS的数据绑定 180
10.2 Ionic Framework入门 181
10.2.1 模态视图 181
10.2.2 SideMenu侧面菜单 183
10.2.3 导航 183
10.2.4 列表控件 184
第11章 使用Cordova开发跨平台移动应用 186
11.1 创建Ionic项目 186
11.2 开发Cordova版本移动应用 187
11.2.1 Ionic项目结构介绍 187
11.2.2 Ionic项目的启动过程 188
11.2.3 实现商品列表界面 191
11.2.4 实现商品详细信息界面 193
11.2.5 实现用户登录 197
11.2.6 实现购物车功能 198
11.3 项目编译调试 200
11.3.1 Cordova项目适用的调试器 200
11.3.2 项目调试策略 203
11.3.3 测试小贴士 204
11.3.4 在OS X上编译 204
第12章 使用Xamarin开发跨平台移动应用 207
12.1 准备工作 207
12.1.1 安装Xamarin 207
12.1.2 配置苹果OS X系统 209
12.1.3 实现Visual Studio和OS X系统的连接 210
12.2 开发Xamarin版本移动应用 211
12.2.1 创建Xamarin应用程序项目 211
12.2.2 Xamarin项目结构介绍 212
12.2.3 认识可移植项目 215
12.2.4 实现商品列表界面 217
12.2.5 iOS项目构建和调试 220