C#でできること。Webアプリからゲームまで

C#を学習しようと思っています。

C#と言えばマイクロソフトが開発した汎用的な プログラミング言語というイメージがあります。 具体的には何ができるのでしょうか? あと習得難易度も知りたいです。

今回はこのような疑問に答えていきます。

C#は汎用性の高いオブジェクト指向言語で、 CGIアプリからWebサービスまでいろいろな用途で使われています。

そこでこの記事では、C#でできることや、 習得難易度についてまとめました。

C#とは

C#

C#は2002年にマイクロソフトによって開発されたオブジェクト指向の プログラミング言語です。 学習し始めの頃はオブジェクト指向の考え方に戸惑うかもしれませんが、 慣れると生産性の高いプログラミングができるようになります。

C++とJavaをもとに作られたプログラミング言語で、 プラスアルファとしてVisual Basicの開発の容易さも取り入れられています。 文法的に一番近いのはJavaです。

C#はクロスプラットフォームに対応したプログラムを作成することができ、 作成したプログラムは「.NET Framework」という マルチプラットフォーム上で動作します。 そのため実行端末の違いを気にすることなく開発できます。

C#でできること

C#は汎用性の高いプログラミング言語なので、 できることがたくさんあります。
具体的にはデスクトップアプリからスマホアプリ、Webアプリ、ゲーム、 XR系、 CUIアプリなどがあります。それぞれについて紹介します。

できること①:デスクトップアプリ開発

デスクトップアプリ

C#で最も需要があるのがデスクトップアプリ開発です。

C#でデスクトップアプリを開発する場合、 通常は「WinForms」というGUIフレームワークを使います。
「WinForms」では「Visual Studio」に用意されているフォーム部品 (ボタン、リストボックス、テキストボックスなど)を フォーム上に自由に配置できます。 そしてボタンクリック時などのイベントが発生した時に、 実行したい処理を記述。 これをイベントドリブン型のプログラミングといいます。 直感的にプログラミングできるのが特徴です。

「WinForms」とは別にもう一つGUIフレームがあって、 「WPF(Windows Presentation Foundation)」といいます。 「WPF」は「WinForms」よりも高度なことができるのですが、 操作が複雑で覚えることが多いため、あまり普及していません。 最初に紹介した「WinForm」を使って開発すれば十分です。

「WinForms」と「WPF」は、どちらもWindows用のフレームワークです。 MacやLinux用のデスクトップアプリを作りたい場合は、 「Xamarin(ザマリン)」というフレームワークを使用します。

できること②:スマホアプリ開発

Androidアプリ

C#でスマートフォンアプリも開発することができます。 先程紹介した「Xamarin(ザマリン)」を使用することで、 AndroidやiOSに対応したアプリが開発可能です。

「Xamarin(ザマリン)」を使うと、 各プラットフォームに共通する部分は共有できるため 生産性が向上します。 個別の機能も取り扱うことができ、 最終的にネイティブコードにコンパイルされるので 実行スピードも高速です。

できること③:Webアプリ・Webサービス開発

Webサービス

C#でWebアプリを作成する場合は「ASP.NET」というフレームワークを使用します。
「Visual Studio」で「ASP.NET」を使い、 ボタンなどの部品をドラッグ&ドロップでフォームに配置します。 Webアプリが感覚的に作成できるため便利です。

「ASP.NET」には3つのフレームワークがあります。 (「ASP.NET Web フォーム」「ASP.NET MVC」「ASP.NET Web ページ」) 開発するアプリの種類や開発スタイルに応じて最適なフレームワークを 選択して作成します。

C#を使って開発されている有名なWebサイト例を挙げると、 マイクロソフトの公式サイト、Skype、Bing、 価格.com、ニッセンなどがあります。

できること④:ゲーム開発

ゲーム開発

C#でゲームを開発する場合、 近年は「Unity」というゲームエンジンが使われることが多くなっています。

Unityはゲーム開発に必要な機能を集めた統合開発環境です。 そしてUnityが採用しているプログラミング言語がC#です。 (以前はJavaScriptも使えていましたが、 現在はC#のみとなっています)

Unityを使うとWindows、Linux、Max、Android、iPhoneだけでなく、 PlayStation、Nintendo Switchなどのゲーム機器など、 さまざまなデバイスに対応したゲームが作れます。

できること⑤:XR(VR・MR・AR)コンテンツ開発

XRコンテンツ

今後、間違いなく伸びる分野の1つにXRコンテンツ分野があります。 XRは「X Riality」の略で、エックス・アールやクロス・リアリティと呼びます。 VR(仮想現実)、AR(拡張現実)、MR(複合現実)など 「〇〇現実」を総称してXRと呼びます。

各用語の違いについては 次のサイトの説明が分かりやすいので参考にしてください。
【総称XR】VR・AR・MRの違いとは?

XRコンテンツは先程紹介した「Unity」を使うことで開発可能です。 医療、建築、自動車、ゲームなどあらゆる産業でXRは発展が見込まれています。 C#を使ってXRコンテンツ開発ができるようになれば、 かなりの高給も期待できるでしょう。

できること⑥:CUIアプリ

コマンドライン

CUIはキャラクター・ユーザー・インターフェイスの略で、 いわゆる「黒い画面」のことです。 キーボードからコマンドを打ち込む画面で、 GUI(グラフィカル・ユーザー・インターフェイス)とは対極です。

CUIアプリのことをコンソールアプリケーションといいます。 C#ではもちろんCUIも作成でき、 「.NET Core」というフレームワークを使えばマルチプラットフォーム対応の CUIアプリを作ることができます。

C#の難易度

C#の学習難易度は中程度と言ったところです。 決して簡単ではありませんが、 かといって難しい部類でもありません。 Python、Ruby、PHPなどのプログラミング言語よりは難しいです。 ですが、C++、Javaよりは簡単です。

C#には「Visual Studio」という高機能な統合開発環境があります。 「Visual Studio」を使うメリットの1つは強力な入力補完機能です。 クラス名やメソッド名の一部を入力するだけで、 入力候補を表示してくれます。 この入力補完機能のおかげで開発効率がかなり上がります。

「Visual Studio」には「Visual Studio Community」という無料版があります。 そのため個人でも気軽にC#の開発環境をインストールでき、すぐに開発可能です。

C#が出来るようになると、 同じオブジェクト指向言語のJavaやC++を学習する時に役立ちます。 オブジェクト指向言語をマスターすることはエンジニアとしての キャリアアップにもつながりますから、 C#はおすすめできるプログラミング言語です。

学習方法

タイトルとURLをコピーしました