.net ネイティブアプリケーションからCloud Databaseへの接続 (CDBC-トライアル編)


概要

クラウドへの移行が加速する昨今,.net アプリケーションからCloud 上のDatabaseへの接続の需要も高まった。
Cdbc (Cloud Database Connectivity) というCloud Databaseに接続できる.NETライブラリがリリースされ、Cloud databaseを利用する.net アプリケーション(特にWindowsネイティブアプリ)の開発に新たな選択肢が増えた。

構成図

簡単にいうと、Cdbcはクラウト上のデータベースへのプロキシ接続を提供するツール。

CDBCはCdbc ClientとCdbc Servieによって構成されている。 Cdbc ClientはCdbc Service経由してデータベースへアクセスする。Cdbc Serviceはプロキシ機能提供する。

特徴

  1. https プロトコルを使っている、クライアント側、サーバー側DBのポート開放不要。
  2. 主要なデータベースを対応している(Oracle , SqlServer , MySql , PostgreSql)。
  3. 開発方法はODP.net、SqlClient、MySQL Connector / NET、およびNpgsqlと同じ構文。
  4. サーバー側(Cdbc Service)の開発不要、Cdbc Serviceはいくつかのセキュリティ対策を講じている。

トライアル

CDBCの開発者はCDBC ClientのサンプルアプリケーションとCDBC service のサンドボックス環境を提供している、githubからサンプルアプリケーションを取得したらすぐサンプルソース、動作などを確認できる。
※試すだけならCDBC service、Databaseの用意、セットアップは不要。
demo環境:
http://demo.cdbc.cloud/

2つサンプル提供されている
1. シンプルなcdbc Clientのサンプル
2. cdbcを使って開発したPC online Storeのサンプル。
シナリオ:
  店員はWindowsアプリケーションを使って商品メンテナンス
  お客さんはweb applicationを使ってonlineショッピング  

今回は2番のサンプルを試してみる。
https://github.com/ricct/cdbcsystemsample

手順

前提

 git , Visual studio 2017 or 2019 を インストールされていること

1. githubからclone する (フォルダー: c:\test)

cd c:\test
git clone https://github.com/ricct/cdbcsystemsample.git

  

2. ダウンロードされたCdbcOnlineStoreSystemSample.slnを開く

Management とPcStore二つのプロジェクトを確認できる。
Management - 商品管理サンプル
PcStore- online shopping siteサンプル

3.まずManagementの動作を確認してみる。

3.1 Managmentはデフォルトスタットアッププロジェクトなので、実行ボタンを押す。下記の画面出る。

https://github.com/ricct/cdbcsystemsample にuserIdとUserPasswordを記述されている。
2019/08/11現在:

Property Value
userId demouser1
UserPassword X7bgGMLh

3.2 ログインしたら、商品一覧画面表示されている。

3.3 商品を新規追加してみる
[New]ボタンを押して、ダミーの商品を追加して、保存

3.4 一覧画面で追加されていることを確認

3.5 Web 画面で商品追加されていること確認。
ブラウザで下記のURLを開く
https://demo.cdbc.cloud/pcstore/

※全員同じDB環境を使っている、管理人どのぐらいの頻度で環境リセットするのがわからないので、確認終わったら、追加した商品を削除しましょう。

ソースを確認

Selectサンプル

DMLサンプル

ODP.netと類似していること確認できる。

おわりに

IaaS上インストールされたDBや、AWS RDS、Oracle Autonomous などのPaaSも対応している、複雑な設定なく簡単にCloud上のデータベースに接続するツールとしてCDBCは検討、検証する価値があると思う。
新規開発はもちろん、Windows Server 2008/2008 R2の延長サポート終了に伴うCloud移行の場合の活用も期待できる。c# , vb.net開発したclient/serverアプリケーションのcloud移行は短時間、少ない改修で実現できる。

関連ページ

CDBC公式ページ
CDBC Client @ nuget
紹介動画(字幕有)
AWS RDSへ接続の構築手順
CDBC紹介