Visual Studio .NETベータ2 オーバービュー
3.作成可能なプロジェクト槙邑 恭介 |
|
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 .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バイナリ)を作成することができる。 |
![]() |
![]() |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
![]() |
|
|
|
![]() |