UbuntuでのASP.NET vNextアプリケーション

Ubuntu 14.04でASP.NET vNextを展開した経験についてお話したいと思います。 私自身は長い間Windows向けに開発を続けてきましたが、Unixシステムでビジネスをしているのであれば、それは私にとってもUnixシステムにとっても目に見えません。 しかし、それにも関わらず、UnixをサポートするOpenSourceへの.Netパーツの転送に関するニュースは、さらなる開発と知識の境界の拡大の機会として私を喜ばせました。

さまざまなフォーラムや課題追跡システムの短い苦痛と調査の結果、私は以前は考えられなかったことを管理しました。 ASPで作成され開発された環境で実行されるC#で記述されたコード。MSはASP.NET MVCアプリケーションです(!)

まず、OS自体をダウンロードしてインストールする必要があります。 公式サイトから画像を撮りました。

http://www.ubuntu.com/download/desktop/contribute/?version=14.04.1&architecture=amd64 


次に、この画像をVirtualBoxに展開しました。これは単なる実験であるためです。

UbuntuのASP.NET vNextでアプリケーションを実行するには、新しいASP.NET vNextスタイルで設計され、Kestrel Webサーバーを上げる機能を持つKRuntimeをデプロイおよび起動するプロジェクトの2つが必要です。

アプリケーション作成


最初のタスクは簡単に解決されます。 githubから既製の非常に単純な例を取得できます。

 https://github.com/aspnet/Home/tree/master/samples/HelloWeb. 

gitがまだインストールされていない場合は、インストールします。

 sudo apt-get install git 

次に、例を使用してリポジトリをクローンします。

 git clone https://github.com/aspnet/Home.git 


インフラ


2番目のタスクはより困難ですが、解決可能です。 このプロセスは、次の手順で構成されています。

  1. モノインストール

     wget http://download.mono-project.com/repo/xamarin.gpg sudo apt-key add xamarin.gpg echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee --append /etc/apt/sources.list.d/mono-xamarin.list sudo apt-get update sudo apt-get install mono-complete 

  2. KRuntimeをインストールする

    kvmは、証明書に従ってサイトを登ることができます。
     sudo certmgr -ssl -m https://go.microsoft.com sudo certmgr -ssl -m https://nugetgallery.blob.core.windows.net sudo certmgr -ssl -m https://nuget.org mozroots --import --sync 

    kvmインストールスクリプトをダウンロードして実行し、kvm upgradeを実行します。 これで、必要なものはすべてインストール済みです。

     curl https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.sh | sh && source ~/.kre/kvm/kvm.sh && kvm upgrade 

    KRuntimeのすべての依存関係をプルします。

     kpm restore 

  3. バウアーのインストール

    NPMがインストールされていない場合、インストールします:

     sudo apt-get install npm 

  4. Webサーバーの起動

    libuvをコンパイルし、(ハードハック)アセンブリをKRuntimeフォルダーにコピーします。これは、MSがまだLinuxサポートに取り組んでいないため、互換性のないバージョンがあるためです。

    KRuntimeは現在バージョン1.0.0-rc1を必要とし、KRuntime自体はバージョン1.0.0-beta1にあります。 これらはすべて非常に迅速に変更されるため、最後に相互にリンクされたバージョンを常に把握する必要があります。 (スクリプトはここから取得され、ここから少し修正されています )。

     wget http://dist.libuv.org/dist/v1.0.0-rc1/libuv-v1.0.0-rc1.tar.gz tar -xvf libuv-v1.0.0-rc1.tar.gz cd libuv-v1.0.0-rc1/ ./gyp_uv.py -f make -Duv_library=shared_library make -C out sudo cp out/Debug/lib.target/libuv.so /usr/lib/libuv.so.1.0.0-rc1 sudo cp out/Debug/lib.target/libuv.so ~/.kpm/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-beta1/native/darwin/universal/libuv.dylib sudo ln -s libuv.so.1.0.0-rc1 /usr/lib/libuv.so.1 

    KRuntimeでのすべての作業はアプリケーションで実行されるため、project.jsonが配置されているプロジェクトディレクトリにいる必要があります。 この場合、次のことを行います。

     cd Home/samples/HelloWeb/ 


    kestrelサーバーでアプリケーションを起動します(project.jsonファイルのすべての設定):

     k kestrel 

    ブラウザを開き、アドレスに移動します。

     http://localhost:5004 

    まあ、またはkestrelの隣のproject.jsonで指定された別のアドレス:

プロセスは非常に珍しく、多くが変更されましたが、開発自体は満足しています。 また、制限が緩和され、境界が消去されることも楽しいことです。

Source: https://habr.com/ru/post/J243773/


All Articles