Movatterモバイル変換


[0]ホーム

URL:


SlideShare a Scribd company logo

ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた

32 likes30,395 views
Narami Kiyokura
Narami Kiyokura

2013/10/12 .NET 勉強会 / ヒーロー島『ヒーロー島 秋の収穫祭 2013』の同名のセッションの資料ですサンプルソースやフォローアップなどはこちら: http://d.hatena.ne.jp/kiyokura/20131014/p1

1 of 80
Downloaded 67 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Most read
50
51
52
53
54
55
56
57
58
59
60
61
62
Most read
63
64
65
66
67
68
Most read
69
70
71
72
73
74
75
76
77
78
79
80
ADO.NETとORMとMicro-ORM-dapper dot netを使ってみた-atヒーロー島 秋の収穫祭 20132013/10/12きよくらならみ
自己紹介• きよくら ならみ– @kiyokura / id:kiyokura• 岡山生まれ岡山育ちのプログラマー– 現在は県内の某製造業で社内SE• NET系の開発やWebアプリ開発– Microsoft MVP for ASP.NET/IIS
本セッションの目的• Micro-ORMを知ってもらう• dapper dot netを知ってもらう
本セッションのゴール• .NET向けのDBアクセス手法の概要を知る• ORMの概要と"不得手"な部分を知る• dapper dot netの概要を知る
本日のアジェンダ• .NETのDBアクセステクノロジの基本• ORM 超・概要と.NETのORM• ORM≠銀の弾丸• Micro-ORM そしてdapper dot net• まとめ
.NETのDBアクセステクノロジの基本
基本はADO.NET• .NETにおけるDBアクセスの基本• 様々なデータソースに対して『一貫性を持ったアクセス機能を実現』
ADO.NETADO.NETのスタックデータソース(DBほか、xmlやExcel等)データプロバイダConnection CommandDataReaderTransactionTransaction DataAdapterプログラム(C# or VB.NET or etc)DataSetDataTable
一貫性のある操作• 各ソースに対応した”プロバイダ”– 製品専用のプロバイダ• SQL Server• SQL Server CE• Oracle• MySQL• PostgreSQL…等々。– 汎用ドライバ用• OLE DB• ODBC
プロバイダはインタフェースを実装• 共通のインタフェースを実装することで操作の一貫性を保証– IDataReader– IDbConnection– IDbCommand– IDataParameter– IDbTransaction– IDbDataAdapter
接続の基本:Connection• Connectionオブジェクトに接続文字列をセット• 接続を開始
クエリ実行の基本:Command• Commandオブジェクトによりクエリ実行– DML・DDL・DCL• CommandにSQLをセットして実行• 結果としてレコードが返るときは?→ DataReaderを使う
データ読込の基本:DataReader• Commandの結果DataReaderが返る• レコードに対して順番にアクセス– DBのカーソルやADOのRecordSetに近い
最も基本的なデータアクセス流れ• DBに接続– Connectionオブジェクト• コマンドにSQLをセット– Commandオブジェクト• コマンドを実行してリーダーを作成– DataReaderオブジェクトリーダーをループしながらデータを読む
最も基本的なデータアクセス流れDBConnection接続文字列(1)CommandSQL: SELECT * FROM HOGEHOGE(2)DataReader(3)
コード例
ここまでのまとめ.NETのDBアクセスの基本はADO.NETソース毎に異なるプロバイダを利用共通のインタフェースによりソースが変わっても一貫した操作を提供データ読み込みの基本手順Connectionで接続Commandで実行DataReaderで読込
ORM 超・概要と.NETのORM
ORMって?• Object-Relational mapper / mapping– O/RM 、 O/R-M、OR-M– 「おーあーるまっぱー」• 永続化データに対するギャップを埋める– メモリ上の変数とDB上のカラムのマッピング– "オブジェクト操作"と"DBの操作"• その他、DB操作をラップ
代表的な機能• クエリの自動生成• データ(値)のマッピング• DB操作のラッピング• ソースコード自動生成ライブラリや実装よって有無はあります
例:Entity Framework• .NET用のORMであるEntity Frameworkを例としてデモします– ASP.NET MVC 4 + Entity Framework
Entity Frameworkの例• メソッドを呼ぶだけでデータを取得– 列挙型のオブジェクトとしてデータが「マネージドのオブジェクト」として取得できる• オブジェクトに値とセットしてメソッドを呼べば更新完了SQLを全く意識しないDBの接続等の制御用もまったく意識しない
.NETで利用できるORMの例• マイクロソフト製– ADO.NET DataSet– LINQ to SQL– Entity Framework• サードパーティー製– NHibernate– S2Dao.NET– LightSpeed(商用)…等々
ここまでのまとめORMはDB操作をラップSQL作成や実行、データのオブジェクトへのマップ等.NET向けにも多数の実装あり
ORM≠銀の弾丸
ORMを使うべきか否か• "便利なケース"では使うべき– どんどん使いましょう• "美味しくない場合"は使わなくてよい– 無理して使うようなものでもない
ただし当然ですが• 銀の弾丸は無い• あらゆるケースで全く問題が無いわけでは無い"美味しくない"例をいくつか考えてみます
DB設計がORM適さなくなりがちなケース• データがアプリケーション内に閉じない– データが多数のアプリで横断的に利用される– アプリから見えない業務ロジックが存在• 『データ > アプリ』– 利用範囲の他、権限や寿命• データ中心アプローチ(DOA)
基幹業務システムの例販売データ労務データ製造データ研究開発データ顧客データ販売管理システム 生産管理システム賞与計算システム 製造品質管理システム
パフォーマンスで問題が出るケース• ORMでパフォーマンスが出ない場合が– 仮に設計に問題がなくても• パフォーマンス比較の例手法 実行時間(短=速)Hand coded(DataReaderでループ) 47msNHibernate SQL 104msLinq 2 SQL ExecuteQuery 181msEntity framework ExecuteStoreQuery 631msdapper dot net の公式サイト上のベンチマーク結果より( https://code.google.com/p/dapper-dot-net/ )
その他のアリがちな話• そもそもDB設計がイケてない– 自動生成のクエリではパフォーマンスが(– 適切にリレーションが貼られていない• プロバイダが(使いたい)ORMに未対応– たまにある• DBサーバ・ネイティブクライアント・プロバイダのそれぞれのバージョンの対応とかも関連• 自動生成されたSQLがDBAの怒りに触れる(– DBA:「そんなトン○キなクエリ投げるな!」
ここまでのまとめORMのメリットが生きる場合は使うべきORMのメリットが生きない・使いにくい場面は存在するそんなときは無理して使う必要はない
Micro-ORMそしてdapper dot net
ORMが使えなくても• なるべく楽はしたい• 生ADO.NETはいろいろ面倒– Connectionはまだしも– SQL組み立てて– Commandを作って– Parameterを作って– 実行して– 値をオブジェクトにマッピング
そこでMicro-ORM• 隙間を埋めてくれるソリューション
Micro-ORMとは• 特徴– フルスタックのORMほどの機能は無いが– そこそこ便利な機能があって– 軽量で– 早い• そういうカテゴリ(?)のライブラリの総称
機能のあるやなしやクエリの自動生成データ(値)のマッピングDB操作のラッピングソースコード自動生成☆物によってはある程度するものも
つまり• SQLは自分で書く必要がある• 実行時の面倒なことのうち、ある程度のことをやってくれる
代表例• dappar dot net– この後、少し詳しく話します• Massive– https://github.com/robconery/massive• PetaPoco– http://www.toptensoftware.com/petapoco
dapper dot net• Dapper.NETとも書かれる– .NET向けのMicro-ORM• オープンソース– ApachとMITのデュアルライセンス• サイトはこの辺– https://code.google.com/p/dapper-dot-net– https://github.com/SamSaffron/dapper-dot-net
dapper dot net• 作った人: Sam Saffron– Stack Overflowの中の人• 早い– 生SQL実行(DataReader)とほぼ互角– Stack Overflowのパフォーマンス改善のために作られた(らしい)
dapper dot net• どのDBで使える?– ADO.NET準拠のプロバイダが使えるなら大抵いけるんでは?• IDbConnectionの実装なら、多分• 確認した範囲– SQL Server / SQL Server CE– Oracle– MySQL– postgreSQL
使い方• 2STEPで簡単!
STEP1• NuGetで一発導入!
STEP2• 使いたい場面でDapper名前空間をインポート– 拡張メソッドなのでインポート必須!
これだけです
実際の例をご紹介します• ADO.NETで直接実行する場合との対比で紹介します
例1:とりあえずループして読みだす
ADO.NETの場合using (var cn = new SqlCeConnection(connectionString)){cn.Open();var sql = "select ID, Name , Age , Email From Employee;";var cmd = new SqlCeCommand(sql, cn);using (var dr = cmd.ExecuteReader()){while (dr.Read()){Console.WriteLine("ID:{0} , Name:{1} , Age:{2} , Email:{3}",dr["ID"],dr["Name"],dr["Age"],dr["Email"]);}}}
dapperの場合using (var cn = new SqlCeConnection(connectionString)){cn.Open();var sql = "select ID, Name , Age , Email From Employee;";var result = cn.Query(sql);foreach (var d in result){Console.WriteLine("ID:{0} , Name:{1} , Age:{2} , Email:{3}",d.ID,d.Name,d.Age,d.Email);}}
ポイント1• Query拡張メソッド– Connectionオブジェクトを拡張
ポイント2• 戻り値はIEnumerable<dynamic>
つまり• Query拡張メソッドを実行すると• 戻り値はIEnumerable<dynamic>が返ってくる• dynamicの中身はカラム名から自動生成された匿名型にマップされている
例2:用意した型にマップする
ADO.NETの場合using (var cn = new SqlCeConnection(connectionString)){cn.Open();var cmd = new SqlCeCommand("select ID, Name , Age , Email From Employee;", cn);var result = new List<EmployeeEntity>();using (var dr = cmd.ExecuteReader()){while (dr.Read()){result.Add(new EmployeeEntity(){ID = (int)dr["ID"],Name = (string)dr["Name"],Age = (int)dr["Age"],Email = (string)dr["Email"]});}}foreach (var d in result){Console.WriteLine("ID:{0} , Name:{1} , Age:{2} , Email:{3}",d.ID,d.Name,d.Age,d.Email);}}
dapperの場合using (var cn = new SqlCeConnection(connectionString)){cn.Open();var sql = "select ID, Name , Age , Email From Employee;";var result = cn.Query<EmployeeEntity>(sql);foreach (var d in result){Console.WriteLine("ID:{0} , Name:{1} , Age:{2} , Email:{3}",d.ID,d.Name,d.Age,d.Email);}}
ポイント1• Query<T>拡張メソッド– マップしたい型を型パラメータに指定
ポイント2• 戻り値はIEnumerable<dynamic>
つまり• 型パラメータTをとるQuery拡張メソッドを実行すると• 戻り値はIEnumerable<T>が返ってくる– クエリの結果が型Tにマップされている• カラム名に対応したメンバにマップ• 適切に型の変換も行われている
例3:パラメータをバインドする
ADO.NETの場合using (var cn = new SqlCeConnection(connectionString)){cn.Open();var cmd = new SqlCeCommand("select ID, Name , Age , Email From Employee where Age = @age;", cn);var param = cmd.CreateParameter();param.SqlDbType = System.Data.SqlDbType.Int;param.Direction = System.Data.ParameterDirection.Input;param.ParameterName = "age";param.Value = 25;cmd.Parameters.Add(param);var result = new List<EmployeeEntity>();using (var dr = cmd.ExecuteReader()){while (dr.Read()){result.Add(new EmployeeEntity(){ID = (int)dr["ID"],Name = (string)dr["Name"],Age = (int)dr["Age"],Email = (string)dr["Email"]});}}foreach (var d in result){Console.WriteLine("ID:{0} , Name:{1} , Age:{2} , Email:{3}",d.ID,d.Name,d.Age,d.Email);}
dapperの場合using (var cn = new SqlCeConnection(connectionString)){cn.Open();var sql = "select ID, Name , Age , Email From Employee where Age = @Age;";var result = cn.Query<EmployeeEntity>(sql, new { Age = 25 });foreach (var d in result){Console.WriteLine("ID:{0} , Name:{1} , Age:{2} , Email:{3}",d.ID,d.Name,d.Age,d.Email);}}
ポイント• Query<T>拡張メソッドの第二引数にパラメータを指定– SQL文のパラメータと同じメンバがあればOK• 匿名型でもOK
つまり• Query拡張メソッドの第二引数に• SQL文中のパラメータと同名のメンバを持つオブジェクトを渡すと• パラメータとしてバインドして実行する
その他• 複数の型(ネストされた型)にバインドすることも可能– 但し、基本1:1• もちろん、INSERT / UPDATE / DELETE等も発行できる
FAQ
Q1:速度は?• A1:早いです– 生ADO.NETとほぼ誤差の範囲くらい– 公式サイトのベンチマークも参照
Q2: DB側の命名がsnake_case…• A2-1:SQLで別名を付ける– first_name as FirstName• A2-2:SetTypeMapという仕組みを使う– 詳細は公式サンプルや、neue ccさんのblogエントリを参照• http://neue.cc/2012/12/11_390.html
Q3:SQL書けません!• A3:頑張って書いてください– どうしても解らない人は、クエリビルダ的なツール使うといいのでは• SQL Server Management Studio• A5:SQL Mk-2• SI Object Browser– もしくは、ヘルパライブラリを使う手も• Dapper.Rainbow• Dapper.Contrib
Q4:マップするクラスは自分書く?• A4:自分で書きましょう– 別途、自動化・半自動化はできるのでは• DDLやDB定義書から• マクロやT4で自動生成等
補足情報• ソースは1ファイルなのでGithubからとってきて入れてもいいです– ちょっと改変して使いたいならそれが楽• MySQLで高負荷かけると不具合が出るらしい– 詳細と対策などはneue ccさんのblogエントリ参照:• http://neue.cc/2013/08/06_423.html
ここまでのまとめ生ADO.NETとORMの間を埋める、Micro-ORMdapper dot netは早くて手軽で便利
まとめ
まとめ(1)• .NETのデータアクセスはADO.NETが基本• ORMは便利だが使いにくいケースもある• 間を埋める選択してのMicro-ORM
まとめ(2)• Micro-ORMは大体こんなもの– SQLは自力で書く– 実行結果やパラメータをマップしてくれる• dapper dot net– 多分もっともメジャーなMicro-ORM– 手軽で便利、(割と)かゆいところに手が届く
最後に• 「ORMが適用しにくい」と思ったら無理に適用しなくていいです– 無理に使っても余計な苦労を背負い込む事が多い気がします
最後に• 生ADO.NETよりも「もう少し文化的にやりたい」とき、dapperはお勧めのソリューションだと思います• Web Pages(WeMatrix)にも良いかも– WebMatrix.Dataに物足りなくなったときの次の一手として
参考
dapper公式関連• 公式サイト– https://code.google.com/p/dapper-dot-net/• ベンチマーク結果あり• ソースコード– https://github.com/SamSaffron/dapper-dot-net• テストコード(サンプルとしても有用)あり– https://github.com/SamSaffron/dapper-dot-net/blob/master/Tests/Tests.cs• Test内に、ベンチマークのプログラムもあり
その他• Micro ORMs with Sam Saffron and RobConery– http://www.infoq.com/articles/ORM-Saffron-Conery– MassiveのRob ConeryとdapperのSamSaffronへのMicro-ORMについてのインタビュー記事
Ad

Recommended

PDF
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
 
PDF
Javaのログ出力: 道具と考え方
Taku Miyakawa
 
PDF
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
 
PPTX
CloudFront経由でのCORS利用
Yuta Imai
 
PDF
Serf / Consul 入門 ~仕事を楽しくしよう~
Masahito Zembutsu
 
PPTX
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
 
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
 
PDF
Docker道場オンライン#1 Docker基礎概念と用語の理解
Masahito Zembutsu
 
PDF
SQLアンチパターン - ジェイウォーク
ke-m kamekoopa
 
PDF
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
 
PDF
WebRTC入門 ~沖縄編~
Ryosuke Otsuya
 
PDF
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
 
PPTX
非同期処理の基礎
信之 岩永
 
PDF
できる!並列・並行プログラミング
Preferred Networks
 
PPTX
Elasticsearch as a Distributed System
Satoyuki Tsukano
 
PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
 
PDF
Dockerを利用したローカル環境から本番環境までの構築設計
Koichi Nagaoka
 
PDF
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
 
PPT
メタプログラミングって何だろう
Kota Mizushima
 
PDF
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
 
PDF
日本語テストメソッドについて
kumake
 
PPTX
Apache Avro vs Protocol Buffers
Seiya Mizuno
 
PDF
TLS, HTTP/2演習
shigeki_ohtsu
 
PDF
ClassLoader Leak Patterns
nekop
 
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
 
PPTX
冬のLock free祭り safe
Kumazaki Hiroki
 
PPTX
PHP と SAPI と ZendEngine3 と
do_aki
 
PDF
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
PDF
よろしい、ならばMicro-ORMだ
Narami Kiyokura
 
PPTX
ビジネス向けアプリケーションにこそ進めるMicro orm
Tadahiro Ishisaka
 

More Related Content

What's hot(20)

PDF
SQLアンチパターン - ジェイウォーク
ke-m kamekoopa
 
PDF
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
 
PDF
WebRTC入門 ~沖縄編~
Ryosuke Otsuya
 
PDF
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
 
PPTX
非同期処理の基礎
信之 岩永
 
PDF
できる!並列・並行プログラミング
Preferred Networks
 
PPTX
Elasticsearch as a Distributed System
Satoyuki Tsukano
 
PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
 
PDF
Dockerを利用したローカル環境から本番環境までの構築設計
Koichi Nagaoka
 
PDF
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
 
PPT
メタプログラミングって何だろう
Kota Mizushima
 
PDF
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
 
PDF
日本語テストメソッドについて
kumake
 
PPTX
Apache Avro vs Protocol Buffers
Seiya Mizuno
 
PDF
TLS, HTTP/2演習
shigeki_ohtsu
 
PDF
ClassLoader Leak Patterns
nekop
 
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
 
PPTX
冬のLock free祭り safe
Kumazaki Hiroki
 
PPTX
PHP と SAPI と ZendEngine3 と
do_aki
 
PDF
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
SQLアンチパターン - ジェイウォーク
ke-m kamekoopa
 
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
 
WebRTC入門 ~沖縄編~
Ryosuke Otsuya
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
 
非同期処理の基礎
信之 岩永
 
できる!並列・並行プログラミング
Preferred Networks
 
Elasticsearch as a Distributed System
Satoyuki Tsukano
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
 
Dockerを利用したローカル環境から本番環境までの構築設計
Koichi Nagaoka
 
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
 
メタプログラミングって何だろう
Kota Mizushima
 
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
 
日本語テストメソッドについて
kumake
 
Apache Avro vs Protocol Buffers
Seiya Mizuno
 
TLS, HTTP/2演習
shigeki_ohtsu
 
ClassLoader Leak Patterns
nekop
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
 
冬のLock free祭り safe
Kumazaki Hiroki
 
PHP と SAPI と ZendEngine3 と
do_aki
 
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 

Similar to ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた(20)

PDF
よろしい、ならばMicro-ORMだ
Narami Kiyokura
 
PPTX
ビジネス向けアプリケーションにこそ進めるMicro orm
Tadahiro Ishisaka
 
PDF
DeclarativeSql
Takaaki Suzuki
 
PPTX
Entity Framework 5.0 deep dive
Atsushi Fukui
 
PDF
Daisukei vsug ef
vsug_jim
 
PDF
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
Atsushi Fukui
 
PDF
Mvc conf session_4_ono
Hiroshi Okunushi
 
PPTX
20110607
小野 修司
 
PDF
Entity Framework
Nakashima Yujiro
 
PPTX
The seminar of asp.net at 201908 sakurug
SAKURUG co.
 
PPT
JPA説明会
Ryo Asai
 
PPTX
Oracle Database Cloud と無料の純正開発ツールで開発効率を改善しよう!(db tech showcase 2016 Oracle セッ...
オラクルエンジニア通信
 
PPTX
コーディング不要! Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
Masaki Takeda
 
PDF
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Ryota Watabe
 
PDF
金魚本読書ノート JPA編
Kazuyoshi Kamitsukasa
 
PDF
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Atsushi Kambara
 
PDF
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
 
PDF
Vsug ef
Microsoft
 
PPTX
Entity Framework 6.1.3 + Windows フォーム サンプル アプリケーション構築 手順書
Masaki Takeda
 
PPT
S2dao Seminar in tripodworks
tripodworks
 
よろしい、ならばMicro-ORMだ
Narami Kiyokura
 
ビジネス向けアプリケーションにこそ進めるMicro orm
Tadahiro Ishisaka
 
DeclarativeSql
Takaaki Suzuki
 
Entity Framework 5.0 deep dive
Atsushi Fukui
 
Daisukei vsug ef
vsug_jim
 
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
Atsushi Fukui
 
Mvc conf session_4_ono
Hiroshi Okunushi
 
20110607
小野 修司
 
Entity Framework
Nakashima Yujiro
 
The seminar of asp.net at 201908 sakurug
SAKURUG co.
 
JPA説明会
Ryo Asai
 
Oracle Database Cloud と無料の純正開発ツールで開発効率を改善しよう!(db tech showcase 2016 Oracle セッ...
オラクルエンジニア通信
 
コーディング不要! Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
Masaki Takeda
 
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Ryota Watabe
 
金魚本読書ノート JPA編
Kazuyoshi Kamitsukasa
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Atsushi Kambara
 
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
 
Vsug ef
Microsoft
 
Entity Framework 6.1.3 + Windows フォーム サンプル アプリケーション構築 手順書
Masaki Takeda
 
S2dao Seminar in tripodworks
tripodworks
 
Ad

More from Narami Kiyokura(17)

PPTX
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
Narami Kiyokura
 
PDF
どうなる?Visual Studioの クライアントサイド web開発の今後
Narami Kiyokura
 
PDF
How do you like knockout?
Narami Kiyokura
 
PPTX
Windows ストアアプリを HTMLで作成する
Narami Kiyokura
 
PDF
ASP.NET "NOW" and "NEXT"
Narami Kiyokura
 
PDF
無償版Visual StudioでいろいろWeb開発
Narami Kiyokura
 
PDF
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
 
PDF
軽量ASP.NETフレームワークNancy
Narami Kiyokura
 
PDF
最近、リアルタイムWebが面白い
Narami Kiyokura
 
PDF
脱・Excelホーガンシのために、その1
Narami Kiyokura
 
PDF
最近のASP.NET事情2013Winter
Narami Kiyokura
 
PDF
軽量フレームワークNancy
Narami Kiyokura
 
PDF
WebMatrixで遊ぶ-ゆるふわGitHubページ
Narami Kiyokura
 
PDF
TypeScript超入門
Narami Kiyokura
 
PDF
使ってみよう、WebMatrix3
Narami Kiyokura
 
PPTX
NuGetの社内利用のススメ
Narami Kiyokura
 
PDF
IMESupport for Sublime Text 2 / ConvertToUTF8の紹介
Narami Kiyokura
 
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
Narami Kiyokura
 
どうなる?Visual Studioの クライアントサイド web開発の今後
Narami Kiyokura
 
How do you like knockout?
Narami Kiyokura
 
Windows ストアアプリを HTMLで作成する
Narami Kiyokura
 
ASP.NET "NOW" and "NEXT"
Narami Kiyokura
 
無償版Visual StudioでいろいろWeb開発
Narami Kiyokura
 
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
 
軽量ASP.NETフレームワークNancy
Narami Kiyokura
 
最近、リアルタイムWebが面白い
Narami Kiyokura
 
脱・Excelホーガンシのために、その1
Narami Kiyokura
 
最近のASP.NET事情2013Winter
Narami Kiyokura
 
軽量フレームワークNancy
Narami Kiyokura
 
WebMatrixで遊ぶ-ゆるふわGitHubページ
Narami Kiyokura
 
TypeScript超入門
Narami Kiyokura
 
使ってみよう、WebMatrix3
Narami Kiyokura
 
NuGetの社内利用のススメ
Narami Kiyokura
 
IMESupport for Sublime Text 2 / ConvertToUTF8の紹介
Narami Kiyokura
 
Ad

Recently uploaded(9)

PDF
2023年版Web3技術の理想と現実
Syuhei Hiya
 
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
PDF
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
PPTX
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
PPTX
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
2023年版Web3技術の理想と現実
Syuhei Hiya
 
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 

ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた


[8]ページ先頭

©2009-2025 Movatter.jp