午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

.NET Coreを使ってみた、.NET Frameworkで作ったアプリのコードはコピペで動いた

.NET Coreって名前だけは聞いていたけど、わかりやすかったのは

codezine.jp

なるほど、ってことで.NET Coreを使ってみた

 

昨日の記事の.NET Frameworkで作ったアプリのコードをコピペして動くのか試してみる

f:id:gogowaten:20200121105442p:plain

f:id:gogowaten:20200121105732p:plain

上のが今まで使っていた.NET Framework、下のが.NET Core

WPF App」より「WPF アプリ」のほうがわかりやすいと思った。

.NET Coreを選択して、次へを押して、適当な名前をつけると

 

f:id:gogowaten:20200121111434p:plain

いつもの見慣れたXAMLのデザイン画面、.NET Frameworkと同じかなあ

 

c#コードの編集画面

f:id:gogowaten:20200121111615p:plain

ほとんど同じ

 

f:id:gogowaten:20200121111824p:plain

19行目が英語になっているのが違うくらいかな

 

f:id:gogowaten:20200121111941p:plain

ソリューションエクスプローラーはずいぶん項目が減っている、Frameworkのときは参照が10個くらい並んでいた

 

f:id:gogowaten:20200121112158p:plain

f:id:gogowaten:20200121112422p:plain

.NET FrameworkではNuGetでダウンロードして参照に追加しないと使えなかったSystem.Numericsが、何もしなくても最初から使えるようになっている!

説明が英語になっているのは…今後のアップデートで日本語になると思うけどねえ

 2020/01/29追記ここから

 2020/01/29追記ここまで

 

昨日の記事のアプリをコピペ

f:id:gogowaten:20200121113522p:plain

Gridの中をコピペ、エラーなし

 

f:id:gogowaten:20200121113729p:plain

C#のコードの方もpublic partial class MainWindow : Windowの中をコピペして

using System.Numerics;
using System.Diagnostics;

追加でエラーなし

ほんとにSystem.Numericsを参照の追加無しで使えるだねえ、楽でいいわ

 

 

f:id:gogowaten:20200121114340p:plain

デバッグ開始のボタンの名前が「開始」だったのがプロジェクト名になっているけど、開始のほうがわかりやすいなあ

デバッグ開始

 

f:id:gogowaten:20200121114706p:plain

動いた!

 

実行速度

f:id:gogowaten:20200120114209j:plain

昨日と同じ画像で

 

f:id:gogowaten:20200121115304p:plain

実行

 

結果

f:id:gogowaten:20200121115415p:plain

 

比較

f:id:gogowaten:20200121115749p:plain

7番以外は.NET Coreのほうが速いような?.NET Frameworkの方だけ測り直してみよう

 

f:id:gogowaten:20200121121406p:plain

やっぱり.NET Coreのほうが速い


グラフで比較

f:id:gogowaten:20200121130322p:plain

f:id:gogowaten:20200121130330p:plain

誤差とも言えないような感じ、.NET Coreのほうが速い


アプリの実行ファイル

f:id:gogowaten:20200121122958p:plain

Releaseフォルダの中はずいぶん違う、実行ファイルサイズも違っている。気になったのが.NET Coreは実行ファイルと同名のdllファイルがあること。もしかしれこれがなくて、実行ファイルだけだとアプリが起動しないんじゃないかと

別のフォルダに実行ファイルだけコピーして実行してみたら

f:id:gogowaten:20200121123938p:plain

無反応…じゃあやっぱりdllファイルが要るのかと

dllファイルもコピーして実行したら

f:id:gogowaten:20200121124126p:plain

アプリの実行には.NET Coreが必要なのでダウンロードする?とか聞かれた、これでも足りない、他にも試した結果は

 

f:id:gogowaten:20200121124431p:plain

実行ファイルとdllファイルとruntimeconfig.jsonって名前がついているファイル

アプリの起動にはこの3つが必要なのがわかった

けど、こんなにめんどくさいはずはない、他に方法があるはずと思ってググったら

あった

rksoftware.hatenablog.com

こんな方法があったのね

 

 

 

 

アプリダウンロード

20200121_gensyoku.zip

 

ギットハブ

github.com

 

 

関連記事

次は同日

gogowaten.hatenablog.com

 

昨日

gogowaten.hatenablog.com