A .NET web server that can plot the positions of aircraft on a map
C# TypeScript JavaScript HTML PLpgSQL CSS Batchfile
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Dependencies NewtonsoftJson is now managed via NuGet Mar 16, 2017
Graphics Added a button for editing items in the lists Jul 27, 2014
InterfaceFactory Add shortcuts for Factory.Singleton to Factory Feb 26, 2018
Plugin.BaseStationDatabaseWriter Previews now report beta version but use release version for update c… Jun 24, 2018
Plugin.CustomContent Previews now report beta version but use release version for update c… Jun 24, 2018
Plugin.DatabaseEditor Previews now report beta version but use release version for update c… Jun 24, 2018
Plugin.DisableAudio Previews now report beta version but use release version for update c… Jun 24, 2018
Plugin.DisableUPnP Previews now report beta version but use release version for update c… Jun 24, 2018
Plugin.FeedFilter Add web admin support to feed filter plugin Jun 29, 2018
Plugin.SqlServer Previews now report beta version but use release version for update c… Jun 24, 2018
Plugin.WebAdmin Add missing section header Jun 24, 2018
SQLiteWrapper.DotNet.AnyCPU Add Web API 2 support Mar 18, 2017
SQLiteWrapper.DotNet Add Web API 2 support Mar 18, 2017
SQLiteWrapper.Mono Add Web API 2 support Mar 18, 2017
Test Show beta version on aircraft list tooltip Jun 24, 2018
ThirdParty Tidy up VS task list, rearrange deck chairs Aug 14, 2017
Utilities/BaseStationImport Previews now report beta version but use release version for update c… Jun 24, 2018
VirtualRadar-Service Replaced Factory.Singleton calls with shorter version Feb 26, 2018
VirtualRadar.Database Ensure that no accidental aircraft lookup updates can slip through to… Apr 22, 2018
VirtualRadar.Headless Previews now report beta version but use release version for update c… Jun 24, 2018
VirtualRadar.Interface Fix spelling Jul 12, 2018
VirtualRadar.Interop Replaced Factory.Singleton calls with shorter version Feb 26, 2018
VirtualRadar.Library Log startup now shows short version and beta indicator Jun 24, 2018
VirtualRadar.Localisation Previews now report beta version but use release version for update c… Jun 24, 2018
VirtualRadar.Owin Port Leaflet support from 2.4.2 Jun 23, 2018
VirtualRadar.Resources Switched over to .NET 4.6.1 Aug 22, 2016
VirtualRadar.WebServer.HttpListener Replaced Factory.Singleton calls with shorter version Feb 26, 2018
VirtualRadar.WebServer Replaced Factory.Singleton calls with shorter version Feb 26, 2018
VirtualRadar.WebSite Port Leaflet support from 2.4.2 Jun 23, 2018
VirtualRadar.WinForms Previews now report beta version but use release version for update c… Jun 24, 2018
VirtualRadar Previews now report beta version but use release version for update c… Jun 24, 2018
.gitattributes Remove TFS bindings and switch over to git Aug 9, 2016
.gitignore Added Checksums.txt to .gitignore Aug 9, 2016
LICENSE.md Fleshed out markdown for license and readme Aug 9, 2016
LICENSE.txt Added the UI to manage users May 10, 2014
LocalTestRun.testrunconfig Added the UI to manage users May 10, 2014
README.md Add overview May 6, 2018
VirtualRadar.sln Moved BaseStation import into command-line utility Dec 23, 2017
VirtualRadar.vsmdi Fixed, or applied fixes for, all failing tests Sep 6, 2015
WebEssentials-Settings.json Markers are now loaded as images from the web site folders rather tha… Jul 25, 2015

README.md

Virtual Radar Server

You will need Visual Studio 2017 to build the program. The free Community version of Visual Studio will work just fine. You can download the installer for it from here:

TypeScript

When you install VS2017 (or upgrade it) be sure to select TypeScript 2.3 on the Individual Components tab.

If you get TypeScript errors when compiling then go into the properties for VirtualRadar.WebSite and open the TypeScript tab. If it says that the version is "2.3 (unavailable)" then quit Visual Studio, run the installer, click More | Modify, go to Individual Components and install TypeScript 2.3.

Earlier versions of Visual Studio

Virtual Radar Server targets .NET 4.6.1 and TypeScript 2.3. It also makes use of language features from C# 6.

You can probably use versions of Visual Studio 2015 as long as you install the .NET 4.6.1 targeting pack and TypeScript 2.3, but I haven't tried it.

Overview

  • InterfaceFactory: Exposes a static class called Factory that can create new instances of classes that implement interfaces. Used everywhere.
  • VirtualRadar.Interface: Where all of the interfaces, enums, attributes and simple helper classes live. Everything has a reference to this.
  • VirtualRadar.Library: Where most of the implementations of the interfaces live.
  • VirtualRadar: The executable assembly.
  • VirtualRadar.Database: Implementations of database interfaces.
  • VirtualRadar.Headless: Implementations of GUI elements that direct output to the console rather than a Winforms window. The main executable will use these implementations if it's started with the -nogui switch.
  • VirtualRadar.Interop: There isn't much interop in VRS but what little there is lives here.
  • VirtualRadar.Localisation: Where all of the translations for the main program live except for plugin translations (each plugin maintains its own RESX files) and the web site translations (which have ended up in .WebSite). Also has classes for manipulating string resources.
  • VirtualRadar.Owin: Where all of the OWIN middleware lives as well as classes for building the OWIN pipeline in a controlled manner.
  • VirtualRadar.Resources: Where all of the embedded images, files etc. live.
  • VirtualRadar.WebServer: When VRS had its own web server built around HttpListener it lived here. That web server has been replaced by Microsoft's Katana web server for OWIN and it's just peripheral web classes that remain.
  • VirtualRadar.WebServer.HttpListener: Implementations of the web server interface that use Microsoft's HttpListener-based host for OWIN middleware.
  • VirtualRadar.WebSite: The web server and web site content are kept separate. This is where the web site content lives.
  • VirtualRadar.WinForms: Where all of the dialog boxes and windows used by the program live.
  • VirtualRadar.Service: The executable that can install / uninstall VRS as a service, and is also the entry point for the service.
  • Plugin.*: Optional plugins.