

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 示例应用程序
<a name="sample-app"></a>

本节为正在评估从关系数据库管理系统 (RDBMS) 迁移到 NoSQL 数据库的团队提供指导，重点介绍作为目标 NoSQL 数据库的 Amazon DynamoDB。它基于对从微软 SQL Server 迁移到 DynamoDB 的应用程序的案例研究，解决了以下两个难题：
+ 将 RDBMS 中多个表中的关系数据映射到 DynamoDB 中的文档结构和键值集合
+ 更改应用程序中的数据访问层以在 DynamoDB 中执行创建、读取、更新和删除 (CRUD) 操作

讨论和指南包括使用适用于.NET 的 AWS SDK 以 C\# 编写的代码示例。

示例 Web 应用程序维护组织中使用的数百个应用程序的配置，包括每个应用程序允许的用户和主机（Web、移动设备、桌面）、元数据、搜索关键字等。该应用程序为组织中使用的各种应用程序的不同版本提供配置维护和搜索功能。使用审计表跟踪配置更改。以下是示例应用程序的典型工作流程：

1. 为测试应用程序创建配置。

1. 将测试应用程序配置提升到生产环境（即创建生产应用程序配置）。

1. 更新和审计更改（创建审计记录，调用更改后的应用程序配置）。

## 旧的数据访问模式
<a name="source-stack"></a>

源技术堆栈包括以下内容：
+ ASP.NET 网络 API 控制器 
+ 业务对象 
+ ASP.NET 实体框架 (EF) 
+ ADO.NET 数据服务
+ 微软 SQL Server 2016

 ![Source RDBMS technology stack and data access pattern](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/modernization-rdbms-dynamodb/images/source-tech-stack.png) 

## 新的数据访问模式
<a name="target-stack"></a>

根据配置文件中提供的配置密钥 `UseSqlDataSource` ()，迁移后的应用程序同时支持 SQL Server 和 DynamoDB。如下图所示，如果的值为，则应用程序将连接到 SQL Server。`UseSqlDataSource` `true`如果值为`false`，则应用程序将连接到 DynamoDB。

新的技术堆栈包括以下内容：
+ ASP.NET Web API 控制器 — 通过各种 API 端点接受 HTTP 请求。
+ 业务对象和服务-具有处理输入和从数据库获取的数据的业务逻辑的类和对象。
+ NoSQL 实体和模型 — 映射到 DynamoDB 中存储的项目的类。
+ AWS SDK — 提供对 DynamoDB 和其他服务的编程访问。 AWS 
+ DynamoDB — 用于存储应用程序数据的数据库。

 ![Target NoSQL technology stack and data access pattern](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/modernization-rdbms-dynamodb/images/target-tech-stack.png) 