
皆さん、こんにちは。砂漠の果ての狼です。
私のウェブサイト Dotnet9 (https://dotnet9.com) は新たなリファクタリングを行いました。フロントエンドは Vue 3 から ASP.NET Core Razor Pages に戻し、スタイルはシンプルを基調とし、内容重視で派手さを排除しました。ユーザーからは「昔の博客園に似ている」との声もありますが、実際には站長が購入した杨青青个人博客(https://www.yangqq.com/)の静的テンプレートを使用しています。バックエンドは MASA Framework で構築し、フレームワークのアドレスは https://www.masastack.com/framework です。バックエンドでは引き続き DDD 設計を開発指針とし、今回は CQRS を追加しました。開発の全体計画としては、バックエンドフレームワークに MASA Framework を採用するのは変えず、またフロント・バックエンド共に .NET 8 を全面的に採用しました。
そうそう、ウェブサイトのソースコードは https://github.com/dotnet9/dotnet9 で公開しています。
なぜまたリファクタリングしたのか?
技術の絶え間ない発展に伴い、ウェブサイトのリファクタリングは必然的な流れとなっています。個人学習のニーズをより良く満たし、パフォーマンスとユーザー体験を向上させるため、Dotnet9 ウェブサイトは新たなリファクタリングを実施しました。今回のリファクタリングは主にフロントエンドとバックエンドの二方面で行いました。
フロントエンドのリファクタリング
技術スタック:ASP.NET Core 8.0 Razor Pages
フロントエンドでは、Dotnet9 は元々の Vue 3 を Razor Pages に戻しました。Vue 3 には多くの利点があるものの、パフォーマンスや SEO にいくつかの問題があったからです。一方、Razor Pages はフロントエンドサイト(サーバーサイドレンダリング)の構築により適しており、より良いパフォーマンスと SEO 最適化効果があります。
同時に、Dotnet9 はスタイル面でも調整を行いました。サイトのスタイルはシンプルを基調とし、過度な派手な効果を排除し、コンテンツの提示に重点を置いています。このスタイルは初期の博客園に似ており、ユーザーが読書や学習に集中しやすくなっています。
バックエンドのリファクタリング
技術スタック:ASP.NET Core 8.0 Web API (MASA Framework + EF Core 8.0(PostgreSQL), DDD + CQRS)
バックエンドでは、Dotnet9 は MASA Framework を開発フレームワークとして採用しました。MASA Framework は .NET の次世代マイクロサービス開発フレームワークであり、開発者や企業が新しいモダンアプリケーション開発の提供体験を始めるのを支援します。
開発設計面では、Dotnet9 は引き続き DDD(ドメイン駆動設計)の思想を実践しています。この設計思想は、開発者がビジネス要件をよりよく理解し、ビジネスロジックと技術実装を分離することで、コードの保守性と拡張性を高めるのに役立ちます。
さらに、Dotnet9 は CQRS(コマンドクエリ責務分離)の設計パターンも追加し、MASA Framework が技術サポートを提供します。CQRS は、ドメイン駆動設計(DDD)やイベントソーシングに関連するアーキテクチャパターンであり、イベントをコマンド(Command)とクエリ(Query)に分割することで、システムのパフォーマンスと拡張性を向上させます。Dotnet9 では、ブログ記事のクエリに Query を使用し、記事の閲覧統計(開発中)に Command を使用しています。
まとめ
Dotnet9 のリファクタリングは、サイトのパフォーマンスとユーザー体験を向上させただけでなく、最新の技術と設計思想を取り入れ、保守性と拡張性を高めました。今後の発展においても、Dotnet9 はこの理念を継承し、最適化と改善を続け、ユーザーにより良いサービスを提供していきます。もちろん、主に個人学習と進化を目的としています。
成果の紹介
トップページ:

記事アルバム:

記事詳細:

ソースコード
今回は履歴ブランチも整理し、develop と main ブランチのみを残しました。
リポジトリ:https://github.com/dotnet9/dotnet9
ソリューション構成は以下の通りです:

フロントエンドメインプロジェクト:Dotnet9.RazorPages

バックエンドメインプロジェクト:Dotnet9.Service

- Dotnet9.Commons:ユーティリティライブラリ
- Dotnet9.Contracts:一時的に Dto クラスを格納
- Dotnet9.RazorPages:フロントエンドメインプロジェクト、徐々に充実させる
- Dotnet9.Service:バックエンドメインプロジェクト、一時的に各種階層ファイルを1つのプロジェクトにまとめ、必要に応じて分割
- Dotnet9.Admin:管理画面フロントエンド(仮)
サイトの開発が完了したら、Dotnet9 サイトのフロント・バックエンド開発シリーズチュートリアルを共有する予定です。今年か、あるいは来年には…。
今回はここまで。旅行に行ってきます…。
技術交流
- WeChat 公式アカウント:Dotnet9
- WeChat 技術交流グループ:WeChat(codewf)を追加し、「入群」とメモ
- QQ 技術交流グループ:771992300。
