業務のためのC#・C言語・C++学習

主にC#の文法やWPF周りのアウトプットに利用してます。

Windowsアプリケーション開発に必要なVisual Studioとframeworkについて

私が思う「Visual Studioフレームワークを使ってWindowsアプリケーション開発するメリット」は簡単にアプリケーション開発が出来る事だと考えます。

 

初めてGUIアプリケーションを作った際に画面にボタンを配置してvisual studioのボタンを押せばビルドの理屈は分からないが、アプリケーションが動作したことを思い出します。この簡単さがとにかく何か作りたいプログラミング初心者にとっては、最大の魅力です。Visual studioを利用しない従来の開発では、コンパイルやリンカを意識する必要があります。。コンピュータの仕組みを理解する上では大切ですが、初学者には大変かもしれません。

 

従来の開発手法

プログラムにはビルドが必要です。ビルドは、C#C言語で記述したソースコードを実行形式のアプリケーションとして利用出来る形にすることです。

ビルドの流れ:

ソースコード→オブジェクトファイル→アプリケーション

exe形式のアプリケーションコンパイラリンカーコードエディターソースコードobjファイル

*1 C/C++言語のビルド

Visual studioを使った現在の開発手法

Visual studioにはビルド機能だけではなく、デバッグ機能もあります。ソースコードに記述ミスがないか確認するデバッガーがあると開発効率が高くなります。

 

exe形式のアプリケーションコンパイラリンカーコードエディターソースコードobjファイルデバッガーVisual Studio

visual studioがあれば、

①コードエディターでソースコードを記述

ソースコードデバッグ

ソースコードコンパイラでオブジェクトファイルを生成

④オブジェクトファイルをリンカで実行ファイルでたるアプリケーションを生成

以上の内、③+④=ビルドが自動実行されます。さらに①と②を人間が作業しやすいような環境を用意してくれてます。したがってvisual studioは総合開発環境と呼ばれています。もしvisual studioがなければ場合は、①~④の作業に苦労します。

 

フレームワーク

ソースコードをビルドすればアプリケーション開発が可能としましたが、実際の現場ではアプリケーションの開発効率を更に上げるためフレームワークを使用することがあります。フレームワークとはOSとやり取りする各種機能を簡素化するアプリケーション開発の土台となるものです。ここでは主にWindows環境でアプリ開発をするためのフレームワークについて解説します。

 

WindowsなどのOSはデスクトップ環境、ファイルシステム、プロセス管理、メモリ管理などの機能を提供してます。元来アプリケーションを開発するというのはOSと会話し、プロセス管理やメモリ管理をすることです。しかし、これらの管理は複雑で実装が難しくなり開発に時間がかかったりバグがでやすくなります。

コンピュータ
OS
例:WindowsLinuxmacOS
アプリケーション
例:メモ帳
アプリケーション
例:自作ゲーム

 

そこで、メモリ管理やプロセス管理を簡素化する便利なプレームワークが導入されようになりました。フレームワークを利用することで、開発者が本当に実装したい部分に集中できるようになりました。

コンピュータ
OS
例:WindowsLinuxmacOS

 

フレームワークの種類

作りたいアプリケーションによって選択するフレームワークは異なります。

以下フレームワークの代表例です。

 

.NET Framework

.NET Frameworkは、windowsデスクトップアプリケーションやwebアプリケーションなどさまざまなアプリケーションが効率よく開発できる仕組みとして用いられる。

 

.NET Frameworkの実行環境はCLRと呼ばれるCPUに依存しない仕組みが搭載されている。従来の開発と比べプロセスやメモリ管理がCLRが請け負うので、開発者の負担が減る。

 

言語はMicrosoftが開発したC#がメインである。

 

ライブラリ/フレームワーク

・基本ライブラリクラス

Windows Forms :Windowsデスクトップアプリケーション開発のためのフレームワーク

WPF:より高級なUIを持つデスクトップアプリケーションのためのフレームワークソースコードの雛形であるMVVMパターンの採用が可能で、更にデバッグがしやすくなる

ASP.NET: webアプリケーション開発用のフレームワーク




.NET Core
.NET Framework 4.6の後継が.NET Coreで呼ばれるフレームワークである。特徴としてLinuxWindowsなどの複数のOSをサポート。ただし、.NET Framewrokの機能を全て継承してるわけではないので注意。

 

 

ASP.NET Core
クロスプラットフォームのWebアプリケーション開発をサポートするASP.NETの最新版。


Xamarin
モバイルアプリケーション開発のためのクロスプラットフォームツール。2024/5にサポート終了。.NET6に統合された。

新型コロナウイルス接触確認アプリ(COCOA) でも利用されましたが、あまり評判は良くないような? 


.NET 5
.NET Coreの進化版で、クロスプラットフォーム開発をさらに強化。.NETの中には.NET Framework が含まれている。


.NET 6
.NET 5の後継で、「.NET Multi-platform App UI」(.NET MAUI)や「Blazor desktop apps」がサポートされ、さらなる強化が行われた。

 

 

まとめ

visual studioを利用する際のビルドやデバッグの概念とソースコードの土台となるOSやフレームワークについて説明しました。