WSL Windows subsystem for Linux

To get started with Linux you may use WSL. WSL is the Windows SubSystem for Linux that is built into Windows10.

Make sure you have the feature on ; Turn windows features on or off -> Windows Subsystem for Linux

Once you have it on you need a Linux install; we use Ubuntu (20.10 at the time of writing)

wget https://packages.microsoft.com/config/ubuntu/20.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

You then install .net core (we use .net core 3.1)

sudo apt-get update; \  
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-3.1

This is a good overview: https://weblog.west-wind.com/posts/2017/apr/13/running-net-core-apps-under-windows-subsystem-for-linux-bash-for-windows

Remember that your c disk is found here  /mnt/c/

WSL2

WSL2 offers better interaction between Visual Studio and WSL; read more here https://docs.microsoft.com/en-us/visualstudio/debugger/debug-dotnet-core-in-wsl-2?view=vs-2019

Had to install the “.Net Core Debugging with WSL 2” component in Visual Studio Installer (Visual Studio Edition->Modify->Individual Components->.Net Core Debugging with WSL 2

Build MDrivenServer

You need to register a nuget package source to find the VistaDB packages not available on nuget site, this is needed only once:

sudo dotnet nuget add source /mnt/c/capableobjectswush/Xternal/VistaDB --name  XternatVistaDB    

Build the a sln; navigate to the directory, then:

sudo dotnet build

To start MDrivenServer project, navigate to directory:

sudo dotnet run -port=5001 -nohttps
What issues have been identified on MDrivenServer:
  1. CompactCE is a windows only embedded database - we are looking to replace with a license version of VistaDB. If file App_Data/UseVistaDBIfThisFileExists.xml exists we will now use VistaDB instead of CompactCE
  2. All backslashes in filepaths replaced with Path.DirectorySeparatorChar
  3. CompactCE connection reads registry and fails on WSL
  4. Model checksum is built on modelcontent with a stringbuilder that use \r\n on windows and \n on linux - causing checksum diff
  5. Issues with localhost cert forces all tests to be done over http
  6. Issues with sending parameters via WSL2-VS-Start ; workaround: program checks for environmentvariable "mdrivenserverport" - if found we use it over http
Issues on Turnkey:
  1. Path.DirectorySeparatorChar
  2. Issues with sending parameters via WSL2-VS-Start ; workaround: program checks for environmentvariable "mdriventurnkeyport" - if found we use it over http
This page was edited 44 days ago on 03/26/2024. What links here