Web Technologies WebApp

Rhino.Compute サーバーの構築と設定方法

この記事はRhino.Computeのセットアップからサーバー起動までの手順を詳しく説明しています。

必要な環境

  • Rhino 8Rhino.Compute
  • .NET 8 SDK
  • Visual Studio または Visual Studio Code
  • 基本的な C# と .NET の知識

Rhino.Compute をダウンロード

Rhino.Computeは、Rhinoの計算機能をWebアプリケーションで利用するためのサーバーサイドコンポーネントです。まずは、Rhino.Computeのソースコードを取得しましょう。

GitHub リポジトリにアクセス

Rhino.Computeのソースコードは、GitHubの公式リポジトリからダウンロードできます。以下のリンクからリポジトリを開きます。 Rhino.Compute GitHub リポジトリ

リポジトリのクローン

Gitを使ってリポジトリをローカルにクローンします。以下のコマンドをターミナルで実行します

git clone https://github.com/mcneel/compute.rhino3d.git

これにより、compute.rhino3d フォルダがローカルに作成され、そこにソースコードがダウンロードされます。

プロジェクトディレクトリへ移動

クローンしたフォルダに移動し、作業を開始します。

cd compute.rhino3d

Rhino.Compute を .NET 8 で設定して起動

今回は、Rhino.Compute を .NET 8 でセットアップし、ローカルサーバーを立ち上げる方法について詳しく解説します。この手順を通して、Rhino 3D の計算をウェブ経由で処理できるようになります。

.NET 8 SDK のインストール

まず、最新の .NET 8 SDK をインストールする必要があります。公式サイト(dotnet.microsoft.com) からダウンロードできます。

インストール後、以下のコマンドをターミナルで実行して、バージョンが正しくインストールされているか確認しましょう。

dotnet --version

結果として 8.x.x と表示されれば、インストールは成功しています。

rhino.compute.csprojファイルの修正

問題点

  1. RuntimeFrameworkVersion の不一致: 現在、RuntimeFrameworkVersion7.0.0 になっていますが、ターゲットフレームワークは net8.0 です。これが原因でランタイムの不一致エラーが発生する可能性があります。
  2. Microsoft.AspNetCore.AppFrameworkReferenceMicrosoft.AspNetCore.App の参照は、.NET 8.0 で使用されるべきですが、.NET 8.0 の場合、この参照は暗黙的に含まれているため、プロジェクトファイルから削除しても問題ない場合があります。

修正案

  1. RuntimeFrameworkVersion の修正.NET 8.0 のターゲットフレームワークに合わせて、RuntimeFrameworkVersion を削除または 8.0.11 などに設定することをお勧めします。
  2. Microsoft.AspNetCore.App の削除.NET 8.0 では、このフレームワーク参照が不要な場合があるため、削除することで警告が解消されることがあります。

修正後の rhino.compute.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <AssemblyName>rhino.compute</AssemblyName>
    <OutputType>Exe</OutputType>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <SelfContained>True</SelfContained>
    <PublishTrimmed>False</PublishTrimmed>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
    <ApplicationIcon>favicon.ico</ApplicationIcon>
    <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
    <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
  </PropertyGroup>
  
  <PropertyGroup Condition="'$(Configuration)'=='Debug'">
    <OutputPath>..\bin\Debug\$(AssemblyName)</OutputPath>
    <DefineConstants>TRACE;RHINO_COMPUTE</DefineConstants>
  </PropertyGroup>
  
  <PropertyGroup Condition="'$(Configuration)'=='Release'">
    <OutputPath>..\bin\Release\$(AssemblyName)</OutputPath>
    <DefineConstants>TRACE;RHINO_COMPUTE</DefineConstants>
    <PublishDir>..\dist\$(AssemblyName)</PublishDir>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Carter" Version="7.0.0" />
    <PackageReference Include="CommandLineParser" Version="2.9.1" />
    <PackageReference Include="Serilog.AspNetCore" Version="6.1.0" />
    <PackageReference Include="Serilog.Enrichers.Environment" Version="2.2.0" />
    <PackageReference Include="Serilog.Exceptions" Version="8.4.0" />
    <PackageReference Include="Serilog.Expressions" Version="3.4.1" />
    <PackageReference Include="Serilog.Settings.Configuration" Version="3.4.0" />
    <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
    <PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
    <PackageReference Include="System.Net.Http" Version="4.3.4" />
    <!-- Microsoft.AspNetCore.App の参照を削除 -->
  </ItemGroup>
</Project>

必要なパッケージをインストールします。

以下のコマンドを実行して、プロジェクトの依存関係を復元します。

dotnet restore

これにより、プロジェクトで使用する必要なパッケージが自動的にインストールされます。

プロジェクトのビルド

依存関係の復元が完了したら、次にプロジェクトをビルドします。

dotnet build

ビルドが成功すると、以下のようなメッセージが表示されます。

ビルドに成功しました。

アプリケーションの実行

ビルドが完了したら、以下のコマンドでアプリケーションを実行します。

dotnet run

実行後、次のようなログが表示されるはずです。

Rhino compute started at 12/12/2024 7:17:15 AM
Initializing reverse proxy at 12/12/2024 7:17:15 AM
Now listening on: http://localhost:6500
Application started. Press Ctrl+C to shut down.

ここで、http://localhost:6500 にアクセスすることで、ローカルでホストされている Rhino.Compute サーバーに接続できます。

ブラウザで確認

ブラウザを開き、http://localhost:6500 にアクセスして、サーバーが正常に動作していることを確認しましょう。正常に動作していれば、Rhino.Compute がウェブアプリケーションとして正しく機能していることが確認できます。

注意点

  • バージョンの整合性: .NET SDK やランタイム、Rhino などのバージョンが一致しているか確認することが重要です。
  • エラーの対応: 実行時にエラーが発生した場合、ログをチェックして、問題の原因を特定しましょう。特に、依存関係の不整合やバージョンの不一致が原因でエラーが発生することがあります。

まとめ

今回は、Rhino.Compute を .NET 8 上でセットアップし、ローカルサーバーを立ち上げる方法を紹介しました。これで、Rhino 3D の計算をウェブアプリケーションとして利用できる環境が整いました。これをベースに、さらにカスタマイズを加えて、独自の Rhino 3D 計算処理を提供するウェブアプリケーションを開発できます。

-Web Technologies, WebApp
-