ThingWorx Edge .NET SDK > Installing and Navigating the Directories of the ThingWorx Edge .NET SDK > Create Your Application with the .NET SDK
  
Create Your Application with the .NET SDK
This section provides an outline of the basic workflow that you can follow to develop an application that uses the ThingWorx .NET SDK.
* 
For more information on the classes and methods used here, see the section, ThingWorx Edge .NET SDK Reference. You must add a reference to the ThingWorx-dotnet-common.dll.
1. Create a class that extends the VirtualThing class. This class represents a thing that has been created on the ThingWorx platform with the RemoteThing thing template, and is the foundation that sets up the properties, services, and event subscriptions for the client application. These properties, services and events become accessible from the ThingWorx platform when the client application is bound to the corresponding thing on the ThingWorx platform. You can create several VirtualThing classes and use several at a time.
2. Add properties, services, and event subscriptions to the extended VirtualThing class that you are creating by doing either of the following:
Use annotations. It is preferable to use annotations for well-known properties, services, and events that do not change.
Directly call methods in code. It is preferable to use methods for areas where annotations are not supported or for properties, services, and events that do change frequently.
3. Create an instance of the ClientConfigurator class. The ClientConfigurator class contains settings that the ConnectedThingClient uses to connect to the ThingWorx platform, using the AlwaysOn protocol, and control its behavior.
4. At a minimum level, set the Uri and the properties of the SecurityClaims class. Optionally, set the Reconnect Interval, and Name properties of the ClientConfigurator instance.
5. Create an instance of the ConnectedThingClientClass, passing in the instance of the ClientConfigurator class you created. The ConnectedThingClient class contains methods that manage the connection to the ThingWorx platform.
6. Create an instance of the VirtualThing class you created.
7. Execute the bindThing method of the ConnectedThingClient class, passing in the VirtualThing instance. The bindThing method binds the properties, services, and events of the VirtualThing with the ThingWorx platform.
8. Execute the start method of the ConnectedThingClient class, which starts the message processing and connection monitoring tasks.
9. Add the custom functionality you want to implement for your machine/device.
* 
If your client is long-running, you may want to include a form of loop to handle processing, such as connect, perform an operation, and then disconnect. The processing logic you choose depends upon the specific requirements of your solution.
10. Execute the shutdown method of the ConnectedThingClient class, which stops the message processing and connection monitoring tasks.