.NET7 on Power ~ Windows linkage, new options for optimizing system infrastructure|Feature .NET 7 x IBM i ❷ アイマガジン

​In November 2022, support for .NET 7 Power was announced, and expectations are rising for new collaboration between Windows applications and IBM i to “open up a new dimension.” In the special feature, we looked back on the history of IBM i and Windows linkage technology, organized the introduction, setup, linkage methods, and benefits of .NET 7, and explored the significance and impact of the contents of this announcement.
text = Yasuhiro Nakajima IBM Japan
In Part 1, I hope you understood that IBM i and Windows applications have a very close relationship, and that they have continued to work together in a way that makes use of each other’s strengths and characteristics. In Part 2, we will focus on .NET, which has a particularly large number of users among Windows applications.
On November 8, 2022, the latest version of .NET, .NET 7, was announced by Microsoft, and support for Linux on Power was also announced. This announcement means that the linkage between IBM i and existing Windows applications (.NET applications) can be further strengthened, and for IBM i users, new options for system infrastructure optimization have increased. To understand why this is the case, let’s first look back at .NET itself.
What is .NET
.NET refers to an “open source” development platform developed by Microsoft. In fact, it is described in the same way on the Web page of Microsoft Corporation.
This .NET supports multiple programming languages ​​such as C#, F#, and Visual Basic, and is equipped with common language runtime (CLR/Core CLR) functions to realize an extremely extensible development platform. ing. In addition to the Windows environment, it supports various operating system (OS) environments such as macOS and Linux, and the ability to develop applications that can be used cross-platform is one of the reasons why developers prefer .NET. is. In a 2022 survey of 70,000 developers, .NET was selected as the most popular framework/library (Figure 1 ) .
Chart 1 Top 5 in “Other frameworks and libraries” in Stack Overflow’s “2022 Developer Survey”
このような.NETだが、私がこれまでに記載している“.NET”という表現は、“.NET Framework”と同義ではないことに注意が必要である。もちろん.NET Frameworkと.NETは同じ特徴を有する部分もあるが、あくまでも.NET Frameworkは2002年にMicrosoft社によって最初のリリースが発表された、WindowsもしくはWindows Server上で利用可能な最初の.NETである。そのため、.NET Frameworkで開発したアプリケーションはWindows上でしか動作させることができない。また2023年4月現在で.NET Frameworkの最新バージョンは4.8(2019年4月8日リリース)であり、この4.8がメジャー・バージョンとしては最終リリースと発表されている。一方で.NETの場合は年に1度、最新のバージョンがリリースされており、2023年末には.NET8の発表が予定されるなど、継続的なアップデートが行われている(図表2)。
図表2 .NET Framework/.NETのリリース日とサポート終了日
.NET for Linux on Power の発表
2022年11月8日にMicrosoft社によって.NET7のリリースが発表された。この.NET7はLinux on Powerをサポートする最初の.NETのバージョンであり、.NETオープンソース・コミュニティ、Microsoft社、Red Hat社、そしてIBMの4者の協業によって実現した。そして今回の発表により、マイクロサービスのアプリケーション開発において人気トップ5のすべての開発言語(.NET、 Golang、 Python、 Node.js、 Java)がIBM Power上で利用可能となった(図表3)
図表3 人気トップ5の開発言語がIBM Power上で利用可能に
Linux on Powerに対応した.NET 7には、以下のコンポーネンが含まれている。
・.NET core Runtime VM、JIT(Monoベース)・ベースクラス・ライブラリ・SDK(C#、F#、VBコンパイラなど)・ASP.NET Core
これまでx86環境からLinux on Powerへのアプリケーション移行を検討されたことがある方であれば、既存のx86上で稼働している.NETアプリケーションをそのままIBM Power上で動かせるのかと不安に思われるかもしれないが、一般的なWebアプリケーションで利用するにあたり、必要なコンポーネントは一通り揃っているのでご安心いただきたい。実際にWeb上では、.NETアプリケーションのサンプルコードが数多く存在しているが、それらのコードはx86環境を想定して作成されているが、Linux on Power上でも問題なく稼働した。実際に稼働させた例についてはPart3で詳しくご紹介する。
しかしながら、x86環境で利用可能な.NETアプリケーションのすべてがそのままIBM Power上で稼働できるわけではない。たとえば2023年4月現在において、一部のエッジ用コンポーネント(AndroidやiOS端末用のコンポーネント)については未対応である。しかし、それらのコンポーネントをIBM Power上で稼働させたいニーズは少ないため、大きな問題ではないと考える。
また.NETアプリケーションの開発フェーズで使用されるデバッガについても現状では未対応である。このデバッガの対応については、コミュニティの中でも対応が期待されている部分であり、今後検討が進められる予定である。そのほかにも、各RDBMSへの接続に用いられるネイティブ・ドライバーなどは、一部アーキテクチャ依存の部分があり、提供されていないものがある。しかしそれらについても、ODBCドライバーの対応でRDBMSへの接続を実現できるなど、代替となる実装方法が準備されている(図表4)。
図表4 .NET on Powerのブログページ
以上のように、リリースされたばかりの.NET 7 for Linux on Power(以下、.NET 7 on Power)ゆえに現状では未対応であり、今後提供されていく機能がいくつか存在する。しかしそれ以上に、IBM iやAIX環境でRDBMSを実装されている方にとっては、IBM Power上で.NETアプリケーションを実装できるメリットのほうが大きいと考えている。詳しいメリットの内容については、Part5で詳しく説明する。
.NET 7 on Powerは、Red Hat社が提供する商用LinuxディストリビューションであるRed Hat Enterprise Linux(以下、RHEL)に同梱されて提供されている。ご存じのとおり、Linuxはオープンソースのオペレーティング・システムであり、CentOSやFedora、Ubuntu、AlmaLinux、Rocky Linuxなどさまざまな種類が存在する。そのようなLinuxに対して、有償のサポートを提供し、本番システムでも安心して利用できる環境・サポート体制を整えているのが商用Linuxディストリビューションである。.NET 7 on Powerのパッケージを提供するRHELは、それらの商用Linuxディストリビューションの中でも高いシェアを誇り、これまでLinuxに馴染みがなく、またサポートなどに不安を抱いている方も安心して利用することができる。
.NET 7 on Powerが提供されるRHELのバージョン
 Red Hat Enterprise Linux 8.7 Red Hat Enterprise Linux 9.1
また.NET 7 on Powerの利用については、IBM Power版RHELのサブスクリプションを購入する必要があるが、.NET 7を利用するための追加のオプション費用などは発生しない。そのため、IBM Power版RHELのサブスクリプションを既にお持ちの方は、追加の費用が発生することなく.NET 7 on Powerを利用できるので、ぜひ一度お試しいただきたい。IBM Power 版RHELのサブスクリプションをお持ちでない方は、Red Hat社より60日間の無償評価版が提供されているので、そちらを利用することで.NET 7 on Powerの評価環境を準備可能である。
また.NET 7 on PowerはRHELの標準パッケージとしての提供だけではなく、コンテナイメージとしても提供されている。既存アプリケーションのモダナイゼーション化、マイクロサービス化を検討されている方は、新規の.NET 7実行環境としてコンテナの利用を開始することも可能である。さらに、本稿では詳しく説明しないが、コンテナ環境のクラスタ管理ツールであるRed Hat OpenShift Container Platform(KubernetesをベースにRed Hat社が提供している商用コンテナ管理ソフトウェア)でも.NET 7 on Powerのコンテナイメージが利用可能である。
モダナイゼーションやマイクロサービスと聞くと、システム全体での検討が必要となり、簡単に手を出せる領域ではないと感じる方もいるかと思うが、あまり難しく考えず「簡単に準備可能な.NET実行環境」のような気持ちで最初の一歩を踏み出していただきたい。そのような面でも、.NET 7 on Powerの新たな発表は、現行システムへ最新技術を取り入れる1つのきっかけとなるのではないだろうか。
次章では、本章を読んで.NET 7 on Powerをまず一度試してみたいと感じた方のために、環境セットアップ方法や実際に利用する方法についてご紹介する。 Read More 

Verified by MonsterInsights