The Virtuoso core development workflow, as described in the Introduction to the Core Framework, provides capabilities that can be useful for any application development, however one of its most obvious application is in the virtualization of embedded systems. Thus, Virtuoso is often referred to as an embedded systems virtual device framework.

Virtuoso was specifically designed to be the most effective workflow possible for the development of embedded systems, incorporating careful selection of every aspect of its architecture to maximize efficiency and power for the embedded developer.

The documentation consists of this written documentation as well as video tutorials, with example projects to show both framework concepts and to demonstrate the use of the Virtuoso content library. The written documentation consists of a conceptual overview of how the framework works in the “How It Works” section, as well as a step-by-step guide that will allow you to learn the mechanics of the framework in a short amount of time. It is recommended that you go through the conceptual overview and step-by-step guides to ensure that you fully understand the benefits, speed, and efficiency of the workflow as well as to understand the possibilities for how it can improve the workflow specific to your business.

This written documentation section is provided primarily for those that wish to develop their own custom virtual devices from scratch, typically professional organizations using it to develop a custom embedded system. Developers using off-the-shelf virtual devices with pre-virtualized hardware platforms will not need to review most of this information in depth. Organizations with only embedded in-house programming experience will find that any experienced WPF developer can be contracted to get most embedded virtual devices up and running quickly using Virtuoso.

Before you dive in, there is something important to note. For those learning Virtuoso and are coming from a background of embedded programming, 99% of what you need to know just involves understanding the basics of C#, Visual Studio, and basic orientation to how the Windows Presentation Foundation and the MVVM design pattern work. Much of the documentation of Virtuoso is an elaboration behind the underlying rationale for why these newer design patterns have evolved, however it is important to not get bogged down in the details. Rather, we recommend that you get a basic familiarity with what WPF, XAML, and MVVM are, and then focus on example projects, so that as you follow along with setting up basic model configurations, views, and view models, the design patterns will stand out more and more. The effort spent in learning Virtuoso is predominantly an effort in learning these design patterns, and these skills are directly translatable professionally; in fact, Virtuoso is an excellent way to learn the C#/.NET/XAML/MVVM design pattern. Learning these design patterns and technologies is *NOT* a requirement to using Virtuoso. However, we do encourage that you use your time getting familiarized with Virtuoso as a spring-board into learning C#, WPF, XAML, and MVVM, and then integrate other concepts such as dependency injection and inversion of control patterns as well as game engine concepts (if you so choose!).

If you haven’t set up Virtuoso yet, proceed to the Account Management section, create a Montage account, get a trial license, and then go through the Quickstart Guide section to verify your setup. If you are set up and ready to go, up next is the How It Works section.