2019/05/08(水).NET 5 = .NET Core vNext

.NET 5の概要が示されコメント欄が盛り上がってます。
.NET Core 3.0の時期バージョンが.NET 5。
4は.NET Framework 4系と紛らわしいのでスキップした、と言うことですが1~3も被っていたわけで、ようは.NET CoreからCoreが取れた、今後.NETと言えば.NET Coreになっていく、と言うことがはっきり示された形。

現在.NET Core未対応のWCF、WebFormあたりが切り捨てられるのか、ちょっとした騒ぎに。
廃止する、と発表されても現場の反応から廃止中止になったこともあるのでまた方針変わるかも知れませんが、新規プロジェクトを作成する時はできるだけ.NET Coreにしておいた方がよさそう。
.NET 5はMonoとくっつくので大規模なコード変更が予想され落ち着くまではしばらくかかりそうなので、当分.NET Core3の大きな変更は無く安心して使えそうな予感(個人の感想です)。

※2019/06/16追記
WCFもオープンソースとしてコミュニティによって.NET Coreに移植されるようです。
これでCore対応されずに残るのはWebFormだけでしょうか?

2018/09/22(土)ML.NET 0.5でディープラーニング

そういえばその後ML.NETはどうなった?と思って調べたらいつの間にか0.5になっていました。
C#でTensorFlowを使ったディープラーニングが可能になってました。
サンプル(TensorFlowのサンプルは samples / csharp / examples / DeepLearning_TensorFlowMLNETInceptionv3ModelScoring / )が公開されているのでダウンロードし試してみようとしたら、NU1102エラーが出てNugetで失敗します。
未公開のML.NET 0.6.0-preview-26912-3が参照されているので、パッケージマネージャで
PM>  Install-Package Microsoft.ML -Version 0.6.0-preview-26912-3 
しても404エラー。
プロジェクトファイルを直接編集して0.6.0-preview-26912-3を0.5.0に変えるとNugetは成功しますが、ビルドで下記のエラー。
'TensorFlowScorer' に 'OutputColumns' の定義がありません
定義にとんでいくとOutputColumnはあるけれどOutputColumnsはありません。
//OutputColumns = new[] { InceptionSettings.outputTensorName }
//↓
OutputColumn = InceptionSettings.outputTensorName
に変更してビルドしたら大量のエラー。
mldl020.png

メゲメゲ(^^;)。

0.6.0-preview-26912-3を取得する方法が判明。英語ですがもろそのもの。
nugetじゃなくてmygetしろと。nugetツールにパッケージソースを追加する方法で無事0.6.0-preview-26912-3を取得できました。
nugetprev010.png

ところが実行すると全く同じエラー。
仕方なくメッセージを読むとtensorflow.dllもしくはその依存関係が見つかっていない。
dllがちゃんとあるかどうか確認しようとしたら、プロジェクト内にnuget関連のdllが一つもなし。
調べたらユーザーフォルダにマイドキュメント等と並んで.nugetフォルダが存在しその中にありました。
tensorflow010.png

プロジェクトをいじったり別のパッケージを入れようとしたり穢れている気がしたのでnugetのキャッシュのクリアを試しました。
改めてダウンロードしたプロジェクトを解凍するところから始めましたが、結局同じエラー。
何か手順がもれているのか、環境(Win7 64bit)のせいなのか。
まあ時間が解決してくれると思うので待ちます。
OK キャンセル 確認 その他