23
Visual C++.NET 新機能概要 田中達彦 マイクロソフト株式会社 .NETソリューション開発部 VB/VC/C#プロダクトマネジャー

[2001/01/23] VSLive! / Visual C++.NET 新機能概要

Embed Size (px)

Citation preview

Page 1: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

Visual C++.NET新機能概要

田中達彦マイクロソフト株式会社

.NETソリューション開発部VB/VC/C#プロダクトマネジャー

Page 2: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

本セッションの内容

Visual Studio.NETとは?

.NET Framework対応

Visual C#

C++マネージ拡張

ATLサーバー

ネイティブ コンパイラの拡張

MFC

2 / 23

Page 3: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

Visual Studio.NETの設計思想

Visual Studio 6.0

Visual Studio 7.0

バージョンアップ

3 / 23

Page 4: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

Visual Studio.NETの設計思想

Visual Studio 6.0

Visual Studio 7.0

バージョンアップ

.NETプラットフォームのために新たに設計

4 / 23

Page 5: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

Visual Studio 6.0

C ランタイム

MFC

ATL

Vis

ua

l C

++

Vis

ua

l B

as

ic

Visual Basic

ランタイム /

Visual Basic

フォーム

C++コンパイラ

Visual Basic

インタプリタ/

コンパイラ

5 / 23

Page 6: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

Visual Studio.NET

Visual Basic

ランタイム /

Visual Basic

フォーム

C ランタイム

MFC

ATL

Vis

ua

l C

++

Vis

ua

l B

as

ic

ATLサーバー .NET Framework

ネイティブC++コンパイラ

Managed C++

upgrade

Wizard

Visual C#

コンパイラ

Visual Basic.NET

コンパイラ

6 / 23

Page 7: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

.NET Framework対応

UI構築からサーバーサイドコンポーネントまで

Windowsフォーム

Webフォーム

Webサービス

クラス ライブラリ

コントロール ライブラリ

コンソール アプリケーション

7 / 23

Page 8: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

.NET Framework対応

マネージされたコード

コモン ランゲージ ランタイム

C#またはC++マネージ拡張を使用

C#はVisual Basicライクな開発手法

8 / 23

Page 9: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

Visual C#

C++を進化させた開発言語

コンポーネント指向言語

すべてのものはオブジェクトである

堅牢で信頼性が高い

C/C++開発者のためのRAD言語と環境

初心者からハイエンドプログラマーまで

9 / 23

Page 10: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

Visual C#

C#での開発

Windowsアプリケーション

Webアプリケーション、Webサービス

UIを持つライブラリ

UIを持たないライブラリ

.NET Frameworkの機能をフル活用

10 / 23

Page 11: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

Visual C#

C#での開発例

11 / 23

Windowsフォーム

Webフォーム

クラスライブラリ

Webサービス

Webサービス

クラスライブラリ

コンポーネントライブラリ

クラスライブラリ

Page 12: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

C++マネージ拡張

コモン ランゲージ ランタイムを使用

過去の資産を生かす

堅牢なコンポーネント

マネージコードとネイティブコードの共存

.NET Frameworkの機能を使用

豊富な機能を既存の資産から利用

12 / 23

Page 13: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

C++マネージ拡張

最小のコード変更で.NETへ

マネージされていないクラス マネージ クラス

MFC ATL .NET Framework

Win32API

13 / 23

Page 14: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

C++マネージ拡張

コモン ランゲージ ランタイムの使用例

#using <mscorlib.dll>

__gc class intList {

int i;

intList *next;

};

void main() {

for(int i = 0; i < 10; i++) {

intList *pNode = new intList;

}

}

__gc キーワード

によってガベージコレクションの対象にする

14 / 23

Page 15: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

C++マネージ拡張

.NET Frameworkの機能の使用例

#using <mscorlib.dll>

using namespace System::Console;

void main()

{

WriteLine(L"Hello, World");

}

#using ディレクテ

ィブを使用して、.NET Framework

の機能にアクセスSystem::Console::

WriteLineを使用

15 / 23

Page 16: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

ATLサーバー

Webアプリケーションのための拡張

ATLの思想を継承

小さく速いコンポーネント

極限のパフォーマンスを要求されるWebサービスの構築に最適

Webサービスの作成

.SRFファイルを使用したWebアプリケーションの作成

16 / 23

Page 17: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

ATLサーバー

ATLサーバーのアーキテクチャ

Request

Dispatcher

ATL Server

Services

VCISAPI.DLL

Web C

lient HTTP Request

HTTP Response

Request

Handler

SRF

Files

Your App

17 / 23

Page 18: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

ネイティブコンパイラの拡張

アトリビュートを使用したプログラミング

実装を補助するための宣言

コードの記述量を削減

いわば、コンパイル時ウィザード

C++マネージ拡張、C#でもアトリビュート(属性)を使用可能

18 / 23

Page 19: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

ネイティブコンパイラの拡張

アトリビュートを使用したプログラミング[coclass]

class X {

// ...

};

コンパイラ

リンカ

コンポーネント

アトリビュートプロバイダ

タイプライブラリ

コンポーネントライブラリ

属性

コード

19 / 23

Page 20: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

MFC 7.0

HTMLサポートの強化

Windows 2000のサポート

ファイル名はMFC70

20 / 23

Page 21: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

MFC 7.0

新たに追加されたクラス

CHtmlEditView

CHtmlEditDoc

CHtmlControlSite

CDHtmlEventSink

CDHtmlElementEventSink

CMultiPageDHtmlDialog

CDHtmldialog

CBrowserControlSite

CPrintDialogEx

CHtmlEditCtrl

21 / 23

Page 22: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

まとめ

.NET Frameworkを活かすならVisual C#

資産を.NETに移行するならC++マネージ拡張

既存路線を保つならネイティブコンパイラ

おすすめはC#

22 / 23

Page 23: [2001/01/23] VSLive! / Visual C++.NET 新機能概要

Q & A

23 / 23