こんにちは。お久しぶりです。
リン元素の記事書くって言ってから研究テーマ変わっちゃったから記事もかけなかったし超忙しかったよ(´;ω;`)。
でもいずれ書きたいとは思ってる。やっぱり面白い分野だと思う。最近徐々に流行り始めてる分野だし。
ところで、最近windowsのデスクトップアプリケーションを作りたいなと思いますた。DXライブラリとかSDLとかいう簡単にアプリを作れる神神神ライブラリを使っていろいろ作ってたけど、やっぱりもうちょっとお堅いアプリも作ってみたいよねってことで。
windowsで”お堅い”アプリを作る方法はいろいろあるみたい。大事なのは、
アプリ動かすPCに、exeを実行する環境が備わっているか?
ってこと。この、exeを実行する環境のことを、「ランタイム」とか「ランタイム実行環境」というらしい。
このランタイム環境ってのには、windowsとか関係なくいろいろ種類があるみたい。呪文のように有名な名前を列挙すると、
Java Runtime Environment(JRE), .NET Framework, .Net Core, Xamarin
の4つ。ただ、 .NET Framework, .Net Core, Xamarinの3つは.Net Standardっていう基盤は一緒。このサイトの図を見るとめっちゃわかりやすく理解できると思う。
まあ、会社で分けると、OracleのJREを使うか、Microsoftの.NET を使うかっていう二択っぽい。大きな違いはプログラミング言語。JREはJavaっていう言語をつかう。.NETはC#(一部C++も使えるらしい)。
Javaも有名だし面白そうだな―って思うけど、今までCとかC++言語をやってきたから、.NETの方を使ってみようと思う。
.NETはマイクロソフトだから、とりあえず超わかりづらくて大っ嫌いなmicrosoftのサイトのこのページ(最終閲覧2020年7月)を仕方なーくみると、結構いろいろあるみたい。このページはMicrosoftにしてはわかりやすい。やればできるじゃん。
2020年7月現在、.NETを使って作る方法の候補は6つあるみたい。呪文みたいに名前を列挙すると、
UWP, WPF, Windowsフォーム, win32, PWA, Xamarin
っていうのがあるみたい。それぞれに細かいメリットとかデメリットとか、あるみたいだけど、とりあえず一番大事なのはもちろん
自分のパソコンで動くデスクトップアプリを作れる?
ってことだと思う。
とはいっても、自分のwindowsは10だから、まあOSの問題はなさそう。windowsXPとかで動くものとなるとちょっと制約があるみたい。ちょっと調べた感じ、サポートの問題は置いといて、wpf, windowsフォーム, win32で作れそう。
問題はデスクトップアプリを作れるかどうか。そうみるとUWPはダメダメ。MicrosoftStoreからインストールするアプリを作ることに特化しているみたい。(MicrosoftStoreとか始まらなかったオワコンは無視だ無視)
じゃあどうしようかってことなんだけど、Microsoft的には、比較的新しいWPFがオススメらしい。流行ってるかどうかとか、情報量の多さから言うと古いwindowsフォームとかwin32とかのほうがいいのかもしれないけど・・・まあ、自分は遊びで作るだけだし素直にWPFを使おうと思うよ。WPFのほうがグラフィックがきれいなソフトを作れるみたい。
さて、WPFを使うって決めたわけで、実際にプロジェクトを作ってみようと思う。
開発用のソフト(統合開発環境(IDE))は、VisualStudio2019を使うよ。同じMicrosoftだし、VisualStudioはC#の開発が売りってとこもあるらしいから安定の選択だと思う。特に迷う必要はないと思う。
さて、VSを起動したら、
ファイル > 新規作成 > プロジェクト
を選択する。そうすると、何を作るのかを選択する画面(プロジェクト作成ウィザード)が開くと思う。
ここで、「WPFアプリ(.NET Framework)」っていうのを選択。
注意してほしいのは、「.NET Framework」と、「.NET Core」の二つのバージョンがあるってこと。この違いは上にグダグダ書いた通りだけど、実行するPC入れないといけないランタイムの違い。今回はなんとなく情報量の多そうな.NET Frameworkのほうにしようと思う。.NET Coreはクロスプラットフォームアプリ(windowsでもLinuxでもMac OS でも動くアプリ)を作れるらしいから結構魅力的だけどね。
あと、画像の右上に「C#」と「VB」って書いてあると思うけど、これも注意。使う言語をC#とVisualBasicのどっちかで選択するんだと思うけど、今回はC#を選択。
そのあと、下の画像みたいな画面が出てくると思う。
保存名と保存場所は好きな名前と場所を選べばいいと思う。でも、ファイル名には日付を入れるのをお勧めするよ。自分は日付を入れる人を見ると「こいつできる・・・!!」思う。
プロジェクトっていうのが、一つのexeアプリの開発プロジェクトを意味している。このプロジェクトにソースファイルって形でプログラムをどんどん追加していく。
ソリューションっていうのが、プロジェクトをまとめるもの。別のexeファイルだけど、似たようなアプリをまとめて管理したいって時に、どんどんプロジェクトをソリューションに追加していけばいい。まあ、大規模な開発には必要だろうけど、今は別に1つのソリューションに1つのプロジェクトっていう形でいいと思う。
最後に、.NET Frameworkのバージョンを選択。何回も繰り返すけど、.NET Frameworkはランタイムっていって、実行するPCに入れないといけないもの。だから、このアプリを実行するPCに選択した.NET Frameworkのバージョンが入っていないといけない。これを頭に入れておかないと、いざ作ったアプリを実行するときに、実行できない!ってことになって挫折するかもしれない。
さて、実際に作ったら、上の画像みたいに
「MainWindow.xaml」、「MainWindow.xaml.cs」という2つのファイルができていると思う。
ただし、ソースファイルの名前や中に書かれていることは、VisualStudioのバージョンによって変わることもあるので、上の画像と違う!!って人も心配しないでいいと思う。とにかく、拡張子が.xamlのファイルと.xaml.csの2つのファイルができていればいい。
これからこの2つのファイルにプログラムを書き込んだり、場合によってはもうちょっとプログラムを書くソースファイルを増やしていって、アプリを作っていくイメージを持ってほしい。だから、最初の基盤としてmicrosoftが与えてくれたファイルの中身なんて正直どうでもいいってこと。
ともかく。上手く作れたら、F5ボタンを押して、デバッグを行う。
デバッグっていうのは、実際に配布して使えるexeファイルは作らないで、VisualStudio上でアプリを実行見るってこと。
そうすれば、以下のようなウインドウが表示されると思う。
Microsoftはとりあえず画面を表示するプログラムを作ってくれたらしい。ありがたいね。
ここにいろいろ書きこんで自分の作りたいものを作っていくんだけど、それは次回以降の記事に回すよ。C言語とかのプログラミング言語をちょっとだけしか触ったことない人にもわかるようにできるだけ簡単に書こうと思うから楽しみにしててね(^-^)/。
今回は、このアプリを配布できる形にしてみようと思う。つまりexeファイルを出力してみようと思う。
せっかくプログラムを頑張って書いても、出力の方法がわからなかったら面白くないからね。
やっぱりテストプログラムだとしても、exeに出力してどっかに保存していったほうが、これまでに自分が勉強で作ってきたアプリが並んで面白いと思う。日記みたいな。自分はVisualStudioでしか実行できないテストプログラムなんてしこしこ作っててもモチベーション湧かないよ(´・_・`)。
まず、画面左上の”Debug”ってところを”Release”に変更。これするだけで、配布に適したexeファイルを文字通りRelease、つまり出力してくれる。
そのあと右の開始ボタンを押すか、さっきみたいにF5を押して実行。これで勝手にexeファイルを作ってくれると思いきや・・・
上の画像のような警告が出る。何の設定か知らないけど「マイ コードのみ」っていう設定がオンになってるから、機能が制限されてうまくいかないよぉ! (//>ω<) っていってるらしい。しかたないので 、「[マイ コードのみ]を無効にして続行」 を選択。これでうまくいくはず。
じゃあ実際に、さっき自分で選択したプロジェクトのフォルダを開けてみる。私だったらさっきの画像でいうと、
C:\workspace\wpf_NetFramework\test\Test2_20200719_TrueHelloWorld\Test2_20200719_TrueHelloWorld
だね。読んでる人は自分のフォルダを開いてほしい。
そこに、「bin」ってフォルダがあると思うから、それを開く。すると・・・
「Debug」フォルダと「Release」フォルダがあると思う。Releaseフォルダを開くと・・・
exeファイルが出力されてる!!
あとはこれをお好きなフォルダ―にでも移して、あとから日記として眺めてニヤニヤしよう(゚∀゚)
ただ、目ざとい人は気づいたかも知れない・・・
Debugフォルダにもexeファイルがあってふつーに実行できることを!!
実は、さっきReleaseに設定を変えたけど、Debugのときもexe実行ファイルは生成される。さらにいうと、こっちを配布用のexeとして使ってもいいみたい。
じゃあなんでReleaseに替えたんだよって思うかもしれないけど、理由は一応ある。Releaseのほうがプログラムコードを最適化して、高速化してくれるらしい。だから配布用はReleaseのほうがいいかなと思う。
でも、注意しないといけないのは、プログラムコードを最適化したせいでたまーにDebugとは違う動作が起きることがあるらしい。これはちょっと怖いね。そういう時はDebugで出力されたexeファイルを使ったほうがいいと思うから臨機応変にやろう。
長くなったけど、とりあえずアプリ作成と保存はできた~(* ´ ▽ ` *)
これで「WindowsでC#と.NET Frameworkを用いたアプリケーション制作の経験があります(ドヤ」って自慢できるね。
ついでにこの記事宣伝しといてください(笑)。
なんのテストプログラムを作るかは未定だけど、いろいろ遊んでみたいと思うよ!できるだけわかりやすく書こうと思うから乞うご期待!!
コメント