Build together, debug together. Join the community on Discord.→

How To Create A New Solution Using Uno Platform’s App Template From Visual Studio

We recently announced our 4.8 release and in it, the new startup experience. The release was jam-packed with new features, and we wanted to highlight the new project creation experience in a dedicated blog because it is so crucial to our project.  

Why Make the Change in Visual Studio New Project Creation?

If you’ve followed Uno Platform, you’ll have noticed it’s evolved beyond a simple UI framework into a full-fledged productivity platform for .NET developers, which expands beyond UI. In addition to UI capabilities, Uno Platform offers an extensive range of extensions, theming libraries, and add-on tooling for VS Code and Figma. However, with our rapid release cycle of 6-8 times per year, it can be difficult for developers to keep up with new tooling and optimize their workflow. So we wanted to change that.

The technology stack we unify and build upon, including .NET, Visual Studio, and WinUI/WinAppSDK, has undergone rapid change, making it challenging for end developers to navigate and assemble all the necessary pieces with the correct versions. In response to feedback from our roadmap survey, we’re thrilled to announce the new Solution Template Wizard for Visual Studio. This visual, user-friendly tool will automatically configure your project to your exact preferences and allows you to use as many or as few Uno Platform features as you’d like.

Let me explain each piece.

Screen 0: Select a Preset or Customize Your Own Uno Platform Project

Uno Platform is designed to be modular in order to allow you to leverage as many, or as few pieces of it as you’d like.

“Default” Option and Why You Should Choose It

The “Default” preset brings you all the bells and whistles; it is what our team uses when creating new client projects. This sets the Material theme as default, and references Uno Toolkit as well as a number of components from Uno.Extensions such as dependency injection, navigation and reactive MVUX (an extended version of MVU that supports data binding).

You’ll see more details about each option we pre-selected in this preset as we provide explanations for each customization option in the sections that follow.

Especially if you are just exploring Uno Platform, we recommend this preset for the simple reason that you will immediately be in a position to build and deploy apps that run everywhere with everything Uno Platform has to offer.

“Blank” Option – The Minimal Setup

Alternatively, the “Blank” preset gives you a minimal Uno Platform project that still targets the main platforms (iOS, Android, MacCatalyst, Windows, Web and GTK) but doesn’t reference any additional components.

If neither preset works for you, you can use the Customize option. You can start with either the Blank preset and add components or the Default preset and remove or customize the components. Either way, you can tailor the template to include the components that make sense for your project.

We are app builders and developers ourselves and understand that modularity and avoiding lock-in is crucial for any developer when considering which platform to adopt.

So, while we hope most of you would go for the Default option 😊, the “Blank Solution” allows you to start from a minimal setup with only the latest released version of .NET (as of today, .NET 7) and XAML included. It then allows you to build your custom solution through a series of 10 screens.

Screen 1: Select .NET Version

While we recommend the latest stable .NET, we also move hand-in hand with newest previews of .NET so that Uno Platform is compatible with the latest RTM version as close to day-0 as possible. With this customization option we allow you to experiment with latest .NET while taking care of your project set up for your optimal experience.  

Screen 2: Select Target Platforms

While this screen is reasonably self-explanatory, the hidden gem with Uno Platform is that it allows you to target some targets in multiple ways – all at zero development time for you – how’s that for flexibility?

For example, you can target MacOS as either MacCatalyst or Skia GTK.

And of course, if you need to, you can add more target platforms after your project is created by following these docs.

Fun Fact: The Uno Platform Solution Template wizard itself is an WinAppSDK application using WinUI with Material theme and Uno Extensions!

Screen 3: Presentation Pattern Selection

This step gives you a choice about using MVVM (e.g. MVVM Toolkit) or Uno Platform’s MVUX and Feeds. Again, we recommend our MVUX approach, but we understand developers need flexibility.

To learn more about our MVUX approach and why we developed it please see official docs or see MVUX segment of UnoConf 2021 when they were announced.

Screen 4: Will You Need WASM Deployment

This screen allows adding a Server project for APIs and hosting for the WebAssembly project.

Most of the users host their WebApps on Azure or Amazon AWS, so we created those respective docs.

Screen 5: Decide on Testing Strategy

When setting up your project with Uno Platform’s new app template wizard, you may need to decide between using unit tests or UI tests. You can use unit tests, typically faster and less complex, or UI tests, which can provide more comprehensive coverage but may take longer to execute. The choice will depend on the specific needs of your project and testing goals.

Screen 6: Setup Add-On Tooling

Screen 7: Uno Extensions Selection

Reuse battle-tested code blocks for commonly used functions. Pick and choose which of the Uno.Extensions you want to use within your application.

Screen 8:Application Properties

The Application Properties section allows you to set the Application Id for the application which will be used to set platform specific properties, such as the bundle ID for iOS.

Screen 9: Theme Your App with Material or Fluent Design System

The Uno.Material theme is great for making applications that have a great look and feel out of the box. Alternatively, you can use the Fluent theme, which is the default for WinUI based applications.

Click Create

Regardless of the path you took, clicking on Create will create your project in Visual Studio and also launch a web page with useful resources such as tutorials and learning resources; so don’t be quick to close it.

About Uno Platform

For those new to the Uno Platform, it allows for creating pixel-perfect, single-source C# and XAML apps that run natively on Windows, iOS, Android, macOS, Linux and Web via WebAssembly. In addition, it offers Figma integration for design-development handoff and a set of extensions to bootstrap your projects. Uno Platform is free, open-source (Apache 2.0), and available on GitHub.

Next Steps

To try out the new experience please update your packages to 4.8 via your Visual Studio NuGet package manager and let us know your feedback at info@platform.uno!

If you are new to Uno Platform, following our official getting started guide is the best way to get started. (5 min to complete)

Share this post:

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