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"
Add-MpPreference -ExclusionPath "C:\ProgramData\Docker"
Add-MpPreference -ExclusionPath "C:\Program Files\Docker"
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 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.
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.