LinuxでのC#の開発環境について教えてください
質問の幅が広すぎるというご指摘を受けました。
また、その後の自身の調査により、少し整理ができましたため質問文を簡潔に書き直します。
LinuxでC#で.NET Frameworkを使ってコンソールアプリケーションを作りたいと思っています。
インストーラも作る予定です。
調べた結果、現在では以下の二択がありました。
monoを使う。
.NET Coreを使う。
どちらを選択するべきか悩んでいます。
それぞれのメリットデメリットを教えていただけると助かります。
.NET Coreを使う場合はWidowsで開発してビルドはLinuxで行うという便利な形が使えるため、.NET Coreが魅力的に感じています。
やりたいことは以下です。
●XML設定ファイルの読み書き(System.configurationの処理)
●通信関係の処理 ソケットを開いたり、ウェブサーバーを使ったり
とくにHTTPパケットを効率よく処理できるといい。
●PKIの処理
●テキスト処理、ファイル処理
以上、宜しくお願いします。
念のため、書き直す前の質問文を下に残しておきます。
ここから旧質問の内容
LinuxでC#で.NET Frameworkを使ってコンソールアプリケーションを作りたいと思っています。
インストーラも作る予定です。
色々調べたのですが、今現在では、
Visual Studio Code
Mono(C#のランタイムとコンパイルを可能にする)
この二つを入れて開発を行うのが良さそうです。
これ以外におすすめの方法はありますか?
また、.NET Frameworkですが、Linuxではどこまでの機能が使えるのでしょうか?
WindowsのAPIを呼び出していた機能は当然使えませんよね?
いまいちLinuxでの.NET Frameworkが本当に実用的にプロダクト開発に使えるものなのかどうかが理解できていないです。
●追記
すいません、もう一つお聞きしたいのですが、
開発環境はWindows機のVisual Studioも使えます。
この場合に、Windowsで開発してビルドだけLinuxでやるということは可能でしょうか?
monoを入れればできるという回答になるかもしれませんが、
その際に注意する点、VisualStudioで設定するべきことはありますでしょうか?
たとえば、Windows固有の関数は呼ばないモードで開発を行うなど。
普通に開発したら、Linux環境では「この関数はmonoにはない」などどエラーが出そうな気がしています。
■コメントをうけて
Linuxで.NETを使いたい理由。
・WindowsとLinuxのクロスプラットフォームでアプリを作りたい。
・HTTPサーバーのようなものを作るため、ライトウェイト言語ではなく選択肢はJAVAかC#がいい。
・JAVAよりも.NETの有識者が多く、かつJAVAは脆弱性対応が頻繁にあるため.NETにしたい。
などがあります。
ですが、現在の状況以下のデメリットがあればJAVAを選択するつもりです。
・手順が複雑かつ、OSSなどに大きく依存して安定しない。
・動きが不安定だったり、決定的に使えるメソッドが足りない。
・今後状況や方向性が大きく変わりそうで、今企業のプロダクトレベルで採用するにはリスクがある。