Dev environment 2016. Windows.
Published on:
I’ve changed a job last month and had to build up my dev environment from scratch again. While doing that I decided to write down some thoughts about it.
I guess it might be interesting to look back at some point and see how does it evolve.
Background
At my previous employer, we were very into Virtual Machines. We had different base VMs which every developer can download.
That’s extremely handy when a new hire has nothing to do, but to install just a couple of tools that are not standard, and enter some credentials.
You remember those dialogs:
— I can’t build the project. Packages are missing…
— Oh, yep, you need to add this private NuGet feed.
…
— I can’t run the project locally.
— Yeah, I think you need so put these lines into your
hosts
file.
Well, now it’s all gone.
It’s not only limited to this scenario. You want to experiment with a new unstable version of the framework (yes, .NET Core RC-final-almost-stable, I’m talking about you) and you don’t want to mess up with your dev machine?
Just fire a new VM up.
Got a neat idea for a hackathon, but you think that JDK is not what you need on your computer? Giving a tech demo on the local meetup?
A VM comes to the rescue.
Got a new computer? Just copy the VM over and you’re up to speed in 20 minutes.
Back to the topic
So, what do I have on my base VM?
Frameworks
I’m a .NET web developer, so nothing special here:
- .NET framework 4.5.2 and 4.6
- Node.js (npm, gulp)
IDE and editors
- VS 2015 with a set of extensions
- NoGit.
- PVS Studio. A static analysis tool for C#.
- ReSharper. A developer productiviy tool.
- OzCode. A debugging addon for VS. Makes my life much easier.
- SpecFlow. A port of Cucumber.
- ReSharper goes with a handfull of extensions as well
- Rider. A cross-platform C# IDE based on the IntelliJ platform and ReSharper.
- Visual Studio Code with extensions
- C#
- Markdown preview
- Spelling and Grammar checker (being the only non-native speaker in a team is hard :) )
File Managers and command line shell
- Far manager. An old school two panels file manager.
- ConEmu. A powerful and advanced console window.
- Chocolatey package manager. A package manager for Windows.
Source control
GitKraken is quite heavy and not super fast as most of the electron.js based tools are, but I find it’s history tree view very readable. The merge tool is not bad at all.
I do most of the git related operations in git bash, though.
Debugging and profiling
- DotPeek. A free .NET decompiler.
- DotMemory .NET memory profiler.
- WinDbg.
- Fiddler. A free web debugging proxy.
- REST and Http clients. I use two, can’t decide which one I prefer over an other.
- LINQPad A .NET programmer’s playground.
Communication
- Slack
- Skype
Other tools
- FoxitReader. A PDF reader.
- ScreenToGif.
- Paint.NET. A free image and photo editing software.
- IIS and SQL Express
Web tools and services
Besides all the tools above which I have installed locally there are web services I use on a pretty much daily basis.
- requestb.in. An easy to use HTTP request inspector.
- AppVeyor. A free CI/CD service for my open source projects.
- regex101.com. A super awesome regular expressions builder and debugger.
- Toggl. A time tracker.
Batch install
Most of the tools could be installed from Chocolatey gallery.
choco install dotnet4.5.2 linqpad -y
I prefer to have all the tools grouped into .config
files:
<!-- commandline-tools.config -->
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="git" />
<package id="far" />
<package id="nuget.commandline" />
<package id="conemu" />
</packages>
and they could be installed all together.
A call to action
Are there any tools around which are worth to try?
Please share in comments. I’m always keen on trying new things.