Hi Everyone, I am a C# developer trying to brush up on my WPF skills. Would the Xamarin course be useful to me in order to revise WPF principles.
Thanks!
Hi Everyone, I am a C# developer trying to brush up on my WPF skills. Would the Xamarin course be useful to me in order to revise WPF principles.
Thanks!
Hi,
In my own experience the philosophy behind the 2 is very close to the least but the XAML markup is a bit different. If you’re aiming at WPF specifically, then the Xamarin course is not your best fit. You will need to lookup for differences regularly.
You’d better go with a WPF tutorial then.
Good luck…
PS: You may want to go for .NET MAUI. It is kinda the successor to Xamarin and you can make desktop apps too (just like Xamarin actually can do)
Short answer: no!
Long answer: not really.
WPF and Xamarin share a lot of similarities. They’re both designed with MVVM in mind, they both use XAML and they both use a very similar data binding infrastructure (although Xamarin’s is far less powerful with far fewer features).
The most important difference between them, IMO, is that WPF has a phenomenally more powerful templating engine. WPF’s predeccessors (MFC, WinForms) still use the same underlying Windows controls…buttons, textboxes etc…as Windows applications always did in years past, and they simply encapsulate them with OOP structures to make them easier to work with. WPF, on the other hand, re-created all of those controls from the ground up, but in a way that allowed you almost full control over how they both appear and behave. Put simply, templating is a major part of any professional-quality WPF application.
Xamarin doesn’t do any of this. When you declare a Button in your Xamain XAML the underlying class creates a native object through the OS, just as WinForms does. This is needed in order to maintain performance on low-end mobile devices, but it means you lose almost all control of the object’s appearance outside some basic properties common to all platforms (foreground color etc). And once you cross that threshold (which comes sooner rather than later, for most) you’re back to doing custom code on all platforms again.
To put it another way, the design goals between WPF and Xamarin are very different. The “P” in WPF is important…it highlights that a main design criteria of WPF is how the application physically appears. The design goals of Xamarin are different, a major one being cross-platform support which facillitates very rapid development at the start but causes problems as your product matures. As the old joke goes, if you need to support 10 standards, and someone decides to encapsulate them all into a single standard, then you now have 11 standards to support!
So as someone with 15+ years WPF experience and 8+ years Xamarin experience, my advice is that if your intention is to become a good WPF developer then you should seek out a good WPF course.
Hi UniqueNospaceShort,
Appreciate your response, this makes sense and may have to go for a pure WPF course!
Thanks!
Hi MarkF,
Really appreciate your in-depth response. Great to see the power of WPF and the differences it has with XAML. I did notice that the Xamarin course covered MVVM and data binding which is something regularly used in WPF application. As you mentioned, will look for pure WPF content in that case.
Thanks!