Skip to content

MartinZikmund/mzikmund

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,066 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Martin Zikmund

Personal website and blog built with modern .NET technologies and Uno Platform.

πŸ“– About

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

πŸš€ Technology Stack

Core Technologies

  • .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

Frontend Technologies

  • TypeScript/JavaScript
  • Markdown - Content authoring with Markdig parser
  • Swagger/OpenAPI - API documentation

Supported Platforms

  • 🌐 Web (ASP.NET Core)
  • πŸ€– Android
  • 🍎 iOS
  • πŸ–₯️ Desktop (Windows, Mac, Linux)
  • πŸͺŸ Windows 10/11 (WinUI 3)
  • 🌍 WebAssembly

πŸ“‹ Prerequisites

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

Platform-Specific Requirements

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)

πŸ› οΈ Setup Instructions

1. Clone the Repository

git clone https://github.com/MartinZikmund/mzikmund.git
cd mzikmund

2. Restore Dependencies

dotnet restore

3. Configure Application Settings

The web application requires configuration for database connection, authentication, and Azure services.

  1. Copy the sample configuration file:

    cp solution-config.props.sample solution-config.props
  2. Update solution-config.props with your configuration values

  3. 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"

4. Database Setup

The project uses Entity Framework Core with SQL Server:

cd src/web/MZikmund.Web
dotnet ef database update

This will create the necessary database schema based on the migrations.

πŸƒβ€β™‚οΈ Running the Application

Web Application

To run the web application locally:

cd src/web/MZikmund.Web
dotnet run

The application will be available at https://localhost:5001 (HTTPS) or http://localhost:5000 (HTTP).

Cross-Platform App

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-ios

Alternatively, open the solution in Visual Studio and select the desired target framework and platform.

πŸ—οΈ Building the Application

Build All Projects

dotnet build

Build for Specific Configuration

# Debug build
dotnet build -c Debug

# Release build
dotnet build -c Release

Build Specific Platform

cd src/app/MZikmund.App
dotnet build -f net10.0-browserwasm -c Release

πŸ§ͺ Running Tests

The solution includes unit tests for the web core functionality:

dotnet test

πŸ“ Project Structure

mzikmund/
β”œβ”€β”€ .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

πŸš€ Deployment

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

🀝 Contributing

Contributions are welcome! This is a personal project, but if you find bugs or have suggestions:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please follow the existing code style and conventions defined in .editorconfig.

πŸ“ Code of Conduct

This project follows the Contributor Covenant Code of Conduct.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright (c) 2022 Martin Zikmund

πŸ‘€ Author

Martin Zikmund

πŸ™ Acknowledgments

πŸ“š Additional Resources


This README was last updated: November 2025

About

Personal website and blog of Martin Zikmund

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors