Skip to content

C#, AvaloniaUI, Semi-Design and MVVM based Contacts Manager App

Notifications You must be signed in to change notification settings

blacksmoke26/csharp-contact-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contacts Manager App

This application is my second establishment using C# and Avalonia UI as a personal project to learn .NET from scratch.

image

Motivation (Behind the Scenes)

A few years ago, I was modding for the game Software Inc. A “Trainer” mode caught my attention, but as someone with no C# experience, I couldn’t understand much at first. After accidentally reading through the file, I became intrigued by the game engine and the idea of writing better code mods. That’s when I developed a love for C#.

Roadmap - Learning Journey

I challenged myself to learn C# from scratch while juggling a full-time job, family responsibilities, and errands. The pressure led to sleepless nights and eventually severe depression. To cope, I immersed myself in C#, spending over 3 months working late into the night to master it.

Challenges and Growth - Losing Interest

It’s a part of life—starting something is easy, but staying consistent is difficult. I struggled with quitting and doubting myself, especially when there were no tangible rewards for my efforts. Despite the ups and downs, C# helped me stay focused and motivated.

Transition to Avalonia

After working on my first app, I found overriding WPF control templates tedious. Then I discovered AvaloniaUI, which matched my style and filled my needs perfectly. I was satisfied, or at least, I thought I would be.

Embracing MVVM and Dependency Injection

MVVM was a great approach, and Dependency Injection (DI) made it even more interesting (albeit more complex). A YouTube guy "AngleSix" covered many of my needs and helped me move forward.

Advancements with Semi-Avalonia

The controls became more flexible, and overriding templates became a breeze. As I delved deeper into it, I found its controls increasingly flexible, and overriding templates became straightforward, streamlining the development process.

Final Thoughts

There’s a lot to manage in one project, but after 2+ weeks of work, late nights, and perseverance, I finally reached a breakthrough. BOOM!

Ah shit, here we go again. WHAT's NEXT?

image