A modern, interactive slide presentation system built with ASP.NET Core Blazor that explains Blazor technology in a professional and accessible way. This project demonstrates real-time presentation capabilities using SignalR for synchronized slide navigation.
This is a full-stack presentation application consisting of two main components:
- Frontend: Blazor Server application that renders the presentation slides
- PublicApi: ASP.NET Core Web API with SignalR hub for real-time slide synchronization
The presentation covers Blazor fundamentals, hosting models, data binding, and comparisons with other web technologies, making it perfect for educational purposes or professional presentations.
- Framework: ASP.NET Core 9.0 with Blazor Server
- Purpose: Renders interactive slide presentation
- Features:
- 19 professional slides covering Blazor concepts
- Speaker notes functionality
- Responsive design with Tailwind CSS
- Real-time slide navigation
- Server-side rendering for optimal performance
- Framework: ASP.NET Core 9.0 Web API
- Purpose: Provides real-time communication and slide synchronization
- Features:
- SignalR hub for real-time updates
- RESTful API endpoints
- CORS configuration for cross-origin requests
- OpenAPI documentation support
The presentation includes the following 19 slides:
- Explaining Blazor
- What We'll Cover
- What is Blazor? (An Easy Explanation)
- What is Blazor? (The Technical Side)
- How Blazor Runs: Hosting Models
- Running on the Server
- Running in the Browser
- Server vs. WebAssembly (WASM)
- The Next Step: Mixing Render Modes
- Blazor vs. Old HTML Pages
- Blazor vs. JavaScript Frameworks
- Main Differences
- What is Middleware?
- The Middleware Pipeline in Action
- The Magic of Data Binding
- How Data Binding Works
- How @bind Works Inside
- Summary
- Questions?
- .NET 9.0 SDK
- Visual Studio 2022 or VS Code
- Modern web browser
-
Clone the repository
gh repo clone evrendev/blazor-presentation cd blazor-slide -
Restore dependencies
dotnet restore
-
Build the solution
dotnet build
-
Start the API (Terminal 1)
cd PublicApi dotnet runThe API will start at
https://localhost:3001 -
Start the Frontend (Terminal 2)
cd Frontend dotnet runThe frontend will start at
https://localhost:3000
- Set multiple startup projects in Solution Properties
- Configure both
PublicApiandFrontendto start - Press F5 to run both projects
- Frontend: https://localhost:3000
- API: https://localhost:3001
- SignalR Hub: https://localhost:3001/slideHub
blazor-slide/
├── BlazorSlide.sln # Solution file
├── PublicApi/ # Web API project
│ ├── Controllers/ # API controllers
│ ├── SlideHub.cs # SignalR hub
│ ├── Program.cs # API startup configuration
│ └── appsettings.json # API configuration
└── Frontend/ # Blazor Server project
├── Components/ # Blazor components
│ └── Slides/ # Individual slide components
├── Models/ # Data models
├── Pages/ # Razor pages
├── Services/ # Application services
├── Shared/ # Shared components
├── Program.cs # Frontend startup
└── wwwroot/ # Static files
- SlideService: Manages slide data and navigation
- SlideHub: SignalR hub for real-time communication
- Slide Components: Individual Razor components for each slide
- SlideInfo Model: Defines slide metadata and component types
- Create a new Razor component in
Frontend/Components/Slides/ - Add the slide to
SlideService.GetSlides()method - Follow the existing slide structure with speaker notes support
The project uses Tailwind CSS for styling, providing:
- Responsive design
- Modern, professional appearance
- Consistent color scheme (blue theme)
- Mobile-friendly layouts
The API is configured to accept requests from:
https://evren.devhttps://localhost:3000
Update Program.cs in PublicApi to modify CORS settings.
- Development: Detailed error pages and OpenAPI documentation
- Production: Optimized for performance and security
The application uses SignalR for:
- Synchronized slide navigation across multiple clients
- Real-time presentation control
- Live audience engagement capabilities
- IIS or nginx web server
- SQL Server or other database (if needed)
- SSL certificates for HTTPS
The application can be containerized using Docker. Create Dockerfiles for both projects and use docker-compose for orchestration.
When running in development mode, API documentation is available at:
- OpenAPI:
https://localhost:3001/openapi
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Commit changes:
git commit -am 'Add new feature' - Push to branch:
git push origin feature/new-feature - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Check existing documentation
- Review the slide content for Blazor learning resources
This project serves as an excellent example of:
- Blazor Server application development
- SignalR real-time communication
- Modern ASP.NET Core architecture
- Component-based UI development
- Professional presentation systems
Perfect for developers learning Blazor or needing a presentation system for technical content.