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で指定された別のアドレス:



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



All Articles