Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dojo 20230523 .Net on Mainframe

Dojo 20230523 .Net on Mainframe

Tried to run .Net on LinuxONE.

YasuIchikawa

May 23, 2023
Tweet

More Decks by YasuIchikawa

Other Decks in Education

Transcript

  1. メインフレームで.Netを動かしてみた ⽬次 メインフレームとは LinuxONEとは .NETとは (1)メインフレーム環境の準備 (2).NETのインストール (3)Hello World!アプリを作成する (4)Hello

    World!アプリを実⾏する (5) メインフレーム対応のパッケージを⼊⼿する (6) メインフレーム対応の.NETアプリを作成する (7) メインフレーム対応の.NETアプリを実⾏する 各環境での実⾏結果 Q&A Z .NET
  2. ⾃⼰紹介 ⽒名 市川泰久 IT業界歴 25年⽬ 職歴 IBM カスタマーサクセスマネージャー 伊藤忠ケーブルシステム テクニカルサポート

    Microsoft テクニカルアカウントマネージャー ⽇⽴ソフトウェアエンジニアリング テクニカルサポート等 経験のある製品 IBM製品、Microsoft製品、映像関連機器、ストレージ等 趣味 ドライブ(屋根無し)と将棋観戦
  3. IBM LinuxONEは、ミッション・クリティカルなワークロードのニーズを満たすために設計された、独⾃ のアーキテクチャーを持つ、エンタープライズ・グレードのLinuxサーバーです。 IBMのLinuxONE向けに最適化されたLinuxディストリビューション(例︓Red Hat Enterprise Linux for IBM Z、SUSE

    Linux Enterprise Server for IBM Z)が使⽤されます。これらのディストリビュー ションは、LinuxONEのハードウェアと特定の機能や最適化を組み合わせて、最⾼のパフォーマンスと互 換性を提供します。 https://www.ibm.com/jp-ja/linuxone LinuxONEとは IBM Interactive Product Tour Catalog https://www.ibm.com/demos/it-infrastructure/index.html
  4. メインフレームにおける.Netのサポート 2021年にMicrosoftから発表された.NET 6により、RHEL 8 以降では、 AMD および Intel (x64_64)、ARM (aarch64)、IBM

    Z および LinuxONE (s390x) アーキテクチャで .NET 6 を利⽤できるようになりました。⼅し 年 .NET Framework 2002 1.0 2005 2.0 2006 3.0 2010 4.0 2022 4.8.1 年 .NET 2016 .NET Core 1.0 Linux, Macに対応 2017 .NET Core 2.0 2019 .NET Core 3.0 2020 .NET 5 2021 .NET 6 メインフレームに対応 2022 .NET 7 IBM POWERに対応 2023/11 .NET 8予定 年 Mono 2001 オープンソース プロジェクト発⾜ 2004 1.0 2009 2.4メインフレームに対応? 2016 .NET Foundation に参加 2018 5.12 IBM POWERに対応
  5. (1-A) IBM LinuxONE Community Cloud(120⽇評価版) Get started with IBM LinuxONE

    https://developer.ibm.com/articles/get-started-with-ibm-linuxone/ (1-B) (有料) https://www.ibm.com/jp-ja/cloud [IBM Cloud LinuxONE Virtual Servers for VPC] LinuxONEベースのパブリック クラウド環境が利⽤可能になりました https://community.ibm.com/community/user/ibmz-and- linuxone/blogs/daiki-shimizu1/2021/08/13/ibm-cloud-linuxone-vpc- announcement (1)メインフレーム環境の準備
  6. (1-A)IBM LinuxONE Community Cloud (120⽇評価版)の実⾏⼿順① Get started with IBM LinuxONE

    https://developer.ibm.com/articles/get-started-with-ibm-linuxone/ (1-A-1)画⾯下部の [Try Virtual Machines on the LinuxONE Community Cloud]画像をクリック (1-A-2)メール情報等を⼊⼒し Request your trialをクリック
  7. (1-A)IBM LinuxONE Community Cloud (120⽇評価版)の実⾏⼿順⑤ (1-A-9)SSH Keyを新規に”Create”する場合、任意の名前を⼊⼒し、 ”Create a new

    key pair”を実⾏すると、 公開鍵のダウンロードプロンプトが出ますので保存します。
  8. (2).NETのインストール (2-1)LinuxONE仮想マシンにSSHで接続 ssh -i キーファイル名 ユーザー名@IPアドレス (2-2)root権限に変更 sudo su -

    (2-3)dotnetをインストールする sudo yum install dotnet-sdk-7.0 (2-4)情報確認コマンド dotnet --info sudo yum install dotnet-runtime-7.0 または
  9. (6)メインフレーム対応の.NETアプリを作成する① (6-1)Program.csのHello World!出⼒部分の後に下記コードを追加する。 string outtext = "----------------"; outtext += "¥nPlatform:

    " + HabitatInfo.Platform.ToString(); outtext += "¥nProcessArchitecture: " + HabitatInfo.ProcessArchitecture.ToString(); outtext += "¥nOSArchitecture: " + HabitatInfo.OSArchitecture.ToString(); outtext += "¥nClrImplementation: " + HabitatInfo.ClrImplementation.ToString(); outtext += "¥nLinuxLibC: " + HabitatInfo.LinuxLibC.ToString(); outtext += "¥nWindowsElevationType: " + HabitatInfo.WindowsElevationType.ToString(); outtext += "¥nWindowsInstallationType: " + HabitatInfo.WindowsInstallationType.ToString(); outtext += "¥nWindowsIsElevated: " + HabitatInfo.WindowsIsElevated.ToString(); outtext += "¥nWindowsIsUserAdministrator: " + HabitatInfo.WindowsIsUserAdministrator.ToString(); Console.WriteLine(outtext); ⾃動で追加される
  10. 各環境での実⾏結果 Windows 10 Mac Linux LinuxONE Linux on POWER Platform

    Windows MacOsX Linux Linux Linux ProcessArchitecture X64 Arm64 X64 S390x Ppc64le OSArchitecture X64 Arm64 X64 S390x Ppc64le ClrImplementation NetCore NetCore NetCore NetCore NetCore LinuxLibC Glibc Glibc Glibc WindowsElevationType Limited WindowsInstallationType Client WindowsIsElevated False WindowsIsUserAdministra tor False