C#や開発環境の勉強として。
成果物
着想
- C#を勉強したい
書きたいことを書けるようになりたくて。
所感
C#開発の手順を理解できた。実際に動くコードを書けたので自信がついた。それなりに満足。
C#は書いてて気持ちいい。JavaScriptやPythonより好き。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch(9.0) 2018-06-27
- Mono 5.16.0
- MonoDevelop 7.6 build 711
- Eto.Forms 2.4.1 拡張機能, NuGetパッケージ
- .NET Core 2.2, MonoDevelop参照方法
前回まで
dotnet
コマンドは.NETプロジェクトを作成するコマンド。.NET Coreをインストールすることで使用できる。
- C#の実行環境について調べた(.NET Framework, .NET Core, .NET Standard, MONO)
- Raspbian stretch に .NET Core 2.2.101 をインストールした
- Raspbian stretch MonoDevelop で .NET Core 2.2.101 を参照する(.NET Standard 2.0)
- Raspbian stretch dotnet コマンドで .NET Core コンソールアプリ プロジェクトを作成&ビルドし実行できた
- Raspbian stretch dotnet コマンドで .NET Core コンソールアプリ+EFCore+SQLite3 プロジェクトを作成できた! やっとできた!
- Raspbian stretch dotnet コマンドについて調査する
- .NET開発環境とプロジェクトの対応パターンについて調べた
- .NET開発環境とプロジェクトの対応パターンについて調べた
- dotnetコマンドでClassLib+NUnit+Consoleプロジェクトを含め参照設定したソリューションを作成してみた
- .NETファミリとプロジェクトとIDE、どれを使えばいいの?
- dotnet new コマンドのサードパーティ製カスタムテンプレートを調べてみた(dotnet new -i "Eto.Forms.Templates::*")
- Raspberry PiにVisual Studio Codeをインストールしてみた
- LinuxにおけるC#開発環境
- LinuxにおけるMonoDevelopでのプロジェクト作成ベストプラクティスについて考えてみた
- Raspbian stretch MonoDevelop で NUnit プロジェクトがメモリ不足により実行できない
- C#プロジェクトの名前について考えてみた
C#用.NET開発環境には以下のソフトウェアがある。
ソフトウェア | 説明 |
---|---|
.NET Framework | Microsoft製のWindowsでしか使えない閉鎖環境 |
MONO) | LinuxやiOSでも使える公開環境 |
.NET Core | オープンソースな最新.NET環境 |
.NET Standard | 仕様+API実装。全.NET環境に共通する基本API群 |
SDKが対応する.NET環境は以下。
SDK | .NET環境 |
---|---|
dotnet | .NET Standard, .NET Core |
MONO | .NET Standard, .NET Framework |
プロジェクトは目的別におおよそ以下の三種類ある。
プロジェクト | 目的 |
---|---|
ClassLib | ライブラリ。他のプロジェクトから参照するAPI群。 |
UnitTest | 単体テスト。アプリの一種だがコード品質管理が目的。 |
App | アプリケーション。CUI, GUI, Webなどの各種環境で実行する。 |
SDKごとの開発可能なバイナリは以下。
SDK | 開発するバイナリ | 対応する.NET環境 |
---|---|---|
dotnet | ClassLib | .NET Standard, .NET Core |
dotnet | NUnit | .NET Core, (Winのみ.NET Frameworkも可) |
dotnet | Console | .NET Core |
dotnet | Eto.Forms | Winのみ可(Eto.Formsが.NET Framework依存のため) |
MONO | ClassLib | .NET Standard, .NET Core(実行エラー), .NET Framework |
MONO | NUnit | .NET Core(実行エラー), .NET Framework(メモリ不足で実行エラー) |
MONO | Console | .NET Core(実行エラー), .NET Framework |
MONO | Eto.Forms | .NET Framework |
開発するバイナリごとにおけるベストな環境は以下。
プロジェクト | 環境 | 説明 |
---|---|---|
クラスライブラリ | .NET Standard |
.NET Standard , .NET Core , .NET Framework から参照できる |
テスト | .NET Core |
dotnetがあればWindows以外でも可 |
ConsoleApp | .NET Core |
dotnetがあればWindows以外でも可 |
ConsoleApp | .NET Framework |
MONOがあればWindows以外でも可 |
Eto.Forms | .NET Framework |
MONOがあればWindows以外でも可 |
開発環境とソリューションは以下のように分けること。
ソリューション | 開発環境 | .NET実行環境 | プロジェクト |
---|---|---|---|
単体テスト用 | dotnet | .NET Core | ClassLib, NUnit |
Console Application 用 | dotnet | .NET Core | .NET Core|ClassLib, ConsoleApp |
Console Application 用 | MonoDevelop | .NET Framework | .NET Core|ClassLib, ConsoleApp |
Eto.Forms Application 用 | MonoDevelop | .NET Framework | ClassLib, EtoApp |