Skip to main content Skip to footer

From zero to hero setup a .NET web development machine fast

I must be getting old, I found the Windows 10 reinstall super easy and efficient. I didn't spend hours tweaking floppy disks to get just the right amount of 640kb of ram to be able to install. Or insert one floppy disk after another as the install progressed. 

This youngens don't understand the pain of proper installs ;-) 

I jest, but seriously you can get this stuff done so fast. I had a Windows 10 machine with all the dev tools in two hours (that's including Windwos 10 install).

Run this Powershell script as admin

You did check what it did first right? It downloads Chocolatey to your machine. Then enables IIS and installs URL Rewrite and Web Deploy modules.

Tell Windows Defender to bog off. These lines are examples of some things you might want to consider telling Windows Defender to not scan. You will probably want to do the same with your Antivirus whatever that is.

Add-MpPreference -ExclusionPath "C:\Windows\Microsoft.NET"
Add-MpPreference -ExclusionPath "c:\data"
Add-MpPreference -ExclusionPath "c:\solr"
Add-MpPreference -ExclusionPath "c:\inetpub\wwwroot\"
Add-MpPreference -ExclusionPath "c:\Program Files (x86)\MongoDB"
Add-MpPreference -ExclusionPath "c:\databases"

Depending on circumstances you might want to off load some of the work load from your drive C: to somewhere else. Don't forget you can sym link drives.

 

mklink /J "c:\data" "e:\data"
mklink /J "c:\solr" "e:\solr"
mklink /J "c:\inetpub\wwwroot\someclientfolder" "D:\wwwroot\someclientfolder"
mklink /J "c:\Program Files (x86)\MongoDB" "e:\Program Files (x86)\MongoDB"
mklink /J "c:\databases" "e:\databases"

Doing this the website still thinks its on drive C: yet is actually somewhere else. 

The advantages of this are with sites that have hardcoded paths will "just work" nothing needs changing. 

You can install all your normal work stuff with a few commands.

choco install nodejs.install --version=
npm install -g grunt-cli
choco install slack
choco install whatsapp
choco install javaruntime
choco install winrar
choco install googlechrome
choco install notepadplusplus.install
choco install visualstudio2022community
choco install steam-client
choco install mongodb
choco install sql-server-management-studio
choco install sql-server-2019 --params="'/ConfigurationFile:C:\Users\user\Desktop\configurationfile.ini'"
choco install geforce-experience
choco install dotnetcore-3.1-sdk
choco install kdiff3
choco install netfx-4.5.2-devpack
Install-WindowsFeature Telnet-Client
choco install azure-cli

The command for SQL Server you can pass it a configuration file. This can be generated to follow any guide lines you like by running the normal installer and walking through it till you get to the "Ready to deploy" step. That step will have a file path to the configuration file it will use for the install like the one linked above.

If you want docker we can do that too.

choco install docker-desktop
choco install wsl2
Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All

The first line installs Docker for Windows, the second the linux containers sub system, and the third the windows containers.

After installation you might also want to set it as Windows Containers and change its location for images to take the load off the windows drive. This is done like this

{
  "data-root": "e:\\DockerImages",
  "dns": [
    "8.8.8.8"
  ],
  "experimental": false
}

Click the cog icon in Docker for Windows, then Docker Engine change the json however you like click save.

You might also want to set PowerShell to let you run any PowerShell you like using:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

All of the above should hopefully get you going. It's crazy how quickly you can get this stuff done now and hopefully the above tips will help speed up your next setup.

About the author

Richard Brisley

I'm a multi-award winning Sitecore developer. Currently working for Sagittarius Marketing as a solutions architect to understand customer needs and produce multi-national high-performance websites.

About Me

As a Tech Lead for Sagittarius marketing who I have been with for the last twelve years. I oversee a team of seven working pods, including numerous developers and contractors in multiple global locations. This involves supporting the developers with coding issues, meetings and phone calls with their clients and going out of pitches with potential new clients.

I have extensive experience building and supporting Sitecore websites from Sitecore 6+ including Helix pattern, I scored 100% in the Sitecore 7 certification exam. Experience managing and maintaining SQL Server, integration with numerous third parties such as Salesforce, AppDynamics, New Relic, Dynamics CRM and many payment gateways.

The first Sitecore website I developed was Skiweekends which was architected and developed by me. It won the Sitecore Experience Award the main award during the Sitecore Experience awards ceremony and the Sitecore Best Travel & Tourism award. I also was lucky enough to perform the first Sitecore 8 upgrade within the United Kingdom for Liberon.

Personally I have had the honour of being recognised in several award ceremonies. Including the BIMA 100 awards in 2019 in the Tech Trailblazers category and previously in the Dev's and Makers category. I’ve been highly commended twice in the Wirehive 100 Techie of the Year awards. Due to my involvement in many aspects of Sagittarius work, many of the awards for their clients I've also been involved in.