To get started with Linux you may use WSL that 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:
- 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
- All backslashes in filepaths replaced with Path.DirectorySeparatorChar
- CompactCE connection reads registry and fails on WSL
- Model checksum is built on modelcontent with a stringbuilder that use \r\n on windows and \n on linux - causing checksum diff
- Issues with localhost cert forces all tests to be done over http
- Issues with sending parameters via WSL2-VS-Start ; workaround: program checks for environmentvariable "mdrivenserverport" - if found we use it over http
Issues on Turnkey:
- Path.DirectorySeparatorChar
- Issues with sending parameters via WSL2-VS-Start ; workaround: program checks for environmentvariable "mdriventurnkeyport" - if found we use it over http