TL; DR:現在、Linux上でVS2015ソリューションを実行するためのオプションは何ですか?2015年のLinuxでの.NETアプリケーションの実行
私はWindowsで正常に動作し、Linuxに移植するための要求を受け取った.NETアプリケーションを持っています。私は2015年の今日の意味を理解しようと非常に努力してきましたが、私はMonoを指す古い投稿とvNextについて話している新しい投稿(とMonoも言及しています)と本当に混同しています。また、.NETで大丈夫な背景がありますが、一般的にはLinuxについてよく分かりません。
最近のチュートリアルに続き、LinuxでHello Worldコンソールアプリケーションをコンパイルして実行することができました。そのためにはMonoなどのわからないものをいくつかインストールしてから、いくつかの "k"コマンド(kpm restore、kpm build、k run)を実行する必要がありました。しかし、今私は実際のケースのシナリオに移行する方法を知らない。
私はプロジェクトをたくさん持っているVS2015のソリューションを持っているだけで4ここで言及する価値がある: - CommonStuff - ServiceCore - ServiceWindows/ServiceConsole
すべてのコードがServiceCoreプロジェクト(クラスライブラリ)でありますCommonStuff(別のクラスライブラリ)への参照を持っています。 ServiceWindowsはServiceCoreのMain関数を呼び出すWindowsサービスプロジェクトであり、ServiceConsoleはコンソールアプリケーション(Visual StudioからWindowsサービスプロジェクトをデバッグできないためデバッグ上の理由から)と同じことをします。
CommonStuffとServiceCoreには、多くの.NETライブラリとサードパーティのDLLが含まれています。 Windows特有のコードはありませんが、ピンボケやファンキーなものはありません。
ServiceConsoleをLinux上で実行したいアプリケーションにすると考えたら、それを実現するために何をする必要がありますか? Hello Worldをコンパイルすることは一つのことでしたが、現在、すべてのthoのリファレンスで...私はどこから始めるべきかわかりません。また、私はコードをLinux(独自のコード)でコンパイルすることさえできないので、Windowsでコンパイルするコードと、コンパイルされたdll/exeファイルをLinuxで直接実行する必要があります。私はMonoがコンパイルされたアプリケーションを実行できると言ったいくつかの記事を見てきましたが、私が見たMono turorialはそれぞれコンパイルを開始しています。また、私はこのvNextが何であるか分かりません。私はLinuxでコードを実行する能力についての記事を読んでいます。もしそれが.net 6のターゲットになっていれば...しかし、私はそれがどういう意味か、何を意味するのか分かりません。
オプションが今日のものであること、そしてプロフェッショナルなアプリケーションには現実的なものか、それともまだHello Worldsにしか役に立たないのか、誰かが詳細を説明するのに時間がかかると大変感謝します。
おかげ
EDIT:[OK]をので、私がVSに私のコードをコンパイルし、何とかモノを使用してLinux上でそれを実行することができそうです - どのように?
_ "Windowsサービス[...]はありませんWindows固有の" _は計算されません。 「Monoを使用して.NET WindowsサービスアプリケーションをLinuxに移行する方法」を参照してください(http://stackoverflow.com/questions/637948/how-to-migrate-a-net-windows-service-application-to-linux-モノを使用して)。 vNextまたはASP.NET 5は、Webアプリケーションの次のものです。したがって、状況には関係ありません。私はそれ以上にあなたを助けることはできません。私は、 "Hello、World!"を超えてMonoで.NETを実行しようとはしませんでした。同じように。 – CodeCaster
OS-X上の.Net/Monoサービス指向のアプリケーションを開発し、結果として得られるCILをWindowsとLinuxプラットフォームにいつでも展開できます。この質問は非常に一般的なので、直接答えることはできません。 Monoはxplatアプリケーションを実行するための実行可能なCLRプラットフォームですか?そうです。「Hello World」を超えて、はい、プロフェッショナルアプリですか?実際の回答はアプリケーション、コード、ユーザーエクスペリエンス、プラットフォーム要件などに基づいています...あなたは管理されていないInterOpを使用していないと述べましたが、Windows固有のコード、もしあれば、あなたのサービスなどを使用しています... – SushiHangover
それはそれがWindowsサービスであることはそれほど重要ではないと思います。私はWindowsサービスとして動作するコードですが、私が言ったように、コンソールアプリケーションとして実行することができます。具体的には、アプリケーションの目的は、アイドリング(SignalR経由で受信したWebSocketや長いポーリング)を待ってから、サードパーティのDLLによって管理されるいくつかのデータベース(たとえばmysql、)に接続して、私たちのwebservice。 Windows特有の唯一のものはWindowsのログに書いていますが、私はそれを簡単にLinux用のファイルに書き換えることができます。 – Nicolas