アジェンダ - Microsoft

.NET Compact Framework アプリケーション開発-4
ソフトウェアファクトリに基づく
Windows Mobile アプリケーション開発
太田 寛
マイクロソフト株式会社
アジェンダ
Mobile Client Software Factory (MCSF)の紹介
MCSFのインストール
縦/横表示方向を考慮したコントロールによる適用型
UIの構築
Disconnected Service Agentを使った信頼できない
ネットワーク上でのWebサービスへのアクセス
モバイル認証Application Blockを使った、ユーザー認
証と秘密情報の暗号化
Updater Application Blockを使った、フィールドでの
アプリケーションアップデート
組込み向けSoftware Factories活動紹介
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
1
.NET Compact Framework アプリケーション開発-4
モバイルアプリケーションの構造
Software Factory?!
“Mobile Client Software Factory”
前世紀の
工場
決まりきった退屈な労働
を劣悪な条件で行う
新世紀の
ファクトリー
人間はプロジェクトごと
に変わるクリエイティブ
な仕事を行う
ツールは、定形的、
反復的な作業を行う
•ソフトウェア
プロダクトラインの一種
•製品ファミリーの実装の
組立や構成を自動化
•Visual Studioに統合
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
2
.NET Compact Framework アプリケーション開発-4
Software Factories
ドメイン特化の開発プロセスと、
それを支援するカスタム開発環境を
作成する方法論
戦略的な再利用
開発作業支援
統合環境
ソフトウェア
プロダクトライン
Software Factoriesを支える4本柱
アーキ
テクチャ
フレー
ムワー
ク
文脈に
よる
ガイダ
ンス
ソフトウェアプロダクトライン
モデル駆動型開発
アーキテクチャ フレームワーク
文脈によるガイダンス
モデル駆動開発
成果物、ノウハウの見える化
自動生成・変換
アーキテクチャの見える化
アーキテクチャ駆動
Mobile Client Software Factory
Q: “Mobile Client Software Factory”って何?
A: 以下のものを含むガイダンスパッケージ
参照実装(Reference Implementation :RI) アプリケーション
デザインパターン群
ソフトウェア
プロダクトライン
アプリケーションブロック群
ガイダンスパッケージ群
Visual Studio 2005を使って統合
“ハウツー”と“クイックスタート”
アーキ
テクチャ
フレー
ムワー
ク
文脈に
よる
ガイダ
ンス
モデル駆動開発
Download from www.codeplex.com/smartclient
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
3
.NET Compact Framework アプリケーション開発-4
インストール
MCSF を www.codeplex.com/smartclient からダウンロード
必要条件:
Visual Studio 2005
Guidance Automation Extensions (GAX)
Guidance Automation Tools (GAT)
GAX と GAT のありか:
msdn.microsoft.com/vstudio/teamsystem/workshop/gat/
download.aspx
重要事項:
MCSFの June 2006 release 版では GAX/GATの June CTP が必要
Windows Vistaの場合、Feb. 2007 CTP 版の GAX/GAT と June 2006
(Refresh) release 版の MCSFが必要
既存プロジェクトでMCSFの „レシピ‟
を有効化する
“ツール”メニューをクリックし、“Guidance Package
Manager”を選択
“Enable/Disable Packages…”をクリック
“Mobile Client Software Factory”を選択
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
4
.NET Compact Framework アプリケーション開発-4
„レシピ‟ の実行
“Guidance Package
Manager”から起動
ソリューション
エクスプローラ上の
コンテキスト
メニューからの起動
も可能
縦/横表示方向を考慮したコントロール
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
5
.NET Compact Framework アプリケーション開発-4
縦横表示方向適応可能な
UI の構築
モバイル アプリケーション ブロック
複合型 UI
コンフィギュレーション
コネクション モニタ
Disconnected Service Agent
エンドポイント カタログ
データ アクセス
パスワード認証
Subscription Manager
Updater Application Block
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
6
.NET Compact Framework アプリケーション開発-4
複合型 UI アプリケーション ブロック
“Mobile CAB”とも呼ばれる
複雑なUIアプリケーションを構築するためのアーキテ
クチャと実装の両方を提供
独立で、かつ、協調動作するコンポーネントの構築作業を
支援
“Model – View – Presenter”のようなパターンを使って構築さ
れるUIコンポーネント
基盤コンポーネントは長時間実行が可能
異なるフィーチャーを独立して開発が可能
疎結合でコンポーネント間での通信とデータ共有を実現
適用するのに時間と労力の多大な投資を必要とする
このプレゼンでの説明は、ここまで!
コンフィギュレーション アプリケーショ
ン ブロック
.NET CF 2.0 はアプリケーション コンフィギュレー
ションファイルに対するサポートを含まない
コンフィギュレーション アプリケーション ブロック
はデスクトップ フレームワーク機能のサブセットを
実装
コンフィギュレーションを定義するクラス群を生成
コンフィギュレーション セクション内の項目を参照する
ためのAPI
暗号化されたコンフィギュレーション セクションを読み
出すことも可能
„ConfigSectionEncrypt‟ ツールはコンフィギュレー
ション ファイル セクションを暗号化する機能を含む
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
7
.NET Compact Framework アプリケーション開発-4
コンフィギュレーション アプリケーション ブロック
カスタム コンフィギュレーション セクションの
例
<configSections>要素の中で, 設定セクションへ
の‟ConfigSectionHandler„のタイプが定義されている
<configSections>
<section name="myConfigSettings” type=
"MyConfig.MyNamespace.MySettingsSection,MyConfig.Assembly" />
</configSections>
<myConfigSettings>
<mySettingItems>
<add Name="Item1" Type="CustomItem1" Value="1" />
<add Name="Item2" Type="CustomItem2" Value="2"
Alternative="Item3" />
<add Name="Item3" Type="CustomItem3" Value="3" />
</mySettingItems>
</myConfigSettings>
„ConfigurationSectionHandler‟の定義
セクション ハンドラのためのクラスを定義
カスタム コンフィギュレーション 要素
カスタム コンフィギュレーション 要素のコレクション
カスタム コンフィギュレーション セクション
単純な手順で実現
„Microsoft.Patterns.Mobile.Configuration‟内のクラス群を継承
少数のプロパティ、メソッドを定義するだけ
public class mySettingItemElement : ConfigurationElement
{
[ConfigurationProperty("Name", IsRequired = true)]
public String Name
{
get { return (String)this["Name"]; }
}
…
}
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
8
.NET Compact Framework アプリケーション開発-4
コンフィギュレーション ファイル エントリを
読み込む
エントリを読むためのコードは
„System.Configuration‟のフレームワーク全体を使う
のと同等
using Microsoft.Practices.Mobile.Configuration;
…
MySettingsSection configSection
= ConfigurationManager.GetSection(sectionName) as
MySettingsSection;
foreach (MySettingItemElement item in
configSection.MySettingItems)
{
String itemName = item.Name;
String itemType = item.Type;
Int32 itemValue = item.Value;
String itemAlternative = String.Empty;
if (item.Alternative != null)
itemAlternative = item.Alternative;
// Do something with the configuration data...
}
コネクション モニタ
デバイス上のネットワーク接続をモニタする
セル : GPRS/CDMA/UMTS
Nic: WiFi, 有線接続
DTPT: Desktop passthrough from cradle
APIは、接続状態やイベントによって変化したネット
ワーク接続 などに関する情報を供給する
コネクション モニタは”app.config”内のコンフィギュ
レーションを使用する
<Connections>
<ConnectionItems>
<add Type="CellConnection" Price="8"/>
<add Type="NicConnection" Price="2"/>
<add Type="DesktopConnection" Price="1"/>
</ConnectionItems>
</Connections>
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
9
.NET Compact Framework アプリケーション開発-4
Disconnected Service Agent
たまにネットワーク接続する環境下での
Webサービスコールの管理
Disconnected Service Agent
Example Code: „Request Manager‟の初期化
public void SetupDisconnectedAgent()
{
// Get the catalog of endpoints from the config file.
IEndpointCatalog catalog = GetEndpointCatalog();
// Create the connection monitor
ConnectionMonitor cnMonitor = GetConnectionMonitor();
// Create the connection adapter
IConnectionMonitor connAdapter =
new ConnectionMonitorAdapter(cnMonitor);
// Create request manager to manage the disconnected
// transmissions
RequestManager reqManager = RequestManager.Instance;
// Initialise the request mgr with endpoints,
// connections, & database
reqManager.Initialize(catalog, connAdapter,
_databaseManager.Database);
reqManager.StartAutomaticDispatch();
}
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
10
.NET Compact Framework アプリケーション開発-4
Disconnected Service Agent
クライアントプロキシーの生成
Web参照を追加
ソリューションエクスプローラー上でWeb参照を右ク
リック
Mobile Factoryをクリック – コンテキストメニュー上で
„Disconnected Service Agent‟を生成
Wizardを通じて、
デフォルトの
振る舞いを定義
Disconnected Service Agent
要求の送信
Webサービスコールと同じ方法で要求をキューイング
„DisconnectedServiceAgent‟プロキシ インスタンスを取得
DSAは要求をSQL Server CEデータベースに格納
Request ManagerはWebサーバへのディスパッチをハンドリ
ング
// Get reference to the Request Manager
RequestManager reqManager = RequestManager.Instance;
// Create inst. of tool-generated Disconnected Service Agent
OrderServiceDisconnectedAgent orderService = new
OrderServiceDisconnectedAgent(reqManager.RequestQueue);
// Queue a request to our Web service
orderService.PostOrder(StoreID, userID, postData);
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
11
.NET Compact Framework アプリケーション開発-4
Disconnected Service Agent
応答用コールバックのハンドリング
Web サービス完了時、メソッドをコールバック
ツールが、コールバック用のメソッドを生成する
必要に応じて振る舞いを修正
public class OrderServiceDisconnectedAgentCallback
: OrderServiceDisconnectedAgentCallbackBase
{
public override void OnPostOrderReturn(
Request request, object[] parameters, object returnValue)
{
// Web service call successful ; handle the response…
}
public override OnExceptionAction OnPostOrderException(
Request request, Exception ex)
{
// Web service threw exception – get it to retry
return OnExceptionAction.Retry;
}
}
エンドポイント カタログ
アプリケーションのコンフィグファイルからエンド
ポイント群を読み込むための、事前にパッケージ化
された、カスタムコンフィグセクション
エンドポイント群を参照するための API
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="Endpoints" type="Microsoft.Practices.Endpoint... />
</configSections>
<Endpoints>
<EndpointItems>
<add Name=“MyServerHost"
Address="http://myserver/MyServices/Service.asmx"
UserName="WebUser" Password="P@ssw0rd"/>
<add Name="PostOrder"
Address="http://myserver/OrderSrv/Orders.asmx"
UserName="OrderUser" Password="P@ssw0rd"/>
</EndpointItems>
</Endpoints>
</configuration>
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
12
.NET Compact Framework アプリケーション開発-4
エンドポイント カタログ
アプリケーションのコンフィグファイルからエンドポイン
ト群を読み込むための、事前にパッケージ化された、カス
タムコンフィグセクション
エンドポイント群を参照するための API
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="Endpoints" type="Microsoft.Practices.Endpoint... />
</configSections>
<Endpoints>
<EndpointItems>
<add Name="host-name-no-default">
<NetworkItems>
<add Name="Internet" Address="http://internet-host.com/path"
UserName="user1" Password="pwd" />
<add Name="Work" Address="http://work-host.com/path"
UserName="user1" Password="pwd" Domain="domain-name" />
</NetworkItems>
</add>
</EndpointItems>
</Endpoints>
</configuration>
非接続が主の
モバイルクライアント
プログラミング
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
13
.NET Compact Framework アプリケーション開発-4
Data Access Application Block
„Mobile Data Access Block‟が提供するメソッド:
データベースへの接続
データベースへのコマンドの生成、及び、実行
コマンド実行時に必要なパラメータの構築
デスクトップ向け„Enterprise Library Data Access
Block‟の機能のサブセット
データベースを扱うためのベストプラクティスをカ
プセル化
データベース接続の管理
Data Access Application Block
Example code
データーベース操作向けの単純でハイレベルな API
// Build Connection String
String filename = Path.Combine(DirectoryUtils.BaseDirectory,
"MyOfflineDatastore.sdf");
String connectString = String.Format("Data Source=¥"{0}¥"", filename);
using (SqlDatabase sqlDB = new SqlDatabase(connectString))
{
String sql = "SELECT FirstName, LastName FROM Customers";
ResultSetOptions options = ResultSetOptions.Sensitive
& ResultSetOptions.Scrollable;
using (SqlCeResultSet resultSet =
sqlDB.ExecuteResultSet(sql, options))
{
// Use the result set here.
}
}
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
14
.NET Compact Framework アプリケーション開発-4
パスワード認証
少ない労力で、必要な全てのものを提供:
モバイルユーザーをパスワードの記憶なしに、認証
暗号化された秘密情報を安全にデバイス上に格納
暗号キー
データベースパスワード
Web サービス URL やユーザー証明書
パスワード認証
ユーザー認証
ユーザー名
AuthenticationToken
パスワード
AQCiWEfZdBhLVpOHu79fX0….
RSAAESCryptographyProvider
アドミニストレータ
トークンのデバイスへの
コピー
- コンフィグファイル
- Web サービス
- SQL 同期
AQCiWEfZ….
ユーザー名
パスワード
AQCiWEfZ….
RSAAES...
トークンが一致?
ユーザー
認証完了!
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
15
.NET Compact Framework アプリケーション開発-4
コンフィグファイルの暗号化
„ConfigSectionEncrypt‟ツール
コンフィグファイルセクションを暗号化するツール
マスター対称暗号キーを入力(Master Symetric Encription)
暗号化されたコンフィグファイルセクションの生成
コンフィグファイルの暗号化
„ConfigSectionEncrypt‟ツール
同じツールで、各ユーザーに対するマスターキーの
暗号化を提供
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
16
.NET Compact Framework アプリケーション開発-4
コンフィグファイルの暗号化
ランタイムコンポーネント
アプリと共に、暗号化されたセクションを含むコン
フィグファイルを発送
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
…
<EncryptedSection name="SystemSettings">
AQAQi/xs6oZ5sPDX4g7liSxWBloCIUvB8zgdbR/1CWHRCLZr9tkXX …
</EncryptedSection>
</configuration>
以下をデバイスに転送する方法も提供:
各ユーザーへの認証トークン
各ユーザーへの暗号化されたマスターキー
パスワード認証
コンフィグファイルの復号化
マスターキー
認証トークン
AQCiWEfZdBhLVpOHu79fX0….
ユーザー名
パスワード
暗号化されたマスターキー
RSAAESCryptographyProvider
AQAQRlIDMKSQL4NnYKm….
アドミニストレータ
トークンと暗号化されたマスターキーの
デバイスへのコピー
ユーザー固有の復号キー
NRTY675Am….
ユーザー名
パスワード
ユーザー
RSAAES...
パスワー
ド識別
マスターキーの復号化
wB28lTUcNMft753wet6X ….
コンフィグファイルセクションの復号化
<SystemSettings …. >
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
17
.NET Compact Framework アプリケーション開発-4
コンフィグファイル
暗号化
Subscription Manager
データソースへのサブスクリプションの生成と管理
オフラインデータストア(SQL Server)への接続/と
の同期を管理
ローカルに存在するSQL Server 2005 Compact
Editionへのデータ複製化
同期進行状況通知用イベントの発信:
TableDownloadStarted :テーブルダウンロード開始
TableUploadStarted
:テーブルアップデート開始
SyncProgress
:同期進行
SyncCompleted
:同期完了
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
18
.NET Compact Framework アプリケーション開発-4
Updater Application Block
デスクトップ上の“Updater Application Block”を移植
“Mobile Client Software Factory”には含まれていない
Q4Techで開発
MCSF の開発者も、開発に参加
ダウンロードはこちらから:
www.codeplex.com/MobileBlocks/Release/
ProjectReleases.aspx
MCSFまとめ
“Mobile Client Software Factory”はモバイル アプリ
ケーション開発に対し、アーキテクチャや基盤に関
する素晴らしいガイダンスを提供する
“Mobile Application Blocks”は多くのトリッキーでは
あるが、モバイルアプリケーションへの要求に共通
に現れる多くの問題を容易に扱うことを可能にする
ブロックは、新しいアプリケーションでも、レガ
シーアプリケーションでも使える
Contribute to the community at www.codeplex.com
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
19
.NET Compact Framework アプリケーション開発-4
Software Factories ‐残りのパーツ
IEEE1471-2000
•Software Factoryの構成を記述するフレーム
ワーク
•ステークフォルダー→コンサーン
→ビューポイント→ガイダンスパッケージ
ソフトウェア
プロダクトライン
アーキ
テクチャ
フレー
ムワー
ク
文脈に
よる
ガイダ
ンス
モデル駆動開発
DSL(Domain Specific Language)
•モデルからのコード生成
•モデルによる事前検証
Software Factories Initiative For
Embedded紹介 Software Factories Initiative for
Embedded
大規模化
車載機器:3年で5倍
携帯電話:2年で5倍
家電製品:3年で9倍
多品種展開
製品ファミリー
マルチナショナル
目的
統合サービス
組込み製品開発の生産性・品質の向上への寄与
機能の複合化
技術の陳腐化
ネットワーク化
家電製品:~2年
組込みソフトウェア技術者の付加価値向上への
寄与
実装技術の進歩
デバイス単体の魅力
活動内容
Software Factoriesを軸にした開発・設計技法、
及び、プラットフォーム技術の普及・啓発
低価格競争
短納期化
日本国内技術者との協業により組み込み向け
Software Factoriesを確立
組込み技術者人口:2006年度
就業者:
19万3千人→11%増(対前年)
不足数:
9万4千人→35%増(対前年)
様々なメディアを通じた情報発信、イベント、
セミナー等による技術啓発
・MAAC 組込みWorking Group
・ロボットコンテストでの実証実験
経済産業省 2006年版 組込みソフトウェア産業実態調査報告書:経営者・事業責任者向け調査より
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
20
.NET Compact Framework アプリケーション開発-4
Microsoft は“ET ロボコン2007”に協賛
します!!
• 正式名称:“Embedded Technology Software Design Robot Contest”
• http://www.etrobo.jp
•主催:JASA - ET2007併催
•目的:初級レベルの組込み技術者の教育・啓発
•参加チーム:約180チーム(学生、企業、個人)
約1000人
•Lego Mindstormsロボットによるモデリング技術
コンペとタイムトライアルレース
SWモデル
モデル審査
・スポンサー参加、運営への協力
タイムトライアル
・Software Factories 適用方法検討
・協力チームへの実践技法・環境提供
・活動経過・結果の発信
・MS 社員チームもがんばります!!
Page 41
Software Factories Initiative for
Embedded - Road Map
設計技法基本教育、技術情報セミナー等の実施
各種Industry向け、要素技術向け Software Factories確立
MDDロボットコンテスト向け
Software Factory基本確立
MDDロボットコンテスト向け
Software Factory改良
DSL、GATの拡充
MS Product & Technology
MDDロボットコンテスト向け
Software Factory完成
Software Factories Initiative
2007
2008
2009
Page 42
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
21
.NET Compact Framework アプリケーション開発-4
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it
should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
22