database tools for .net core

Post on 22-Jan-2018

328 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

所属 コミュニティ

3

https://mysaucefactory.com/

(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

top related