
Hello everyone, I'm the Wolf at the End of the Desert.
My website Dotnet9 (https://dotnet9.com) has undergone a new round of reconstruction: the frontend has switched back from Vue 3 to ASP.NET Core Razor Pages, with a minimalist style that focuses on content over flashiness. Netizens say the style resembles the early Blog Park. The site owner actually purchased a static template from Yang Qingqing's personal blog (https://www.yangqq.com/). The backend is built with the MASA Framework at https://www.masastack.com/framework. The backend development is still guided by DDD design, and CQRS has been added this time. The overall development plan is: the backend framework using MASA Framework should remain unchanged, and both frontend and backend now fully embrace .NET 8.
By the way, the open-source address of the site is: https://github.com/dotnet9/dotnet9.
Why reconstruct again?
As technology continues to evolve, website reconstruction has become an inevitable trend. To better meet personal learning needs and improve website performance and user experience, the Dotnet9 website has undergone a new round of reconstruction. This reconstruction mainly involves two aspects: frontend and backend.
Frontend reconstruction
Tech stack: ASP.NET Core 8.0 Razor Pages
On the frontend side, the Dotnet9 website switched back from Vue 3 to Razor Pages. This is because although Vue 3 has many advantages, it still has some issues with performance and SEO. Razor Pages, on the other hand, are more suitable for building frontend websites (server-side rendering), offering better performance and SEO optimization.
At the same time, the Dotnet9 website also made some adjustments in style. The site's style is mainly minimalist, abandoning excessive flashy effects and focusing more on content presentation. This style is similar to the early Blog Park, allowing users to concentrate more on reading and learning.
Backend reconstruction
Tech stack: ASP.NET Core 8.0 Web API (MASA Framework + EF Core 8.0 (PostgreSQL), DDD + CQRS)
On the backend side, the Dotnet9 website adopted MASA Framework as its development framework. MASA Framework is .NET's next-generation microservice development framework, helping developers and enterprises start a new modern application development and delivery experience.
In terms of development design, the Dotnet9 website still follows the idea of DDD (Domain-Driven Design). This design philosophy helps developers better understand business requirements, separating business logic from technical implementation, thereby improving code maintainability and scalability.
Additionally, the Dotnet9 website has incorporated the CQRS (Command Query Responsibility Segregation) design pattern, supported by MASA Framework. CQRS is an architectural pattern related to Domain-Driven Design (DDD) and Event Sourcing. It divides events into Command and Query sides, improving system performance and scalability. On the Dotnet9 website, blog post retrieval uses Query, while article reading statistics (under development) use Command.
Summary
The reconstruction of the Dotnet9 website not only improves site performance and user experience but also adopts the latest technologies and design philosophies, making the site more maintainable and scalable. In future development, the Dotnet9 website will continue to uphold this concept, continuously optimizing and improving, to provide users with better services—primarily for personal learning and ongoing evolution.
Results Showcase
Homepage:

Article Collection:

Article Details:

Source Code
This time, the historical branches have also been cleaned up, retaining only the develop and main branches.
Repository: https://github.com/dotnet9/dotnet9
The solution structure is as follows:

Frontend main project: Dotnet9.RazorPages

Backend main project: Dotnet9.Service

- Dotnet9.Commons: Utility library
- Dotnet9.Contracts: Temporarily holds Dto classes
- Dotnet9.RazorPages: Frontend main project, gradually improving
- Dotnet9.Service: Backend main project, temporarily placing various layered files in one project; split into libraries if needed
- Dotnet9.Admin: Backend frontend, to be determined
Once the website development is complete, I plan to write a series of tutorials on the Dotnet9 frontend and backend development—either this year or next year...
That's all for this article. Off to travel...
Technical Exchange
- WeChat public account: Dotnet9
- WeChat technical exchange group: Add WeChat (codewf) with note "join group"
- QQ technical exchange group: 771992300.
