DEV Community


Discussion on: Looking for advice on projects to learn c# and .net

androvisuals profile image
Andro Author

Hi Maccabee,
thanks for taking the time to respond. It's becoming very clear that I'll have to learn to develop some projects which work with MVC, ASP and SQL, database management seems to be a very essential part of the job from what I've seen with looking around for an internship.

kspeakman profile image
Kasey Speakman

I didn't see you mention knowing HTML5. If that's not already in your tool box, then I would not include web UI in a first project. That will just distract you from learning .NET. (But it's worth putting it next-in-line to learn.)

Instead, I might take learning C# and .NET in phases. Playing with console apps are the first step. (I still make console apps today for small utility functions.) Then maybe a desktop app to get started on your real project. Then split the back-end stuff (saving to database, business logic, etc.) off of the desktop app off into a web API. That will give you practice dealing with API calls and the separation between UI and back end. ASP.NET Core is a good candidate for running the web API -- fast and runs as a console app.

Then maybe look at web UI. If you had to pick a .NET tech for web UI, MVC is worlds better than WebForms. But I find it pretty hard to justify creating a new web app in anything other than HTML5 frameworks. I.e. React, Angular, Vue, etc. -- my personal favorite is Elm. However, these are a whole separate universe from .NET.

For picking a desktop tech, I'll just give you an overview of what's there. The latest one is UWP. But UWP apps only run on Windows 10, which means most companies won't be moving to it anytime soon. WPF is the predecessor to UWP which runs on all supported versions of Windows. Its API differs from UWP, but it uses the same layout language (XAML), so there should be some skill cross-over between them. WinForms is the oldest .NET desktop tech and is nothing like WPF or UWP. I think it is probably simplest to learn, but is considered antiquated.

Good luck.