Working in Visual Studio
Introduction
Developing Starcounter applications is straightforward and not tied to any certain development environment. Applications targeting .NET are normally built using Visual Studio, but would work using just msbuild
or even the C# compiler too.
In Visual Studio, applications can be built using a Starcounter Visual Studio extension, or just using standard Visual Studio templates such as the C# "Console Application" project template.
Using the Visual Studio Extension
Starcounter provides a Visual Studio extension to simplify the development of Starcounter applications. It provide templates to build on and the ability to start applications from Visual Studio. The extension can either be installed during the installation process of Starcounter by choosing that as an option, or by manually downloading and installing it from the Visual Studio Marketplace.
To read more about the recent changes and a step by step guide to create starcounter application, refer to the annoucement about Starcounter.VisualStudio 3.0.0.
Templates
There are currently two project templates and three item templates included in the extension.
Project templates:
The project templates are used to scaffold projects that target Starcounter. When instantiated, the project will have some default Starcounter-specific assembly references set up and include some build hooks that will aid in building. For more information on the specifics, see section about creating applications using standard templates later in this text.
Project templates include:
Starcounter Application
Starcounter Class Library
Item templates:
Starcounter HTML template with dom-bind
Starcounter Typed JSON
Starcounter Typed JSON with code-behind
Starcounter Application Template
The Starcounter application template is the starting point to creating applications with Starcounter. It contains four references: Starcounter
, Starcounter.Internal
, Starcounter.Logging
, and Starcounter.XSON
. Additionally, it comes with a boilerplate Program.cs
file that looks like this:
Starcounter Class Library
The Starcounter class library template is the starting point for creating a shared data model to use across applications. For example, the Simplified DLL that is used to provide a shared data model to the Starcounter sample apps is built with this template. It contains the same references as the Starcounter application template. This is how the boilerplate Program.cs
file looks:
Starcounter HTML Template with dom-bind
This item templates gives a starting point for creating HTML view definitions with Polymer.
It contains the following code:
Starcounter Typed JSON
This template is the starting point for creating a view-model definition using JSON-by-example. It is simply an empty .json
file containing an empty JSON object:
Starcounter Typed JSON with code-behind
This template is the same as the Starcounter Typed JSON file, except that it also provides a code-behind file. Thus, two files are created with this template, .json
and .json.cs
.
The .json
file is identical to the Starcounter Type JSON file. The .json.cs
file contains the following code:
Starting Applications From Visual Studio
With the Visual Studio Extension, apps can be started directly from the development environment. This is done the same way any other application would be started from Visual Studio, by clicking the Start
button or f5.
Further instructions on starting applications in Visual Studio can be found in Starting and Stopping Apps. There it is also described how it is possible to set particular arguments on application start from Debug
-> MyApp Properties
-> Debug
.
Using Standard Visual Studio
As was established in the introduction, the Visual Studio extension (or even Visual Studio) is not a requirement for building and running Starcounter applications. You could very well create applications using just a text editor and msbuild, or even the compiler.
In this section, we'll see how to work with applications using just standard Visual Studio.
Create a Starcounter App with Standard Templates
Using the standard C# "Console Application" project, we can turn that into a proper Starcounter application with these simple steps:
Create the project, name it for example "Hello".
Edit the
Hello.csproj
Add references to Starcounter assemblies.
Add an import to the Starcounter .targets file.
Hello.csproj
(snippet showing additions)
Without the extension, you can't start the application project simply from within Visual Studio. Luckily, it's easily done using tooling being part of Starcounter.
Open a command line prompt.
CD to the directory of your built application.
Run
star Hello.exe
.
Exceptions
ScErrAppDeployedEditionLibrary (SCERR12019)
Starcounter throws SCERR12019
if you add a Starcounter assembly, such as Starcounter.Extensions
that's found in C:\Program Files\Starcounter\Public Assemblies
. To fix this, change the Copy Local
property of the added assembly to false
.
Last updated