Personal website and blog built with modern .NET technologies and Uno Platform.
This is a full-featured personal website and blog platform built with .NET 10, ASP.NET Core, and Uno Platform. The project includes:
- Web Application: A full-featured ASP.NET Core website and blog with authentication, content management, and API endpoints
- Cross-Platform App: Native mobile and desktop applications for Android, iOS, Windows, Mac, Linux, and WebAssembly using Uno Platform
- Shared Libraries: Reusable components and APIs shared across all platforms
- Migration Tools: Utilities for content migration and data management
- .NET 10 - Latest .NET framework with C# preview language features
- ASP.NET Core - Web application framework
- Uno Platform - Cross-platform UI framework for building native mobile, desktop, and web apps
- Entity Framework Core - Object-relational mapper for database access
- Microsoft Identity Platform - Authentication and authorization (via Auth0)
- MediatR - Mediator pattern implementation for CQRS
- AutoMapper - Object-to-object mapping
- Azure Services - Application Insights, Blob Storage
- TypeScript/JavaScript
- Markdown - Content authoring with Markdig parser
- Swagger/OpenAPI - API documentation
- π Web (ASP.NET Core)
- π€ Android
- π iOS
- π₯οΈ Desktop (Windows, Mac, Linux)
- πͺ Windows 10/11 (WinUI 3)
- π WebAssembly
Before setting up the project, ensure you have the following installed:
- .NET 10 SDK or later - Download here
- Visual Studio 2022 (17.12+) or Visual Studio Code with C# Dev Kit extension
- For Uno Platform development, install the Uno Platform workload
- Node.js and npm - For TypeScript compilation and frontend tooling
- SQL Server or SQL Server Express - For the database backend
- (Optional) Docker - For containerized development
For mobile and cross-platform development:
- Android: Android SDK 21+ (installed via Visual Studio or Android Studio)
- iOS/Mac: macOS with Xcode (for iOS/Mac development)
- Windows: Windows 10/11 SDK (for WinUI development)
git clone https://github.com/MartinZikmund/mzikmund.git
cd mzikmunddotnet restoreThe web application requires configuration for database connection, authentication, and Azure services.
-
Copy the sample configuration file:
cp solution-config.props.sample solution-config.props
-
Update
solution-config.propswith your configuration values -
For local development, use User Secrets for sensitive data:
cd web/MZikmund.Web dotnet user-secrets init dotnet user-secrets set "ConnectionStrings:DefaultConnection" "your-connection-string"
The project uses Entity Framework Core with SQL Server:
cd src/web/MZikmund.Web
dotnet ef database updateThis will create the necessary database schema based on the migrations.
To run the web application locally:
cd src/web/MZikmund.Web
dotnet runThe application will be available at https://localhost:5001 (HTTPS) or http://localhost:5000 (HTTP).
To run the Uno Platform application:
cd src/app/MZikmund.App
# For WebAssembly
dotnet run -f net10.0-browserwasm
# For Windows
dotnet run -f net10.0-windows10.0.26100
# For Android (requires Android emulator or device)
dotnet run -f net10.0-android
# For iOS (requires Mac with Xcode)
dotnet run -f net10.0-iosAlternatively, open the solution in Visual Studio and select the desired target framework and platform.
dotnet build# Debug build
dotnet build -c Debug
# Release build
dotnet build -c Releasecd src/app/MZikmund.App
dotnet build -f net10.0-browserwasm -c ReleaseThe solution includes unit tests for the web core functionality:
dotnet testmzikmund/
βββ .github/ # GitHub Actions CI/CD workflows
βββ assets/ # Static assets and resources
βββ docs/ # Documentation files
β βββ AUTH0_MIGRATION.md
β βββ AzureNotes.md
βββ src/
β βββ app/ # Uno Platform cross-platform application
β β βββ MZikmund.App/ # Main application project
β β βββ MZikmund.App.Core/ # Core application logic
β β βββ MZikmund.DataContracts/ # Shared data contracts
β βββ shared/ # Shared libraries
β β βββ MZikmund.Api/ # API client library
β β βββ MZikmund.Shared/ # Shared utilities
β βββ tools/ # Utility tools
β β βββ MZikmund.LegacyMigration/ # Content migration tool
β βββ web/ # ASP.NET Core web application
β β βββ MZikmund.Web/ # Main web project
β β βββ MZikmund.Web.Configuration/ # Configuration management
β β βββ MZikmund.Web.Core/ # Business logic
β β βββ MZikmund.Web.Core.Tests/ # Unit tests
β β βββ MZikmund.Web.Data/ # Data access layer
β βββ Directory.Build.props # Shared MSBuild properties
β βββ Directory.Packages.props # Central package management
βββ MZikmund.slnx # Solution file
βββ .editorconfig # Code style configuration
βββ global.json # .NET SDK version
βββ LICENSE # MIT License
βββ README.md # This file
The project includes GitHub Actions workflows for automated deployment:
- azure-publish.yml - Deploys the web application to Azure App Service
- package-windows.yml - Builds and packages the Windows application
- static-web-apps-deploy.yml - Deploys static assets to Azure Static Web Apps
- fullbuild.yml - Runs full build validation
Contributions are welcome! This is a personal project, but if you find bugs or have suggestions:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please follow the existing code style and conventions defined in .editorconfig.
This project follows the Contributor Covenant Code of Conduct.
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2022 Martin Zikmund
Martin Zikmund
- Website: mzikmund.dev (powered by this project)
- GitHub: @MartinZikmund
- Built with Uno Platform
- Powered by .NET
- Hosted on Azure
This README was last updated: November 2025