インフラジスティックス・ジャパン株式会社Blog

インフラジスティックス・ジャパン株式会社のチームメンバーが技術トレンド、製品Tips、サポート情報からライセンス、日々の業務から感じることなど、さまざまなトピックについてお伝えするBlogです。

ASP.NET Core Blazor を採用すべきアプリケーションは? Blazor を採用すべきポイントまとめ

f:id:furugen098:20200918132253p:plain

こんにちは!

テクニカルコンサルティングチームの古堅です。

ASP.NET Core Blazor についての記事となります。

本記事では、ASP.NET Core Blazor (WebAssembly) を、フロントエンドフレームワークとして採用する場合のポイントについてご紹介します!

本記事の対象者

  • Web アプリケーション / SPA (Single Page Application) の作成を検討している
  • 新規プロジェクトでフロントエンドフレームワークの採用を検討している
  • ASP.NET Core Blazor の概要を知りたい

ASP.NET Core Blazor (以下 Blazor) とは

2020年にリリースされた ASP.Net Core Blacor (WebAssembly)

Microsoft テクノロジーであり、SPA (Single Page Application) が作成できるフレームワークです。

大きな特徴としては、 ビジネスロジックが C# で記述できることです。

docs.microsoft.com

Blazor は何を解決するのか?

大規模開発 ( エンタープライズ) における様々な問題を解決できるフロントエンドフレームワーク です。

大規模アプリケーション開発は、大人数での開発が前提となりますが、

現在の SPA の主流言語である JavaScript だと良くも悪くも自由度が高いプログラムが書けるため、

保守性が悪い (=スパゲッティコード) になりがちで後半のテストフェーズになるにつれ、コストが膨れ上がる元になる可能性がありました。

Blazor は、C# の言語仕様により、大規模開発における制約 (ルール) を設けることによる保守性の向上。

また、既存資産の .NET ライブラリを再利用することによりコストの削減なども見込めます。

詳細は後述の "Blazor を採用すべきポイント" に記載していますのでそちらを参照ください。

3大フロントエンドフレームワーク (Angular, React, Vue.js) と Blazor の違い

フロントエンドフレームワークは Angular, Vue.js, React が非常に有名ですね。

それらと比較して Blazor の大きな特徴は、前述した通りビジネスロジックを C# で記載できるという点になります。

Angular, Vue.js, React の場合

Angular, Vue.js, React は、ビューは (HTML + CSS) で作成され、ビジネスロジックは JavaScript (TypeScript) で記述します。

f:id:furugen098:20200912151556p:plain

Blazor の場合

Blazor は、ビューは同じく (HTML + CSS) ですが、 ビジネスロジックを C# でプログラミングできます。

f:id:furugen098:20200912151623p:plain

Blazor を採用すべきポイント

プロジェクト (または会社) に .NET の設計経験がある

基盤設計はプロジェクトの成功の重要な鍵です。

新しいプロジェクトをテクノジーを採用する場合は、新技術に対する調査コスト、想定外の事態が起こることもありますが、

Blazor は .NET での設計経験があれば、過去の設計経験が参考になる部分が非常に大きい為、不安要素を排除することが出来ます。

新規プロジェクトの開発コストを抑えるために、既存資産 (.NET ライブラリ) を活用したい

既存資産の .NET ライブラリを利用可能なフレームワークでビルドすることでご利用できます。

ビジネスロジックが格納されている既存資産を、ぜひ再利用しましょう。

デスクトップアプリ (Windows Forms / WPF) を Web アプリケーション化したい

.NET 系のデスクトップアプリを Web アプリケーションに移行したい場合も、 Blazor はおすすめです。

使い慣れた Visual Studio が引き続き利用できますし、JavaScript や TypeScript を新たに学習するコストも発生しません。

特に WPF のような、MVVM アーキテクチャの採用経験があれば、Blazor はデータバインディング機能も兼ね備えていますので、同一の設計思想のもとアプリケーションを構築できるでしょう。

大規模の開発案件である

大規模の開発案件であれば特に Blazor の採用をおすすめします。

Blazor の基盤である .NET テクノロジーは、既に多くの大規模開発 (エンタープライズ) 向けシステムで採用実績があります。

人材を集める際も C# エンジニアは、同時にエンタープライズ向けの経験者であることも多いため、プロジェクトを完遂するための人材として、大きな力になるでしょう。

特に下記の設計を経験されていれば、 メリットをより実感して頂けるかもしれません。

  • オブジェクト指向
  • DI による品質、保守性の高いソースコード
  • データバインディングによる ビュー層とビジネスロジックを切り離す MVxx (MVC/MVVM等) 設計モデル

保守性の高いアプリケーションを構築したい、品質保証のため単体テストを計画している

モダンなテクノロジーでは採用率が非常に高くなっている DI (Dependency Injection) ですが、Blazor でも利用できます。

DI を活用して、単体テストの作成 / 管理コストさげつつ高品質なアプリケーションが作成できます。

Blazor / C# の選択を自社資産として考える

少し視点を変えて考えてみます。

Blazor を選択する = Microsoft テクノロジーを採用するということです。

長期目線で考えた場合、Blazor の選択が、あなたの会社にとって大きな資産になるかもしれないというポイントをご紹介します。

今後、様々なプラットフォームに展開したい

Blazor は フロントエンドフレームワークですが、 その他にも C# であれば、開発できるプラットフォームが多数存在します。

  • デスクトップアプリとしては、 WPF や Windows Forms
  • サーバサイドは Web API
  • コンソールアプリケーション、Windows / mac OS / Linux で動作
  • モバイルプラットフォーム (Android/iOS)
  • クラウドソリューション (AWS Lambda / Azure Functions)
  • 音声プラットフォーム (Alexa)
  • 機械学習
  • マイクロサービス
  • Office ドキュメントの操作

例えば、開発したアプリケーションをリリース後に、次の戦略として他のプラットフォームへ計画している場合、

C# は上記のように様々なプラットフォームに対応しているので、プラットフォームの展開戦略をより円滑に進める為に、会社にとって大きな資産となるでしょう。

Microsoft が展開する巨大マーケット (Azure) を活かしたい

Microsoft は 巨大なマーケットを抱えています。

例えばクラウドでは Azure が非常に有名で、クラウド市場でも大きな占有率を誇っています。

Blazor は Microsoft の .NET テクノロジーであり、Azure との 親和性も非常に高く、 クラウドの展開や DepOps を前提とした運用が出来ます。

また、現代の開発事情においては、インフラコストを抑えるためにクラウドを活用する場面が当たり前になってきました。

Blazor を Azure で運用し、クラウドインフラの知見を蓄積する事もまた会社にとって資産になると思います。

Blazor を採用する際の注意点

最新テクノロジーゆえにまだ情報量が少ない

最新テクノロジーであるため、まだまだ情報量が少ないという事がデメリットとして挙げられるかと思いますが、Blazor は Microsoft の注目のテクノロジーとして最新の技術記事も活発的に投稿されています。

ただし、今後の活発なバージョンアップの対応や、例えば、最新テクノロジーゆえに1年前の情報が最新バージョンでは参考にならず正しい情報を集めるのが手間となる懸念もあります。

そのような不安やコストを削減し、取り組むべき業務要件に注力する為にも Ignite UI for Blazor の採用をおすすめします。

  • 製品コンポーネントの質問をいつでも何度でも質問できる
  • プライオリティーライセンスをお持ちであれば、開発プラットフォーム (Blazor) の質問もできる
  • Blazor のバージョン差異を可能な限りコンポーネント側が吸収することで、開発に注力できる

など、開発時における疑問や不安に思われる点などをご支援させて頂いています。 詳細はこちらをご参照ください。

jp.infragistics.com

Ignite UI for Blazor

Ignite UI for Blazor は、Blazor に対応する高機能グリッドや高速チャート、マップ、ゲージ、Excelライブラリーなど、業務アプリケーション開発に必要なコントロールを提供し、Blazorアプリケーション開発の効率化を支援します。

jp.infragistics.com

UI コントロールが非常に豊富

直近のリリース予定も含め、下記の UI コントロールをご用意しています!

  • データグリッド
  • データチャート
  • カテゴリチャート
  • フィナンシャルチャート(財務チャート)
  • 円グラフ
  • ドーナツグラフ
  • ブレットグラフ
  • リニアゲージ
  • ラジアルゲージ
  • 地図
  • ツリーマップ
  • マルチカラムコンボボックス(プレビュー)
  • ドックマネージャー(今後リリース予定)
  • スプレッドシート (今後リリース予定)

各コンポーネントの詳細や、今後のロードマップについては、下記記事をご参照ください!

blogs.jp.infragistics.com

blogs.jp.infragistics.com

日本の業務システムでも使いやすく、グローバル展開もできる世界中で使われる UI コントロール

弊社の UI コントロールは、日本のお客様のご要望に日々お応え続け、日本の業務システムでも使いやすいよう作られています。

特にグローバル展開も視野にいれているのであれば、英語、日本語の言語リソースを用意していますので多言語対応のアプリケーションを作ることが出来ます。

充実したサポートを提供しています

弊社の UI コントロールのご質問は弊社 Webサイトよりお問い合わせできます。

使い方が分からない。サンプルが欲しい。といったご質問、ご要望などがございましたらお気軽にお問合せください!

技術サポートへのお問い合わせについて | サポート | インフラジスティックス ・ジャパン株式会社

開発全般に関するご相談はお任せください!

インフラジスティックス・ジャパンでは、各プラットフォームの特別技術トレーニングの提供や、開発全般のご支援を行っています。

「古い技術やサポート終了のプラットフォームから脱却する必要があるが、その移行先のプラットフォームやフレームワークの検討が進まない、知見がない」

「新しい開発テクノロジーを採用したいが、自社内にエキスパートがいない。日本語リソースも少ないし、開発を進められるか不安」

「自社のメンバーで開発を進めたいが、これまで開発フェーズを外部ベンダーに頼ってきたため、ツールや技術に対する理解が乏しい」

「UIを刷新したい。UIデザインやUI/UXに関する検討の進め方が分からない。外部のデザイン会社に頼むと、開発が難しくなるのではないか、危惧している」

といったご相談を承っています。

お問い合わせはこちらから

お問い合わせフォームをご用意しております。ぜひお気軽にご連絡ください。

jp.infragistics.com