特集
Visual Studio .NETベータ2 オーバービュー

3.作成可能なプロジェクト

槙邑 恭介
2001/09/06

改訂前の記事はこちら

Page1 Page2 Page3 Page4 Page5 Page6 Page7 Page8

 VS .NETでプロジェクトの新規作成を選択すると、C++、Visual Basic、C#のうちのいずれかのプログラミング言語を用いたアプリケーションのプロジェクトが生成される。プロジェクトによってはウィザードが起動し、プロジェクトの細かな設定を行う。

Visual Basic プロジェクト
Windows アプリケーション マネージド・コードのWindowsアプリケーションを作成する
クラス ライブラリ 他のアプリケーションでも利用できるクラス(ライブラリ)を作成する
Windows コントロール ライブラリ Windowsアプリケーション用のコントロールを作成する
ASP .NET アプリケーション Webユーザー・インターフェイスを持ったアプリケーションを作成する
ASP .NET Web サービス 他のアプリケーションから利用するXML Webサービスを作成する
Web コントロール ライブラリ Webアプリケーションで利用するコントロールを作成する
コンソール アプリケーション コマンドラインから実行するコンソール・アプリケーションを作成する
Windows サービス Windows サービスを作成する
空のプロジェクト ローカル・アプリケーション用の空のプロジェクトを作成する
空の Web プロジェクト Webアプリケーション用の空のプロジェクトを作成する
Visual C#プロジェクト
Windows アプリケーション Windowsアプリケーションを作成する
クラス ライブラリ 他のアプリケーションからも利用できるクラス(ライブラリ)を作成する
Windows コントロール ライブラリ コンポーネント・ベースのクラスを作成する
ASP .NET Web アプリケーション ASP .NETを用いたWebアプリケーションを作成する
ASP .NET Web サービス 他のアプリケーションから利用するXML Webサービスを作成する
Web コントロールライブラリ Webアプリケーションで利用するコントロールの作成
コンソール アプリケーション コンソール・アプリケーションを作成する
Windows サービス Windows サービスを作成する
空のプロジェクト ローカル・アプリケーション用の空のプロジェクトを作成する
空のWeb プロジェクト 空のWebアプリケーションプロジェクトを作成する
Visual C++ プロジェクト
ATL サーバー Web サービス ATLによるWeb サービスを作成する
ATL サーバ プロジェクト ATL サーバを作成するプロジェクト
ATL プロジェクト ATLを用いたアプリケーションの作成
Managed C++ Web サービス 他のアプリケーションから利用するXML Webサービスを作成する
Managed C++ の空プロジェクト CLR上で動作するアプリケーションの空のプロジェクト
Managed C++ アプリケーション CLR上で動作するWindowsアプリケーションを作成する
Managed C++ クラス ライブラリ 他のアプリケーションからも利用できるクラス・ライブラリを作成する
MFC ActiveX コントロール MFCベースのActiveXコントロールを作成する
MFC DLL MFCを用いたDLLを作成する
MFC ISAPI 拡張 DLL MFCを利用したISAPIモジュールを作成する
MFC アプリケーション MFCを用いたアプリケーションを作成する
Win32プロジェクト Win32アプリケーション(コンソール・アプリケーションなど)を作成する
カスタム ウィザード カスタムAppWizardを作成する
メイクファイル プロジェクト 空のプロジェクト(Makefile)を作成する
拡張ストアド プロシージャDLL 拡張ストアド プロシージャDLLを作成する
Visual Studio .NETベータ2で生成できる主なプロジェクト(主なプロジェクトの抜粋)

 基本的には、3つのプログラミング言語に対して、それぞれ.NETフレームワーク上で動作する「Windowsアプリケーション」「Webアプリケーション」「Web サービス」が選択できる。Webアプリケーションとは、ASP .NETを使ったWebベースのアプリケーションで、これまでASP(Active Server Pages)とVBScriptなどで作成していたWebアプリケーションに相当する。Web サービスは.NET Frameworkで新たに登場したSOAPを用いた分散オブジェクト・サービスである(現在は「XML Webサービス」と呼ばれている)。これらの新規プロジェクトを見ると、特にVBのプロジェクトがずいぶんと変更されていることが分かる。これはVBが独自のランタイム環境から、.NET Frameworkの実行環境となるCLR(Common Language Runtime)上で動作するよう変更されたためだ。そのためVBでこれまで作成が難しかったWindowsサービスやコンソール・アプリケーションが作成できるようになっている。

新規プロジェクトの作成
新規プロジェクトの選択画面。基本的にはプログラミング言語を選択してから、それに応じてアプリケーションのタイプの選択を行うことになる。ベータ2では、プログラミング言語別のプロジェクトに加えて、エンタープライズ向けのプロジェクトが数多く追加されている。
  VB、VC、C#の3つの言語から選択する。
  それぞれの言語で、WindowアプリケーションやXML Webサービスなど作成するプロジェクトの種類を選ぶことができる。

 さてこのような機能強化が行われた一方で、VB .NETでは、これまでにあった、ActiveX EXE、ActiveXドキュメントEXE、DHTMLアプリケーション、IISアプリケーションなどのプロジェクトの作成機能がなくなっている。これらはVB .NETがCLR上でしか動作しなくなったためで、Windowsネイティブな実行モジュールを作成するActiveX関連機能がすっかり姿を消している。となるとVS .NETがリリースされた後は、.NETがインストールされていないWindows環境をターゲットにした、ネイティブな(マイクロソフトの表現ではアンマネージドな)プログラムは、VB .NETでは作成できないということになる。マイクロソフトは、既存のプラットフォームに向けて、.NETランタイム(CLR)を提供するようであるが、最終的にどのプラットフォームまでフォローするかは不明である。そうなると、現在のWindows DNA 2000で中核になっている、(従来のような)MTSオブジェクトやCOMコンポーネントによるビジネス・ロジックの作成が困難になるのだが、このあたりをどのようサポートしていくのだろうか(以前、32bit版Visual C++がリリースされたとき、製品パッケージに16bit版のVisual C++が同梱されていた時期があった。つまり新旧2つの処理系を同時に提供して、対応していたのである)。

 一方Visual C++の新規プロジェクト・メニューには、以前から存在していたプロジェクトに加えて、Managed C++ プロジェクトが追加されている。Managed C++は、.NETフレームワーク上で動作するアプリケーションを作成するためのプロジェクトを指す。これには、CLR上で動作するアプリケーションやCLR上で動作する他のプログラミング言語からも利用できるクラス・ライブラリの作成、HTTPとXMLによる分散オブジェクト・サービス(SOAP)を用いたXML Web サービスを作成するプロジェクトが含まれている。

 これらのプロジェクトでは、複数のプロジェクトを1つのソリューションにまとめることができる。こうしておくと、複数のプログラミング言語で作成したWebアプリケーションやビジネス・ロジックを記述したコンポーネントなどをまとめて、デバッグの際に1つの開発環境からすべてのコードにアクセスできるようになる。そのため、ユーザー・インターフェイスの部分はVBやC#で作成し、ビジネス・ロジックはVC++などで作成したようなアプリケーションでも、シームレスにデバッグが行えるようになる。

 このほかにもベータ2では、「セットアップ/デプロイメント プロジェクト」グループに、CABファイルの作成をサポートするCABプロジェクトや、セットアップ・プログラム(.MSI)を作成する「セットアップ プロジェクト」、グループで分散アプリケーションの雛形を作成するための「エンタープライズ テンプレート」というプロジェクトなども用意されている。分散アプリケーション開発のプロジェクトでは、分散Webアプリケーションに必要なWeb Formsを使ったUIオブジェクトプロジェクト、Webサービスプロジェクト、データアクセスプロジェクトなどがまとめて作成される。この分散アプリケーション・プロジェクトで生成されるプロジェクトの内容を見ていると、Webサービス、Web Forms、Windows Formsなど、.NET Frameworkの主要な機能がすべてプロジェクトに含まれており、マイクロソフトが実現しようとしている分散Webアプリケーションの姿を感じることができて興味深い。

VS .NETで生成されるコード

 上述したようにVS .NETでは、利用するプログラミング言語によって生成されるコードが異なる。生成できるコードには、IL(Intermediate Language、中間言語)とEXE(Intelバイナリ)の2種類がある。これまでのVisual Basicでは、ネイティブなEXEファイルを生成することが可能であったが、VS .NETでは、ネイティブなEXEファイルを生成できるのはVC++のみとなっている。

言語 IL ネイティブな.EXE
VC++ ○(Managed C++)
VB ×
C# ×
VS .NETで生成されるコード
各言語で生成可能なコードの一覧。IL(Intermediate Language、中間言語)とEXE(Intelバイナリ)にどのように対応しているかを表している。VS .NETでは、VC++のみがネイティブなバイナリ(Intelバイナリ)を作成することができる。
 

 INDEX
  [特集]Visual Studio .NETベータ2 オーバービュー
    1.Visual Studio .NETの概要
    2.統合開発環境の概要
  3.作成可能なプロジェクト
    4.Windows FormsとWeb Forms
    5.Visual C++でのアプリケーション作成の変化
    6.Visual Basicでのアプリケーション作成の変化
    7.Webアプリケーション開発環境として見たVS .NETとC#


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間