C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

C#/WPF: 10年ぶり?5年ぶり? Visual Studio で C# で XAML で WPF で

Note: 今回は技術的内容はたぶん無いよう・w・ たぶんただのエッセイだよう・w・

Visual Studio で C# を書くのはお気持ち的にはたぶん10年ぶりくらい(実際はそんなに長くないよ😋)。 C# でアプリを書くのは5年ちょっと振りくらい(たぶんほんと)。 C# や .net の概況や言語仕様のアップデートは毎年1回くらいは気にかけていたけどね(メテオにはMPが足りないテラおじいちゃんが「おもいだす」できる程度には)。

私が C# を使わなくなった理由は幾つかあるけれど、

  • Managed DirectX の緩やかな衰弱、そして事実上の死
  • XNA の緩やかな衰弱、そして死
  • Silverlight の緩やかな衰弱、そして死
  • Microsoft に振り回されたくない想いの強まり
  • Mono 黎明期と GNU/Linux プラットフォーム主環境化と ASP.net によるサーバーサイドエンジニア化
  • そもそもわたしが C# を使う理由が消失した

そんな事が10年くらい昔から5年くらい前までに私が C# を直接は使わなくなった流れ。言語としては好きなんだよ😃

で、最近ね、仕事のボスが

「伊藤さん、技術力すごい評価するけどビジネスアプリ的なUIとか作ってくれないですよね(だからボーナス評価は並に落としますね」

とか言うの。まあ、私の会社じゃないし、お世話になってるだけだからね、要求には答えてあげないとね♥

『べ、べつに作れないわけじゃ・・ないんだから!(ぁーだりぃーょぉー、そんなダサいもの作りたくないでござるよー・・・うぐぅー』

と、いうわけで伊藤さんは中略 WPF と Visual Studio と C# で Windows 向けのビジネスアプリ的なUIというやつをぺぺっと作ってやることにしたのでした。

先ず、 C++ しか使わないので入れていなかった C# を WPF でデスクトップアプリつくれるっぽいキットを Visual Studio Installer を起動してぽちぽちインストールします。 Win Form そんな存在すら危うさを感じるものいまさら使いません💀 UWP そんな制約で疲れそうなものぺぺっと作りたいだけなのに使いません(たぶん勝手な思い込みです)。

f:id:USAGI-WRP:20181201094245p:plain

既に C++ 環境のため Visual Studio の本体的な何かはインストールされているため、1分もかからずあっさりダウンロードとインストールがおわった。再起動も不要だったのでそんなことに無駄に小さな幸せを感じてしまった私に悔しさを感じた。

起動して WPF デスクトップアプリのプロジェクトを新規作成。なんかフォーム(WPFなのでそうじゃない)のヴィジュアルなデザイナーの下にコードが同時表示されている。

f:id:USAGI-WRP:20181201095039p:plain

お久しぶりデース、XAML =サン。ぁぁ、懐かしいですね、わたし好きですよ、こういう GUI をヴィジュアルプレビューと記述用のテキストな言語で作れる何かそういうの。(最近は UMG( UE4 )を使っていたのでテキストソースでは簡単にはイジれないんだよね。その前は imgui で、あれはソースでしかイジれないしデザインのプレビューとか完全脳内コンパイラー必要だし。)

わたしの脳内のわたしじゃない誰か「ハァィ、うさぎー、それじゃあ今回はどうして QML は使わなかったんダーイ?」

 

わたしの脳内のそれじゃない誰か『うるせえな、あんなもん使ったら GPL 汚染(厳密には使うコンポーネントやソースのバージョンによって LGPL3 だったり GPL3 だったり GPL2 だったりする )を受けるしクロスプラットフォームなんてどうでもよく Windows でだけぺぺっと動けばいいなら Qt 開発環境もめんどくせーんだよ・w・』

脳内で誰かがおしゃべりしていた。私にはどうでもよいことだが。

わたしらしき何者か『さて、とりあえずボタンでも付けてみようか。』

Visual Studio のコンポーネントがアイコンで表示されてくれていてマウスでどーっとするとばーんと GUI ができるあのアレは…どこだ…。

f:id:USAGI-WRP:20181201100537p:plain

f:id:USAGI-WRP:20181201100603p:plain

わたしのなかのかわいいかもしれないやつ『ぉぉ~なるほどぉ~!こんなところに縮こまっておったかーー、気付かんところだったではないかぁ~~😂』

などと思った気がしたが、ぺぺっとアプリを作るためにこの子には脳内の宇宙の扉の先のどこかへお帰り頂いた。

f:id:USAGI-WRP:20181201101047p:plain

「押せ。」と一応書いてから気づいたが、引いたり、さすったり、殺したり、おしゃべりしたりはできないのでデザイン工学に一杯取られた気がした。実は殺すことはたぶんできるのだが、それは実行時にウィンドウハンドルを(中略)そのはなしではなかった。ぺぺっと忘れて続けよう。

それで、ただボタンを付けてイベントを束縛しても面白くないので Visual Studio のヴィジュアルな力とやらを見てやろうと思った。グループ化してテキストボックスも入れてやろう、グフフ…。…これを…こうして…ここへ…。

f:id:USAGI-WRP:20181201101705p:plain

たぶんわたしに接近してきたわたし「私の…わたしの…「かわいいボタン。押せ。」が消えてしまったではないかぁ~~~~~うわぁああああああん」

こういう時、かわいいやつを出すと得をするのだが、それは相手が居る場合だ。残念だったな、帰れ、かわいいわたし。

わたし、プログラマー。ソース、信じる。(ごにょごにょ

f:id:USAGI-WRP:20181201102643p:plain

わたし『ぐぬぬ…。なーにがグループじゃぁ~~\(^o^)/ うっかり騙されたではないかぁ~~~!(設計に基づく正しい挙動です)』

f:id:USAGI-WRP:20181201103113p:plain

f:id:USAGI-WRP:20181201103237p:plain

なんて遊びながらでもぺぺっと GUI アプリ作ってさっさと動かせちゃうんだから、便利でいいよね。

感覚をハンドリングできはじめてきた気がするので、落書きエッセイはこのくらいにします。こんなの読んでくれて、ありがとうね😋