Upload
yuta-matsumura
View
328
Download
0
Embed Size (px)
Citation preview
Database tools for .NET Core
2017/07/28 Fukuoka.NET #7
@tsubakimoto_s
2
自己紹介
•松村 優大 (MLBお兄さん)
•株式会社オルターブース
• Chief Technical Architect
•C# / PHP / Azure / AWS
•Microsoft MVP for VSDT
所属 コミュニティ
(MLBネタは非公開)
4
2017/06/25 JXUG福岡にて
5https://www.slideshare.net/YutaMatsumura/microsoft-azuredatabase-as-a-service-77239153
RDB
6
7
定番の構成
8
定番の構成
“SQL Server”以外という選択肢
9
10
11
12
Azure DB for MySQL
13
•PaaSとしてのMySQL
•バージョン: 5.6 or 5.7
•価格: コンピュートユニットとストレージ
価格レベル Basic Standard Premium
最大CU数 100 2,000 ×
最大ストレージ 1,050GB 10,000GB ×
バックアップ保持期間
7日間 35日間 35日間
Azure DB for MySQL
•MySql.Data
• NuGetでインストール
• .NET Core向けドライバはプレビュー
•リファレンス
• http://insidemysql.com/mysql-connector-net-for-net-core-1-0/
14https://gist.github.com/tsubakimoto/fae1a93f8484e25fce62b6690ac84e74#file-mysql-cs
16
Azure DB for PostgreSQL
17
•PaaSとしてのPostgreSQL
•バージョン: 9.5 or 9.6
•価格: コンピュートユニットとストレージ
価格レベル Basic Standard Premium
最大CU数 100 2,000 ×
最大ストレージ 1,050GB 10,000GB ×
バックアップ保持期間
7日間 35日間 35日間
Azure DB for PostgreSQL
•Npgsql
• NuGetでインストール
•リファレンス
• http://www.npgsql.org/doc/
18https://gist.github.com/tsubakimoto/fae1a93f8484e25fce62b6690ac84e74#file-postgresql-cs
こんな記事がありました
20http://qiita.com/momotaro98/items/c4fe0fff0c173e879f2d
using
•usingステートメントのほう
• usingディレクティブではない
• IDisposable実装済みのオブジェクトで利用可能
•オブジェクトの の実行忘れを防ぐ
21
実装の違い
•mysql/mysql-connector-net• MySqlConnectionクラス
• Dispose()• 実装されているが、Close処理はない
•npgsql/npgsql• NpgsqlConnectionクラス
• Dispose(bool disposing)• 実装されており、Close処理もある
22
ところで
23
Azureの価格が気になる?
24
Azure DB for PostgreSQL
25
•PaaSとしてのPostgreSQL
•バージョン: 9.5 or 9.6
•価格: コンピュートユニットとストレージ
価格レベル Basic Standard Premium
最大CU数 100 2,000 ×
最大ストレージ 1,050GB 10,000GB ×
バックアップ保持期間
7日間 35日間 35日間
コンピュートユニット(CU)
•50CU : 0.5コア
•100CU : 1コア
•2000CU : 20コア
性能比較の参考に把握しとくと○
26
Basic
Standard
https://docs.microsoft.com/ja-jp/azure/mysql/concepts-compute-unit-and-storage
ORマッパー
•使ったことある
• Entity Framework Core
• Dapper
•使ったことない
• DBreeze
• Limebean
• etc
27https://github.com/thangchung/awesome-dotnet-core#orm
NoSQL
28
29
Cosmos DB
•グローバル分散型
•4つのAPI
• Document DB
• MongoDB
• Gremlin (プレビュー※)
• Azure Tables (プレビュー※)
※APIがプレビュー
30https://gist.github.com/tsubakimoto/fae1a93f8484e25fce62b6690ac84e74#file-mongodb-cshttps://gist.github.com/tsubakimoto/fae1a93f8484e25fce62b6690ac84e74#file-documentdb-cs
Cosmos DBのグローバル分散
•他リージョンに読取専用のデータベースをレプリケーション
•近いリージョンのDBにアクセス
31
Cosmos DB (DocumentDB API)
• Microsoft.Azure.DocumentDB.Core
• NuGetでインストール
•リファレンス• https://docs.microsoft.com/ja-
jp/azure/cosmos-db/documentdb-sdk-dotnet-core
•エミュレータ• https://docs.microsoft.com/ja-
jp/azure/cosmos-db/local-emulator
32
Cosmos DB (MongoDB API)
•MongoDB.Driver
• NuGetでインストール
•リファレンス
• https://github.com/mongodb/mongo-csharp-driver
33
まとめ
• .NET Coreは
• SQL Server以外のRDBも使える
• MySQLやPostgreSQL
• DocumentDB以外のNoSQLも使える
• MongoDB
•ORマッパーでRDBの差を吸収
•フライボールレボリューション
34