TABLE OF CONTENT
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.