📘

C#を使うときは、.NETが土台と理解する

2022/04/17に公開

C#は、どこで動く??

C#でプログラミングを行って、とりあえず「Hello, world!」や「WriteLine」を使って
文字列や計算結果を、標準出力や画面のテキストボックスに表示できた皆さん、おめでとうございます。最初の確認はできました。

是非、これから仕様書に照らし合わせてC#で設計と実装を行うときに、実現可能か決める指針になるので、「C#とは、こういうもの」というマインドを持ってほしいです。

1. プログラムが動く

C#以外にも、プログラムは記載した通りに動きます。
(大事:思った通りではなく、記載した通りに動きます!)
ただし、一から作成するまでもなく、どんな業務用で使われるときも同じ仕組みで共通部分があれば最初から「それ」を使っていいと思います。たとえばダイアログウインドウ、メッセージボックス、DB接続処理、ネットワーク処理などがあります。

要望ごとにビルドするプログラムは異なっても、その土台は同じ。
⇒ だったら最初から提供しておけばいい

この考えはC#含め、各プログラミング言語の発展において、正しかったと思います。

プログラムの土台、「.NET Framework」

C#のプログラミングをよく知らない人に、.NET Frameworkの説明を求められたら以下の機能について軽く話して反応を見てください。

  • 画面に表示されたボタンなどの部品
  • ネットへの接続
  • データベースというサービス接続

その後、とにかくWindowsパソコンの機能の土台が集まっているから、プログラム作成時に利用するものとお伝えください。

特に、その人が2022年に大学卒業の人だったら「.NET Frameworkさん」と同学年になるから
覚えやすいと念押ししておいたら 尚良し。

C#と.NET Framework

あるときまでは、C#を使ったプログラムは、.NET Frameworkを参照して作成する。
Windows系プログラムと言えば、この両者で二人三脚といっていいほど
C#の言語のバージョンと.NET Frameworkのバージョンは、ほぼ同じメジャーバージョンといっていいほどでした。

2. .NET Frameworkの変化

さきほどの、「あるとき」までとは2011年~2012年の頃です。
.NET Frameworkは、Windowsの機能指向だったけど変化を取り入れて生き残るようになりました。原因は「スマホ」です。アンドロイド、iPhoneのスマホの普及で、それに合わせた機能が取り入れられるようになって今も継続しています。

  • アンドロイド、その中心はlinux
  • iPhoneはiOS、(ただしその根元はUNIX)

同じポケットに入るマシンで、WindowsでもなくBASICが扱えるPC-1417Gですが
我が家にあるこういうマシンは実用に耐えられないので対象外ですね。

正直、どのバージョンを重点的に考える?

この20年弱、大手企業~数人の零細企業などでC#系案件をお伺いしたところ、次の範囲で開発するものや保守作業が多かったです。

  • .NET Framework 3.0~4.6
    古すぎると保証外になるので嫌がられ、新しすぎると作成実績がないことや、工場内パソコン置き換えで、一度に新品に変更できないので、動くかぎり使う指針などから上記のバージョンを押さえて作成すると問題無い(=納品ウケがいい)ですね。

3. これから「.NET」とC#は

最初に始まった「.NET構想」は、発展してのち各機能を引き連れて、再度「.NET」になり
元の構想に近いものに帰ってきた感じがします。
Windows系プログラミングの土台だけではなくなったのですが、C#にとっては、熟成した実装リファレンスになっています。
職場に経験者や、パートナー技術者さんなど、職場や人にも経験が溜まってきているときなので
初学者にとっては、これからアサインされても2000年代当初よりか随分作業しやすいようになったと思います。MSDN SubscriptionというCD-ROMを本棚から調べて、戻して、別のカタマリ取り出して、、、って繰り返ししてたんですよ、こんな事やるなんて全然IT屋さんじゃなかったんですよ、ホントに。

4. おわりに

扱いやすくなっても、下記の機能は相互チェックやテスト仕様書でのチェックは欠かせません。
上手になっても、複雑さはバグの元になりやすいのです。
作成すれば終わりでなく、納品して問題なく動作し続けてこそ「終わり」なんで、、、

  • 非同期マルチスレッド系
  • async await関連機能
  • 例外処理
  • ASP

Discussion