Building Open Source PopMedNet

This article proceeds from the assumption that you are building and deploying on Windows 10 Pro 64-bit architecture. Update and restart Windows 10 to make it up to date.

Required Software

Download and install the following software.

  1. Visual Studio Community Edition 2019 or above. Select .NET Desktop Developer, ASP.NET & Web Developer during installation.
  2. Clone the latest PMN from Github.com/PopMedNet-Team/popmednet.
  3. .NET Framework 4.8 Dev Pack or above from dotnet.microsoft.com/download/dotnet-framework/net48.
  4. .NET 3.5 Runtime (includes 2.0 and 3.0) from https://dotnet.microsoft.com/download/dotnet-framework/net35-sp1.
  5. WiX (Windows Installer XML) and Wix Toolset VS 2019 extension from wixtoolset.org.
  6. NPM (as part of Node.js LTS) from https://nodejs.org/en/.
  7. MVC5 is now integrated into the solution and does not have to be downloaded separately.
  8. SQL Server 2016 using defaults. May want mixed authentication mode for development purposes. Enable FILESTREAM, which you could do after SQL Server installation using SQL Server Configuration Manager using https://docs.microsoft.com/en-us/sql/relational-databases/blob/enable-and-configure-filestream. You will also need to also download and install SQL Server Management Studio. Restart SQL Service. 

Building DataMart Client and Installer

The following instruction builds the DataMart Client and its installer.

  1. Load the Lpp.Adapters solution and rebuild the solution.
    1. The starter project is Lpp.Dns.DataMart.Client. You may run the DataMart Client from this starter project without installing it from the installer built in step 2.
  2. Load the Lpp.Installer solution. 
    1. Do NOT load DataMartClientChecker project when asked at launch. Modify its csproj and change 4.6.2 references to 4.7.2. Then load the project.
    2. Build the solution. Installer MSI is built to Lpp.DataMartClientInstaller\bin\Debug\Lpp.DataMartClientInstaller.msi.
    3. Run Lpp.DataMartClientInstaller.msi to installer the DataMart Client application.
    4. Verify that the installed DataMart Client runs by launching it.

Building PopMedNet

To run PopMedNet, the API and Portal sites have to be running. The following instruction builds the PopMedNet API and Portal.

  1. Restore PMN starter database.
  2. Rename API and Portal's ConnectionStrings-template.config to ConnectionStrings.config. Edit to point to database restored in step 1 using explicit login or integrated security. Leave only "DataContext" if there are multiple multiple connection strings.
    1. Integrated Security: <add name="DataContext" ... ; Integrated Security=SSPI; ... />
    2. Explicit Login: <add name="DataContext" ...; User ID=...; Password=...; ... />
  3. Load and rebuild Lpp.Dns.Api solution.
  4. Run Lpp.Dns.Api starter project. Successful run will show the API help page.
  5. Load DistributedNetworkSolutions solution (Portal).
    1. REBUILD the solution - it is very important to rebuild, not build the solution.
  6. Run Lpp.Dns.Portal starter project. Successful run will show the Portal login page.
  7. To manually deploy API and Portal to IIS, create the IIS sites and copy the appropriate contents from the solutions over:
    1. API: App_Data, Areas, bin, Scripts, Global.asax. Also copy the following files and edit them appropriately: ConnectionStrings.config, web.config.
    2. Portal: App_Code, Areas, bin, Content, DataMartClient, DataMartSampleData, images, js, scripts, Views, Global.asax. Also copy the following files and edit them appropriately: ConnectionStrings.config, web.config.
  8. Login to PMN Portal as SystemAdministrator. Default password is "Password1!".

Deprecated Files

The following files are either obsolete or no longer relevant and will be removed in future releases.

  1. PopMedNet Build.doc needs to be updated and will be replaced by this wiki.
  2. README.md should be updated to point to a wiki with up to date information.
  3. README.md reference to starter database is out of date. Should be replaced by a StarterDB.
  4. Resources solution is no longer necessary and not available.