Javaのバックグラウンドを持つ開発者にとって、ASP.NETツール/プラットフォームを使用したソフトウェア開発の調査にも興味があります。
Java Webアプリケーション(.jspおよびサーブレット)は、多くのサーバープラットフォームで実行できます。
質問:.NET WebアプリケーションはLinuxベースのサーバーで実行できますか? WebサーバーをホストするためにWindowsサーバーを使用できないというシナリオを検討します。
使用している特定の.NETテクノロジーによって異なります。 Mono Project は、ASP.NETサイトを実行するためのApacheモジュール(mod_mono)を提供します。
ただし、Monoはすべての.NET APIをサポートしているわけではありません-特にWPF(おそらくWCFも覚えていないかもしれません)-しかし、フレームワークの他の多くの部分を適切にサポートしています。
ゼロから始めており、特にWindows以外のサーバーをターゲットにしたい場合は、Monoでプロジェクトを機能させることを目標にするのが良いでしょう。ただし、Monoでサポートされていない特定のAPIまたは言語機能が必要な場合は、Windowsサーバーを使用して展開する必要があります。これは、設計時/アーキテクチャの選択であり、前もって確認する必要があります。
ですから、これは古い質問ですが、答えが更新される可能性があると思います。
Microsoftは正式に asp.net vnext とそのオープンソースをリリースし、LinuxとMacの両方にデプロイ可能です。そのすべてはまだかなり新しいものですが、monoの最新ビルドに依存しているため、現在mono-framework
をコンパイルする必要があります。 これは設定ガイドです
この情報は多少変動する可能性があり、更新により変更される可能性があります。
Windows開発者がコードをMono/Linuxに移植するのに役立つこのガイドを検討してください。
私は経験から話すことができます。 ASP.net WebサイトがMonoでサポートされている.NETライブラリのみを使用している場合でも、Hello Worldを超えて何かを実行すると、その実行に苦労することになります。
多くのコードを書き直す必要はありませんが、mod_mono/xsp/Apacheの設定、ファイルのアクセス許可、エラー処理、および大規模なWebサイトに入るあらゆる小さな問題に対処するために、時間/日/週を費やすことになります。 (serverfaultに関する質問をするのに多くの時間を費やす準備をしてください:))
問題は、ASP.net Webサイトに多くの人がMonoを使用していないため、バグを報告する人が少ないため、マイナーなバグである多くの問題が長い間修正されていないことです。
テクノロジーは進化し、この質問はグーグルで上位にランクされているため、 mono を超える新しいasp.netコアを含める必要があります。これは asp.netの完全な書き換えですLinuxおよびWindowsでの運用およびLinux、WindowsおよびMacでの開発用 :
ASP.NET Coreアプリを開発し、Windows、Mac、Linuxのクロスプラットフォームで実行できます。 ASP.NET CoreはGitHubのオープンソースです。
Visual Studioを使用して、ASP.NET 5アプリをLinux上のDockerに公開できるようになりました。スコット・ハセルマンの以下の投稿を参照してください
http://www.hanselman.com/blog/PublishingAnASPNET5AppToDockerOnLinuxWithVisualStudio.aspx
はい、できます。 Mono Project に精通し、開始するために この記事 を読んでください。
Linux上のASP.NETの場合、 Mono を確認してください。
とは言っても、何千ものサイトがWindows Server上で問題なく実行されています。任意のOSを備えた構成の不十分なサーバーは脆弱です。 Linuxはあなたを貧しい管理者から救いません。
したがって、ASP.NETアプリを展開するための私の「ベストプラクティス」は、Windows Server 2008(おそらくWebエディション)を使用することだと思います。そして、優秀な管理者を雇います。
Mono を使用して、Apache/LinuxでASP.NETアプリケーションを実行できますが、Windowsで実行できる機能のサブセットが制限されています。 「彼ら」は、Windowsは攻撃に対してより脆弱であると言っていますが、それは真実ではありません。 IISは、Apacheほどセキュリティの問題が少ないわけではありませんが、いずれの場合もボックスの管理にかかっています。両方のOSを簡単に保護できます。最近では、攻撃ポイントはOSやWebサーバーソフトウェアではなく、アプリケーションそのものです。
dotnet は、GitHubの.NETの公式ホームです。 .NET Foundationの一部を含む多くの.NET OSSプロジェクトをMicrosoftおよびコミュニティから見つけるのに最適な出発点です。
これはLinuxをサポートするための素晴らしいスタートになるかもしれません。
Monoプロジェクトが最適なオプションです。ただし、いくつかの落とし穴(一部の領域での不完全なAPIサポートなど)があり、法的に灰色です(Richard Stallmanのような人々は、Microsoftが特許権を使用してMonoを買収する可能性があるため、Monoの使用を軽視していますが、それは別の話です)。
とにかく、Apacheはモジュールを介して.NET/Monoをサポートしますが、Debianで提供されているバージョンを最後にチェックしたとき、Perl言語のみをサポートしていました。それが変更されたかどうかは言えません。おそらく誰か他の人がそこで修正できます。
ApacheでASP.Netを実行できるようにするNovellのMonoプロジェクトがあります。