32
Database tools for .NET Core 2017/07/28 Fukuoka.NET #7 @tsubakimoto_s

Database tools for .NET Core

Embed Size (px)

Citation preview

Page 1: Database tools for .NET Core

Database tools for .NET Core

2017/07/28 Fukuoka.NET #7

@tsubakimoto_s

Page 2: Database tools for .NET Core

2

自己紹介

•松村 優大 (MLBお兄さん)

•株式会社オルターブース

• Chief Technical Architect

•C# / PHP / Azure / AWS

•Microsoft MVP for VSDT

所属 コミュニティ

Page 3: Database tools for .NET Core

3

https://mysaucefactory.com/

Page 4: Database tools for .NET Core

(MLBネタは非公開)

4

Page 5: Database tools for .NET Core

2017/06/25 JXUG福岡にて

5https://www.slideshare.net/YutaMatsumura/microsoft-azuredatabase-as-a-service-77239153

Page 6: Database tools for .NET Core

RDB

6

Page 7: Database tools for .NET Core

7

定番の構成

Page 8: Database tools for .NET Core

8

定番の構成

Page 9: Database tools for .NET Core

“SQL Server”以外という選択肢

9

Page 10: Database tools for .NET Core

10

Page 11: Database tools for .NET Core

11

Page 12: Database tools for .NET Core

12

Page 13: Database tools for .NET Core

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日間

Page 14: Database tools for .NET Core

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

Page 15: Database tools for .NET Core

16

Page 16: Database tools for .NET Core

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日間

Page 17: Database tools for .NET Core

Azure DB for PostgreSQL

•Npgsql

• NuGetでインストール

•リファレンス

• http://www.npgsql.org/doc/

18https://gist.github.com/tsubakimoto/fae1a93f8484e25fce62b6690ac84e74#file-postgresql-cs

Page 18: Database tools for .NET Core

こんな記事がありました

20http://qiita.com/momotaro98/items/c4fe0fff0c173e879f2d

Page 19: Database tools for .NET Core

using

•usingステートメントのほう

• usingディレクティブではない

• IDisposable実装済みのオブジェクトで利用可能

•オブジェクトの の実行忘れを防ぐ

21

Page 20: Database tools for .NET Core

実装の違い

•mysql/mysql-connector-net• MySqlConnectionクラス

• Dispose()• 実装されているが、Close処理はない

•npgsql/npgsql• NpgsqlConnectionクラス

• Dispose(bool disposing)• 実装されており、Close処理もある

22

Page 21: Database tools for .NET Core

ところで

23

Page 22: Database tools for .NET Core

Azureの価格が気になる?

24

Page 23: Database tools for .NET Core

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日間

Page 24: Database tools for .NET Core

コンピュートユニット(CU)

•50CU : 0.5コア

•100CU : 1コア

•2000CU : 20コア

性能比較の参考に把握しとくと○

26

Basic

Standard

https://docs.microsoft.com/ja-jp/azure/mysql/concepts-compute-unit-and-storage

Page 25: Database tools for .NET Core

ORマッパー

•使ったことある

• Entity Framework Core

• Dapper

•使ったことない

• DBreeze

• Limebean

• etc

27https://github.com/thangchung/awesome-dotnet-core#orm

Page 26: Database tools for .NET Core

NoSQL

28

Page 27: Database tools for .NET Core

29

Page 28: Database tools for .NET Core

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

Page 29: Database tools for .NET Core

Cosmos DBのグローバル分散

•他リージョンに読取専用のデータベースをレプリケーション

•近いリージョンのDBにアクセス

31

Page 30: Database tools for .NET Core

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

Page 31: Database tools for .NET Core

Cosmos DB (MongoDB API)

•MongoDB.Driver

• NuGetでインストール

•リファレンス

• https://github.com/mongodb/mongo-csharp-driver

33

Page 32: Database tools for .NET Core

まとめ

• .NET Coreは

• SQL Server以外のRDBも使える

• MySQLやPostgreSQL

• DocumentDB以外のNoSQLも使える

• MongoDB

•ORマッパーでRDBの差を吸収

•フライボールレボリューション

34