.NET Development
- Visual Studio – The sine qua non of .NET development, Visual Studio has grown into a mature and capable IDE. Yes, it’s expensive — but Microsoft offers pared-down express versions that are more than adequate for learning or personal development. Unfortunately, Visual Studio lacks in a few areas that older IDEs, specifically in the Java community, excel in. Ergo, the most excellent Visual Studio plugin, ReSharper.
- ReSharper – This is the King of Visual Studio plugins. Its suite of refactoring options, powerful live templating system, real-time code inspections, sensible key bindings, build-in unit test runner, code completion and code navigation tools all come in one salient, reasonably priced package that should tantalize any developer worth his or her salt. And just when you thought it couldn’t get any better, ReSharper also supports a handful of free plugins for other technologies such as NHibernate.
- Red Gate .NET Reflector – This fantastic tool, originally written by Lutz Roeder, allows developers to peer inside the dark recesses of .NET assemblies. It leverages Microsoft’s disassembly tools to spill the IL guts of any .NET binary, which can be extremely helpful as an API reference or learning tool. It’s extensible interface and host of add-ins are just more icing on the cake.
- Hibernating Rhinos Profilers (NHProf, EFProf, L2SProf, LLBGenProf) - Ayende Rahien is one of my heroes, if for no other reason that the sheer amount of quality code he can create in a short amount of time. He is the Chief Brain behind NHibernate, and has written indispensable profilers for NHibernate, Entity Framework, LINQ to SQL, and LLBGen Pro. If you’ve used any ORM, you know that retrieving complex object graphs from a datastore can be tricky. The profiling products show developers what goes on under the hood in terms of session statistics and ORM-generated SQL. If you want to learn an ORM, or just want to tweak them for maximum performance, the *Prof tools are your friend.
- NDepend – Have you ever wondered why the projects you work on are so rigid and fragile? The bad news is: it’s because your design sucks. The good news is: NDepend will help you turn that smoldering wreckage into a finely tuned machine. By applying software metric algorithms to your code, NDepend can identify unhealthy dependencies between assemblies, types, and members, all within Visual Studio. Its custom query language allows developers to search a code base with specific metric criteria. It has more ways to visualize metric data than a fly has photoreceptor units in its compound eyes (well, ok, maybe not–but you get the point). If you want to create maintainable, extensible code, NDepend should be in your toolbox.
PHP Development
- Zend Studio – Produced by Zend, “the PHP company”, this IDE borne of sweat, tears, and blood is a hammer in a world of nails. Built on the Eclipse IDE framework, Zend Studio is a full-featured IDE with all the bells and whistles a good developer would expect from such a tool.
- NetBeans – Usually NetBeans is recognized as a superb Java IDE, but since Java and PHP tend to make good bedfellows, the good developers over at the NetBeans project have graciously extended its functionality and produced a formidable PHP plugin for the NetBeans IDE.
- Symfony – Those who think PHP is a toy language have never worked with Symfony. A robust, rich, and powerful web framework, Symfony has set the pace for other web frameworks within, and outside of the PHP community. It is a complete implementation of the classic MVC pattern, and forces a strict segregation between application logic and the user interface. It has native AJAX support, boasts compatibility with no less than three PHP database abstraction layers (PDO, Propel, and Doctrine), provides a PHP unit test runner, a cascading configuration scheme that will melt your brain, and a host of plugins to provide security, DHTML user interface components, third-party application integration, etc.
General Tools
- Enterprise Architect – Early in my career I was convinced it was worthwhile to learn UML. Good diagrams can be powerful communication mediums for sharing abstract concepts in a quick and efficient manner. Enterprise Architect is probably the most affordable comprehensive UML modeling tool on the market. It makes Visio look like a coloring book, and while there are good free and open source modeling alternatives, EA has a suite of powerful features that make it a compelling purchase.
- Dia — One of the best alternatives to Enterprise Architect is Dia, a free multi-platform diagram drawing program. If you’re looking for something to make quick UML diagrams, and don’t need all the sophistication of Enterprise Architect or the emotional reassurance of Visio, Dia is an excellent choice.
- RegexBuddy – If you want to learn regular expressions, or you need an anvil on which to forge regular expression steel, this is the tool for you. It is a complete parsing engine that walks a developer, step-by-step, through the creation of an expression, and allows a developer to thoroughly test a regular expression’s accuracy and efficiency. RegexBuddy also has a grepping engine that will search through files for strings matching expressions, a large library of commonly used expressions (email address, phone number, url, etc.), and a debugging system for determining exactly where an expression stops matching sample text.
- Evernote – A “freemium” note-taking product, Evernote lets users organize their thoughts and notes in electronic “notebooks” which can be edited with Evernote’s desktop application, or from anywhere an internet connection is present via Evernote’s web interface. When I started organizing my mountain of miscellaneous text files and started taking notes on various topics, I evaluated Evernote and Microsoft OneNote. Although OneNote is a superior desktop product and provides greater control over note layout and formatting, Microsoft’s web implementation is still rather weak, and as yet there is no iPhone support for OneNote. In contrast, Evernote’s interface is simpler, but the web experience is very close to the desktop experience and does a decent job maintaining layout and formatting. Evernote also has an iPhone application and various Chrome extensions which are handy for snipping web pages.
- Console2 – A “replacement” for the Windows command line shell. Console2 has a very nice tabbed interface which supports different shells (CMD, PowerShell, Bash, etc.). In addition, you can resize the window by dragging, and copy/paste text directly from the shell window.
- VirtuaWin – On of the features I love in desktop Linux distributions is virtual workspaces. By hitting a few keys, a single screen can essentially become four or more virtual screens, and you can move windows around to each in order to keep your programs organized. Happily there is an open source project called VirtuaWin that brings this functionality to the otherwise mundane Windows workspace. It is especially useful for laptops, where the absence of multiple monitors can be a serious work impediment.
Source Control
Git
Subversion
Social Networking
- Twitter and TweetDeck – When my wife first convinced me to use Twitter, I thought it was a lame Facebook knockoff for the emo kids who whine about life and spammers who insult my intelligence. That is, until I downloaded Tweetdeck, and realized I could create custom searches on cool terms like #csharp, #dotnet, #resharper, #nhibernate, #vs2010, etc., and see what the world of tweeting individuals had to say about such topics, in real time. I’ve made some acquaintances, learned some new things, bookmarked a few links, and subscribed to new blogs, all because of Twitter.
August 30, 2009 at 3:13 pm
[...] Tools [...]