開発者のための 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バイト以上のコメントをお願いします
© Copyright 2024 Paperzz