My assignments in this Microsoft shop call for declarative and/or imperative code in the following languages:
- C#: we're using version 2.0 of the .NET framework
- SQL: both DDL and DML; we do most of our development against SQL Server, but we also support Oracle
- HTML: the app itself uses XHTML 1.0 Transitional, and the generated surveys are HTML 4.0 Transitional
We use the little languages regular expressions and XPath expressions. ASP.NET markup to declare a server control or to code a @Page directive is a little language too, but isn't it interesting that it doesn't have its own name?
We have legacy code that uses Delphi and XSL/T.
At any given moment, my desktop may have windows open for the following tools. In the course of a week, it's almost certain that I will use all of these.
- Visual Studio 2005
- SQL Server Management Studio
- Perforce Windows Client, for access to the source code repository
Perforce's means for coding client specs is its own perplexing little language. We depend a lot on the context menu pick Create/Replace Using
- Firefox 2, equipped with ColorZilla, Firebug, Flashblock, View Source Chart, and Web Developer
- Internet Explorer 7, equipped with IE7Pro and IE Developer Toolbar
- a VMware workstation running Internet Explorer 6, for more browser compatibility testing
- Remote Desktop Connections to other servers
- a paint program for managing screen shots: my GUI team lead likes Jasc Paint Shop Pro
- UltraEdit: clunky like a Swiss Army knife with too many blades, but it handles .csv files that Excel can't, and it can make XML readable
- any of two or three different file compression utilities
- a command line
We're starting to use Team City for automated builds. Some people on the team swear by ReSharper, but I find that it just slows down my compile and test cycle. Every once in a while I'll need to pop open the Windows Services manager, or the IIS Manager to set up a new web site. My boss likes Beyond Compare, so it's installed on my machine, but I'm lazy and never bothered to learn how to use it; I depend on the default comparison tool provided by Perforce. Now that I look in there, I see that there's a lot of stuff in my Start Menu that I've never used. And sometimes I'll have a pattern-search chore than I can't use Visual Studio or Windows Explorer's Search for (maybe wading through web server log files), and then I'm glad that I have a copy of Windows Grep.
Third Party Controls and Libraries
For everything from managing Ajax interactions, to business graphics, to file-format translations, to fancy web controls, we license tools from ComponentArt, Dundas, Aspose, Telerik, and Steema Software. And, as I posted earlier, we built the Community Builder Module with DotNetNuke.
When I log in, Microsoft Outlook and AOL Instant Messenger automatically launch. I treat IM software as a necessary evil, as most of the rest of the team likes to use it.
We use FogBugz for bug tracking, and we've just started using its integrated wiki for documenting procedures, tracking issues that are more complicated than individual software defects, and advance planning. I really prefer wiki software that puts you in control of the final product (like MediaWiki, which powers Wikipedia), but we chose a tool that could be picked up by a broad base of users.
Lest we forget, for project specs and planning: Microsoft Office, primarily Word, Excel, and Project, with a smattering of Visio.
Sitting on my desk, holding up my telephone, is a PC running Windows Server 2003. The shelf over my monitors is holding about a dozen books, but I only pull out three or four of them. The one I go for most is Spainhour & Eckstein's Webmaster in a Nutshell. For more details, I rely on my Safari subscription. And, perhaps most importantly, a big desk pad loaded with paper.