.NET Framework
2014/09/06 小尾 智之(Ahf)
.NET Compact Framework
to / from
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 みちのくプロレス
2014/09/06 CLR/H in TOKYO #4
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
2014/09/06 CLR/H in TOKYO #4
こんな端末が発売されてます
2014/09/06 CLR/H in TOKYO #4
ユニバーサルアプリ?
2014/09/06 CLR/H in TOKYO #4
知らない子ですね…
2014/09/06 CLR/H in TOKYO #4
しばらくは Embedded
• Embedded 機器メーカーでの主流は
CE6.0 と Embedded Compact 7
– 2013 はあるメーカー曰く「まだ検討中」
–元々 Embedded 系は外での利用など
PC 以外での機器が対象
• 一度購入するとしばらくは買い替えない
• ファクトリコンピュータに近い
–ハードが出ないのでまだしばらくは…
• 一般用タブレットとか弱すぎて使えない…
2014/09/06 CLR/H in TOKYO #4
開発できるアプリ
• Windows Forms(VB / C#)
• Silverlight for Windows Embedded(C++)
.NET 開発で培った
スキルが役に立つ
2014/09/06 CLR/H in TOKYO #4
どちらも .NET だから移植は楽
2014/09/06 CLR/H in TOKYO #4
まったくもって そんなことは なかった
2014/09/06 CLR/H in TOKYO #4
MSDN が不親切
一番最後に
「サポート外です」
と書いてある!
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 では雑にコードを記述
していてもエラーにならないケースがある
2014/09/06 CLR/H in TOKYO #4
イベントの違い
Load Shown
GotFocus Enter
Leave LostFocus
Compact Framework では存在しない
2014/09/06 CLR/H in TOKYO #4
UI 制御の違い
パネル
パネル
TabIndex: 0
TabIndex: 1
TabIndex: 1
TabIndex: 0
Compact Framework での初期位置
.NET Framework での初期位置
Compact Framework では Load イベント中
に初期項目の設定ができる
2014/09/06 CLR/H in TOKYO #4
UI の基本制御
• Form_Load で初期表示・設定
• Control_GotFocus でコントロールのフォーカス取得時制御
• Control_LostFocus でコントロールのフォーカス喪失時制御
• Form_Unload で終了処理
.NET Framework に移植する場合は
イベントの変更が必要
2014/09/06 CLR/H in TOKYO #4
( ˘⊖˘)。o(まてよ、これどこかで……)
2014/09/06 CLR/H in TOKYO #4
|技術負債| ┗(☋` )┓三
2014/09/06 CLR/H in TOKYO #4
▂▅▇█▓▒░(‘ω’)░▒▓█▇▅▂ これ VB6 といっしょだぁぁぁぁぁぁ
2014/09/06 CLR/H in TOKYO #4
( ◠‿◠ )☛ 気づいてしまったようだな
2014/09/06 CLR/H in TOKYO #4
VB6 など非 .NET 開発をやっている人には意外ととっつきやすいかも
2014/09/06 CLR/H in TOKYO #4
まとめ
• UI は基本つくりなおし
–解像度違いすぎ。拡大縮小レベルじゃない
• 移植時はコード書き直しを覚悟
– CF へ移植:オーバーロードがなくて死ぬ
– CF から移植:雑に書いていると死ぬ
• ビジネスロジックは割とそのまま
–クラス設計大事!
ご清聴ありがとうございました