

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 範例應用程式
<a name="sample-app"></a>

本節為評估從關聯式資料庫管理系統 (RDBMS) 遷移至 NoSQL 資料庫的團隊提供指引，並將 Amazon DynamoDB 作為目標 NoSQL 資料庫。它根據從 Microsoft SQL Server 遷移到 DynamoDB 的應用程式案例研究，解決了以下兩個挑戰：
+ 將關聯式資料從 RDBMS 中的多個資料表映射到 DynamoDB 中的文件結構和索引鍵值集合
+ 變更應用程式中的資料存取層，以在 DynamoDB 中執行建立、讀取、更新和刪除 (CRUD) 操作

討論和指導包括使用適用於 .NET 的 AWS SDK，以 C\# 撰寫的程式碼範例。

範例 Web 應用程式會維護組織中使用的數百個應用程式的組態，包括每個應用程式、中繼資料、搜尋關鍵字等允許的使用者和主機 (Web、行動裝置、桌面）。應用程式為組織中使用的各種應用程式的不同版本提供組態維護和搜尋功能。使用稽核資料表追蹤組態變更。以下是範例應用程式的典型工作流程：

1. 建立測試應用程式的組態。

1. 將測試應用程式組態提升為生產 （也就是建立生產應用程式組態）。

1. 更新和稽核變更 （建立稽核記錄、呼叫變更的應用程式組態）。

## 舊的資料存取模式
<a name="source-stack"></a>

來源技術堆疊包含下列項目：
+ ASP.NET Web API 控制器 
+ 商業物件 
+ ASP.NET 實體架構 (EF) 
+ ADO.NET Data Services
+ Microsoft SQL Server 2016

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

## 新的資料存取模式
<a name="target-stack"></a>

遷移的應用程式會根據組態檔案中提供的組態金鑰 (`UseSqlDataSource`) 同時支援 SQL Server 和 DynamoDB。如下圖所示，如果 的值`UseSqlDataSource`為 `true`，則應用程式會連線至 SQL Server。如果值為 `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_tw/prescriptive-guidance/latest/modernization-rdbms-dynamodb/images/target-tech-stack.png) 