RHEL 9 で .NET 10.0 を使い始める
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 .NET 10.0 の概要 リンクのコピーリンクがクリップボードにコピーされました!
.NET は、自動メモリー管理と最新のプログラミング言語を備えた汎用開発プラットフォームです。.NET を使用すると、高品質のアプリケーションを効率的に構築できます。通常、.NET は、認定済みのコンテナーを介して Red Hat Enterprise Linux (RHEL) および OpenShift Container Platform で利用できます。
.NET を使用すると、以下が可能になります。
- マイクロサービスベースのアプローチに従い、一部のコンポーネントは .NET で構築し、その他のコンポーネントは Java などの言語で構築します。すべてのコンポーネントは、Red Hat Enterprise Linux および OpenShift Container Platform 上の共通のサポートされているプラットフォーム上で実行できます。
- Microsoft Windows 上で新しい .NET ワークロードを開発し、それらのアプリケーションを Red Hat Enterprise Linux または Windows Server 上にデプロイして実行します。
- 異種データセンターで .NET アプリケーションを実行することで、基盤となるインフラストラクチャーとして特に Windows Server に依存する必要がなくなります。
第2章 .NET 10.0 のインストール リンクのコピーリンクがクリップボードにコピーされました!
.NET 10.0 は、RHEL 10 の AppStream リポジトリーに含まれています。これらのリポジトリーは、RHEL 10 システムではデフォルトで有効になっています。
dotnet-sdk-10.0 パッケージは、.NET ソフトウェア開発キット (SDK) および対応する .NET ランタイムの両方をインストールします。.NET 10.0 の新しい SDK バージョンが利用可能になると、dnf を使用してインストールを更新できます。
前提条件
サブスクリプションがアタッチされた RHEL 10 システムがインストールされ、登録されている。
詳細は、インストールメディアからの RHEL の対話型インストール を参照してください。
手順
dotnet-sdk-10.0パッケージとその依存関係をインストールします。$ sudo dnf install dotnet-sdk-10.0 -y
検証
.NET が正しくインストールされていることを確認します。
$ dotnet --info出力には、インストールされている .NET SDK とランタイム環境に関する情報が表示されます。
第3章 .NET 10.0 を使用したアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
C# "Hello World" アプリケーションを作成する方法を学びます。
前提条件
- .NET 10.0 SDK がインストールされている。
手順
<my-app>という名前のディレクトリーに新しいコンソールアプリケーションを作成します。$ dotnet new console --output <my-app>プロジェクトディレクトリーからアプリケーションを実行します。
$ dotnet run --project <my-app>
検証
アプリケーションが実行され、期待どおりの出力が表示されることを確認します。
Hello World!
第4章 .NET 10.0 アプリケーションの公開 リンクのコピーリンクがクリップボードにコピーされました!
.NET 10.0 アプリケーションを公開するときに、次のいずれかのデプロイメント方法を選択できます。
- 自己完結型デプロイメント (SCD): アプリケーションには .NET ランタイムが含まれています。この方法では、Microsoft が構築したランタイムを使用します。
- フレームワーク依存デプロイメント (FDD): アプリケーションは、システム全体で共有される .NET ランタイムバージョンを使用します。
Red Hat は、Red Hat Enterprise Linux 用のアプリケーションを公開する際に FDD を使用することを推奨しています。FDD により、アプリケーションは、Red Hat が構築し、テスト済みのネイティブ依存関係を含む最新の .NET ランタイムを確実に使用するようになります。
フレームワークに依存するアプリケーションの公開方法について説明します。
前提条件
- 公開する.NET アプリケーションがある。
手順
フレームワーク依存アプリケーションを公開します。
$ dotnet publish <my-app> -f net10.0任意: アプリケーションが RHEL 専用の場合は、次のコマンドを使用してその他のプラットフォームに必要な依存関係を削除します。
$ dotnet publish <my-app> -f net10.0 -r rhel.9-<architecture> --self-contained false<architecture>は、プラットフォームに応じて次のいずれかの値に置き換えます。-
x64(64 ビット Intel/AMD の場合) -
arm64(64 ビット Arm の場合) -
s390x(64 ビット IBM Z および LinuxONE の場合) -
ppc64le(64 ビット PPC (リトルエンディアン) の場合)
-
検証
publishディレクトリーの内容をリスト表示して、アプリケーションが公開されたことを確認します。$ ls <my-app>/bin/Debug/net10.0/publish/
第5章 コンテナーでの .NET 10.0 アプリケーションの実行 リンクのコピーリンクがクリップボードにコピーされました!
ubi9/dotnet-100-aspnet イメージを使用して、Linux コンテナー内で ASP.NET Core アプリケーションを実行できます。
ASP.NET Core 以外の.NET アプリケーションの場合は、より小さい ubi9/dotnet-100-runtime イメージを使用します。
.NET SDK から直接 ASP.NET Core アプリケーションのコンテナーイメージを構築し、Podman を使用して実行する方法について説明します。
前提条件
- .NET 10.0 SDK がインストールされている。
- Podman がインストールされている。
-
ContainerBaseImage属性 (registry.access.redhat.com) で指定されたコンテナーレジストリーへのネットワークアクセスがある。
手順
mvc_runtime_exampleという名前のディレクトリーに新しい ASP.NET Core MVC プロジェクトを作成します。$ dotnet new mvc --output mvc_runtime_exampleプロジェクトを公開します。
$ dotnet publish mvc_runtime_example -f net10.0 /p:PublishProfile=DefaultContainer /p:ContainerBaseImage=registry.access.redhat.com/ubi9/dotnet-100-aspnet:latestイメージを実行します。
$ podman run --rm -p 8080:8080 mvc_runtime_example
検証
コンテナーで実行されているアプリケーションを表示します。
$ xdg-open http://127.0.0.1:8080
第6章 以前のバージョンの .NET からの移行 リンクのコピーリンクがクリップボードにコピーされました!
6.1. .NET の移行ガイド リンクのコピーリンクがクリップボードにコピーされました!
Microsoft は、.NET と ASP.NET Core の異なるバージョン間での移行に関する詳細なガイダンスを提供しています。古い .NET バージョンからアップグレードする場合は、特定のアップグレードパスについて、Microsoft の公式ドキュメントを参照してください。
- Migrate from ASP.NET Core 9.0 to 10.0
- Migrate from ASP.NET Core 8.0 to 9.0
- ASP.NET Core 7.0 から 8.0 への移行
- ASP.NET Core 6.0 から 7.0 への移行
- ASP.NET Core 5.0 から 6.0 への移行
- ASP.NET Core 3.1 から 5.0 への移行
- ASP.NET Core 3.0 から 3.1 への移行
- ASP.NET Core 2.2 から 3.0 への移行
- ASP.NET Core 2.1 から 2.2 への移行
- .NET Core 2.0 から 2.1 への移行
- ASP.NET から ASP.NET Core への移行
- project.json からの .NET Core プロジェクトの移行
- project.json から .csproj 形式への移行
.NET Core 1.x から 2.0 に移行する場合は、Migrate from ASP.NET Core 1.x to 2.0 の記事の最初のセクションに関連するガイダンスが提供されています。
6.2. .NET Framework からの移植 リンクのコピーリンクがクリップボードにコピーされました!
.NET Framework からアプリケーションを移行する場合は、Microsoft の公式ドキュメントを参照してください。
- 一般的なガイドライン:Porting to .NET Core from .NET Framework
- ライブラリーの移植: Porting to .NET Core - Libraries
- ASP.NET Core への移行: Migrating to ASP.NET Core
.NET Framework の一部のテクノロジーと API は、.NET Core または .NET では使用できません。アプリケーションまたはライブラリーがこれらの API に依存している場合は、代替手段を見つけるか、.NET Framework を使い続ける必要があります。
.NET Core および .NET は次のテクノロジーをサポートしていません。
- Windows Forms や Windows Presentation Foundation (WPF) などのデスクトップアプリケーション
- Windows Communication Foundation (WCF) サーバー (WCF クライアントがサポートされています)
- .NET リモート処理
さらに、一部の .NET API は Microsoft Windows 環境に固有であり、クロスプラットフォームではありません。これらの Windows 固有の API の例は次のとおりです。
-
Microsoft.Win32.Registry -
System.AppDomains -
System.Security.Principal.Windows
.NET ではデフォルトでサポートされていない一部の API は、Microsoft.Windows.Compatibility NuGet パッケージで使用できます。
このパッケージは注意して使用してください。Microsoft.Win32.Registry など、提供される API の多くは Windows でのみ動作します。これらの API を使用すると、アプリケーションは Red Hat Enterprise Linux と互換性がなくなります。