How to practice c#!?

I finished c# beginner, intermediate and advanced courses and i pretty much understand every concept so before moving on with the backend courses i want to practice c# for a while. Any idea what projects could get me used to events, delegates, inheritance, linq, interfaces…? I want to be able to put them togheter. I feel like even if i know them in little examples, i really have no idea when should i use them in real projects. I want to be able to design code architecture for bigger projects and i don’t want to follow some dude on youtube who keeps coding . I want to figure it out myself and look for the answers. Another think that is bothering me is that i only know how to make console apps. If someone can point me into the right direction so i don’t waste time learning something that will not be useful, i would really appreciate it.

Hello,

I would first try to understand why you just learned C#, was it for game, software, or mobile development? I would figure out that moving forward.

Find resources for those topics, like a book or course on building user interfaces in C#. This could be a game, user form or whatever you are into.

I wouldn’t worry about trying to link up your toolset unless the project requires it. The focus should first be on what you are building and having fun doing it. Optimize it later as your understanding grows.

This is just my opinion, nothing set in stone.

1 Like

The answer @MTownsend gave is interesting and will help you not spread out too much.

Once you decide which field interest you, you could try to find what technologies are interesting for you to learn.

C# related GUI

Desktop

  • WinForms. Classic GUI that rely on classes to represent the interface.
  • WPF (Windows Presentation Foundation) : The GUI is written in an XML like syntax called XAML.
  • UWP (Universal Windows Platform) : Heard of it. Never did anything with it but basically this is for apps that goes to Microsoft Store apparently.
  • WinUI : Same here. Heard of it but I don’t know much.
  • Blazor Desktop : Heard of it. Not mentioned in the link bellow, but here is an article on the subject. Roughly it is a wrapper that will enable hosting of Blazor apps on desktop.
  • Xamarin(.Forms) / .NET MAUI : this is a cross-platform technology that is largely thought for mobile (hence I won’t mention mobile further). But you can make desktop apps. AFAIR it (Xamarin.Forms) generates UWP for Windows.

More info about Desktop apps here.

For the web ASP .NET MVC / Core / Web API .

There are several ways to deal with the views:

  • Classic ASP syntax : I barely saw it in the past, many years ago. It looks like PHP/JSP in the big lines. I wonder if it is still used.
<body>
   <p>I am a classic HTML content for the page</p>
   <%
      // VBScript code here.
   %>
</body>
  • Razor : The one I use.
<body>
   <h2>@Model.Section</h2>
   <p>I am a classic HTML content for the page</p>
   @{
      // C# or VB code here.
   }
</body>
  • Blazor : I just did the introductory tutorial to that from MSDN. I understand this is the SPA technology from Microsoft.

Other techs:

  • Unity : used for gaming for sure but I think it has other usage like architecture, automotive (broadly science/engineering), Movies. Anyway 3D based applications seem to fall here.
  • Certainly a bazillion more that do not cross my mind and simply don’t know. One nice thing on the Java side is Javadoc have a page that has a visual which presents the framework as a whole and this is very much helping to see the big picture. I don’t know any equivalent in MSDN or at all that presents .NET the same way. Should anyone know something of that kind, that would be highly helpful.

Sorry it is not for C# but Java

You see that with so many different techs, you just can’t know everything especially if you are time limited. Hence the question asked earlier is very important.

Regards.

2 Likes

Well i know unity but is more like a hobby(actually that is how i started with c#). I wanted a deep understanding of c# and .NET so i started with mosh courses. Thanks for your answer. I will check form and web apps and see what i like.

I decided to go for web first. Almost all the jobs are asking for web and i want to get one fast. Thanks for your guidance!

1 Like