25
Visual Studio.NET : Part II .NET ソリューション開発部 Visual Basic/Visual C++/C# プロダクトマネジャー 田中達彦 Session ID : GS - 07

[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part II

Embed Size (px)

Citation preview

Visual Studio.NET : Part II

.NETソリューション開発部Visual Basic/Visual C++/C# プロダクトマネジャー田中達彦

Session ID : GS-07

Agenda : Part II

Visual Studioの進化

Visual Basic.NET新機能

Visual C++.NET新機能

Visual C#

各言語の比較

Visual Studio.NETの生産性

Visual Studio.NETへの移行

注意

今回のデモで使用するVisual Studio.NETは開発中のものであり、デザイン、仕様は製品版において変更される場合があります

このスライド中の用語についても、製品版で変更される場合があります

Visual Studioの進化

1つの統合開発環境

Visual InterDevの統合

Visual Basicの進化

新開発言語C#の登場

Visual Basic.NET新機能

ユーザーのニーズに合った機能を提供

洗練された言語への進化

壁の除去

Visual Studio.NETへの統合

.NETアプリケーションの容易な開発

~設計思想~

Visual Basicプログラマのスキルをそのまま.NETへ移行可能

Visual Basic.NET新機能

最新のUIの構築

Windowsアプリケーション

Webアプリケーション

DLL地獄からの脱出

xcopyデプロイメント

~ VBランタイムから.NET Frameworkへ~

Visual Basic.NET新機能

オブジェクト指向プログラミング機能搭載

クラスの継承

カプセル化

オーバーロード

最新テクノロジへの対応

構造化例外処理

フリースレッディング

~言語の進化~

Visual Basic.NET新機能~ コードの例~

Imports System.MathNamespace GeometryPublic Module Module1

Public Class Triangle

Dim tri As New Triangle(2, 3, 4)

Console.WriteLine(tri.Compute())

Dim ma, mb, mc As Integer

Dim s As Double = (ma + mb + mc) / 2Return Sqrt(s * (s - ma) * (s...

Imports System.Math

Namespace Geometry

Public Module Module1

Sub Main()

Dim tri As New Triangle(2, 3, 4)

Console.WriteLine(tri.Compute())

End Sub

End Module

Public Class Triangle

Dim ma, mb, mc As Integer

Overloads Public Sub New(a As Integer, b As Integer, c As Integer)

ma = a : mb = b : mc = c

End Sub

Public Function Compute() As Double

Dim s As Double = (ma + mb + mc) / 2

Return Sqrt(s * (s – ma) * (s – mb) * (s – mc))

End Function

End Class

End Namespace

Visual C++.NET新機能

.NET Frameworkのフルサポート

C++プログラマにRAD言語と環境を提供

C++の資産と知識を活用

Visual Studio.NETへの統合

~設計思想~

Visual C++.NET新機能

ネイティブWebサービスの構築

ATL Server

COMコンポーネントの.NET対応

C++マネージ拡張

Attributeによるコーディング量の減少

~ネイティブコードの活用~

Visual C++.NET新機能

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

ATLの思想を継承

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

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

~ ATL Server ~

Visual C++.NET新機能~ ATL Server ~

Request

Dispatcher

ATL Server

Services

VCISAPI.DLL

Web C

lient HTTP Request

HTTP Response

Request

Handler

SRF

Files

Your App

Visual C++.NET新機能

.NET Frameworkへのアクセス

言語レベルの相互接続性

.NET Frameworkの使用例

~ C++マネージ拡張~

#using <mscorlib.dll>

using namespace System::Console;

void main()

{

WriteLine(L"Hello, World");

}

Visual C++.NET新機能

Common Language Runtimeを使用

~ C++マネージ拡張~

#using <mscorlib.dll>

__gc class intList {

int i;

intList *next;

};

void main() {

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

intList *pNode = new intList;

}

}

Visual C#

C/C++ファミリー言語の中で最初のコンポーネント指向言語

イベント、メソッド、プロパティ

設計時、実行時のAttribute

XMLを使用したドキュメントの融合

~設計思想~

ヘッダーファイル、IDLが不要

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

Visual C#

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

次世代の堅牢かつ耐久性のあるソフトウェアを構築できる

ガベージ コレクション

例外処理

タイプセーフ

バージョン管理

~設計思想~

Visual C#

すでに100万行を超えるC#のコードが.NETに含まれている

習得が容易

高い生産性

~生産性の向上~

バグの出にくい言語仕様

各言語の比較

Visual Basicは初心者から企業内アプリケーションまで幅広くサポート

Visual C++はハイパフォーマンスを要求されるアプリケーションの構築に使用

Webアプリケーションの構築にはVisual InterDev

~ Visual Studio 6.0世代~

各言語の比較

.NET Frameworkを使用する場合、どの言語でも高い生産性とパフォーマンスを実現 Visual Basicユーザーは、Visual Basicを使い続けたまま .NET Frameworkの世界に入ることが可能

ネイティブコードが必要な場合のみVisual C++を使用

全く開発言語を知らない初心者にはVisual C#

~ Visual Studio.NET世代~

Visual Studio.NETの生産性

1つのIDE(統合開発環境)

エディタ、デバッガを共有

複数の開発環境を起動する必要がない

進化したIDE ソリューション エクスプローラ、クラス ビュー、

タスク一覧、ツールボックス、ダイナミック ヘルプ、コマンドウィンドウ

マクロ

~統合された開発環境~

Visual Studio.NETへの移行

Visual Basic 6.0プロジェクトの読み込み

Visual Basic.NETのプロジェクトに変換

変換できない部分にToDoコメントを付加

Visual Basic 6.0からVisual Studio.NETへの変換方法については、Webやホワイトペーパーで提供

~ Visual Basic ~

Visual Studio.NETへの移行

C++マネージ拡張による移行

コンポーネント化されたアプリケーションをC++マネージ拡張によって .NET Frameworkに移行可能

ATLで作成したロジックをWebサービス化して提供

~ Visual C++ ~

Visual Studio.NETへの移行

コンポーネント化の推進

Web、ホワイトペーパーの確認

.NET Frameworkの情報の収集

MSDNユニバーサル

.NET Framework SDK

~移行のヒント ~

まとめ

Visual Basic、Visual C++とも.NETのために進化している

.NET Frameworkを使用する際、言語はいちばん得意な言語を使用すればよい

http://www.microsoft.com/japan/developer/vstudio/nextgen/