REACT / REACT NATIVE
My favorite lightweight back of the house frame work. Node.JS scales extremely well across both cloud and embedded environments. As an added benefit I don’t have to context switch going from my front end to back end development. Again, as with React I use Typescript, which provides another layer of checks for production. Leveraging Node.JS and Express and your favorite DB library (Sequelize for me at the moment) and you’re off to the races!
Django is my go-to Python back end. Some will argue it’s opinionated and a bit overkill, but you get a lot of free stuff, such as credentials, administrative back end, and templates. All of which can be used during development and deactivated or subsumed by RESTful services and JWT Tokens. The bottom line it scales well, bootstraps fast, and gives you the python environment to leverage those libraries and ML tools you’ve come to depend on for your app.
I’ve been using .NET since 1.1. Honestly, I’ve been in love with C# since it came out. As a C/C++ developer I always envied VB’s access to everything Microsoft and while they would claim you could get everything via MFC and Platform SDK, let me tell you being a second class citizen in Microsoft world stunk. Looking forward to .NET 5.0 and the new unified platform that supports all desktops, mobile platforms, and the cloud! I’ll be swinging back around to play in my favorite sandbox and with Blazor! Oh, yes, I’ve leveraged .NET for everything Cryptography, Interop, Low-Level Keyboard Hooks, Dependency Injection.
WPF was a huge cliff to climb coming from WinForms. MVVM was a fundamental shift from the old school. The separation of concerns between the Model, View and View Model made for robust code. WPF and XAML quickly became my favorite front-end UI for the Windows Platform. Sexy animations, beautifully styled layouts and data-binding for the win! Sadly, somewhere along the line Microsoft put this tech into a corner and as of yet really hasn’t replaced it. WPF can bridge the gap between a maintainable UI and Low Level GPU access like no other current technology.
I selected Prism because of it’s extensive dependency injected, compositing methodologies. Prism is not light weight, but it does provide an excellent framework for large scale applications that need flexibility and maintainability at their heart.