エンジニアの副業は週1からでも可能?副業の例や探し方も解説
- ITエンジニア
- 副業
昨今はクロスプラットフォーム開発も一般的になってきましたが、OSごとに相性の良い開発環境があることは変わりません。そして世界で最もシェアを獲得しているOSのWindowsでアプリケーションを開発する際に役立つフレームワークが、『.NET Framework』です。
.NET Frameworkはバージョン4.8でアップデートを終了しましたが、後継バージョンである.NET Coreや.NET5でも、引き続き.NET Frameworkで提供されている機能のほとんどが利用できます。
そこで本記事では、.NET Frameworkの基礎から、後継バージョン、将来性について解説していきます。
目次
.NET Frameworkは、Microsoftがリリースしているアプリケーションの開発/実行ができるプラットフォームです。
.NET Frameworkは、おもに以下の3つの要素で構成されています。
共通言語ランタイム(CLR)とは、.NET Frameworkに搭載されている動作環境のことです。入力されたプログラミング言語は共通中間言語(CIL)と呼ばれる中間言語に変換され、中間言語を解釈してプログラムを実行します。
この中間言語を挟むことがとても大事な要素で、アプリケーション開発を行う際に特定の言語にしばられることなく、選択できる言語の幅が広がります。
基本データ型や、データ構造カプセル化、ファイル入出力など、プログラミングを行ううえで欠かせない基本的なクラス群がまとめられています。
たとえばC#でプログラミングを行う際に、文字列型を定義するとします。その際に使うのが「Stringクラス」。何気なく使っているこの「Stringクラス」は、基本クラスライブラリの代表的な一例です。
ASP.NETは、プログラミング言語のように思われがちですが、こちらは言語ではありません。統合開発環境(Visual Studio)で、Webアプリを作る際に活用するフレームワークのことです。これを使えば、HTMLやHTTPなどの基本的なWebアプリスキルに精通していなくても、高機能なWebアプリを開発できます。
ただし、ASP.NETで作成したWebアプリを動かすためには、WebサーバーであるIISのインストールが必要となります。
Microsoftがリリースしているため、.NET FrameworkはWindowsとの相性が抜群です。そのため、Windowsで動作するシステム開発の現場では広く活用されています。
Windowsサーバーを利用している企業であれば、自社の基幹システムを動かす基盤に.NET Frameworkを使っているところも多いはず。在庫管理や売上管理、会計管理など企業経営に欠かせないシステムをクライアントサーバーシステムで構築する際には、Windows Formsを使い、勤怠管理や自社サイトなどWebシステムを構築する際には、ASP.NETを使って開発します。これらはすべて.NET Framework上で動いていることになります。
.NET Frameworkを利用してのシステム開発では、データベースには同じくMicrosoftがリリースしているSQL Severを使い、Webアプリを開発する場合にはIIS+ASP.NETを使うなど、Microsoftの製品・技術でまとめて開発するのが一般的です。
.NET Frameworkには共通言語ランタイム(CLR)が搭載されているので、いくつかの言語が扱えます。開発はVisual Studioで行いますが、その中でも代表的な2言語について解説します。
VBとは、Visual Basicと呼ばれるプログラミング言語を指します。VB開発当初は.NET Frameworkに対応していなかったので、単にVBと呼ばれていました。しかし、2002年のバージョンアップで.NET Frameworkでの開発が可能となったことから、VB.NETという名称になりました。
オブジェクト指向かつとてもシンプルな構文でプログラミングできるため、初心者が最初にプログラミングを学ぶ際には、VB.NETからスタートするのもありです。
また、Excelのマクロを作る際に使用する言語のVBA(Visual Basic for Applications)も、VB.NETに似た構文形態ですので、VB.NETができればVBAでの開発もできるようになり、Excel業務の効率化にも活きてくるでしょう。
エクセルVBAでできること7選!超初心者から始める業務効率化入門
Workship MAGAZINE
C#はその名の通り、C系言語(C言語、C++)のひとつです。名称がC#となった理由は、C++に「++」をつけると「C++++」となるため、+を4つ組み合わせたように見える「C#」になったといわれています。
C#がリリースされる以前、C言語またはC++がプログラミング言語の中心的役割を果たしていましたが、どちらも求められる技術レベルは非常に高いものでした。そうした背景から、MicrosoftがC言語をベースとした開発しやすい言語としてリリースしたのがC#です。
MicrosoftのサービスでもC#は多く利用されており、検索エンジン「Bing」やポータルサイト「MSN」が代表的な事例です。
また、Unityの登場で、ゲームやAR/VRといったジャンルもC#で開発できるようになりました。ベースがC言語なので汎用性が高く、Microsoftも積極的に改良を重ねている言語です。
C#とJavaは似た言語です。その理由は、ルーツが同じC言語だから。C++はC言語にオブジェクト指向の技術を取り入れて爆発的に普及した反面、メモリの確保と解放といったメモリの管理面で多くのプログラマーを苦しめました。
そうした背景から、まず登場したのがJavaです。Javaにはメモリ管理を自動的に行ってくれるガベージコレクション(GC)という機能が盛り込まれました。この機能が搭載されたことで、メモリ管理から多くのプログラマーが解放されました。その後、.NET Frameworkで実行可能なC#をMicrosoftが開発しました。C#はC言語やC++をベースにしつつ、GCのような優れた機能も搭載した言語です。
.NET Frameworkには、以下の独立した4系統があります。
1.0系統と1.1系統に関してはサポートが終了していますが、2.0/3.0/3.5系統は下位バージョンを含んでいるので、以前のバージョンを上書きする形でアップデート可能です。
3.5系統が既にインストールされている状態で4系統をインストールした場合、どちらのバージョンも利用可能です。しかし、上位版である4系統をインストールしても、下位版の3.5系統がインストールされるわけではないので要注意。
また、4系統はそれぞれのバージョンが独立していて併用できません。そのため、最新の.NET Framework4.8をインストールしたい場合、現在インストールされている4系統を一度アンインストールしてから再度、インストールする必要があります。
.NET Frameworkは4.8でバージョンアップを終了しましたが、その後継フレームワークとして.NET Coreが登場しました。そして現在は.NET5となり、2021年には.NET6がリリース予定と、.NETは進化し続けています。
フレームワーク | バージョン | リリース年月 |
---|---|---|
.NET Framework | 1.0 | 2002年1月 |
2.0 | 2005年11月 | |
3.0 | 2006年11月 | |
3.5 | 2007年11月 | |
4.0 | 2010年4月 | |
4.5 | 2012年8月 | |
4.6 | 2015年7月 | |
4.7 | 2017年4月 | |
4.8 | 2019年4月 | |
.NET Core | 1.0 | 2016年6月 |
2.0 | 2017年8月 | |
3.0 | 2019年9月 | |
.NET5 | 2020年10月 | |
.NET6 | 2021年11月(予定) |
.NET Coreの大きな特徴として挙げられるのが、クロスプラットフォームで開発できるようになったことです。これにより、Windowsだけでなく、Linux、MacOSでも動作するアプリケーション開発が可能になりました。
また、.NET Coreでは、ASP.NET Coreなどの主要なフレームワークが、GitHub上にオープンソースとして提供されています。そのため、ほぼ全てのリポジトリに対してIssueという形での問題提起やバグ報告、Pull Requestによる修正依頼を行えます。
.NET Core3.0の次のバージョンが、.NET Framework、.NET Coreが統合されてひとつのフレームワークになった.NET5。.NET5で見送られたMono/Xamarinの統合が予定されているのが.NET 6です。
Mono/Xamarinの統合が完了すれば、ひとつの.NETでWindowsやLinux、MacOS、iOSなどに対応したクロスプラットフォームの開発ができるようになります。
クロスプラットフォーム開発が可能となったいま、.NETとC#を習得しておけば、WindowsアプリやLinuxアプリ、Macアプリ、スマホアプリまで多岐にわたる開発ができます。
また、クラウド環境で自社システムを運用し、Linuxをサーバーに選ぶ企業も増えてはいますが、Windowsサーバーの人気はまだまだ高いです。
今後も案件数は増えると予想されますので、.NETは将来性のある言語といえそうです。
.NET5は2020年10月に、.NET6は2021年11月にそれぞれバージョンアップが見込まれており、今後も1年ごとにバージョンアップが予定されています。
.NET Frameworkは、今後もセキュリティアップデートは引き続き行われますが、いずれサポート終了となる日を迎えます。それまでに.NET Frameworkを利用して動いているアプリを後継バージョンに移行する作業が必要となり、多くの.NETエンジニアが必要になるはずです。
サポートが終了してから準備をするのでは遅いので、早い段階から.NET Frameworkや.NET Core、.NET5の知識をアップデートして、来たる日に備えておきましょう。
(執筆:S-KAYANO 編集:齊藤颯人)