.NETのGUIアーキテクチャ一覧公開のお知らせ
「.NET 10 の画面有りアーキテクチャの解説とサンプルコード」を公開したことを、お知らせします。
.NET 10 の画面有りアーキテクチャの解説とサンプルコード
サンプルプログラム公開の理由
この記事とサンプルコードを作成した理由としては、.NET はその内容をよく誤解されることが多く、誤解を解消する上で、分かりやすい解説と具体的なサンプルプログラムを見せる必要があると考えたからです。
「.NET の誤解」の例としては、以下の様な物があります。
「.NET は Windows でしか動かない」
「ASP.NET は一つの技術である」「ASP.NET が使える(開発経験がある)」
「C# は C/C++ 系の開発言語である」
等々は、代表的なものです。 「Java と javascript の違いが分からない」と同じようなものです。
ITシステム開発の現場には、ITエンジニアだけが携わっているわけではなく、業務担当者や営業担当などITエンジニアではない人々も多く関わっていますから、こういう誤解は無くなりません。
ただ、説明しなければ誤解も無くならないので、このネット記事のような媒体で地道に解説していくしかありません。
上記の誤解について簡単に解説すると以下のようになります。
誤解1「.NET は Windows でしか動かない」
.NET には 旧 .NET Framework と 最新の .NET(Core) の二種類があり、Windows でしか動作しないのは、旧 .NET Framework だけであり、最新の .NET(Core) は Windows だけではなく、macOS,Linux,iOS,Android で動作します。 .NET 10 は、.NET(Core) です。
誤解2「ASP.NET は一つの技術である」
.NET 系の求人には「ASP.NETの開発経験がある」という条件をよく見かけますし、IT人材系の営業職の人々も「ASP.NET は一つの技術である」「ASP.NETの開発経験があれば、ASP.NETは全て扱える」という認識の人々が圧倒的に多数派です。
この認識は、かなり大雑把すぎて、ほぼ間違っており、様々なトラブルの原因になっています。
この種類の誤解を解消したかったのも、サンプルプログラムと解説記事を公開した理由の一つです。
「.NET 10 の画面有りアーキテクチャの解説とサンプルコード」を読んで頂ければ分かりますが、ASP.NETとはMicrosoft が .NET技術で提供するWeb技術全般に付けているブランド名であり、ASP.NETブランドの中に様々な技術製品やアーキテクチャが提供されています。
つまり、「ASP.NET は一つの技術である」という認識は間違いであり、「ASP.NETの中に様々な技術製品が存在する」のが真実です。
ざっくりと例を挙げると、ASP.NET WebForms , ASP.NET Core MVC , ASP.NET Core Razor Pages , ASP.NET Core Web API , ASP.NET Core gRPC Service , ASP.NET Minimal API といった技術製品が提供されています。
これらの解説は、「.NET 10 の画面有りアーキテクチャの解説とサンプルコード」の中に書いているので、ここでは解説しません。
例えば、ASP.NET WebForms の開発経験のある人材は、ASP.NET Core MVC や ASP.NET Core Razor Pages を扱う事はできません。逆も同様です。 (ASP.NET WebForms は、旧.NET Framework の技術で既に廃止されております。Core と付く物は全て .NET (Core) の技術です)
ASP.NET Core Web API の開発経験のある人も ASP.NET Core gRPC Service は簡単には扱えないでしょう。
IT人材の募集を行う方は、ASP.NET の中のどの技術の開発経験を求めるのか、具体的に記載した方が良いですし、営業や管理職の方々も、そのぐらいの認識は持っておくべきだと思います。
この手の疑問は、生成AIに質問すれば分かる事なので、そろそろ調べておくべきでしょう。
様々なトラブルの原因は、技術を要求する側の雑な認識の方にあるケースが少なくないのです。
誤解3「C# は C/C++ 系の開発言語である」
これは「Java と javascript の違いが分からない」人々と同様の人々ですね。
C# は、CLR という .NET の仮想環境で動作するマネージドコードを主に開発するために作られた開発言語であり、その位置づけや機能特性は、Java に似た物になります。CLR は JavaVM に相当する VM(仮想マシン)です。
C言語やC++は、ネイティブコードを生成する開発言語なので、C#とは似ても似つかぬ言語です。
現代の開発言語は全て、C言語とC++を祖先として、言語の文法などを作成しているので、C#もC言語とC++を祖先としていますが、それならば Java も PHP も Go も Python もC言語とC++由来の言語と言えます。
「C#がC言語やC++系統の言語である」という認識に、正当性を見いだすのは難しいです。 無駄に誤解とトラブルを招くだけで、有害な認識だと思います。
他にも色々ある
ここでは .NET の話だけを挙げましたが、他の技術でも同様の誤解が蔓延していると思います。
いちいち例を挙げても切りが無いので挙げませんが、「Swift と SwiftUI を混同している」とか「Git と GitHub を混同している」とか「WSL と Git Bash を混同している」とか、たくさんあるでしょう。
最近広まりつつある Blazor では、Razorコンポーネントがありますが、これを ASP.NET の Razorページと混同する人もこれから増えていくでしょう。
これらの誤解は、誤解する方も悪いですが、説明しない方の責任もあるので、ブログ記事などで地道に解説記事を書いておくのが、誤解を払拭する最低限の努力と言えるでしょう。
解説がない状況では、誤解する者を批判することも、正当性の面で苦しくなります。
サンプルコードについて
サンプルコードの使い方は、「.NET 10 の画面有りアーキテクチャの解説とサンプルコード」の中で必要最小限書いてあります。
GitHub リポジトリのサンプルコードの README.md など、まだぜんぜん書いていませんが、これから少しずつ書いていくつもりです。
最小限、解説記事とサンプルコードだけ完成した時点で公開しています。今後も細部の修正は行いますので、ご了承ください。
リリースや配布の機能は作っていないので、現状では IDE でソリューションを開いて起動するしかありません。
ライセンスについて
GitHub リポジトリのサンプルコード IssueBoard にはライセンスの記載がありませんが、全て MITライセンス とお考えください。
詳細は、後日 README.md などに書いていくつもりです。
今は、この記事で暫定的に「IssueBoard は MITライセンスである」と宣言しておきます。
MITライセンスは、このプログラムを利用・再配布する場合、著作権表示とライセンス条文を、ソフトウェアの複製または実質的部分に含めることを義務づけるライセンスです。また、本ソフトウェアは無保証であり、利用者の自己責任で使用することに合意することが求められます。
この条件を受け入れることを要求するライセンス規定です。
これは、私だけでは無く、世界の MITライセンス 全てに当てはまる条件なので、覚えておいてください。
商用利用は制限されませんが、利用者の自己責任での利用が求められます。
以上、お知らせでした。