はじめに
Windows開発といえば、やはり「Visual Studio」でしょう。マイクロソフト製の開発環境だけあり、Windowsとの親和性が高く、Windowsと共に成長します。
Visual Studioが対応している言語の中でも、主力となっている言語が「C#」です。C#だけで、実に様々なアプリが開発できます。
この記事では、Windows開発を始めてみたいエンジニアの方のために、Visual Studioの特長や開発できるアプリケーションの種類などをお伝えしていきます。あなたもWindows開発の世界を体験してみてください。
Visual Studioは無料で使える
Visual Studioのダウンロード:https://www.visualstudio.com/ja/downloads/
Visual Studioには複数のエディションがあり、中でも「Community」エディションは無料で利用できます。以前のProfessionalエディション相当の機能が使えるため、無料といえども高機能です。ただし、以下の条件に当てはまるユーザーのみが対象になります。
- 個人開発者
- 学習、学術調査目的の開発者
- オープンソースソフトウェア開発者
- PC台数250 台未満かつ年商1億円未満の企業や団体(5名まで利用可能)
また、直接インストールしたくないという方は、仮想環境を利用できます。VirtualBoxやHyper-V、VMware、Parallelsの仮想マシンイメージが無料で公開されています。Visual Studioを始めとする開発ツールが予めインストールされています。ただし、評価版となっており、使用期限がありますので注意が必要です。期限が切れたら、新しいイメージに更新する必要があります。
仮想マシンイメージのダウンロード:https://developer.microsoft.com/en-us/windows/downloads/virtual-machines
Visual Studioで開発できるアプリケーションの種類
コンソールアプリ
コマンドプロンプト(コンソール)で動作する、CUIベースのアプリです。グラフィカルな表現を必要としない、バッチ処理や上級者向けのツールの開発に適しています。
Windowsフォームアプリ
Windows Forms(WinForms)というGUIフレームワークを使用する、GUIベースのアプリです。イベントドリブンモデルを採用しており、マウスクリックなどのイベントを処理するコードを記述することで簡単にGUIを扱えます。また、高機能なGUIデザイナーが搭載されているので、直感的にフォームをデザインできます。
しかし、高度なグラフィカル表現が必要とされる場合には向いていません。業務系アプリなど、デザインをあまり重視しないアプリを素早く開発したい場合に適しています。習得が容易なため、初心者の方にもおすすめします。
WPFアプリ
Windows Presentation Foundation(WPF)は、WinFormsの次に開発されたGUIフレームワークです。高度なグラフィカル表現を可能とし、DirectXによる3D表現にも対応しています。データバインドを活用したプログラミングモデルで、UIとロジックを明確に分離できます。組み込みのフォームデザイナーや専用デザイナー「Blend」が使えます。
メリットが多いWPFですが、初心者にはとっつきにくく学習が容易ではありません。上級者であっても、新しいプログラミングモデルとGUI記述言語XAMLを覚えなければいけません。どちらにしても学習には時間が必要でしょう。デスクトップアプリで、高度なグラフィカル表現が必要とされる場合に適しています。
UWPアプリ
UWPアプリとは、ユニバーサルWindowsプラットフォーム(UWP)で動作するアプリのことです。UWPとは、デスクトップやモバイル、IoT、XboxなどのWindowsプラットフォームの総称です。マイクロソフトは、ひとつのアプリでどんなデバイスでも動作することを目指しています。これは、Windows 8で登場したストアアプリが進化したものです。
プログラミングモデルはWPFと似ていますが、「ユーザーデータのアクセスには許可が必要」「重い処理は非同期にしなければならない」などの制約があります。マルチプラットフォームのアプリを開発するのに適しています。
ASP.NETアプリ
ASP.NETは、マイクロソフトが開発したウェブアプリケーションフレームワークです。大きく「Webフォーム」と「MVC」の2つに分類できます。Webフォームは、従来のプログラミングモデルで、WinFormsの様にウェブページをデザインできます。一方、MVCはその名の通りModel-View-Controllerアーキテクチャーを採用しています。UIとロジックを分離でき、テストしやすくなります。どちらが適しているかは、場合によります。また、MVCではWeb APIの開発もできます。
Android / iOSアプリ
Visual Studioでは、Xamarinを使ってAndroidとiOS向けのアプリを作成できます。Xamarinは、AndroidとiOSのAPIの薄いラッパーを提供します。作成したアプリは通常のネイティブアプリとして出力でき、デバイスの性能を最大限活用できます。また、AndroidとiOSのコードの共通化も図れるため、開発コストを削減できます。C#でスマホアプリを作るなら、もっとも有力な選択肢でしょう。
Microsoft Azureとの連携
Microsoft Azure公式サイト:https://azure.microsoft.com/ja-jp/
Azure(アジュール)は、マイクロソフトが提供するクラウドコンピューティングサービスです。単体でも使用できますが、Visual Studioと連携することで、よりシームレスに開発できます。Visual Studioには、標準でAzureとの連携機能が組み込まれています。「仮想マシンの操作」「ウェブサイトのデプロイ」「データベースへの接続」などAzureの各種サービスにアクセスできます。サインアップすると20,500円分の利用クレジットが貰えますので、すぐに無料ではじめられます。また、「Visual Studio Dev Essentials」プログラムに参加すると、さらに長期間無料で使えます。
Visual Studio Dev Essentials:https://www.visualstudio.com/dev-essentials/
Visual StudioはGitに標準対応
Git公式サイト:https://git-scm.com/
Visual Studioは、Gitに標準で対応しており、コミットやリバート、履歴の確認などが行えます。GitはVisual Studioとは別にインストールされますので、バージョンアップも容易です。また、拡張機能(エクステンション)をインストールすることで、SubversionやMercurialなど他のソースコード管理システムを利用できます。GitHubと連携することも可能です。
Visual Studioの拡張機能:https://visualstudiogallery.msdn.microsoft.com/
C#だけじゃない、Visual Studioが対応している言語
Visual Studioは、C#以外にも多数の言語に対応しています。下記がその一覧です。
- Visual Basic
- F#
- C++
- Python(※要拡張機能)
- R(※要拡張機能)
- Node.js(※要拡張機能)
- JavaScript
- TypeScript
- CoffeeScript(※要拡張機能)
- Sass / LESS(※要拡張機能)
言語ごとに、使用用途やプログラミングスタイルは異なります。あなたに合う、好きな言語を使ってみましょう。なお、C#・Visual Basic・F#では共通のクラスライブラリを使用できます。
まとめ
Windows開発は手軽に始められます。興味がある方は、Visual Studioをインストールして早速はじめてみましょう。C#はネット上の情報も多いので、学習しやすいでしょう。また、F#を使った関数型プログラミングを始めてみるのも面白いでしょう。「.NET系」の言語であれば、共通のクラスライブラリが使えます。あなたはどんなアプリを開発したいですか?
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments