連載
» 2017年04月10日 05時00分 UPDATE

連載:簡単! Visual Studio 2017入門:第1回 Visual Studio 2017って何ができるの? (1/6)

プログラムはどうやって作るの? 開発ツールはどうやって使うの? ゼロから始める新人プログラマーのための定番連載をVisual Studio 2017に合わせて改訂。

[かわさきしんじ,Insider.NET編集部]
「連載:簡単! Visual Studio 2017入門」のインデックス

連載目次

 Visual Studio 2017(以降、「VS 2017」と表記)は、マイクロソフトが提供する開発ツールだ。この開発ツールを使えば、素早く簡単にさまざまなプログラムを作成できる。実際にその開発を体験すれば、VS 2017による開発の「容易さ」と「速さ」にビックリすることだろう(ちなみに、この「簡単さ」と「速さ」のことを、プログラミングの世界では「開発生産性」と呼ぶ)。

 本連載では、プログラミング経験がほとんどない読者を対象として、VS 2017を使った開発のイロハを解説する。そのため、できるだけプログラミングの基礎から解説することを心掛けている。VS 2017は未経験でも、プログラミングの経験があるという読者の方々にとっては、説明が冗長な部分があると思われるが、ご了承いただきたい。VS 2017プログラミングの最初の取っ掛かりとして、企業の新人プログラマーや、.NETプログラミングをゼロから始めてみたい人などに読んでいただきたいと考えている。環境としてはWindows 10/VS 2017 Communityエディションを使用する。

 それでは、まずは「VS 2017とは何か?」「VS 2017で何ができるのか?」について簡単に説明していこう。

開発ツール「VS 2017」

 先ほど述べたようにVS 2017はプログラムを開発するためのツールである。ただし、VS 2017はWindowsだけをアプリの実行プラットフォームとはしていないことが、従来のバージョンのVSとは大きく異なっている。ではVS 2017ではどんなことができるのか(どんなアプリを作れるのか)を見てみよう。

VS 2017で作成できるプログラムの種類

 VS 2017ではインストーラーがそれまでのバージョンのものから大きく変わった(VS 2017のインストールについては後述)。そして、新たに「ワークロード」という概念が採用されている。簡単にいってしまえば、ワークロードとはVS 2017を使って「どんな種類のプログラムを開発するか」の分類だ。ワークロードにも以下に示す幾つかの大分類がある。

  • Windows: Windows上で動作するデスクトップアプリ開発に関連するワークロード「UWPアプリ開発」「.NETデスクトップ開発」「C++によるデスクトップ開発」がまとめられている
  • Web&クラウド: Webアプリやクラウドと連携して実行されるアプリに加えて、データベース/Officeに関連するワークロードとして「ASP.NETとWeb開発」「Azureの開発」「Node.js開発」「データの保存と処理」「Office/SharePoint開発」がまとめられている
  • モバイル&ゲーム: iOS、Android、Windows上で動作するクロスプラットフォームなアプリ/ゲームを開発するためのワークロードとして「.NETによるモバイル開発」「Unityによるゲーム開発」「JavaScriptによるモバイル開発」「C++によるモバイル開発」「C++によるゲーム開発」が含まれている
  • 他のツールセット: VSを使いやすく拡張するプログラム(拡張機能)、Linuxをターゲットとしたプログラム、次世代の.NET Frameworkともいえる.NET Coreを利用したアプリを開発するためのワークロードが含まれる

 このように、VS 2017自体はWindows上で動作するが、そこで開発されるアプリはWindows以外にもさまざまなプラットフォーム(iOS、Androidなど)をターゲットとするようになった。特にモバイルデバイス(スマートフォンやタブレット)の世界ではiOSやAndroidが広く使われていて、一般にはそれらのOSごとに使用する言語や環境が異なっているので、両者(加えて、Windows用のアプリ)で動作するアプリを作成するにはかなりの労力が必要になる。こうした状況を変えるものが「モバイル&ゲーム」にある「.NETによるモバイル開発」「JavaScriptによるモバイル開発」「Unityによるゲーム開発」などのワークロードだ。これらのワークロードを使用すると、プラットフォーム間の差異を超えて、コードを共有(使い回し)でき、効率のよい開発が可能となる(その一方で、プラットフォームごとに個別対応する必要のある部分もある)。

 本連載では、これらのワークロードのうち、「.NETデスクトップ開発」ワークロードに含まれているWindowsフォームアプリを開発しながら、VSの使い方やプログラミング言語C#の基本、Windowsアプリの基本などを解説していく。そこで、まずはWindowsアプリについてもう少し深く見ていこう。

Windowsアプリ

 VS 2017はマイクロソフトが提供する開発ツールである以上、Windows上で動作するプログラムを開発できるのはもちろんのことだ。ただ、Windows上で動作するプログラムといってもいろいろと種類がある。以下にVS 2017で開発可能なWindowsアプリを示す(この図はかなりおおまかな概念を示したもの)。

VS 2017で作成できるWindowsプログラムの種類 VS 2017で作成できるWindowsプログラムの種類
Win32プログラムはWindows OS上で、.NETプログラムは.NET Framework上で、UWPアプリはUWP(Universal Windows Platform)上で動作する。ちなみに、プログラムが実行される基盤となるソフトウェアは「実行プラットフォーム」と呼ばれる。つまり.NET Frameworkは、.NETプログラムを実行するための実行プラットフォームであり、UWPはUWPアプリを実行するためのプラットフォームである。

 これらのプログラムについて簡単にまとめておこう。

  • Win32プログラム: Windows OSを実行プラットフォームとして動作する。Win32プログラムは通常、C++と呼ばれる言語を用いて開発する
  • .NETプログラム: 「.NET Framework」という実行プラットフォームで動作する。本連載では便宜的に「.NETプログラム」と呼ぶことにする。.NET FrameworkはWindows OSの上に作られた実行プラットフォームだ。.NETプログラムの開発にはC#やVisual Basicなどの言語(.NET言語)が使われる

 .NET Frameworkは、Windows OS上に構築された仮想的な実行プラットフォームであり、2000年代初頭に発表された後、15年以上にわたってマイクロソフトの開発プラットフォームとして時代の先端をリードしてきた。.NET FrameworkはWindows OS上に構築された実行プラットフォームだが、最近ではこれを他のOS(macOS、Linux)でも使えるようにしようという活動がオープンソースの世界で活発に行われている。そして、その成果が「.NET Core」と呼ばれる新たな実行プラットフォームだ。.NET CoreはWindowsに依存する部分を切り捨てるとともにモジュール性を高めた、クロスプラットフォームで動作する.NET Frameworkともいえる。

 .NET Frameworkがもたらす最大のメリットは、最初に述べた「開発生産性の向上」である。その他にも、「高機能性」や「より強固なセキュリティ」などのメリットもある。

 そして、Windows 10では新たなアプリ実行プラットフォームとしてUWPUniversal Windows Platform)が登場した。

  • UWPアプリ: Windows 10がサポートするさまざまなデバイスファミリーで動作させることが可能な新たな種類のプログラム

 UWPは多種多様なWindowsデバイス(デスクトップPC、ノートPC、Windows Phone、HoloLens、Xboxなど)に共通のプラットフォームであり、そのコア機能だけを使用した場合には、1つのプログラムを作成すれば、それが全ての種類のWindowsデバイスで動作させられるというのが大きな特徴だ。もちろん、デバイスごとに固有の機能を使う場合(例えば、Windows Phoneで電話をかけるなど)には、それらの機能をサポートしているデバイスでしか動作しない。

 なお、「Win32プログラム」と「.NETプログラム」は「Windowsクラシックデスクトップ」と呼ばれている。これはWindows 10で登場したUWPアプリに対して、Win32プログラムと.NETプログラムが「クラシック」なアプリ(従来の実行プラットフォームであるWin32や.NET Frameworkで動作するアプリ)であることを意味している。以下にVS 2017で新規にプログラム開発を進める際に表示されるダイアログを示す。この中でWin32プログラムや.NETプログラム(WindowsフォームやWPFアプリ)は[Windows クラシック デスクトップ]に表示されるようになっている。

VS 2017の[新しいプロジェクト]ダイアログ VS 2017の[新しいプロジェクト]ダイアログ
左側のツリーにある[Windows クラシック デスクトップ]というカテゴリーに.NETプログラム(WindowsフォームやWPFなどのデスクトップアプリなど)は分類されるようになっている。これはWindows 10上で動作しているVS 2017で表示された画面。その上にある[Windows ユニバーサル]の中にはUWPアプリを作成するための項目が含まれている。

 このように、Windows上で動作するアプリだけでもかなりの種類がある。本連載では、先ほども述べたように、Windowsフォームアプリを例に取る。なぜ「Windowsクラシックデスクトップ」に分類されるWindowsフォームアプリかといえば、Windowsフォームは古い技術であるがシンプルで、VS 2017やC#の基礎を習得するまでの負荷が最も少ないからだ(デスクトップアプリ開発技術には、より新しい「WPF」もあるが、入門者が基礎からステップアップしていく場合、より概念がシンプルな「Windowsフォーム」をスタート地点にするのがよいだろう)。

[コラム].NET Frameworkのバージョンには注意

 .NET Frameworkのバージョンには注意が必要だ。

 例えば、Windows 10 Creators Updateには.NET Framework 4.7という本稿執筆時点で最新バージョンの.NET Frameworkが標準でインストールされているが、これはCreators Updateよりも前のバージョンのWindows 10には標準ではインストールされていない。VS 2017では.NET Framework 4.7を対象としたプログラムをもちろん開発できるが、その場合には、開発したアプリがどんな環境で動作するかについても考慮する必要がある(また、後述するインストーラーの[個別のコンポーネント]タブで.NET Framework 4.7用のSDK=ソフトウェア開発キットをインストールするように設定する必要もあるかもしれない)。逆に、従来のWindows 10で動かそうとして、.NET Framework 4.6などを対象とすると、.NET Framework 4.7に追加された新機能を使えなくなる(使えるが、追加の作業が必要になることもある)。

 あるいは、Windows 7でも動作するアプリを開発しようとして、Windows 7が標準でサポートしている.NET Framework 3.5.1 SP1などを開発対象とすることもあるかもしれない。だが、Windows 10には標準ではそのバージョンの.NET Frameworkはインストールされていない。そのため、開発マシンに古いバージョンの.NET Frameworkをインストールする必要が出てくるといった場合もあるだろう(逆に、古いバージョンのWindowsに.NET Framework 4.xをインストールすることも考えられる。いずれにせよ、開発環境と実行環境の.NET Frameworkのバージョンについて整合性を取る必要があるということだ)。Windows OSと.NET Frameworkの関係については「.NET Frameworkのバージョンを整理する」も参照されたい。

 さらに現在では、.NET CoreやMonoなど、.NET Frameworkアプリを開発/実行するための環境が複数存在している。本連載では取り上げないが、こうした環境についても将来的には学んでいく必要があるかもしれない。


 上述した通り、VS 2017はWindowsアプリ開発だけではなく、Webアプリの開発にも使えるし、現在ではAndroidアプリやiOSアプリなど、Windows以外のOS上で動作するプログラムの開発もサポートするようになっている。VS 2017はさまざまな種類のプログラム開発に使える万能開発ツールとなりつつあるのだ。

 では、次ページではVS 2017の種類とインストールについて見ていこう。

       1|2|3|4|5|6 次のページへ

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。