The Gaps and Richness of the .NET Ecosystem

Modern .NET is powerful, open-source, cross-platform and welcoming to all, with mature tooling accompanied by rich ecosystems. The breadth and depth of today’s .NET is truly amazing, allowing developers more flexibility, programming/markup languages and platform reach, compared to any other developer framework. Powered by decades of innovation, .NET developers are also a little spoiled with the variety and quality of developer tooling, now powered by AI – developer productivity is limitless

As wonderful as modern .NET is, dig deeper or push the boundaries, and some cracks begin to surface. There are gaps in the developer experience, but one might argue that Microsoft might have left these gaps by design, to foster what .NET developers have grown to cherish – a thriving .NET ecosystem. Partners can raise their hand to push .NET to places not envisioned by Microsoft or create amazing tooling that makes developers ultra productive.

“I always say we are a platform-first and a partner-first company… it’s about building platforms that create partner opportunity.”

Say hello to Uno Platform, the most flexible open-source platform for cross-platform .NET development, complete with enterprise-grade tools. Paired with Uno Platform Studio, .NET developers can get a serious boost in productivity with the fastest C#/XAML dev loop, flexibility in technology stack and better bridges to empower enterprise workflows. Let’s take a look at a few areas where the .NET developer experience is augmented by a rich ecosystem, towards making .NET the most flexible productive platform to build modern apps with – upwards and onwards.

Platform Reach

.NET has always had good coverage of Windows devices with WinForms, WPF, UWP and WinUI frameworks – but let’s face it, developers want to build truly cross-platform apps from a single codebase. Blazor works for all things modern web and .NET MAUI stretches to mobile/desktop – while developers can mix & match, there are gaps in platform reach and the shared code could be more homogenous.

 

Uno Platform brings in a true single project approach to .NET, empowering developers with a unified solution spanning mobile, web, desktop, and embedded apps. The supported platforms list includes Windows, macOS, iOS, Android and two much desired destinations – Linux and the web browser through WebAssembly. At the core, Uno Platform is a cross-platform .NET UI framework, that allows apps to run everywhere from a single shared codebase. However, built on top of this foundation, is also a rich platform which includes libraries, extensions, and tools that accelerate the design and development of modern cross-platform apps.

Visual Design

Traditional Windows developers are used to a rich design surface for building app UI visual tree – this type of WYSIWYG design surface makes for productive developers and pixel-perfect apps. Modern native .NET stacks like WinUI/Xamarin/.NET MAUI never created the visual design surface – despite being heavily requested through votes/comments, Microsoft will not develop a cross-platform designer for .NET. While features like Hot Reload work somewhat to reduce development inner loop, there is a huge gap without a true visual design experience. Moreover, modern apps are complex with UI often being data bound and UX having to cater to various device form factors – compile time design surfaces often do not reflect the app reality.
 
Meet Hot Design in Uno Platform Studio – the next-generation Visual Designer for cross-platform .NET apps. Hot Design transforms a running .NET app into a Designer from any IDE on any OS – this creates synchronized design and runtime experiences with live data to eliminate back-and-forth. Developers get to stay in the flow without breaking context and fine tune pixel perfect UI with live data – this is unprecedented productivity gain for .NET developers.

UI Renderers

Building consistent app UI for various devices is inherently complex – any cross-platform framework would have to map abstracted UI visual tree to the appropriate rendering mechanism for each platform. Common platform targets like iOS/Android/Windows/Linux/macOS/Tizen all have different UI stacks, catering to unique device UX. While native UI works beautifully, developers are often wanting to create consistent experiences across platforms, with the option to dip into native land for unique UI experiences.
 
Uno Platform provides two rendering modes out of the box – Skia and Native. The Skia Renderer is a cross-platform unified rendering model with Uno Platform, which provides a single UI experience across all supported platforms on iOS, Android, macOS, Windows, Linux and WebAssembly – the whole UI Visual Tree is drawn on a hardware-accelerated canvas, using Metal, OpenGL, and WebGL where applicable. The native rendering uses the native components and APIs to render the UI on each platform, allowing for deep integration of native UI into the visual tree. Developers get to choose what works best for given apps, with interoperability with platform-specific UI – flexibility for the win.

Design to Code

.NET development teams often have the luxury of working with designers, who mostly work in Figma – the gorgeous app designs and design system elements need to be brought over to code with high fidelity. The designer-developer handoff has forever been a challenge and a big time trap – the envisioned designs need to be manually translated to markup code.

 

Say hello to Uno Platform Figma Plugin – the goal is to automate the friction in designer-developer handoff. Designers get to start with Uno Platform Material Toolkit to customize designs in Figma – one click, and developers get high quality C#/XAML markup that translates design to code with high fidelity. The process can be reiterated as needed – the point is to honor high quality design and give developers a good starting point that mimics design elements down to the pixel.

UI Stack

Developers are building apps that enable real-world workflows – rediscovering the wheel to create complex app UI is just not a good use of anybody’s time. While .NET developers do have a wealth of UI components to light up apps, architectural decisions may limit choice of UI – what developers want is complete flexibility to mix & match UI as per app needs.
 
Uno Platform provides automatic access to all UI components coming from Microsoft and its 3rd party ecosystem – all UI controls from WinUI, Windows Community Toolkit, or open-source projects developed for WinUI 2/3 or UWP will just work with Uno Platform. Uno Platform also allows for embedding .NET MAUI-specific UI controls from all leading 3rd party vendors like Syncfusion, Grial Kit, Telerik, DevExpress, Esri, Grape City, and the .NET MAUI Community Toolkit. In addition to hundreds of UI controls available, Uno Toolkit offers a set of higher-level UI components designed specifically for multi-platform responsive apps.

Design Patterns

Based on who you ask, coding design patterns are considered rather useful or bit of a pain – usually if there is friction, you’re holding it wrong. Over time, best practices emerge in any development stack and for C#/XAML codebases, the Model-View-ViewModel (MVVM) pattern has proved to be efficient in maintaining sanity for big codebases. Modern developers, however, often subscribe to the Model-View-Update (MVU) mindset for simplifying boilerplate code – .NET developers are often caught frozen in deciding which design pattern would serve them best.

 

Uno Platform comes with built-in support for two design patterns – a traditional MVVM and a modern MVUX. MVVM support comes baked with full two-way data binding, dependency properties and navigation – C#/XAML developers can feel right at home. The Model-View-Update-eXtended (MVUX) pattern is a specific implementation that encourages the flow of immutable data in a single direction – data binding support is built-in. Too much freedom can be paralyzing at times – Uno Platform provides lots of sample apps and templates, made both ways with MVVM & MVUX, so developers can choose what works best for given apps.

Tooling Flexibility

Productive developers often have strong preferences – it is ok to be passionate about programming paradigms and tooling. Most .NET developers building native mobile/desktop apps prefer XAML as an UI markup language, but a growing number lean towards fluent style of defining app visual tree in C#. Modern .NET developer machines could be running Windows/macOS/Linux and developers also demand complete independence in choosing which development IDE they use. What’s important is for development platforms to be tooling agnostic and allowing disparate preferences work together seamlessly.

 

With Uno Platform, developers have the choice of building polished cross-platform UI with concise declarative UI markup using a modern XAML-centric syntax or declarative-style C# markup – both approaches are supported out of box with mix & match allowed. Developers also have complete freedom with IDEs – Visual Studio, VS Code and Rider provide consistent experiences on Windows/macOS/Linux, with GitHub Codespaces & GitPod enabling developer experiences online. Uno Platform is non-judgemental, enabling developer productivity however desired.

Conclusion

Modern .NET is welcoming to all developers and takes them places, offering flexibility and platform reach. However, the best thing about .NET might just be the wonderful ecosystem – a vibrant passionate community that extends the .NET reach with rich frameworks/tooling and making developers significantly more productive.

“We love Uno Platform as part of the .NET ecosystem and are very happy to see them advance things in .NET by contributing to the project as well as building on top of it.”

Uno Platform and Uno Platform Studio take the .NET cross-platform game to the next level – developers need not trust anyone’s word, just try things themselves.

Let’s go build the next amazing thing. Cheers developers!

Next Steps

Ready to boost your productivity and simplify cross-platform .NET development? Try Uno Platform today by downloading our extension for your preferred IDE and join our developer community.
Related Posts

Uno Platform 5.2 LIVE Webinar – Today at 3 PM EST – Watch