2015-01-28

Here is my (mostly) comprehensive list of tools I use for development, either at home or work.  It’s like Scott Hanselman’s, but focused almost purely on development, with a couple of extras.  While you’re at it, go check his out.  All opinions are my own and are not bought or sold.

The Main Stuff

Visual Studio – king of IDEs and the essential tool for .NET devs everywhere. Not much else to say except that it has a great starting toolset for any developer and amazing plugin support.  The Community edition, new as of a couple of months ago, gives the masses the power of VS Professional, for free.  Simply amazing and getting better with every release.

SQL Server Management Studio – it ranges from a useful IDE for SQL to a huge time saver for things like table creation and script generation.  The DROP and CREATE tools are awesome for generating scripts for tables, stored procs and more, and the Execution Plan viewer can be very helpful when trying to optimize expensive queries.  The Express edition has most of the tools required to manage a day-to-day SQL Server installation just fine.  One of the best database management tools available.

SQL Server Profiler – for when I’m having a hard time figuring out exactly how well a SQL query is running or when the SQL that’s being emitted from Entity Framework is not immediately known to me, I always turn to Profiler.  Used it to find a show-stopping SQL query on more than one occasion.

LINQPad– write LINQ queries using the best .NET code scratchpad on the market.  It’s not a complete replacement for SQL Management Studio, but for complex queries with lots of data, it’s my first choice.  The Premium edition is a steal and makes this essential tool 5 times more useful with C# autocomplete, NuGet, and cross-database query support.  Plus, it’s great for those one-off tests for code behaviors that you might need a quick refresher on. LINQPad’s author, Joe Albihari, is always adding new features – most recently an integrated debugger.

NimbleText– thanks to Scott Hanselman, I have found this program – and my new favorite way to write repetitive code or handle small or large data transformation tasks.  I’ve used it from everything from writing HTML to generating SQL insert scripts.  Its time-saving power cannot be understated.  And, it’s FREE!

Notepad++ – my text editor of choice.  Decent plugin support, syntax highlighting, and instant right-click, edit for any file in Windows Explorer.  (Yeah, I know dev-favorite Sublime Text has these things too, but Notepad++ was my first and it fits my needs nicely.)

SourceTree– an essential tool for Git users on Windows.  I just started using Git (yeah, I know I’m late to the party) and SourceTree has made the transition from TFS to Git that much more smooth.  Not perfect, but very helpful.

dotPeek– my favorite way to decompile .NET code, free from JetBrains.  It even has the ability to break a .NET DLL/EXE down into a fully-structured Visual Studio project!  (I actually have a client whose previous developer wouldn’t hand over the source code for their main application, and dotPeek made the decompile way more convenient.)

Postman (Chrome extension)– my second-favorite way to test HTTP services is Postman.  Postman has an easy-to-use interface and provides a straightforward way to make HTTP requests.

Fiddler– the essential tool for viewing and diagnosing HTTP requests that are happening on your machine.  Turn on SSL decryption and see previously-unknown HTTPS requests decrypted before your eyes.  Use it to view incoming and outgoing HTTP requests in real time.  Turn it into a proxy and send a device’s HTTP requests through it to test devices within your network.  Replay captured HTTP requests with its Composer system.  Fiddler’s amazing abilities cannot be understated.  It’s helped me diagnose and fix more problems with HTTP services than any other tool.

Google Chrome – I used to use Firefox exclusively, but stopped after it started feeling bloated, buggy, and crash-happy.  Chrome’s dev tools are better than Firebug, which I also found to be frustrating and slow.  Plus, it has much better plugin and app support.

Visual Studio add-ins

ReSharper– perhaps the most essential tool for .NET devs around the world.  Amazing refactoring that puts Visual Studio’s default refactoring capabilities to shame.  Code generation that makes writing constructors, methods, or pretty much anything a snap.  Search tools that makes navigation through code effortless.  A built-in test runner that makes running and viewing tests a breeze.  A code analysis tool to help you find mistakes and potential pitfalls in your code.  Built-in added support and intellisense for common frameworks such as ASP.NET MVC.  It is truly the god of all Visual Studio plugins.  Go download it and tell your friends.

OzCode– if you’re a C# developer (and let’s face it, you probably are) then you need OzCode.  It’s a newcomer on the plugin scene, but it’s already a staple in my book.  It turns debugging from a necessary chore to a borderline delight.  Break down code expressions, highlight the most needed data in an object, compare data between two objects, find all objects of a given type in memory, and exceptional exception handling make OzCode a star – and that’s just the tip of the iceberg.  Check it out – it’s still on sale for the first 5,000 buyers!

Web Essentials – a great tool by Mads Kristensen of Microsoft – it’s his personal testbed for new web-based Visual Studio features.  Features things like quick HTML typing using ZenCoding, a link between the browser and Visual Studio for seeing immediate changes to your changed HTML/CSS, better intellisense for CSS/HTML/JavaScript, bundling and minifying, and so much more.  Install it and watch your productivity in web development go to 10.

Productivity Power Tools – a nice suite of add-ins to Visual Studio that just make your life easier.  CTRL + click on a method/property/class name to go directly to the definition of that item.  See what files are throwing compiler errors in Solution Explorer.  See your file changes, errors, warnings and more using their color-coded visualizers.  Download it for free and enjoy, it’s awesome.

VSCommands– adds a lot of little useful things to Visual Studio, like coloring the lines in the output window and allowing you to easily group files within Visual Studio’s Solutions Explorer – I love this for grouping page-specific JavaScript to its parent page.  It also shows you the first line of a code block at the block’s terminator – a really handy feature when looking at heavily-nested code.

Frameworks

Web

ASP.NET MVC – the new standard for writing client-or-internal-facing apps with the .NET stack on the web.  WebForms, move aside.  Scaffold your website easily using Entity Framework, MVC and Bootstrap for a quick and beautiful development experience.

ASP.NET Web API – built on top of MVC, Web API makes spinning up an RESTful API a breeze.  Host it in IIS or self-host on top of OWIN (this works great with Topshelf.)  Use it to power everything from your mobile app to your single-page application, powered by your favorite JavaScript frontend framework.  Versatile and fun to use.

SignalR– the easiest and most powerful way to create an excellent realtime experience for the web or anything that can connect over HTTP.  I personally used it to power realtime text message communications between a Xamarin-powered mobile app as well as a desktop app.

AngularJS – the one-stop shop for creating an excellent SPA experience.  Everyone has been coming out of the woodwork recently saying that Angular 1.x is going to be irrelevant soon because of 2.x and all of its breaking changes, or that it’s not right for some particular job, or that it’s too opinionated/slow/difficult to master.  Angular isn’t always easy, but once you learn its principles and constructs (especially directives) you’ll find that it’s a powerful framework for making SPA apps.  Extend it with easy-to-use frameworks such as AngularUI Bootstrap for things like datepickers, autocompletes, and modals.  If you’re using ASP.NET, you can start with Hot Towel Angular, which is a great starting point for an Angular-based SPA – it provides a good demonstration of how projects should be structured as well as a starting page to build from.

jQuery– a great set of tools for manipulating elements and data on your web page.  Still used in most places on the web.  Personally, I use it for everything from animation to creating simple AJAX-powered views where the additional weight of a SPA framework is inappropriate.

Mobile

Xamarin– my personal favorite way to create an awesome mobile experience using the C# dev stack.  Pricey, but worth it if you’re a .NET-powered firm looking to get into mobile development, as the time you save not having to learn Obj-C/Swift and Java is major.  Use Xamarin.Forms to create mobile views for all major mobile platforms and share a 90% common codebase.

Data access

Entity Framework– my favorite way to access a database, period.  Use LINQ to communicate with your database, create your data views using attributed POCOs and easily update your model with Migrations.  It’s not for everyone, but it’s fast enough for most use cases and getting better every day.

Dapper– when I want a way to quickly access a database using SQL, Dapper has my back.  Deceptively simple API for what turns out to be a very fast way to access data.  Powers the data access layer behind StackExchange, one of the highest traffic websites on the planet.

General

Newtonsoft.JSON – the standard for JSON serializing and deserializing in .NET.  Used everywhere.  Go and buy him a beer – James Newton-King has made all of our lives easier.

TopShelf– when spinning up a Windows service using .NET, nothing is faster and easier than TopShelf.  Utilize its Fluent API to quickly and painlessly create a Window service, fast, in a manner that’s self-documenting.

RabbitMQ– when you need a reliable messaging queue for your suite of applications, RabbitMQ is a strong choice.  If using .NET, EasyNetQ makes the experience that much easier – it abstracts the most difficult parts away into message passing via POCOs.

Underscore.JS– my favorite JavaScript framework for object manipulation and collection traversing/ transformation.  It’s not as nice as LINQ, but it has a decent chaining syntax and is very feature-complete.  Lodash is another alternative that seems to be drop-in compatible with some extra functions.

Moment.js – Dates in JavaScript are harder than they need to be.  Moment.js makes it that much less difficult by providing a simple and powerful date API.  Usually my second web project add-in (first being Underscore, of course.)

Little stuff

F.lux – changes the color temperature of your monitors at night.  A small thing but makes night programming much easier on the eyes.

Paint.NET – a fast, free paint tool written using .NET.

WinRAR– my choice for compression.  Yeah, I know Scott Hanselman recommends 7Zip, but 7Zip’s context menu requires two clicks – WinRAR’s only requires one.

Treesize Free – a great cleanup tool for those who have constrained hard drive space.

LastPass– a wonderful password manager that makes managing logins a much easier endeavor.  When you’re in IT, you know how crucial it is to keep track of passwords and LastPass makes that much much easier.

Links

*Dew Drop *– my favorite link aggregation site.  It’s my daily morning check.  (Morning Brew isn’t as comprehensive, but is still a decent resource.)

TheDailyWTF– avoid making WTFs of your own by reviewing others’ mistakes and bad practices.  The writing lately has been sometimes ridiculous, but the core of it is still pretty good.

Reddit– I subscribe to r/programming, r/dotnet and a handful of other useful programming-related subreddits.  Useful for a quick mid-day browse when you need to look away from Visual Studio for 5 minutes.

Hacker News – not necessarily programming focused, but it has some interesting tech-related topics.  I just started reading this recently.  Clearly, I’ve missed the party for a long time.

StackExchange– if StackExchange doesn’t have an answer to your programming question or problem, then you’re probably on your own.  Learn from the wisdom of others’ mistakes and find quick, elegant solutions to your programming problems.  Chase down those obscure exceptions.  If you haven’t used it, then you’ve never used Google to solve a problem.

Scott Hanselman’s Blog – Scott Hanselman is my main man.  His blog posts are always interesting and valuable and his contributions to the Microsoft dev world cannot be understated.

Follow schneidenbach

Show more