2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【.NET8】Blazor向けの非常にプレーンなUIコンポーネントライブラリ作成支援ライブラリ

Last updated at Posted at 2025-03-22

概要

この記事にたどり着いたということはきっともうBlazorについてある程度知っている方だと思いますので、Blazorに関する細かい説明は省きます。
Blazorでアプリを作る際に、基本的にはUIコンポーネントライブラリを使うと思うんです。2025年3月現在で選択肢に上がってくるライブラリってどんなのがありますか?自分はRadzen.BlazorMudBlazorを使うことが多いです。
BlazorのUIコンポーネントライブラリを使っていて思うのは、「依存が激しい」ということです。自社プロダクトに採用する際、ちょっと手を出しづらいなって思っています。とくにRadzenはアップデートの頻度がかなり高く、ありがたい反面ついていくのが非常につらい。なので、最近はずっとBootstrapで基本のUIを作成し、ダイアログや通知のようなどうしてもC#のパワーが必要な部分だけRadzenを使用するみたいなことをやっています。

多分ですが自社プロダクトを開発する際には自社用のUIコンポーネント群を実装することが多いはずなんです。コンポーネント群を作る際に、Radzenなど依存がかなり大きいコンポーネントライブラリに頼らず、最低限の機能だけ提供してくれるライブラリがあればなぁという気持ちになります。

作ってみた

ないなら作れば良いということで実装を始めてみました。その名もCSStack.PrimeBlazor。私は普段、C#向けのライブラリを作る際にCSStackというシリーズとして作成していますので、頭にCSStackというのが入っています。
BlazorやRCLに関しては結構触っている方だと思っていますが、いろんな方の意見を取り入れながら成長させていきたいので、あえてオープンソースで開発することにしました。
リポジトリはこちら→ https://github.com/Uta-member/CSStack.PrimeBlazor

思想

やはりできる限り依存を減らして、気軽に導入していただけるようなライブラリにしたいなという思いが強いです。また、このパッケージは単体でBlazorに組み込むのではなく、あくまでもBlazorのUIコンポーネントライブラリの開発支援パッケージとして使っていただくことを想定しています。そのため、内部のクラスは抽象クラスになっていたり、本来はDIコンテナから取り出すようなインスタンスをパラメータで受け取っていたり、ちょっと変わったことをしています。

使い方

NuGetでCSStack.PrimeBlazorと検索していただき、プロジェクトにインストールしていただければと思います。
URLはこちら→ https://www.nuget.org/packages/CSStack.PrimeBlazor#readme-body-tab

詳しい実装方法などはプロジェクト内のReadmeフォルダ内にそれぞれのコンポーネントに分けてマークダウンファイルを配置してありますので、そちらを参考にしていただければと思います。
現状、機能としてはまだダイアログと通知しかありませんが、今後どんどん増やしていく予定です。

今後の展望

機能面に関して

機能面に関しては以下のようなものを実装する予定です。

  • Popup(特定のコンポーネントのアクションに応じて、近くに別のコンポーネントを表示する機能)
  • Tooltip(特定のコンポーネントのアクションに対して、説明文を表示する機能)
  • ContextMenu(右クリックメニュー)
  • ThemeManager(CSSを入れ替えるなどしてアプリケーション全体のテーマを制御する機能)

その他

  • ドキュメントの充実
  • 実際にBootstrapとCSStack.PrimeBlazorを使用したRCLの公開(同時に開発を進めているのですぐに出せるかと思います)
  • .NET8より前のフレームワークにも対応(.NET5まで対応できるようにしようと考えています)
  • アニメーションを簡単に扱えるパッケージを作りたい...(Blazorってアニメーション制御難しくないですか?)

最後に

Blazorをもっと盛り上げていつかはnode.js勢を追い抜きたいなっていう思いなので、まずはその基礎となるライブラリを充実させるために、できるだけスピード感を持って開発していこうと思っていますので、ぜひまずはたくさん使っていただけると幸いです。
また、普段から私はBlazorやMagicOnionなどC#に関する記事を投稿していますので、ぜひフォローいただけると励みになります。
ポエムみたいになっちゃいましたが、以上、RCL開発支援ツールの紹介でした。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?