
How is this course going to help you and who are you learning with?
Section 2 Objective.
The Yaml Parser source code repository.
Creating the application solution with Microsoft Visual Studio.
Placing the initial UI controls.
Adding empty event handlers.
Defining the workflow for these events.
Adding a Listbox for file names.
Displaying the selected file name.
Adding YAML data controls.
Renaming user interface controls to keep in line with the naming standards.
Adding the control to display the contents of a selected files; Running the app for the first time.
Loading the file names for the selected folder.
Section 3 objective.
Creating the GitHub repository for source tracking and publishing the project files.
Implementing a method to toggle selection editors.
Defining and clarifying the workflow we expect when selecting a single file name from the list.
Implementing the list selection handler.
Loading a default folder on application start.
Loading selected file contents.
The industry standards for parsing YAML and Markdown in C# are YamlDotNet & Markdig.
This segment is a classic "Data Model" step. Creating that FrontMatterData class is essential because it acts as the bridge between the raw YAML text and your C# logic.
Creating the class and methods to process markdown files. You're setting up a generic helper class and configuring the YamlDotNet builder with those crucial "naming conventions" and "ignore unmatched properties" settings.
You are taking the data from your parser and actually wiring it up to the WinForms UI elements.
Debugging the first exception.
Loading default YAML fields on pressing the defaults button.
This segment is all about "clean code" and refactoring. Refactoring your method names makes the code much more readable for anyone else (or your future self) looking at it.
This segment wraps up the "Defaults" and "Clear" logic while shifting focus back to the UI layout. It’s a great example of how development is a constant loop between writing logic and refining the user interface to make that logic actually readable.
Handling exceptions with a MessageBox is a solid way to keep the user in the loop instead of letting the app fail silently.
This segment is a great lesson in Defensive Programming. By checking the directory exists and reordering the logic, we ensure the UI stays in a consistent state even when external factors (like a missing folder) go wrong.
Another "sequence bug" caught in the act! A classic developer rite of passage: realizing your Clear() method is being a bit too efficient and wiping out the data you just assigned. Loading the file contents once to keep the app snappy.
Implementing the event handler when clicking the save button.
The "Save" logic is taking shape! We're collecting all disparate UI fields and packaging them back into the FrontMatterData object. Keeping the resulting YAML clean and relevant.
Using a temporary "staging" folder is a classic developer safety move. It’s essentially a "sandbox" where you can verify your serialization logic without the risk of wiping out your original blog posts
Using a StreamWriter to write the serialized data is the standard way to ensure the resulting file is perfectly compatible with static site generators
We're downloading and upgrading to Visual Studio 2026.
The application crashes when the default staging folder is missing. We're adding code to create the folder is created if it doesn't exist.
When adding files, we're filtering them by a list of allowed extensions.
Following best coding practices, we replace hardcoded file paths with Path.Combine calls.
Fixed the file content load order and added scrolling to the file contents text box.
We’re adding a list of allowed file extensions to use as a filter.
We’re adding a button that lets users clear the file list, with a confirmation dialog to prevent accidental actions.
Replaced hardcoded desktop paths with dynamic path handling.
Starting from this section, we'll be developing a new app - a Fractals Drawing App.
We set up the window where we will paint the graphics.
Drawing the very first version of the Mandelbrot fractal.
We make the initial adjustments to the algorithm and optimize it to make it just a bit faster.
We're refactoring some member variables for more clarity.
Comparing the initial SetPixel version (slow) with the LockBits version (fast).
Speed up the rendering algorithm using Parallel.For (multi-threaded).
Building the editor for the Mandelbrot fractal values.
Adding a separate fractal class - Mandelbrot - to contain fractal related data. Separation of concerns.
We define a common base class for all editors to streamline loading from and saving to a Mandelbrot fractal instance.
Tired of building simple console apps? It's time to build real-world software. In this course, we create Windows desktop applications from scratch, using C# and .NET 10.
You will learn:
Windows Forms with C#
Desktop Application Development
Building C# Projects
YAML parsing in C#
**2026 UPDATES - What's New?**:
March 2026:
Uploaded missing English captions
Uploaded 6 New Lectures to the Fractal Graphics App
February, 2026:
Upgrade to latest version of Visual Studio 2026 and .NET 10.0
Added 8 New Lectures - Upgrades To The YAML Parser App
Added 6 New Lectures (NEW APP!) - Graphics App (Fractals Painter)
More lectures coming soon, for both Yaml and Fractals Apps
Windows Forms is still the fastest way to turn a C# idea into a high-performance desktop application.
Here, you can learn to build Windows Forms apps to manage your work tools.
Why should you still learn to build Windows Forms apps in 2026? Because speed matters.
Windows Forms is a mature, stable framework that works well with modern .NET, making it a reliable choice for long-term projects.
Where to start?
If you don't know where to start, begin by creating projects. This way, you learn enough and reach a basic level of understanding in developing desktop apps with C# and .NET 10.
Most CS students feel they can't program until things suddenly start to click. C# is the language you must be comfortable with first.
If you are stuck in tutorial hell, the best thing you can do is to start building something. Start with a silly project. Open up the IDE and wire it up. See how things work end to end, how they connect.
This is the game you should be playing instead of taking course after course.
Also, try not to use AI while learning, because you learn by doing, not by watching.
Your skills grow by following along with what you watch on the screen, and trying things out and fixing the errors.
Using Visual Studio, an IDE from Microsoft, you can simply drag, drop, and code. It is perfect for developers who just want to build functional tools and Windows applications fast, without unnecessary overhead.
In this course, you will use the Visual Studio to create custom tools. This course is a direct route to C# desktop development. It is the place to start.
What you learn by enrolling:
Rapid C# Application Development: Build C# Desktop applications quickly
Object Oriented Programming concepts in C#
Project Based: Create a customizable YAML Parser App and a Fractals Drawing App
User Interfaces: Design and program C# user interfaces that look and feel professional.
Core Programming: Use classes, methods, and event-driven logic for windows application development.
File Handling: Use standard Windows dialogs and Visual Studio to browse, load, read, and write files.
YAML Integration: Parse and manipulate YAML data for a C# desktop application.
Dependency Management: Install and manage NuGet packages to extend your C# app functionality.
Debugging: Use Visual Studio (2022/2026) to find and fix errors in your desktop apps.
Code Quality: Use professional coding habits to build desktop applications that are easy to read and update.
Frameworks: Use .NET Core for windows desktop application development on the latest platform.
What get by enrolling:
Lifetime access to course
Fast response in Q&A
Learn by doing
Certificate of completion from Udemy
Why take this course and not others?
Each project builds upon the previous in complexity.
The first project is more beginner-friendly oriented, especially the first two sections.
After that, the difficulty begins to gradually increase.
The second application (fractals drawing app) is more complex by design and it expects you to already know how to manage windows forms and use the UI designer.
The course is easier to understand for someone with a bit of background in computer science.
If you skip this course, you’ll miss out on:
Practical Growth: A clear path to getting better at c# desktop application development and C# GUI programming by actually building, not just watching.
A Finished Project: The experience of building a complete C# app—a functional YAML Parser—from the first line of code to the final build.
The Workflow: A look at my personal step-by-step process for windows application development so you can work faster and smarter.
Solid Foundations: A chance to sharpen your Object-Oriented Programming (OOP) and write code that is clean, organized, and easy to maintain.
Real-World Skills: Learning how to build desktop applications for windows with C# and .NET Core in a way that’s hands-on and actually enjoyable.
Why learn with me (Dan)?
No-fluff policy: I respect your time, every lecture gets straight to the point and is as focused as possible
Career-focused: I focus on what’s important for your growth in developing desktop applications with C-Sharp on Windows
Clarity first: Each lesson is designed to be clear, easy to understand, and simple to follow
Shape the curriculum: You can help guide the course by suggesting a C# desktop development topic
Structured learning: Each lesson builds on the last, ensuring a smooth path through windows application development.
Practical results: My goal is to help you build desktop applications for windows with CSharp and .NET by using a logical, step-by-step sequence with object oriented programming concepts (C# and OOP design)
My Experience: I'm a professional software developer with over 10+ years in desktop software development (mostly desktop)
More content is on the way!
I am currently editing 10+ additional lectures to expand the projects with more advanced concepts and dive deeper into the course topics.
We're focusing on:
polishing the code
upgrading existing features
adding new functionality
making the apps more robust
localization - making the app available in multiple languages
These updates will be rolled out by the end of March 2026.
By enrolling now, you get full access to the current curriculum and all upcoming updates automatically.
Let’s start your growth journey together — Enroll now, see you inside!