この記事はSFC-RG Advent Calendar 2017の3日目です。
動機
webもGUIもコンソールアプリケーションもアプリもおなじげんごでかけて、ふくすうのプラットフォームでうごいたらいいなとおもいました。
dotnet core とは
.NET では、クラウド、IoT、ゲームなどのさまざまな種類のアプリを、無料のクロスプラットフォーム ツールを使用して構築できます。 アプリは、Android、iOS、Linux、macOS、Windows で実行できます。 サーバーまたはデスクトップにアプリを展開し、モバイル デバイスへの展開用としてアプリ ストアに発行します。 .NET は学生やプログラミング愛好者も利用することができ、海外の活気ある開発コミュニティに参加したり、多くの .NET テクノロジに貢献したりできます。
https://docs.microsoft.com/ja-jp/dotnet/welcome
なんか良さげ。
導入方法
過去記事参照
https://qiita.com/kumasan1011/items/49748c5587a7d9d0f9f1
動かしてみる
バージョン確認
kumasan@desktop:~$ dotnet --version
2.0.2
プロジェクトの作成
kumasan@desktop:~$ dotnet new console -o test
テンプレート "Console Application" が正常に作成されました。
作成後のアクションを処理しています...
'dotnet restore' を test/test.csproj で実行しています...
Restoring packages for /home/kumasan/test/test.csproj...
Generating MSBuild file /home/kumasan/test/obj/test.csproj.nuget.g.props.
Generating MSBuild file /home/kumasan/test/obj/test.csproj.nuget.g.targets.
Restore completed in 126.28 ms for /home/kumasan/test/test.csproj.
正常に復元されました。
ビルド
kumasan@desktop:~$ cd test
kumasan@desktop:~/test$ dotnet build
.NET Core 向け Microsoft (R) Build Engine バージョン 15.4.8.50001
Copyright (C) Microsoft Corporation.All rights reserved.
test -> /home/kumasan/test/bin/Debug/netcoreapp2.0/test.dll
ビルドに成功しました。
0 個の警告
0 エラー
経過時間 00:00:01.41
実行
kumasan@desktop:~/test$ dotnet run
Hello World!
動いた。
このままだとdotnet runでしか動かないので、自分のプラットフォーム向けにビルド。
kumasan@desktop:~/test$ dotnet publish --runtime ubuntu.14.04-x64
.NET Core 向け Microsoft (R) Build Engine バージョン 15.4.8.50001
Copyright (C) Microsoft Corporation.All rights reserved.
test -> /home/kumasan/test/bin/Debug/netcoreapp2.0/ubuntu.14.04-x64/test.dll
test -> /home/kumasan/test/bin/Debug/netcoreapp2.0/ubuntu.14.04-x64/publish/
kumasan@desktop:~/test$ cd /home/kumasan/test/bin/Debug/netcoreapp2.0/ubuntu.14.04-x64/publish/
kumasan@desktop:~/test/bin/Debug/netcoreapp2.0/ubuntu.14.04-x64/publish$ ./test
Hello World!
おお動いた。
##まとめ
マルチプラットフォームで何でもできたら嬉しいよねって話でした。C#はいいぞ。