Simply put, I am one of the few developers on the planet, who has consistently and continuously developed Windows desktop applications since the launch of Microsoft Windows 2.0 and the Microsoft Windows SDK, now called the Win16 SDK and Microsoft C. At that time, I was heavily involved in other types of coding too using BASIC, Pascal, Java, and other languages. C gave way to C/C++. Win16 SDK/API gave way to Win32/Win64 SDK/API, not to mention OS/2. I spent quite a bit of time with VB6 development and to some degree MFC.
There are many tools, such as Instant (C#) and other variants from Tangible Software, which convert code from one language to the next, however in my experience code cannot convert code, as each language has its own way to do things. These tools have much to be desired. I have a license to the product suite and use it on and off, but no software package can do conversion, as conversions are a lot more complex. I get asked about Java to C#. Yes, there is a tool, which I have, multiple in fact, but conversions require a human, who know the languages.
I feel about conversions the same way that I do about HTML and website development. I like the visual in my head better. That is better, faster, and cheaper, though the graphical development does have its place. The same way for conversion tools and even Pinvoke.net, which implements the Windows SDK in .Net (C# or VB.Net).
I have extensive experience with various aspects of Windows development. These are, but not limited to:
- Extensive experience with Microsoft Visual Studio
- Communication Technologies: REST, Curl, WinHttp, etc.
- Unit testing and bug tracking: bugzilla, etc.
- Various coding standards: Agile, etc. (inclusive of military standards)
- OEM integration
- Internals: Windows
- Various installers: Inno Script, InstallShield, Windows, etc.
- Build environments: Visual Build, ant, make, etc.
- Windows App Frameworks: Winforms (favorite), UWP, WPF (to a degree)
- Services and lower layer: WCF, etc.
- Multi-platform: Xamarin, Java, etc.