Hello,
so I am 17 years old and from Germany. I just started professional training (i think that is what you call it) as a software developer. I need some help learning it and as videos do not seem to help me, I would like some books that you can recommend for learning C#. I also work a lot with SQL.
(Accessing,changing and expaning the database through the winform). I am kind of new to this whole Reddit thing and kind of still have problems with explaining my problems, hope you can forgive me 🙂
Also, if you’re new to c# all together. Dedicate some time to learning fundamentals http://blackwasp.co.uk/
Thank you. I already kind of know the fundamentals…I think. Do you want me to explain my task to you? Maybe then you can help me figure out which part of this all I should focus on learning.
Winforms has been out of vogue for so long I don’t know if any stellar book is in print anymore. Back then I probably bought a dozen different books and in my opinion now: don’t waste money on a WinForms-specific book. Invest in good C# books. Here’s why.
WPF has a whole pattern developed for it: MVVM. It also has its own markup language, XAML, so you have to learn how to use that if you want to style your applications. You have to learn those two things on top of what the controls are and what they do. Those two things are much more complicated, and they’re what you’ll want books for. (Unfortunately, I don’t think I’ve met a book that really explained MVVM well.)
But WinForms (and the easy part of WPF) just requires you to know C# to work. Every book I read hit a point where the final 300 pages were just: “This is what a TextBox is. This is what it does. Here are the properties you usually use. Here are the events you might be interested in handling. To learn more, read the documentation.” There are some controls like DataGridView
that warrant their own book, but most controls are adequately explained by the documentation once you understand how C# properties and events work.
The things newbies trip over in WinForms and WPF tend to be things like “how do I make multiple forms share data”. No book I bought covered that: they almost exclusively focused on single-window demos. Again, the solution to this comes from understanding C#’s implementation of OOP and how different classes share data. The way you do it in WinForms is, in general, the way you do it in a console app, a web app, a mobile app, etc.
There are a handful of topics like creating design-time support for custom controls in WinForms that did have good books. These are VERY niche topics for a framework that has waning support from MS, I would not recommend investing an awful lot of time into those.
So to sum it all up my opinions are:
Consider learning WPF instead of WinForms. I can recommend decent WPF books.
A good C# book will help you much more than a good WinForms book.
If you do want a WinForms book, any book you can find covering WinForms is probably good enough, so long as you learn enough C#.
For WPF books I recommend:
Adam Nathan’s WPF Unleashed
Chris Sells and Ian Griffith’s Programming WPF
Either one of those two is probably fine, I liked both when I was getting my start. You’ll note they seem fairly old. For reasons you don’t want me to start ranting about, WPF hasn’t changed an awful lot since it released. That makes old books still decent resources. I tried to find newer ones that looked good, but basically every publisher I trust’s newest entry comes from 2012 or before. I like APress, O’Reilley, Manning, and I’ve had surprisingly good experiences with Sams. But I also haven’t really bought a novice-focused book like this in a decade, so I could be out of date.
One more book: Charles Petzold’s Applications = Code + Markup. This is more if you’re really serious about professional WPF. Charles Petzold is legendary for his Windows books. This is the deepest, most technical dive into WPF I know, and it visits a lot of features I find many people who say “I know WPF” don’t know about.
Don’t buy too many of these books. The good books are the ones that teach you how to build applications well, not the ones about frameworks. But it takes a while to get proficient enough to get value out of those.
Winforms and .net is outdated tech in my opinion. Unless you NEED those skills I’d dedicate time to dotnet core, EF core, MVC and blazor. Microsoft has great documentation to get you started! https://docs.microsoft.com/en-us/dotnet/core/tutorials/
.net is outdated tech
Do you mean .NET framework? Isn’t the most recent iteration called simply .NET (5.0), which is the successor (?) to .NET core and .NET framework? Not OP, but still trying to clarify.
C# devs
null reference exceptions