C#でできることとは? 幅広いアプリ開発に用いられる将来性の高い言語

C#でできることとは?

『C#』というプログラミング言語。

「C言語の仲間」「Windows系の言語」といった漠然としたイメージを持っている方も多いかと思います。

今回は、C#の概要やできること、将来性をご紹介します。

C#とは

C#とは、Microsoftが開発・リリースを行っているプログラミング言語です。C#は、C++Javaをもとに作られており、それぞれの便利な機能が採用されています。ですが、C言語やC++との互換性はありません。

C言語やC++は実行ファイルを直接生成する一方、C#は『.NET Framework』やその系列の開発プラットフォーム上で動作します。

そういったプラットフォームさえインストールされていれば動作可能なため、ハードウェアやソフトウェア、OSのバージョンごとにコードを書き直す必要はありません。この仕組みによって、Windowsアプリなどの高レベル層の開発を得意とします。

一方、CPUやストレージデバイスといったハードウェアにより近い、低レベル層の開発は不得意といえます。

C#で活用される『.NET Framework』とは

.NET Frameworkとは、MicrosoftがWindows向けに開発・リリースを行っていた開発プラットフォームのこと。

この.NET Frameworkのリリース自体は2019年に終了し、その後継バージョンとして『.NET Core』がリリースされました。.NET Coreの登場により、C#はWindowsにこだわらず、LinuxやMacOSでも動作可能なアプリ開発に使えるようになり、いわゆるクロスプラットフォームでの開発が可能となりました。

C#の開発環境『Visual Studio』とは

C#でアプリ開発を行う際に利用する代表的なIDE(統合開発環境)が『Visual Studio』です。Visual Studioがインストールされていれば、コードエディタやコンパイル(ビルド)、デバッグなどアプリ開発に必要な機能がほぼすべて利用できます。C#で作りたいものがある場合には、まずはVisual Studioのインストールからはじめてみましょう。

Visual Studioには無償で利用できるバージョン『Visual Studio Community』が準備されています。Visual Studio Communityは、個人制作の場合には商用利用も可能です。法人使用にはいろいろと制約がありますので、使用前に『Visual Studio Community』の公式サイトを確認しましょう。

ちなみに、Visual Studioによく似た名前のエディタに『Visual Studio Code』というものがありますが、全くの別物です。

C#はプログラミング言語人気ランキング第5位

つぎにプログラミング言語としての人気度を見てみましょう。

ここでは、TIOBEインデックスという、複数の検索エンジンの検索結果からプログラミング言語の人気度を測るランキングを参考にします。

2021年9月にはC#は第5位にランクインしており、比較的人気の高いプログラミング言語だといえるでしょう。

ランキング プログラミング言語 レーティング 変動幅(前年同月比)
1 C言語 C言語 11.83% -4.12%
2 Python Python 11.67% +1.20%
3 Java Java 11.12% -2.37%
4 C++ C++ 7.13% +0.01%
5 C# C# 5.78% +1.20%
6 Visual_Basic Visual Basic 4.62% +0.50%
7 JavaScript JavaScript 2.55% +0.01%
8 Assembly_language アセンブリ言語 2.42% +1.12%
9 PHP PHP 1.85% -0.64%
10 SQL SQL 1.80% +0.04%

▲出典:TIOBEインデックス

C#でできること

.NET Core、.NET 5の登場によって「C#と言えばWindows」という時代は終わり、クロスプラットフォーム開発が可能となりました。

LinuxやMacOS、AndroidなどさまざまなOSのアプリ開発にも活用されはじめている現在、C#でできることについてあらためて確認しておきましょう。

できること1. 業務アプリ開発

Microsoftが開発・リリースを行っているC#は、同じくMicrosoftの製品であるWindowsと抜群の相性の良さを誇ります。そのため、Windows上で動作する業務アプリの開発には非常に適している言語です。

また現在では、Macでの開発用に『Visual Studio for Mac』も用意されており、Macの業務アプリ開発にも徐々に活用されはじめています。

できること2.Webアプリ開発

C#はWebアプリ開発も可能です。Webアプリ開発のなかでも、「バックエンド」をプログラミングする際にC#は用いられます。

バックエンドとは、サーバーサイドやデータベースのシステムなど、ユーザーの目に見えない部分での処理のこと。ユーザーが入力した内容をデータベースへ保存したり、検索結果を出力したりといった処理を指します。

もちろんWebアプリ開発を行うには、「フロントエンド」も必須です。フロントエンドとは、Webアプリケーションで直接ユーザーの目に触れる部分のことで、HTMLやCSS、JavaScriptという言語を利用します。

このフロントエンドとバックエンド、それぞれをまとめてフレームワーク化してくれているのが、Microsoft提供の『ASP.NET』です。C#を使ってWebアプリ開発を行うには、このASP.NETというフレームワークを活用することになります。

できること3.スマホアプリ開発

C#ではスマホアプリ開発も可能です。スマホアプリ開発を行うには、『Xamarin』というVisual Studioに内包されている開発ツールを利用します。Androidアプリ開発用には、『Xamarin.Android』を使い、iOSアプリ開発用には『Xamarin.iOS』をそれぞれ使います。

さらに、XamarinにはAndroidとiOSのアプリが共通で作れる『Xamarin.Forms』も用意されています。このXamarin.FormsではXAMLという言語を使用する必要があります。XAMLはWebアプリ開発でHTMLやJavaScriptを使用したことのある方なら比較的簡単に習得できるため、学習コストは低めです。

できること4.ゲーム開発

C#を使ってゲーム開発を行うには、『Unity』という統合開発環境(IDE)を搭載したゲームエンジンを使います。Unityで作られた代表的なゲームには、『ポケモンGO』や『原神』などがあります。

注目度が高まっている「VR」や「AR」といった最先端技術を備えたゲームもUnityでは開発可能。C#をマスターしておけば、こういった分野の開発も行えるようになります。

【実践】C#を使った簡単なプログラミング

では実際にC#を使って、簡単なプログラミングを行ってみましょう。

今回開発に使うIDEはVisual Studio Community、使用するフレームワークは『WindowsForms』です。WindowsFormsはC#で開発する場合、もっとも使われるもの。WindowsFormsは学習コストが低く、C#の感覚を初心者が掴むにはおすすめです。

WindowsFormsは高機能なGUIデザイナーが搭載されているため、直感的な画面作成が可能です。HTMLやCSSといった画面作成のためのプログラミング言語を駆使せずとも、あらかじめWindowsFormsに用意されたボタンやラベル、テキストボックスなどを簡単に配置して画面を作成できます。

アプリケーションの動きは以下とします。

  1. Form1に用意したテキストボックスに「TEST」を入力
  2. Form1に用意したボタン「次の画面へ」を押下
  3. Form1からForm2へ遷移
  4. Form2に用意したテキストボックスに「TEST」が引き継がれる(入力不可)
  5. Form2を閉じる
  6. Form1を閉じる

Form1
Form2
プロパティを使って、画面遷移時の値の受渡しを行います。このプロパティはC#で開発するには必須アイテムです。またC#はオブジェクト指向型の言語のため、クラスのインスタンス化(newの箇所)も必ず出てきます。初心者の方は早めに理解を深めておきましょう。

Form1画面のコーディング

using System;
using System.Windows.Forms;

namespace WindowsFormsApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        // 次画面へのボタン処理
        private void button1_Click(object sender, EventArgs e)
        {
       
            this.Visible = false; // Form1画面を非表示

            Form2 f2 = new Form2();
            f2.textBox1data = this.textBox1.Text; // 遷移先へ値を渡す
            f2.Show(); // Form2へ遷移
        }

        // 閉じるボタン処理
        private void button2_Click(object sender, EventArgs e)
        {
            this.Close(); // Form1を閉じる
        }
    }
}

Form2画面のコーディング

using System;
using System.Windows.Forms;

namespace WindowsFormsApp
{
    public partial class Form2 : Form
    {

        // プロパティ
        private string _textBox1 = "";
        public string textBox1data
        {
            set
            {
                _textBox1 = value;
                this.textBox1.Text = _textBox1;
            }
            get
            {
                return _textBox1;
            }
        }

        public Form2()
        {
            InitializeComponent();
            this.textBox1.Enabled = false; // 入力不可とする
        }

        // ボタンを押下処理
        private void button1_Click(object sender, EventArgs e)
        {

            Form1 f1 = new Form1();
            f1.Visible = true; // Form1を表示

            this.Close(); // Form2を閉じる
        }
    }
}

C#の今後の需要

クロスプラットフォーム開発が可能になったことで、LinuxやMacOSで動くアプリケーション開発にもC#は活用されつつあります。しかし、やはりメインはWindowsでの開発です。ほとんどの企業がOSにWindowsを使っているので、Windowsと相性の良いC#は、企業の基幹業務システム案件で今後も需要があると思われます。

また、.NET Frameworkのリリースが終了したため、.NET Coreや.NET 5といった新たなフレームワークへの移行作業といった業務でもC#の需要は増えると考えられます。

さらに、ゲームエンジン『Unity』でC#が使用できることも今後の需要にも影響してくるはず。ゲーム開発はもちろん、VR/ARなど最先端技術の分野においても、C#が扱えるエンジニアの需要が高くなってきています。

プログラミング言語別年収ランキング。C#は何位にランクインする?

学習するにあたって、やはり気になる年収問題。

IT・テクノロジー人材のためのコミュニティ『TECH Street』が、「2020年プログラミング言語別、年代別の平均年収ランキング」を発表しています。C#がそれぞれの年代で何位にランクインしているのかを確認しておきましょう。

20代編

20代のプログラミング言語別ランキングでは、『R言語』が476万円で1位、次いで『Scala』が440万円で2位、『Objective-C』が407万円で3位という結果なり、C#は、381万円で16位にランクインしています。

【20代部門】プログラミング言語別年収ランキング

▲出典:TECH Street

30代編

30代のプログラミング言語別ランキングでは、R言語が569万円で1位、次いで『Go』が562万円で2位、『Perl』が555万円で3位という結果なり、C#は、495万円で16位にランクインしています。

【30代部門】プログラミング言語別年収ランキング

▲出典:TECH Street

40代編

40代のプログラミング言語別ランキングでは、R言語が753万円で1位、次いでC++が633万円で2位、『Python』が624万円で3位という結果なり、C#は、616万円で4位にランクインしています。

【40代部門】プログラミング言語別年収ランキング

▲出典:TECH Street

まとめ

今回はC#についてまとめました。C#はWindowsの言語というイメージが強いですが、AndroidやiOS、ゲーム開発など多岐にわたるアプリ開発にも使用されています。

MicrosoftはC#の改良に積極的なため、今後ますますできることは増えてくるはずです。将来性を考えれば学習すべきプログラミング言語のひとつではないでしょうか。

(執筆:S-KAYANO 編集:泉)

SHARE

  • 広告主募集
  • ライター・編集者募集
  • WorkshipSPACE
週1〜3 リモートワーク 土日のみでも案件が見つかる!
Workship