PDF 形式

開発者のための Vista 対策
~ プレミアム・デモンストレーション ~
マ゗クロソフト株式会社
テクニカルソリューション推進統括本部
SE部 プリンシパルSE
ジニアス平井
Masato Genius Hirai
アプリケーションの互換性
~ 既存資産の互換性と移行に関するトピックス ~
Vista 上での開発ツールのサポート
~ VB6 だけがある意味、特別です ~
 実行環境





VB6ランタ゗ム
Yes
.NET Framework 1.0
No
← Visual Studio .NET 2002
.NET Framework 1.1
Yes
← Visual Studio .NET 2003
.NET Framework 2.0
Yes
← Visual Studio 2005
.NET Framework 3.0
Yes
← Windows Vista に標準搭載
 .NET Framework 3.0 の実行エンジン(CLR)は 2.0
 開発環境








Visual Basic 6
Yes
Visual Studio 6
No
Visual C++ 6.0
No
Visual Studio .NET 2002
No
Visual Studio .NET 2003
No ← 作成したゕプリはOK
Visual Studio 2005
No ← 作成したゕプリはOK
Visual Studio 2005 + SP1
No ← 作成したゕプリはOK
VS2005 + SP1 + Update for Windows Vista Yes
Vista での VB 6.0 のサポート
~ 延長されましたが早めに .NET に移行しましょう ~
 Visual Basic 6.0 開発環境(IDE)& 実行環境
 サポートは 2008年4月8日まで
 Visual Basic 6.0 はいまだ重要な位置づけを持っており、さらに
移行が比較的困難であるためサポートすることを決定
 Windows Vista に Visual Basic 6.0 のランタ゗ムを同梱
 サードパーティ製コンポーネント (ActiveXなど)
 サポートは提供できません。製造元に問い合わせて下さい
 ポイント
 マ゗クロソフトが VB6 およびランタ゗ムについてWindows Vista
上で動作することを検証するというレベル
 修正パッチやSPが提供される可能性は非常に低い
 お客様のゕプリケーションが変更なしに Windows Vistaで動作す
ることを保証するものではありません
 参照
 http://www.microsoft.com/japan/msdn/vbasic/support/vistasupport.aspx
Vista での Office 製品サポート
~ Office 2003 クラ゗ゕントはOK, サーバーは NG ~
 Office 製品
 http://www.microsoft.com/japan/windowsvista/compatible/msprod.aspx
✕
Office XP
Publisher 2002, FrontPage 2002,
Visio 2002, Project 2002を含む
✔
Office 2003
Publisher 2003, FrontPage 2003,
Visio 2003, Project 2003を含む
✔ InfoPath 2003
✔
OneNote 2003
✔
IME 2003
✔
InterConnect 2004
✔
Communicator 2005
✕ SharePoint Portal Server 2003
✕
Project Server 2003
✕
Live Communication Server
2005
64ビット版OSに対応していない
Vistaでの サーバー製品サポート
~ SQL Server 2000, MSDE は未サポート ~
 サーバー製品
✔
BizTalk Server 2006
Service Packで対応予定
✕
BizTalk Server 2004
✔
Commerce Server 2007
✕
Commerce Server 2002
✔
Exchange Server 2007 管理ツール
✕
Exchange Server 2003 管理ツール
✔
Internet Security & Acceleration
Server Firewall Client
バージョン 4.0.3441.633
✔
SQL Server 2005
SP2で対応(EEは対象外)
✕
SQL Server 2000,
MSDE 1.0, MSDE 2000
Vista から SQL Server 2000 へ
のゕクセスは可能
Service Packで対応予定
Service Packで対応予定
 Vista と WS2008 における SQL Server のサポート
 http://www.microsoft.com/japan/sql/howtobuy/sqlonvista.mspx
はじめに
~ Vista 開発者向けゕプリ互換性情報サ゗ト ~
 まずは情報を入手
 http://www.microsoft.com/japan/msdn/windowsvista/compatibility/
 資料(必須アイテムです)
 Windows Vista Application 互換性情報資料
 必読!検証のガ゗ドラ゗ン
 アプリケーション互換性情報パック
 Vista に関するゕプリケーション互換性技術資料
 IE 7 互換性情報パック
 セミナー等で公開している IE 7 に関する互換性技術資料
 新 JIS 漢字対応情報パック
 JIS X 0213:2004 (JIS2004) 対応に関しての技術情報
 ツール
 Windows Vista ジャンプ スタート ツールキット (英語)
 Vistaに対応に関するPPTやホワ゗トペーパーを集約したキット
OS のバージョンチェック
~ ゗ンストールでコケたら何も始まらない ~
影響: 大
頻度: 低
 OSのバージョン
 Windows XP = 5.1
 Windows Server 2003 = 5.2
 Windows Vista = 6.0
 インストーラ
 OSのバージョンを限定していないか?
 ex. VersionNT<=501
 他のコンポーネント・パッケージは?
 関連API
 Win32
 GetVersionEx
 .NET
 System.Environment.OSVersion.Version
 エデゖション判定
 GetProductType 関数
製品
Ver
Server 2008
6.0
Windows Vista
6.0
WS 2003 R2
5.2
WS 2003
5.2
Windows XP
5.1
Windows 2000
5.0
Windows Me
4.90
Windows 98
4.10
Windows NT 4.0 4.0
Windows 95
4.0
フォルダパスの変更
~ すべてにおいて「マ゗…」接頭辞が削除 ~
 My の削除
 ゕプリ側のメッセージやヘルプの記述をチェック
 WinXP
 Vista
影響: 中
頻度: 低
: マ゗ ドキュメント、マ゗ コンピュータ、...
: ドキュメント、コンピュータ、...
 Documents and Settings → Users [ユーザー]と表示
 All Users → Public [パブリック]と表示
 関連API
 Win32:
 .NET:
SHGetSpecialFolderPath
System.Environment.GetFolderPath()
Windows 9x
c:¥My Documents
NT4
c:¥Windows¥Profiles¥(ユーザー名)¥Personal
2000/XP/2003
c:¥Documents and Settings¥(ユーザー名)¥My Documents
Vista / Longhorn
c:¥Users¥(ユーザー名)¥Documents
環境変数
~ バッチ処理にご注意 ~
 新規追加
影響: 低
頻度: 低
%ProgramData%
C:¥ProgramData
%Public%
C:¥Users¥Public
%AppData%
C:¥Users¥(ユーザー名)¥AppData¥Roaming
%LocalAppData%
C:¥Users¥(ユーザー名)¥AppData¥Local
 パスが変更
%AllUsersProfile%
C:¥ProgramData
%Temp%, %TMP%
C:¥Users¥(ユーザー名)¥AppData¥Local¥Temp
%UserProfile%
C:¥Users¥(ユーザー名)
 変更なし
%CommonProgramFiles%
C:¥Program Files¥Common Files
%ProgramFiles%
C:¥Program Files
%WinDir%
C:¥Windows
ユーザーアカウント制御 (UAC)
~ もはや管理者と管理者グループのメンバは違う ~
 特定操作に限定した特権の一時的付与
 ユーザーの明示的な同意操作が必須
影響: 高
頻度: 高
 セキュリティデスクトップ表示
 自動化は不可(低→中は可能)
 シールドアイコンによる視覚表示
 管理者アカウント(Administrator)の悪用を防ぐ
 悪意あるプログラム/ゕプリケーションの゗ンストール等
管理作業時:
ユーザーの同意により
一時的に管理者権限付与
管理者
通常作業時:
スタンダード ユーザー
権限が付与
スタンダード ユーザー
UAC:ファイルとレジストリの仮想化
~ 知らない人も多い UAC の盲点 ~
 スタンダードユーザーによるマシンごとのストアへの書き
込み場所を仮想ストアへリダイレクトする機能
ロケーション
リダイレクト先
%ProgramFiles%
%LocalAppData%¥VirtualStore¥Program Files
%WinDir%
%LocalAppData%¥VirtualStore¥Windows
HKLM¥Software
HKCU¥Software¥Classes¥VirtualStore¥Machine¥Software
 EXEと同じフォルダのデータに書き込みをしている場合は注意
 HKLM¥Software はよく使われている
 ローカルセキュリテゖポリシーで ON/OFF 可能
 [フゔ゗ルまたはレジストリへの書き込みエラーを各ユーザーの場所に
仮想化する] (既定は有効)
 対策
 共有データは %ProgramData% の下へ
 レジストリは HKCU を使用効)
影響: 高
頻度: 高
UACの影響確認
~ Vista 対応の難関はこれ! ~
 UAC 有効/無効でのテスト
 [コントロール パネル]→[ユーザーゕカウント]→[ユーザーゕカウ
ント制御の有効化または無効化]のチェックボックスをON/OFF
 各種アカウントでのテスト
 Administrator / 管理者メンバ / 標準ユーザー
 Administrator で正常なのに管理者メンバだと問題が発生する
場合は、UAC に引っ掛かって権限不足が要因の可能性大
 Administratorゕカウントの有効化(既定では無効)
 管理者モードのコマンドプロンプトで
> net user Administrator /active:yes
 セキュリティポリシー(secpol.msc)で詳細設定
 [ローカルポリシー]→[セキュリテゖ オプション]
→[ユーザーゕカウント制御:xxxxxxx]の各項目を審査
UAC:セキュリティポリシー
~ 既定の設定を順守すべし ~
 セキュリティポリシー(secpol.msc)
項目
既定値
[アプリケーションのインストールを検出し、昇格をプロンプトする]
有効
[組み込みの管理者アカウント用の管理者承認モード]
無効
[安全な場所にインストールされた UIAccess アプリケーションの
みを昇格する] - UIPI関連
有効
[ファイルまたはレジストリへの書き込みエラーを各ユーザーの場
所に仮想化する] - 仮想化
有効
[管理者を含めすべてのユーザーを、標準ユーザーとして実行す
る] - UAC ON/OFF
有効
[管理者承認モードでの管理者に対する昇格時のプロンプトの動
作]
同意を要求する
[署名および検証された実行ファイルのみを昇格する]
無効
[昇格のプロンプト時にセキュリティで保護されたデスクトップに切
り替える] - セキュリティデスクトップ
有効
[標準ユーザーに対する昇格時のプロンプトの動作]
資格情報を要求する
UAC 対策
~ UAC はシートベルト! PC と貴方を守ります ~
 アプリケーションのプロパティ - [互換性]タブ
 設定
 視覚テーマを無効
※ XPのテーマをオフ
 デスクトップ コンポジットを無効
※ Windows Aero もオフ
 高DPI設定では画面にスケーリングを無効にする
 管理者としてこのプログラムを実行する
 マニフェストファイル
 フゔ゗ルを配置 [アプリケーション名.exe.manifest]
 <requestedExecutionLevel>
 asInvoker, highestAvailable, requireAdministrator
 EXEに埋め込む(RT_MANIFEST、ID=1)
 VS2005でリソース編集
 mt.exe(ビルド゗ンベント, コマンドプロンプト)
 COMとして分離
 CoCreateInstanceAdmin関数を利用して局所的に昇格させる
UAC:アプリケーションマニフェスト
~ スタンダードユーザで稼働させるのが理想だが... ~
 [アプリケーション名.exe.manifest]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
level
uiAccess
asInvoker
親プロセスと同じ権限で動作
highestAvailable
ユーザーが取得可能な権限で動作
requireAdministrator
管理者権限で動作
true
上位権限のプロセスへメッセージの送信が有効
false
一般のゕプリケーション
デジタル署名
~ UAC 対応に署名は重要!身元を明かせ ~
 .NET署名(sn.exe)
 改ざん防止(改ざんされるとCLRが起動を阻止)
 GACに゗ンストールする共有ゕセンブリ
 Authenticode署名(signtool.exe)
 身元を明らかにする(改ざんされると証明書が無効になる)
 オレオレ証明書(テスト用)の作り方
 [Windows SDK]の[CMD Shell]を管理者として実行
証明書の作成
C:¥> makecert -r -pe -sr LocalMachine –n "CN=Genius,O=Genius Hirai,C=JP"
-a sha1 -len 2048 -b 01/01/2007 -e 12/31/2009 -sv demo.pvk demo.cer
C:¥> certmgr -add demo.cer -s -r LocalMachine Root
C:¥> cert2spc demo.cer demo.spc
署名
C:¥> signtool signwizard
※タ゗ムスタンプは不要
証明書の無効化
C:¥> certmgr -add demo.cer -s -r LocalMachine Disallowed
UAC:昇格ダイアログ
~ 120 秒の命! 赤いきつねと緑のたぬき ~
 OSコンポーネント(青緑)  未署名(黄)
 署名済み(灰)
 信頼されていない発行元(赤)
UAC: シールドアイコン
~ 昇格が必要なところにシールドゕ゗コンを! ~
 シールドアイコン
 VCマクロ
 Button_SetElevationRequiredState
 SendMessage 関数
 SendMessage(Button1.Handle,
BCM_SETSHIELD, 0, 1)
 SHGetStockIconInfo 関数で
リソースを取り出す
 SHGetStockIconInfo(Shield,
SHGFI_ICON Or SHGFI_LARGEICON, SHSTOCKICONINFO)
 Vista 専用 API
 シールドアイコンのオーバーレイ
 エクスプローラでは昇格が必要なゕプリケーション
のゕ゗コンの右下(1/4)に被さって表示される
 ゕ゗コンのデザ゗ンに注意
ユーザーインターフェイス特権の分離
~ UIPI も意外な地雷源 ~
 権限が高いプロセスへの対話が抑止される
 SendMassage() など権限の低いプロセスから権限の
高いプロセスへメッセージが送信されない
影響: 高
頻度: 低
 シャッターゕタックを防御
 関数はエラーを返さないので成功したかのようにみえる
 SendInput, SetWindowsHookEx, SetWinEventHook,
FindWindoEx, OpenDesktop, ...WH_JOURNALPLAYBACK,
WH_JOURNALRECORD などのジャーナルフック
 対策
 高い権限のゕプリ側で ChangeWindowMessageFilter()を呼び出
し明示的に許可。または送信側を管理者権限に昇格させる。
 アクセシビリティ アプリケーション
 昇格ダ゗ゕログなしで上位プロセスとメッセージ交換可能
 level="asInvoker" uiAccess="true"
 Authenticode対応の デジタルIDで署名が必要
 %ProgramFile% または %WinDir% に配置
Windows リソース保護(WRP)
~ OS のリソースやコンポーネントには手を出せない ~
 OSのリソースやコンポーネントを保護
 Vistaでは保護対象が拡大
影響: 中
頻度: 低
 システムフゔ゗ル
 システムフォルダ
 レジストリキー
 Administrator やシステムゕカウントでも既定で
「読み取り・実行権限」のみ
 これらのリソースを変更できるのはMSから提供するパッチやサー
ビスパックのみ
 TrustedInstaller(Windows モジュール゗ンストーラサービス)
のみフルコントロール権限を許可
 確認API
 フゔ゗ル:
 レジストリ:
SfcIsFileProtected()
SfcIsKeyProtected()
セッション 0 の分離
~ 権限昇格を狙う悪意あるコードから身を守る ~
 セッション 0 をアプリケーションから分離
 セッション 0 はシステムプロセスとサービスのみ
 ユーザーのゕプリケーションは 1 から
影響: 高
頻度: 低
 影響
 UIを提供しているサービスおよびドラ゗バ
 ユーザーからの応答を取れない
 画面のプロパテゖ情報を取得している場合
 セッション0にはグラフゖックス機能がないので情報を得られない
 ウゖンドウメッセージを送受信しているサービスおよびドラ゗バ
 セッションIDが違うため受け取れない
 対策
 簡単なメッセージは WTSSendMessage へ変更
 複雑な UI は CreateProcessAsUserでユーザーセッションへ
 WTSGetActiveConsoleSessionId、WTSQueryUserToken
 C/S型の通信メカニズム(RPCやNamedPipeなど)へ変更
IE 7 の保護モード
~ ActiveX コントロール, IE ゕド゗ンは要注意 ~
 UAC, UIPIと連動して IEを介した攻撃から
システムを保護
影響: 高
頻度: 高
 低デスクトップIL(整合性レベル-低)で動作
 安全な領域のみにゕクセスを制限
 Temporary Internet Files¥Low
 HKCU¥Software¥Microsoft¥Internet Explorer¥LowRegistry
 上位権限が必要な場合はブローカープロセスを経由
 ActiveXの゗ンストール:IEInstal.exe (管理者権限昇格)
 ユーザーごとの設定変更:IEUser.exe (スタンダード権限)
 問題の切り分け
 保護モードOFFでも問題が発生する場合は UAC の影響あり
 IE7 を管理者権限で起動して確認
 関連API
 保護モードかどうか:
 書き込み可能レジストリ取得:
IEIsProtectedModeProcess()
IEGetWriteableHKCU()
整合性レベル(IL)
~ 保護モードの IE は低デスクトップ IL ~
 プロセスやセキュリティオブジェクトへの
アクセスを制御する仕組み(Vistaで導入)
影響: 高
頻度: 中
 UAC:スタンダードユーザーで起動したプロセスは中IL
 保護モードの IE7(iexplorer.exe)は 低IL
 低デスクトップIL(整合性レベル-低)で起動している
 中IL(ユーザーブローカー)
: IEUser.exe
 高IL(ゕドミンブローカー)
: IEInstal.exe
 安全な領域のみにゕクセスを制限
 Temporary Internet Files¥Low
 HKCU¥Software¥Microsoft¥Internet Explorer¥LowRegistry
IL
権限
高
管理者権限
システム領域への書き込みが可能
中
スタンダード権限
%UserProfile%, HKCUへの書き込み可能
低
信頼できない権限
安全な領域のみ書き込み可能
ヘルプシステム
~ HLP は表示できなくなりました ~
 ヘルプシステム WinHlp32.exe の削除
 .HLPフゔ゗ルを表示するヘルプエンジンが廃止
影響: 中
頻度: 低
 .HLPを既定で開くことができない
 ダウンロードで提供
 OSから .hlp と .chm ヘルプが削除
 HTML ヘルプ(.chm)の
エンジンはサポートを継続
 現在はVistaのヘルプシステムに
対応したヘルプは作れない
 当面は HTMLヘルプを採用
ヘルプエンジン
拡張子
メインターゲットOS
WinHelp.exe / WinHlp32.exe
.HLP
Windows 3.1 / 95
HH.exe
.CHM
Windows 98 / 2000
HelpCtr.exe
.CHM
Windows XP, Windows Server 2003
HelpPane.exe
.HLS
Windows Vista
その他 注意事項 ①
~ もしもの場合も考慮しましょう ~
 高DPIスケーリング
影響: 中
 96dpi と決め打ちしているゕプリ
頻度: 中
 描画するサ゗ズや位置がおかしくなる
 ノートPC などで高解像度&高DPI で利用しているユーザーが
増えている
 大きなスケール(120 DPI)環境でのテスト
影響: 低
頻度: 中
 ユーザーの簡易切り替え(FUS)
 ドメ゗ンに参加しているマシンでも FUS が有効
 複数ユーザーのシナリオを考慮していないゕプリは注意
 二重起動を防止、制御しているゕプリケーションも要チェック
 GDIパフォーマンス
 すべての描画はソフトウェゕで処理される
 XPよりもパフォーマンスが劣化する場合もある
 DIB(Device Independent Bitmap)や GDI+は大丈夫
 DDB(Device Dependent Bitmap)は注意!
影響: 低
頻度: 低
その他 注意事項 ②
~ 古い機能で REMOVE されたもの ~
 カーネルモードプリンタドライバの廃止
 ユーザーモードへ移行が必要
影響: 中
頻度: 低
 既存の GINAジーナ は廃止
 Vistaでは LogonUIとWinLogonが直接通信する新しい認証モデル
(クレデンシャル・プロバ゗ダ・゗ンターフェ゗ス)へ変更
 サードベンダーによる認証方法の追加が容易になった
 WinXP, WS2003の認証ドラ゗バ・ゕプリは動かない
 NetDDE 廃止
 セキュリテゖ上の理由から削除
 DDE通信はOK
影響: 低
頻度: 低
 その他 廃止されたもの
 FrontPage Server Extension
 D3DRM(DirectX 3D Retained Mode), DirectAnimation
 Macintosh 対応サービス, Web公開ウゖザード
JIS X 0123:2004 対応
~ JIS2004(JIS X 0213:2004)対応による影響 ~
 JIS(経済産業省)の例示字形を国語審議会(文部省)の
答申による表外漢字字体表の印刷標準字体に改めた
 178文字の字形を変更
 168文字は例示字形の変更で対処
 10文字は新たに追加
 戸籍法(法務省)を一部改定
 JIS2004範囲で拡張人名用漢字を拡張
 JIS2004 に対応したフォント
影響: 最大
 MS ゴシック、MS Pゴシック、
頻度: 高
MS UI Gothic、MS 明朝、MS P明朝、メ゗リオ
 JIS2004で定義されている第三、第四水準漢字、非漢字が追加
 4,354字 が追加されて 11,233字
 新しい例示字体に対応するために字形(グリフ)を修正
 同じコードポ゗ントなのでシステム的な障害はない
 文字幅・高さは変更なし
例示字形の変更 - サンプル 1/2
~ コードポ゗ントが同じなので外観だけ ~
例示字形の変更 - サンプル 2/2
~ 中には怒り出すエゴ゗ストもいる ~
* は変更が確認できないもの
環境依存文字
~ Unicode の問題がここでまた再燃する ~
 Microsoft IME も JIS2004対応
 環境依存文字(Unicode)と表示
 Unicodeに対応していないシステムは
「文字化け」問題が露呈する
 IMEのプロパテゖ(非推奨)
 JIS X 0208文字で構成された単語のみ変換候補に表示
 印刷標準字体で構成された単語のみ変換候補に表示
 Unicode未対応をシステム全体でチェック
 データベースのフゖールドのデータ型
 char, varchar → nchar, nvarchar
 CHAR, VARCHAR→ CHAR2, VARCHAR2
 ビュー、ストゕドプロシージャの引数など
 データゕクセス(ADO.NET)
 SQL Server JIS2004 ガ゗ドラ゗ン
 http://www.microsoft.com/japan/sql/default.mspx
影響: 高
頻度: 高
例示字形の変更 - 追加10文字
~ 漢字は日本だけのものではない ~
 10文字の追加
 ISOで既に定義されていたため新たに10文字を追加
影響: 中
頻度: 小
 コードポ゗ントも違う = 似て非なるもの
 上段が追加された文字、下段は従来から規定されている文字
 追加された10文字はすべて「環境依存文字」である
非漢字サンプル 1/2
~ もう外字は不要かも ~
非漢字サンプル 2/2
~ 携帯並みに絵文字がいっぱい ~
JIS2004対策
~ システムを Unicode 対応にさせて JIS2004 採用へ ~
 MSが提供するフォント
 JIS2004対応 MSゴシック・MS明朝 Version 5.0
 Windows XP / Windows Server 2003用(JIS2004に対応させる)
 JIS90対応 MSゴシック・MS明朝 Version 2.5
 Windows Vista用(JIS90に戻す)
 プログラムで対応
 プログラムで対応するのはコストに合わないが...
 どうしても必要な場合があるのか? かつしかく vs かつらぎし
(東京都) v.s.
(奈良県)
 OpenType Feature Tag
 Win32: Uniscribe関数(ScriptShapeOpenTypeなど)
 http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/intl/uniscrib_35k5.asp
 WPF:
FontEastAsianLangugeプロパテゖで設定可能
符号化方式(エンコーディング)
~ Web ページとテキストフゔ゗ルの読み書きは注意 ~
 代表的な符号化方式





Shift_jis
ISO-2022-jp
EUC-JP
UTF-8
UTF-16
影響: 中
頻度: 高
日本語版 Windows の既定
いわゆるJISコード
UNIX上で日本語
Unicodeを扱うデータ交換、フゔ゗ル形式
Windows 内部(xxxxxW 関数, .NET String)
 エンコードは 1:1 とは限らない
 [¥]UTF16(U+00A5)→[¥]Shift-jis(0x5C)→[∖]UTF16(U+005C)
'ファイルI/O
Dim sw1 As New StreamWriter("sjis.txt", False, Encoding.Default)
sw1.WriteLine("☃の日に♨俱楽部で𠮟られた")
'→文字化け
Dim sw2 As New StreamWriter("utf8.txt", False, Encoding.UTF8)
sw2.WriteLine("☃の日に♨俱楽部で𠮟られた")
'→正常
<system.web>
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"/>
'ページディクティブ
<%@ Page ResponseEncoding="UTF-8" %>
'コード
Page.ResponseEncoding = "Shift-jis"
サロゲートペア
~ Unicode も既に2バ゗トでは足りない ~
 サロゲートペア
 Unicodeの未使用領域1024文字2つで1文字を表示
影響: 壊滅
頻度: 低
 前 D800~DBFF + 後 DC00~DFFF
 1文字=4バ゗ト
 𩹉(トビウオ)、叱(しかる), ...
 JIS X 0213:2004で追加された文字の一部が該当する
JIS2004(面句点コード)
叱
𠮟
1-28-24
1-47-52
(環境依存文字)
UTF-16 (Windows内部) 53F1
D842 + DF9F
UTF-8
E5 8F B1
F0 A0 AE 9F
UTF-32
U+000053F1
U+00020B9F
Shift-JIS
8EB6
n/a
サロゲートペア
~ DBCS 対策が懐かしい ~
 文字列操作、長さ判定プログラムに影響
 Win32(VC, VB6, VBA,...)および
影響: 壊滅
頻度: 低
.NETマネージドコードのほとんどで壊滅的な被害
 入力文字数制限(TextBox.MaxLengh プロパテゖなど)
 奇数の場合は特に注意
 ゴミ(サロゲートの片割れ)が混在する可能性
 対策
 System.Globalization.StringInfo を使って処理
 Char.IsSurrogate、Char.IsSurrogatePair,...などで判定
using System.Globalization;
string s = "𠮟";
Console.WriteLine(s.Length);
StringInfo si = new StringInfo(s);
Console.WriteLine(si.LengthInTextElements);
// "しかル"の環境依存文字
// 2と測定 ×
// 1と測定 ◎
サロゲートペア - サンプル
~ 使用頻度は少ないがシステムに与える影響は大 ~
※日本語で約300文字
その他 Unicodeに関する注意
~ Unicode に対応したらからと言って安心できない ~
 結合文字
 鼻濁音(か゚き゚く゚け゚こ゚)、ゕ゗ヌ語(セ゚ツ゚ト゚)
影響: 高
頻度: 低
 「か」304B +「゚」309A = 「か゚」
 発音記号(Ά)
 「A」0391 +「´」0386 =「Ά」
 Unicode制御文字
 ゼロ幅文字、双方向性制御
 U+200B, U+200C, U+200D,
U+FFFF, U+202A, U+202E, ...
 エクスプローラで
[Unicode制御文字の挿入]
 GUIは騙せる
同じフゔ゗ル名
Vista対応アプリケーション開発
~ Vista新機能の紹介と実装に関するトピックス ~
Internet Explorer 7
~ Web 環境における作業効率の向上 ~
 複数のWeb ブラウザを効率的に管理
 タブブラウズ機能 / ク゗ックタブ機能
 リンクを別タブでオープンした時の影響を考慮
難易度: 低
 Sessionは大丈夫だがユーザーの操作上の問題を考慮
 ユーザビリティ・セキュリティの改善





大幅に改善された印刷機能
お気に入りの管理
ズーム機能
検索プロバ゗ダの選択と追加
フゖッシングサ゗トの警告
 RSS プラットフォーム
 更新情報やニュース購読
 共通のFeed
 IFeed゗ンターフェ゗スの実装
 変更通知
難易度: 高
新ClearTypeフォント "メイリオ"
~ 画面上での日本語文章の可読性を画期的に向上 ~
 メイリオ
 サンセリフ系
難易度: 低
 角ゴシックフォント
 小さくても潰れない
 8pt@96dip
 欧文はプロポーショナル
 日本語は固定幅
 斜体は欧文文字のみ
 Vista 向けにのみ提供
 問題点
 画面フォントに採用する場合はサ゗ズ・レ゗ゕウトが崩壊
 日本語は斜体表示されない
 変更してもレギュラーで表示
Windows Aero
~ Vista らしい見栄えのする UI にお色直し ~
 Windows Aero
 半透明ツールバー
難易度: 高
 最大化すると透けない
 透明度、色・濃度
 タスクバーでの縮小版表示
 ネオンカラー、最大・最小化3Dゕニメーション
 タスク切り替え
 Windows Flip : [ALT]+[TAB]
 Windows Flip3D : [WIN]+[TAB]
 マウスのホ゗ールでも回転
 Aeroは uxsms サービス
 Desktop Windows Manager
 API
 APIは dwmapi.dll の DwmXXXX系
 エフェクトの範囲指定、Flip参加/不参加、サムネ゗ルの取得
サイドバー&ガジェット
~ 小さいツールはガジェットへ ~
 Windows サイドバー
 シェル拡張の新しいホストゕプリケーション
 ワ゗ドスクリーン、マルチモニタに最適
 新たな情報・作業領域
 ガジェット
 サ゗ドバー内・外で動作する軽量ゕプリケーション
 DHTMLベースでの
軽量コンテンツ
 Live Gadget
 Webサ゗トで公開
 Sidebar Gadget
 クラ゗ゕントに
゗ンストール
難易度: 中
電源管理(Power Aware)
~ スリープや電源プロフゔ゗ル変更に対応せよ ~
 電源管理機能の向上
 よりわかりやすくなったユーザー
゗ンタフェースで詳細な設定が可能
 シンプルな電源オプション
 バランス、省電力、高パフォーマンス
 バッテリー消費を回避
 強化されたスリープ モードの採用
 高速復帰(約2秒)
 電源管理の徹底
 グループ ポリシーによる集中管理
 アプリの対応
 スリープ&レジームや省電力モードへの対応
 WinProcでWM_POWERBROADCASTをハンドリング
 wParamでその状態を判断
難易度: 中
Windows Installer 4.0
~ 最新の゗ンストーラでセットゕップを快適に! ~
 UAC対応
 VistaのUACに対応
難易度: 中
 msidbSumInfoSourceTypeLUAPackage
 Restart Manager対応
 フゔ゗ル使用中のゕプリがあってもOK(ゕップデート)
 MsiRMFilesInUse, RegisterApplicationRestart API
 Multilingual User Interface (MUI)対応
 ファイルの関連付け
 既定プログラムスキーマへの書き込み(Vistaの新しい処理)
 HKLM¥SOFTWARE¥RegisteredApplications
 SPAD (Set Program Access and Defaults)
 以前に既定動作だったことをゕプリケーションで再主張が可能
 参照
 What's New in Windows Installer 4.0
 http://msdn2.microsoft.com/en-us/library/aa372808.aspx
Windows PowerShell "Monado"
~ .NET 対応の UNIX 風スクリプテゖング環境 ~
 Script + Host + Shell
 複雑な作業を柔軟に取り扱う強力な自動化ツール
難易度: 中
 BASH / KSH ラ゗クなシェル
 Perl / Ruby のようなプログラミング
 .NET, COM, WMI すべてが使える
 .NETオブジェクトをパ゗プ経由でオブジェクトとして渡す
 ゗ンスタンス: $d.DayOfWeek
 スタテゖック: [DateTime]::Now
 $word = New-Object –ComObject Word.Application
 XMLはネ゗テゖブのデータ型
 $x=[xml]"<a><b><c>TEST</c></b></a>"
 フゔ゗ルシステムのように簡単にデータストゕにゕクセス
 dir HKLM:¥SOFTWARE¥Microsoft
 ダウンロード
 http://support.microsoft.com/kb/928439/ja
 VBScript to Windows PowerShell Conversion Guide (英語)
Vista の新機能への対応 ①
~ 余裕があれば新機能の実装も検討しましょう ~
 PNGアイコンのサポート
 256×256 32bpp 高解像度ゕ゗コン(PNG Compress)
 透過(ゕルフゔチャンネル)サポート
難易度: 低
難易度: 高
 Low Priority I/O
 バックグランドタスクなどのフゔ゗ルI/O優先度を最低限に設定
 デゖスクIOの競合を回避
 SetPriorityClass関数にPROCESS_MODE_BACKGROUND_BEGIN
 SetFileInformationByHandle関数への
FILE_IO_PRIORITY_HINT_INFO構造体のPriorityHint メンバに
IoPriorityHintLowをセット
 Tablet PC機能
 Tablet PCでなくてもペン・゗ンクの利用が可能
 マネージドコントロールも用意されている
難易度: 中
 InkOverlay, InkEditコントロールなど(Microsoft.Ink名前空間)
 マウスで利用する場合は UseMouseForInput = True
Vista の新機能への対応 ②
~ エキサ゗テゖングな機能満載! ~
 Magnifier API
 拡大鏡用のAPI
難易度: 高
 WPFはベクタ的に拡大
 Avalon Remoting
 リモートデスクトップでも
クラ゗ゕントのGPUを利用
 描画エンジン(Media Integration Layer)
と描画データ(Visual Tree)の管理
は分離しておりネットワークに透過的
 ペアレンタルコントロール(保護者による制限)
 IWindowsParentalControls、IGameExplorerの実装
難易度: 低
難易度: 高
難易度: 高
 Transacted NTFS / Registry
 フゔ゗ルI/O, レジストリ操作がトランザクショナルに!
 CreateFileTransacted, RegCreateKeyTransacted などAPIが追加
Vista の新機能への対応 ③
~ 余裕があれば新機能の実装も検討しましょう ~
 Vistaのサーチ機能への対応
 IFilter ゗ンターフェ゗スの実装
難易度: 高
 リッチプレビュー
 リッチプレビューハンドラにて
独自のプレビュー゗メージを提供
 IPreviewHandler
 ライブアイコン
 IThumbnailProvider
 新しいソート順
 LCID=0x40411(部首画数順)
 Windows Vista スタイルガイドラインは必読
 http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/UxGuide/UXGuide/Resources/TopRules/TopRules.asp
Windows Vista の波を乗り切ろう!
~ 緻密な検証とご対応をお願いします ~
大変だけど..
 必要なもの
 Microsoft Windows Vista 製品版(日本語版)
 MSDN サブスクリプション ダウンロード
 1月30日店頭発売済み
 環境
 Windows Vista Capable PC で!
 本日のデモマシン
 CPU:
Intel Core2 Duo T7400 - 2.16 GHz
 Chip:
Mobile Intel 945PM Express Chipset
 MEM: 3.0 GB
 GPU:
ATI Mobility FireGL V5250 (256MB)
 参照
 Windows Vista 公式サ゗ト
 http://www.microsoft.com/japan/windowsvista/
 Microsoft Windows Vista デベロッパー センター
 http://www.microsoft.com/japan/msdn/windowsvista/
Office 2007 Client
~ 新しい Office のユーザー インターフェイス ~
Office 2007 の影響と対応
~ フゔ゗ル形式の変更に注意 ~
 新しいファイル形式への対応(docx, xlsx, pptx,…)
 ODBC, OLEDB経由でのゕクセスはできない
難易度: 高
 Office Open XML(ECMA-376)
 .NET Framework 3.0 の System.IO.Package名前空間
(Windowbase.dll)でプログラミング可能
 新しいユーザーインターフェイス
 ク゗ック ゕクセス ツールバー
 フローテゖング ツールバー
 リボン
 ギャラリー
 ライブプレビュー
 Visual Studio Tools for Office
 ゕド゗ン開発(マネージドコード)
大幅な UI の変更
~ なぜ、新しい UI が必要なのか? ~
 Office が持つ機能は大幅に増加・拡張し続け、既存の UI
に載せるには限界に達している
 必要な機能が見つけられない
 機能がありすぎてどれを使ったらよいのかわからない
 新しい機能を使いこなせない
 より簡単な操作で体裁の良いドキュメントを作りたい
 「新しいワーク スタイル」を提案
 使いやすいこと
 ごく自然なオペレーションで操作できること
 ユーザーの生産性を更に高めること
 ユーザーが必要としている機能をより探しやすくすること
 美しく体裁のよい文書を作成するための機能面のサポート
進化したツールバー
~ すごーく、便利です ~
 クイック アクセス ツールバー
 1 回のクリックで直接目的の
コマンドを実行できるゕ゗コン群
 フローティング ツールバー
 良く使うコマンドに容易にゕクセス
するための「オンデマンド UI」
 拡張されたウィンドウ枠
 ステータス バー
 表示およびウゖンドウの切り替え
 ズーム (煩雑なスクロールから開放)
リボン
~ "リボン" = メニュー + ツールバー ~
 リボン
 メニューやツールバーに代わって提供されるコンポーネント
 参照しやすいように設計されたモードレス UI
 ダ゗ゕログ ボックスなどを開いたり、閉じたりする必要がない
 特定のオブジェクトやシナリオごとに整理された「タブ」によって
構成
ライブプレビュー
~ この仕組みは見逃せない! ~
 コンテキスト ツール
 選択・挿入時に対応するコンテキストツールをリボン上に表示
 ギャラリー & ライブプレビュー
 「視覚的」に機能を探す手段
ドロップ ダウンリスト
形式で表示
各製品の新機能
~ PowerPoint 2007, Word 2007, Excel 2007 ~
 PowerPoint 2007
 SmartArt
 テーマ
 3D視覚効果
 Word 2007
 ク゗ック パーツ
 レ゗ゕウトの設定
 テキスト ボックス
 Excel 2007
 テーブル
 セルのスタ゗ル
 グラフ
 条件付き書式
 Outlook 2007
 RSS 対応
 検索機能ゕップ
Visual Studio Tools for Office
~ Office に寄生すべし! Office 2007 クラ゗ゕント開発 ~
 各種マネージドアドイン開発(VB, C#)
 Word 2007, Excel 2007, PowerPoint 2007, Outlook 2007,
Access 2007, Visio 2007, InfoPath 2007, Publisher 2007
 カスタム タスクペイン (作業ウィンドウ)
 ゕプリケーション レベル
 タスク ペ゗ン
 ドキュメント レベル
 ゕクション ペ゗ン
 リボン サポート
 XMLベースの定義
 ギャラリー
 ClickOnce 対応
Office 2007 を試してみよう!
~ VSTO は大ブレークの予感! ~
 必要なもの
 Microsoft Office 2007
製品版 (日本語版)
 Visual Studio Tools for
Office Second Edition
 日本語版を゗ンストールすること
 Microsoft .NET Framework 3.0
Runtime Components
 Visual Studio 2005 (日本語版)
 参照
 http://www.microsoft.com/japan/office/preview/default.mspx
 http://www.microsoft.com/japan/msdn/office/
Thanks for Attending !
アンケートにご協力ください。
お手数ですが 64バイト以上のコメントをお願いします