clrh 20140906 lt
DESCRIPTION
2014/09/06 に行った CLR/H in TOKYO #4 で利用した LT スライドTRANSCRIPT
![Page 1: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/1.jpg)
.NET Framework
2014/09/06 小尾 智之(Ahf)
.NET Compact Framework
to / from
![Page 2: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/2.jpg)
2014/09/06 CLR/H in TOKYO #4
self introduction VB 使い
WF メイニア
CLR/H スタッフ
てすとぶろぐ http://blogahf.blogspot.jp/
@twit_ahf
Tomoyuki.Obi @IT エンジニアライフ
地方からの戯言
プロレス好き DDT / BJW / K-DOJO みちのくプロレス
![Page 3: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/3.jpg)
2014/09/06 CLR/H in TOKYO #4
![Page 4: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/4.jpg)
2014/09/06 CLR/H in TOKYO #4
.NET Compact Framework
• .NET Framework のサブセット
–組込端末などリソースの少ない環境用に
縮小・削減している
–双方に存在する機能のみ利用しているなら
デスクトップ上でも動作する
– Windows CE や Embedded 環境でよく利用
CE 5.0 CE 6.0 Embedded
Compact 7
Embedded
Compact 2013
![Page 5: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/5.jpg)
2014/09/06 CLR/H in TOKYO #4
こんな端末が発売されてます
![Page 6: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/6.jpg)
2014/09/06 CLR/H in TOKYO #4
ユニバーサルアプリ?
![Page 7: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/7.jpg)
2014/09/06 CLR/H in TOKYO #4
知らない子ですね…
![Page 8: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/8.jpg)
2014/09/06 CLR/H in TOKYO #4
しばらくは Embedded
• Embedded 機器メーカーでの主流は
CE6.0 と Embedded Compact 7
– 2013 はあるメーカー曰く「まだ検討中」
–元々 Embedded 系は外での利用など
PC 以外での機器が対象
• 一度購入するとしばらくは買い替えない
• ファクトリコンピュータに近い
–ハードが出ないのでまだしばらくは…
• 一般用タブレットとか弱すぎて使えない…
![Page 9: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/9.jpg)
2014/09/06 CLR/H in TOKYO #4
開発できるアプリ
• Windows Forms(VB / C#)
• Silverlight for Windows Embedded(C++)
.NET 開発で培った
スキルが役に立つ
![Page 10: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/10.jpg)
2014/09/06 CLR/H in TOKYO #4
どちらも .NET だから移植は楽
![Page 11: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/11.jpg)
2014/09/06 CLR/H in TOKYO #4
まったくもって そんなことは なかった
![Page 12: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/12.jpg)
2014/09/06 CLR/H in TOKYO #4
MSDN が不親切
一番最後に
「サポート外です」
と書いてある!
![Page 13: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/13.jpg)
2014/09/06 CLR/H in TOKYO #4
微妙な制御の違い
Dim req = TryCast(WebRequest.Create("http://kuma.go.jp/"), HttpWebRequest) Using reqStream = req.GetRequestStream req.ContentLength = 0 Dim encStrings = "クマー"
Dim enc = New UTF8Encoding Dim sendBytes = enc.GetBytes(encStrings) req.ContentLength = sendBytes.Length reqStream.Write(sendBytes, 0, sendBytes.Length) End Using
Compact Framework では
エラーにならない
Compact Framework では雑にコードを記述
していてもエラーにならないケースがある
![Page 14: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/14.jpg)
2014/09/06 CLR/H in TOKYO #4
イベントの違い
Load Shown
GotFocus Enter
Leave LostFocus
Compact Framework では存在しない
![Page 15: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/15.jpg)
2014/09/06 CLR/H in TOKYO #4
UI 制御の違い
パネル
パネル
TabIndex: 0
TabIndex: 1
TabIndex: 1
TabIndex: 0
Compact Framework での初期位置
.NET Framework での初期位置
Compact Framework では Load イベント中
に初期項目の設定ができる
![Page 16: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/16.jpg)
2014/09/06 CLR/H in TOKYO #4
UI の基本制御
• Form_Load で初期表示・設定
• Control_GotFocus でコントロールのフォーカス取得時制御
• Control_LostFocus でコントロールのフォーカス喪失時制御
• Form_Unload で終了処理
.NET Framework に移植する場合は
イベントの変更が必要
![Page 17: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/17.jpg)
2014/09/06 CLR/H in TOKYO #4
( ˘⊖˘)。o(まてよ、これどこかで……)
![Page 18: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/18.jpg)
2014/09/06 CLR/H in TOKYO #4
|技術負債| ┗(☋` )┓三
![Page 19: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/19.jpg)
2014/09/06 CLR/H in TOKYO #4
▂▅▇█▓▒░(‘ω’)░▒▓█▇▅▂ これ VB6 といっしょだぁぁぁぁぁぁ
![Page 20: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/20.jpg)
2014/09/06 CLR/H in TOKYO #4
( ◠‿◠ )☛ 気づいてしまったようだな
![Page 21: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/21.jpg)
2014/09/06 CLR/H in TOKYO #4
VB6 など非 .NET 開発をやっている人には意外ととっつきやすいかも
![Page 22: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/22.jpg)
2014/09/06 CLR/H in TOKYO #4
まとめ
• UI は基本つくりなおし
–解像度違いすぎ。拡大縮小レベルじゃない
• 移植時はコード書き直しを覚悟
– CF へ移植:オーバーロードがなくて死ぬ
– CF から移植:雑に書いていると死ぬ
• ビジネスロジックは割とそのまま
–クラス設計大事!
![Page 23: Clrh 20140906 lt](https://reader035.vdocuments.net/reader035/viewer/2022062405/5561f641d8b42ae04e8b496c/html5/thumbnails/23.jpg)
ご清聴ありがとうございました