Agenda Windows 64-bit 概要マネージコード開発 ( 導入 ) マネージコード開発 ( 詳細 ) コーディング上の留意点まとめ

Similar documents
目次 1 はじめに 本文書の概要 PVF ソフトウェアと VISUAL STUDIO PVF ソフトウェアの種類 MICROSOFT VISUAL STUDIO の日本語化について VISUAL STUDIO

Control Manager 6.0 Service Pack 3 System Requirements

目次 Windows 2003 への新規インストール... 3 Windows 2008 への新規インストール... 4 Windows 2012 への新規インストール... 6 Microsoft SQL のサポート... 8 IPv4/IPv6 のサポート... 8 制限事項... 9 Web

HotFixInfo_ xls

システム要件 Trend Micro Safe Lock 2.0 SP1 Trend Micro Safe Lock 2.0 SP1 エージェントのシステム要件 OS Client OS Server OS Windows 2000 (SP4) [Professional] (32bit) Wind

CheckPoint Endpoint Security メトロリリース製品について

ウイルスバスター コーポレートエディション XG システム要件

Trend Micro Safe Lock 2.0 Patch1 管理コンソールのシステム要件 OS Windows XP (SP2/SP3) [Professional] Windows 7 (SP なし /SP1) [Professional / Enterprise / Ultimate] W

sis総合カタログ表紙_1207最終のコピー

インテル Parallel Studio XE 2017 Composer Edition for Fortran Windows* インストール ガイド Rev (2017/06/08) エクセルソフト株式会社

Install / Protect / Monetize InstallShield 全機能 データシート プロフェッショナルなインストールの作成 PREMIER PROFESSIONAL EXPRESS MSIX パッケージ サポート フレームワークをサポート Windows Installer(

Windows Server 2016 Standard/Datacenter/Essentials (SP なし ) 32 ビット /64 ビット対応 対応 Web サーバ IIS Apache HTTP Server 環境によるインストール時の Web サーバの検出および利用につい

システム要件 Trend Micro Safe Lock Trend Micro Safe Lock 2.0 エージェントのシステム要件 OS Client OS Server OS Windows 2000 (SP4) [Professional] (32bit) Windows XP (SP1/

MVP for VB が語る C# 入門

Print Server バージョンV2

対応OSと必須ソフトウェア

Windows XP(SP3) の場合または,.Net Framework 4 Client がインストールされていない場合,.Net Framework 4 Client Profile の同意画面が表示されます.Net Framework がインストールされている場合は, この画面は表示されませ

ウイルスバスター コーポレートエディション システム要件

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

対応 Web サーバ IIS Apache HTTP Server x 環境によるインストール時の Web サーバの検出および利用について詳細は以下製品 Q&A をご覧ください

Oracle Policy Automation 10.0システム要件

ログイン時の ID パスワードは マイページ と同一です インストール前の状態の場合 ログイン後に表示されるページの ライセンス一覧 に該当製品シリアルの表示はされません インストール完了後 ライセンス管理ページご利用シリアルの一覧が表示されます 以上でライセンス管理ページの作成は完了です なお セ

64bit環境で32bitコンポーネントの利用

MultiLABELISTOCX と MultiLABELISTV4 MLOCX は MLV4 のレイアウト発行機能を継承しています したがって MLV4 の振分発行やプ リセット発行を使用するための登録情報は使用できません MLV4 のレイアウト管理でレイアウトを作成すると 拡張子が m lay

構造体

V5.0 V4.2 から V5 への 変更点 1.1 版 2010 年 03 月 26 日

(OnePoint) ( URL Web Copyright 2005 Microsoft Corporation. All rights reserved. Microsoft Windows Visual Basic Visual Studio Microsoft Corporation

untitled

BricRobo V1.5 インストールマニュアル

biz-Stream v4 各種機能別動作環境一覧表

目次 1 はじめに 製品に含まれるコンポーネント 動作環境... 4 オペレーティング システム... 4 Microsoft Visual Studio* 製品 製品のダウンロード 製品版をインストールする場合 評価版を

Apache サーバをすでにインストールしている場合は アンインストールをお勧めします 適切な Apache サーバが ビジネスセキュリティサーバとともにインストールされます 管理コンソール Web ブラウザ : Internet Explorer 6.0 SP2 以降 PDF リーダー : Ado

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版 : インストール・ガイド

SELECT Server XM (ver

啓林館データベースソフト KeirinkanDB System インストールマニュアル 啓林館中学校 DB システムのインストール 啓林館中学校 DB システムは 算数 数学 と 理科 は別メディアとなります 1 教科をインストールしている場合 追加で別の教科をインストール可能です ( 教科追加イン

ウイルスバスター コーポレートエディション 10.6 SP3 システム要件

インテル® VTune™ パフォーマンス・アナライザー 9.1 Windows* 版

HULFT-DataMagic Ver2.2.0 製品対応OS

「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」

署名ツール検証報告書

1. アンケート集計サンプルについて ここでは Windows Azure と SQL Azure を使ってアンケートを実施し アンケート結果を Excel で集計するサンプルについて説明します アンケートは Windows Azure で運用し アンケート結果は SQL Azure に格納されます

Microsoft Word - PCOMM V6.0_FAQ.doc

商標類 Microsoft は, 米国およびその他の国における米国 Microsoft Corp. の登録商標です Microsoft Office は, 米国 Microsoft Corp. の商品名称です Microsoft Excel は, 米国 Microsoft Corp. の商品名称です

InfoCage FileShell 持出閲覧形式保護ファイルビューアー 利用ガイド

FormPat 環境設定ガイド

目次 1. はじめに 2. CSS-Net の動作環境 3. インストール手順 4. CSS-Net の起動および初期設定 5. アンインストール方法 1. はじめに 本書は CSS-Net(GSPc_Local) のインストール手順を纏めたものです 1

システム必要条件 - SAS Add-In 7.1 for Microsoft Office

1. はじめに (1) 本書の位置づけ 本書ではベジフルネット Ver4 の導入に関連した次の事項について記載する ベジフルネット Ver4 で改善された機能について 新機能の操作に関する概要説明 ベジフルネット Ver4 プログラムのインストールについて Ver4 のインストール手順についての説明

Veritas System Recovery 16 Management Solution Readme

セットアップカード

MxLogonサーバサイドツールキット用UI

システム必要条件 - SAS Add-In 7.1 for Microsoft Office

アドイン版 ********************************************* インストール手順書 ********************************************* 目次 JAVIS Appli に必要な環境... 2 JAVIS Appli に必要

自宅でJava言語の開発環境を作る方法

クラスタ環境でのデータベースのアップグレード手順

Visual Basic Oracle Database 11 Release 1

PowerRDBconnector説明書(SQLServer編)

Visual Studio with Cordova クロスプラットフォーム開発の全貌

Source Insight

セットアップマニュアル

WSUS Quick Package

インストール要領書

ServerViewのWebアクセス制限方法

サーバセキュリティサービスアップグレード手順書 Deep Security 9.6SP1 (Windows) NEC 第 1 版 2017/08/23

リモートアクセスライト インストールガイド リモートアクセスライト インストールガイド 第 1. 1 版 2017 年 12 月 12 日

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

HTTP 404 への対処

クラスタ環境でのデータベースのアップグレード

ソフトウェア説明書

Transcription:

Visual Studio 2005 時代の 64 ビットアプリケーション開発 ~ Itanium 上での.NET Framework 2.0 の展開 マイクロソフト株式会社エンタープライズプラットホーム本部プラットホーム本部エバンジェリスト佐藤直樹

Agenda Windows 64-bit 概要マネージコード開発 ( 導入 ) マネージコード開発 ( 詳細 ) コーディング上の留意点まとめ

Windows 64-bit 概要

Windows 64-bit 概要 ~ アプリケーションの観点から 64 ビットアプリケーション 64 ビットシステムファイルを直接利用 32 ビットアプリケーション Windows on Windows 64 (WOW64) を経由して 64 ビットシステムファイルを利用 32-bit App 64-bit App WOW64 user32 Thunking layer gdi32 user64 gdi64 User mode 64-bit カーネル Kernel mode

Windows 64-bit 概要 ~64/ 64/32 ビット相互運用における留意点 同一プロセス内には 32 ビットコードと 64 ビットコードは同居できない ライブラリロード時にエラー COM インプロセスサーバ (DLL サーバ ) IME, IE プラグイン, シェル拡張, ActiveX コントロール WOW64 32-bit App 64-bit App 64-bit dll 64-bit dll 32-bit dll 32-bit dll

Windows 64-bit 概要 ~64/ 64/32 ビット相互運用における留意点 アウトプロセス COM/RPC (EXE サーバ ) を 64 ビットと32 ビットプロセス間においてサポート 共有メモリ イベント等のオブジェクトを共有 ミューテックス セマフォ ファイルハンドル ウィンドウハンドル等 WOW64 COM/RPC COM/RPC 32-bit App 64-bit App 64-bit App 共有メモリ 共有メモリ

マネージコード開発 ( 導入 )

Visual Studio 2005 各言語の強化 IDE の革新 開発ライフサイクルのサポートプラットホームとの統合 Windows CE スマートフォンからデスクトップ サーバ 64 ビットサーバまで Connected Systems

.NET Framework 2.0 管理コード タイプセーフ 高パフォーマンスシングルバイナリ 32 ビット環境 (x86, WOW64) 64 ビット環境 ( IA64 および x64 ) コンパイルオプションで特定プラットホーム向けに作成 JIT コンパイルによりネイティブコードにコンパイルされ実行 2.0 IA64 ソースコード コンパイル x64 Visual Studio 2005 x86(32-bit)

64 ビット環境での.NET.NET Framework 1.1 WOW64 (32 ビット ) 上でのサポート IPF では対話型クライアントをお勧め.NET Framework 2.0 2 つの 64 ビット CPU アーキテクチャ IA64 : インテル Itanium プロセッサーファミリー x64 : インテル EM64T, AMD AMD64 WOW64 (32 ビット ) 32 ビット CPU もサポート WOW64 : 64 ビット向け再頒布可能パッケージに含む 32 ビット : x86 向け再頒布可能パッケージ 必須システム (64 ビットプラットホーム ) Windows Server 2003 SP1 for Itanium-based Systems Windows XP Professional x64 Edition Windows Server 2003 x64 Editions

ターゲットプラットホーム 開発言語別のサポート状況 Visual C++ Visual C# Visual Basic Visual J# マネージ 32-bit 64-bit ネイティブ 32-bit 64-bit : サポートする / : サポートしない

.NET Framework 2.0 WOW64 上で.NET Framework 2.0 を動作.NET Framework 2.0(64 ビット ) には 32/64 ビットの両方のランタイムが含まれる Microsoft.NET Framework 32 ビット向け Framework を管理 v1.1.4322 1.1 をインストールした場合 v2.0.50727 2.0( x64/ipf A64) ) をインストールル Framework64 64 ビット向け Framework を管理 v2.0.50727

Visual Studio 2005 IA64 をターゲットとするクロス開発 32 ビット OS 上での開発 リモートデバッガによるデバッグ デバッグ対象を選び [ アタッチ ] Windows Server 2003 (IA64) Windows 32-bit WOW64 64-bit プロセス 32-bit プロセス 32-bit プロセス VS 2005 リモートデバッガ (64 ビット版 ) リモートデバッガ (32 ビット版 )

Visual Studio 2005 x64 をターゲットとするクロス開発および WOW64 上 32 ビット OS WOW64(x64) 上での開発をサポート ローカル リモートでのデバッグ WOW64 上の 32 ビットプロセス 64 ビットプロセス Windows Server 2003/XP (x64) WOW64 デバッグ対象を選び [ アタッチ ] Windows 32-bit 64-bit プロセス 32-bit プロセス 32-bit プロセス VS 2005 VS 2005 リモートデバッガ (64 ビット版 ) リモートデバッガ (32 ビット版 )

アプリケーション移行戦略 ~64 ビット化の道筋 64 ビットへの移行のモデル 32-bit OS 上で現状維持 (32-bit) WOW64 上でホスト (32-bit) 一部 64-bit 化 (32-bit/64-bit 混在 ) 64-bit 移植 (64-bit) 再構築 (64-bit) 業務の見直し 新業務への対応 新技術への対応 SOA,.NET Framework 対応

.NET Framework 1.1 ~64 ビット環境への移行の検討 1.1 ベースのアプリケーションを 64 ビット環境で動作させる 4つの選択肢 4 を推奨 ( 場合によっては 1 も ) FX 1.1 1 そのまま WOW64 上で起動 FX 1.1 (32 ビット ) 2 FX 1.1 をインストールしないまたはアプリケーション構成ファイルで 2.0 を指定 3 CLR ヘッダーの変更 corflags.exe WOW64 上で起動 FX 2.0 (32 ビット ) 4.NET Framework 2.0 でリコンパイル FX 2.0 64 ビットで起動 FX 2.0

マネージコード開発 ( 詳細 )

実行は 32 ビット or 64 ビット? 言語と実行プラットフォームとコンパイルオプションの関係 C#, Visual Basic : /platform オプション C++ : ソリューションプラットフォームと /clr オプションの組み合せ 32 ビット OS 64 ビット OS 32 ビット WOW64 64 ビット (x64) 64 ビット (IA64) Visual C++ /clr:safe /clr (Win32) /clr:pure (Win32) /clr (Win32) /clr:pure (Win32) /clr:safe /clr (x64) /clr:pure (x64) /clr:safe /clr (IPF) /clr:pure (IPF) Visual C# Visual Basic anycpu x86 anycpu x86 x86 x86 anycpu x64 anycpu x64 anycpu Itanium anycpu Itanium Visual J# (x86) (x86)

アプリケーションローディング ~ コンパイルオプションによる留意点 同一プロセス内に 32 ビットコードと 64 ビットコードコード ターゲットマシンの違うコードは同居できない アーキテクチャミスマッチ ネイティブコードと同様の制約 /platform:anycpu,, /clr:safe/ はロード WOW64 32-bit App 64-bit IA64 App 64-bit x64 dll 64-bit x64 dll 64-bit IA64 dll 64-bit IA64 dll 32-bit x86 dll 32-bit x86 dll

共有アセンブリ 共有アセンブリの格納先グローバルアセンブリキャッシュ (GAC) はアーキテクチャを認識 適切なアーキテクチャにインストールされる i.e. x64 は IPF にインストールされないアセンブリの検索順序 : 特定プロセッサー (x86, x64, IA64) 64 MSIL Legacy (1.1) gacutil /lr 64ビット (IA64) 1 IA64 2 MSIL 3 1.1 assembly GAC WOW64 1 x86 2 MSIL 3 1.1 1.1 のアセンブリ用 2.0 のアセンブリ用 GAC_32 GAC_64 GAC_MSIL x86 dll x64/ia64 dll anycpu dll

64 ビット上での IIS 6.0 64 ビットもしくは 32 ビットのいずれかで動作 メタベースプロパティの値に従って 32 ビットもしくは 64 ビットワーカープロセスを開始 ASP.NET も同様に 64 ビットもしくは 32 ビットのいずれかでの動作 64 ビット 32 ビット (WOW64) 仮想フォルダ 仮想フォルダ 仮想フォルダ 仮想フォルダ

64 ビット上での IIS 6.0 32 ビットワーカープロセスへの切り替え cscript %SystemDrive% SystemDrive% inetpub inetpub AdminScripts adsutil.vbs set w3svc/apppools/enable32bitapponwin64 1 32 ビット ASP.NET 1.1 のインストール %SystemDrive% Microsoft.net Microsoft.net Framework Framework v1.1.4322 v1.1.4322 aspnet_regiis i 32 ビット ASP.NET 2.0 のインストール %SystemDrive% Microsoft.net Microsoft.net Framework Framework v2.0.50727 v2.0.50727 aspnet_regiis i wow64 -enable 2.0 にマッピング 1.1 にマッピング 32 ビット (WOW64) 仮想フォルダ

64 ビット上での IIS 6.0 64 ビットワーカープロセスへの切り替え cscript %SystemDrive% SystemDrive% inetpub inetpub AdminScripts adsutil.vbs set w3svc/apppools/enable32bitapponwin64 0 64 ビット ASP.NET 2.0 のインストール %SystemDrive% Microsoft.net Microsoft.net Framework64 Framework64 v2.0.50727 v2.0.50727 aspnet_regiis i -enable 64 ビット 2.0 にマッピング 仮想フォルダ

コーディング上の留意点

コーディング上の留意点 シリアル化 XML シリアル化は動作する Web サービスバイナリーシリアル化は注意が必要ポインタサイズ System.IntPtr は 64 ビット CLR 環境ではサイズが違うマネージコード間のアライメントアライメントは CLR によって処理されるので意識することはない 浮動小数点演算 (float/double) 32 ビット 64 ビットで演算値が同一とは限らない 64 ビット化により境界部分での演算可能となる例 : Sin(1e37) ポインタサイズ - System.IntPtr 32 ビット : 4 バイト / 64 ビット :8 バイト 環境変数 Module.GetPEKind メソッド

ネイティブとの相互運用 アライメントシグネチャ DllImport,, Declare, #include System.IntPtr 全てのプラットホームで API が用意されていること マーシャリング COM StructLayoutAttribute Marshal.SizeOf DLL サーバ : アーキテクチャの制約を受ける EXE サーバ COM+ サーバアプリケーション ( サロゲートプロセス dllhost.exe) の利用

コード例 ~ SequentialLayout 属性 マネージコード ( クラス ) [StructLayout(LayoutKind.Sequential StructLayout(LayoutKind.Sequential,, Pack=1)] public class Unicode1 { public byte by_minneg = unchecked((byte)-1); [MarshalAs(UnmanagedType.ByValArray MarshalAs(UnmanagedType.ByValArray, SizeConst=52)] public int[] padding = new int[13]; }; アンマネージコード ( 構造体 ) #pragma pack(1) typedef struct { BYTE by_minneg; ; // = (byte( byte)-1; int padding[13]; } ASM_StructU1;

コード例 ~ ExplicitLayout 属性 マネージコード ( 構造体 ) [StructLayout(LayoutKind.Explicit StructLayout(LayoutKind.Explicit)] internal struct FooValue { [FieldOffset(0)] public int dwtype; [FieldOffset(4)] public IntPtr ptype; [FieldOffset(8)] public int typevalue; } 要注意 : IntPtr はプラットホームに依存 (4バイト or 8 バイト ) フィールドオフセットでは他のフィールドサイズを考慮

まとめ

まとめ インテル Itanium プロセッサーファミリーをサポートしている Windows Server 2003 そして.NET Framework 2.0 Visual Studio 2005 により 64 ビット環境に向けた.NET Framework アプリケーションの開発が可能プラットホーム限定するコンパイルオプションにより環境依存なコードとの相互連携

技術情報リソース Windows 64 bit アプリケーション開発 : http://www.microsoft.com/japan/msdn/windows/64bit/ 64-bit Windows (Development Guides): http://msdn.microsoft.com/library/enus/dnanchor/html/64bitwindows.asp Microsoft.NET Framework SDK: http://msdn.microsoft.com/library/enus/dnanchor/html/netfxanchor.asp Microsoft Platform SDK: http://msdn.microsoft.com/platformsdk/

2006 Microsoft Corporation. All rights reserved.