This blog has been moved to Redwerb.com.

Showing posts with label tools. Show all posts
Showing posts with label tools. Show all posts

Monday, July 16, 2007

SlickRun Review

Summertime has really effected my blogging schedule. I've been spending my freetime working on a website for my neighborhood and building a garden wall. I'm almost done with the wall, but we might end up extending it another 30 feet, so we'll see.

Just recently I've started using a tool called SlickRun. It's a very simple tool that is essentially just a textbox (no form, buttons, etc). It allows you to type in commands similar to the Run (Win+R) dialog built into Windows. The cool thing about SlickRun however, is that you can also add "MagicWords" to it so that you can perform more complex commands with a single word.

SlickRunConfig There are plenty of configuration options for SlickRun to get it to look and work the way you want (see the screenshot to the right). You can even setup SlickRun to run instead of the Windows Run dialog. This is a little tricky since you have to edit the config file (I'm not sure why this setting isn't in the SlickRun config dialog), but once you set it up, when you press Win+R you get SlickRun!

Instructions to setup SlickRun to handle Win+R in Vista
  1. Install SlickRun
  2. Open Windows Explorer (Win+E)
  3. Navigate to your profile directory (C:\Users\<MyUserName>\AppData\Roaming\SlickRun) - AppData is a hidden folder, however, you should be able to type in the path directly.
  4. Open the SlickRun.ini file in your favorite text editor
  5. Locate the GrabWinR setting and change the value to 1 (GrabWinR=1)
    SlickRunIni
  6. Save the changes

Thursday, June 14, 2007

Making the Build

AutomatedBuild I am of the belief that an automated build process is perhaps the most essential element in producing a quality software application. The build process can be used to enforce good practices within the development team and also detect any issues within the application in a timely manner (the sooner you know about a problem, the less code you have to look at to determine what caused it). Even a small team with a simple application can benefit from an automated build process.

Recently I've gotten the opportunity to recreate the build process for the company I work for. The product is over 5 years old, is fairly large and complex (well over 200 separate .Net projects as well as database and legacy code), and has grown a fairly complicated build process using a combination of batch files and custom executables.

The main reason for recreating the build process is due to the difficulty of maintaining it. There were quite a few batch files and it wasn't easy to run. We averaged a build about once a week (builds should be run several times a day, nightly at most) and the unit tests weren't run very often and if they were, the results often times weren't published (it could be months before you find out a unit test no longer works and then who knows what changed that broke it).

I started building my own build software using Windows Workflow (see my April 28th post, Windows Workflow and Your Next Build System). Although it probably could work and is a great way to learn Windows Workflow, I soon remembered one of my life rules, always use the right tool for the job.

I decided to try FinalBuilder instead and boy am I glad I did. FinalBuilder (FB from here on) is a great build tool. They have dozens (maybe hundreds) of different actions (that's what they call activities or tasks) available to use, such as MSBuild, get from VSS, run SQL, update AssemblyInfo, NUnit, send email, etc. They also allow you to write script (either VBScript or JavaScript) that is run during the build. If that isn't enough for you, you can also create your own custom actions using .Net (or other supported languages).

I've looked at several of the build tools available out there today (especially the free ones :) such as MSBuild and NAnt and the thing that strikes me about these tools is that they seem to be designed for full time build engineers. I don't have time to figure out how to setup these tools let alone write a complete build process using them. Perhaps even more frustrating is that I actually did take the time to learn MSBuild at one point and had done some interesting things with it, however, I couldn't tell you the first thing about MSBuild anymore. I wouldn't use MSBuild to create an entire build process for the same reason I wouldn't use Perl to write an entire ERP system (write only code doesn't work well in a complex, constantly evolving product).

I am not sure if it would have taken longer to create the build process using another technology (such as MSBuild or batch files) or not, but the big benefit in using FB is in the ability to maintain it months later and, if I'm lucky, by somebody other than myself (I definitely don't want to be the "build" guy).

I'm sure there are other great build tools out there. If you know of one, feel free to leave a comment (I always love to find out about new tools :). I plan on writing another article within the next week or two that has more concrete tips for creating a build process (perhaps even some source code), so stay tuned.

Sunday, June 03, 2007

Dispatch - Visual Studio 2005 FTP Upload

I've been working on a website for my home owners association (HOA from here on) recently (converting it to ASP.Net). The website includes tons of documents (pdfs and such) and pages (it includes PHPBB). As you can probably imagine, whenever I make a change to the site, I need to upload it to the web host.

Now perhaps I didn't have it configured properly, but I found the FTP support in Visual Studio 2005 (VS from here on) to be woefully inadequate. Perhaps I didn't have it configured right, but it seems that VS wanted to upload the entire website every time I published it. Not only that, but VS completely froze while it did this (no feedback to the user on progress and couldn't do anything else while it was uploading). This might be ok if you only have 1 or 2 files, but when you have hundreds of files, some of them quite large, this is absurd.

The HOA site is currently hosted by Yahoo! Small Business hosting (no, this is not where the ASP.Net 2 hosting is going to be). Yahoo! provides a tool called Yahoo! Site Builder to help build your website. Overall I find the tool crap (though perhaps it is great for users without several years of web development experience), however, their publishing mechanism is great. It keeps track of the files that have been modified and only uploads those.

Well, obviously the VS FTP support was not going to work for me, so I went to Google and hunted down a tool that would provide better support. I found Dispatch. Dispatch is a simple plug-in to VS that keeps track of which files have been updated and allows you to upload those files to the server without causing VS to freeze while you do so and also provided nice feedback on the progress as well.

Dispatch also provides the ability to download remote items as well. Unfortunately it's not obvious how to do that. You first need to right-click on a folder and select "Show Remote View Overlay" and then you get download options. I can understand the need for that (it needs to establish the remote connection in order to do that), but it would be nice to have some sort of contextual help to let you know what is going on. For instance, provide the same context menu whether or not they have connected. If the user hasn't connected yet, prompt to see if they want to.

I don't think that Dispatch would work well in a team environment, but I doubt if a project being developed by a team would require FTP upload. At $15, Dispatch seems to be priced for hobbyists anyway. Overall, I think that Dispatch is a great plugin for VS. It's what Microsoft should have done. If you are working on a website and don't require the formality of a complex build process, Dispatch will make your life much simpler.

I should mention that I also use Beyond Compare for FTP access to the HOA site. It allows me to view what files are different between the local and remote copies and also allows me to view what those differences are. Very handy when you aren't sure what version is accurate or if you don't remember what you changed. Now if only Dispatch had a mechanism to hook up a file diff tool such as Beyond Compare, that would really be something!

Thursday, May 31, 2007

Windows Live Writer Beta 2 Now Available

The last Windows Live Writer blog post was dated November 21 10:41 AM. That is until yesterday, May 30 2:59 PM, when they announced a new beta was being released (Windows Live Writer Beta 2 Now Available). I haven't had a chance to try it out yet, I just found out about it, but I am looking forward to it.

The big question is why did it take over 6 months to update their blog much less to just release another beta? Is this project just one guy working on it in his (or her) spare time? Or is this a serious project that Microsoft is committed to? It would be nice to know the answer to this question so I can properly set my expectations.

One of the new features that I'm looking forward to is the support for Blogger labels. Currently I have to edit my blog post in Blogger after I've posted it using Live Writer in order to apply the labels. This is problematic for a number of reasons. One, it's a pain. Two, I often forget. And three, it messes with my web tracking.

I will definitely be posting a review after I've had a chance to play with it. Stay tuned :).

Saturday, May 12, 2007

Team Foundation Server is Cool, but a Bit Underwhelming

I had the opportunity to evaluate Microsoft Team Foundation Server (TFS from here on) over the last week and I have to say, I'm not as excited about it as I was before. Don't get me wrong, I think TFS is compelling, it's got a lot of great features and they seem to be very well integrated with one another and with Visual Studio. However, it seems to be suffering from an acute case of versiononeitus (though I don't think it's terminal).

My main object was to evaluate the Team Foundation Build (TB from here on) for our product. TB is based on MSBuild. Anything you can do in MSBuild you can do in TB. As far as I can tell, TB is just a way to start a remote MSBuild process and report the results. It is well integrated into the IDE which makes it easy to know the status of the build at any given time.

Unfortunately, because it is based on MSBuild, it is very difficult to configure. MSBuild is a very powerful build system, however, it is not exactly simple to understand. For companies that have a full time, dedicated build engineer, MSBuild is probably great, otherwise, it is difficult to learn and it's easy to forget if you don't use it often (we tend to update the build process about once a year or so). I was not able to find a tool that would allow me to configure an MSBuild project, hopefully somebody is building one.

I have a love/hate relationship with the version control (VC from here on) in TFS as well. It has some very nice, advanced features that are missing from VSS. One of my favorites are shelves. A shelf is a place to put code before it is actually checked in. Other developers can access the shelf if they want (which is great for buddy testing).

Unfortunately, it is lacking in some basic usability features. For instance, depending on context, there are many different menu options that can be disabled and it's not always obvious why they are disabled. If you are used to VSS, trying to figure out how to create a directory in source control can be very frustrating. I think you have to map a workspace (which is similar to working directories in VSS, but slightly different), but it took me a few days to figure that out (and I'm still not sure if that's it or not). If this is the case, why do they have the menu option disabled? Why can't I just map a workspace when I'm creating the directory?

One of the nice things about VSS is that the directory structure in VSS does not have to match your directory structure on your local machine. Our VSS structure at work tends to be a bit deep for the local machine, so we map a couple of different VSS directories to the same directory on the local machine. When I tried to do that with VC, it refused to allow me to do that.

I did not evaluate the issue tracking, but I did glance at it. It certainly seems to be a much better issue tracking system then the one we're using at work now (it's a home-grown system).

If my company was more willing to spend a lot more time and money on TFS, I'm sure I would be able to get it working to suit our needs very well, however, they're not. I had about a week to evaluate it and put something together that would be functional.

Overall, I really like TFS. There are many products on the market that do similar things and are well integrated, however, none of them seem to do everything (most of them miss the build aspect). I am really looking forward for version 3 (the magic number in software) of Team Foundation Server.

Friday, April 27, 2007

Speakeasy Connection Speed Test

Here's a fun tool I found out about recently. It's an online utility that tests your connection speed. It basically just downloads a file and gives you a download speed and then uploads a file and gives you an upload speed. However, they have a pretty slick interface, check it out below.

Speakeasy Connection Speed test

Friday, April 13, 2007

Visual Assist X

I can't believe I haven't blogged about Visual Assist X (VAX from here on) yet! It is one of my favorite developer tools and has changed the way I write code.

VAX is an add-on to Visual Studio that provides a number of features that helps developers be more productive. My favorite feature is the Intellisense filtering. Intellisense is one of the greatest productivity enhancements for developers since the advent of the IDE, however, it can sometimes be difficult to find what you want in the list. VAX filters the Intellisense so that you can find what you want.

For instance, if you have a class that has hundreds of methods including one called DoSomethingReallyCool and you need to call it but can only remember that it contains the word 'Cool' somewhere in it, with typical Intellisense, you have to search every single member of the class. However, with VAX, you just type in 'MyVariable.Cool' and Intellisense will filter the list to include all the members with the word 'Cool' in it (the home page of their website shows this very well).

Using this filtering technology, you can also type 'MyVariable.DSRC' + Tab and it will auto complete for you! Once you become used to this you will find yourself typing far fewer characters. It's like snippets without having to setup snippets.

The Intellisense filtering makes VAX worth every penny of the cost, however, it also includes some other great features...
  • Spell Check - Who doesn't need a spelling checker? VAX will check your strings and comments. It seems to be smart enough to recognize code names in your comments.
  • Enhanced Code Element Visualization - Adds more colors and styles (like bold and italics) to different code elements.
  • Reference Navigation - Provides the ability to navigate to code that references a class, class member, or variable. Very handy when trying to fix a bug in somebody elses code :).

VAX also includes a bunch of other features, but these are the ones that I use most often and have really helped me be more productive. If you like productivity tools, this is definitely one that you should be using.

Tuesday, March 13, 2007

Portable Applications

If you haven't heard yet, portable applications are the new cool thing! Portable applications run from a portable device (usually a USB thumb drive). Typically you install a application launcher on the device and this launcher automatically runs when you connect the device to a computer.

There are many different applications that can be run from a portable device. Some of the more interesting ones include Firefox, OpenOffice (similar to Microsoft Office), Thunderbird (a news/email reader), and many more. One of my favorites is RoboForm2Go (password manager, discussed below).

There are also a number of different application launchers. Portable Apps seems to be a popular (and free) launcher. U3 came installed on the thumb drive I just purchased and it seems to work fairly well. I'm not sure about Portable Apps, but U3 requires a special installation format. However, if you know an application can be portable, you can easily create a U3 installation package by downloading a program called PackageFactory for U3 (ironically, this is not a portable application).

I've been wanting to use portable applications for awhile now and last night I took the plunge. For under $50 I got a 2GB thumb drive that came with an application launcher (U3) and several applications. My primary goal was basically to have a portable password manager and news reader.

The password manager was the most important thing. I have been using a password manager called Billeo for several months. It was nice that I didn't have to remember all of my passwords for all the different sites I visit, but Billeo is basically an Internet bill paying service and they use the password manager to try to get customers. I don't mind the marketing gimmick, but it did mean that the password manager included features I didn't intend to use and thought that perhaps a software company that focused on a password manager might have a better password manager (though Billeo did work very well). Plus, Billeo is not a portable app, so I had to install it on my machine at home and work and then train it (login to a website and save the password) in both places.

The thumb drive came with a password manager, but it didn't work very well. I ended up installing RoboForm2Go instead. RoboForm2Go has all the features I expect in a password manager. Basically, it automatically fills in passwords for me :). It also can be used to populate web forms with common data (such as shipping/billing info). The data can be secured with a master password so that in order to populate the form, you must enter a master password first. With passwords you can protect some and allow others to just automatically populate (for instance, you might want to protect your bank password, but you might not care about your favorite news sites password). RoboForm2Go also includes the ability to have different identities. This is used primarily for filling out forms. You might have one identity with your personal information in it and another for your work information (address, phone, credit card number, etc).

Thunderbird was the other important portable application for me. I subscribe to a number of RSS feeds. Thunderbird has been my RSS reader of choice because I like the preview window. However, the problem with the standard version is that if I wanted to read RSS feeds at home, I wouldn't be able to know which feeds I've already read. Portable Thunderbird solves this problem. I can open Thunderbird from my thumb drive at work or home without having to deal with this issue.

So what portable applications do I have installed?

  • CruzerSync U3 Edition - Backup software that came with the device. I'm not sure if I'll use this or not. It's nice backup software, but I've got a USB backup drive for that (which I believe this is the same software I use for it, though named differently).
  • Process Explorer - This is an advanced version of Windows Task Manager (Ctrl+Shift+Esc). I use it mainly to make comments on what is running on my machine. This allows me to know what all of the software on my machine is for (I hate unknown processes). What I am hoping for (but haven't verified yet) is that the comments are stored in a way that are portable with the application. Probably not, but we'll see.
  • Snippet Compiler - This is a very cool .Net tool that allows you to quickly and easily test out code without having to create a project or anything like that. I just found it and haven't had much of a chance to play with it, but it seems interesting.
  • Color Cop - Allows you to pick colors off of the screen. Very handy when trying to match a color. It gives the value in many different formats so it is easy to import into just about any application that is requesting a color code.
  • RoboForm2Go - This is a password manager (discussed in detail above).
  • Lutz Roeder's .Net Reflector - This is a must-have tool for any .Net developer. It allows you to decompile .Net assemblies and read the code in whatever .Net language you choose (C#, VB.Net, etc). I have used this frequently to learn how different parts of the .Net framework work.
  • Notepad2 - Very similar to Notepad (the text editor built into Windows), but with a few extra features and more reliable. What's nice about Notepad2 is that it is not trying to be a code editor or anything else.
  • avast! antivirus - This is a free antivirus utility. It has gotten a lot of positive feedback, but I already have an antivirus, so it's unlikely I will use it.

Wednesday, February 14, 2007

NLog, NUnit, NDoc, NAnt. DotNet development tools brought to you by the letter N.

Do all developer tools that target the .Net platform need to start with N? Ok, I have to admit that it makes it easy to identify .Net developer tools and that I might be influenced by the naming convention when looking for such tools.

For instance, the other day I was looking for a good .Net library for logging and found a few that looked interesting. The one I decided to download and install was NLog.

NLog Project

Although I don't have much experience with NLog yet (or experience with other logging libraries for that matter), I like what I've seen so far. Within a few minutes of installing it, I was logging simple messages. I was able to figure out how to log different levels of messages (simply call different methods on the logger) and how to change what gets logged.

NLog uses a XML config file that is separate from the application config file which is very convenient for portability reasons (I can send somebody a NLog config file and not have it mess up their app settings). It also has a XSD file that makes it very easy to discover the elements and attributes that are available.

According to the website, NLog claims that their interface is similar to Log4Net (a port of the log4j framework for java by the Apache Software Foundation), but simpler to configure and use.

The main gripe I have with it is the documentation. Perhaps I just haven't spent enough time with it to understand how it's put together, but for the most part, the documentation seems to be comprised of a dump of the code comments with a couple of incomplete tutorials thrown in. Of course, lack of good documentation for development tools is as common as development tools that start with the letter N.

Wednesday, January 31, 2007

Vista has been released! (it's about time)

Vista has been officially released to the public. It's taken a long time and many of the original features promised have been cut, but overall, it looks like a pretty exciting upgrade to XP (though I probably won't upgrade until I get a new computer). The thing I'm most excited about is the ability to search for applications and documents from the start bar (I know you can install 3rd party applications to do this, but it's nice that it's built-in). Windows Sidebar and Gadgets look cool too (I use Google sidebar now and really like it).

Bill Gates was featured on the Daily Show last night (Jan 29th). It was pretty funny but not all that informative (no answer to what the F12 key does).

Several other Microsoft products were released along with the official release of Vista. Most notably, PowerShell! If you thought I was going to say Office, you are reading the wrong blog :).

2007 is shaping up to be an interesting year in software. I can't wait to see what is coming. Expressions Suite is one software package that comes to mind. If we are lucky, Visual Studio Orcas might make it as well. Roger Jennings has a good post on release dates associated with Orcas. Orcas RTM to Slip from 2007 to 2008?

Friday, January 12, 2007

The Great 2006 Software Review

2006 was a great year for software. I thought I would make my first post of the new year as a review of the software that was released last year that caught my interest. This is software that I think will have an impact on the world (some big, some small). It is not necessarily software that I use on a regular basis (or at all :).

I know I'm going to miss some great software, so please feel free to post anything I might have missed.

NOTE: Most of the links go to the original announcements. Some are official press releases, others are just blog entries.

Google Bookmarks (via the toolbar) - January 30th

Everybody that uses a browser knows what bookmarks are (also known as favorites). The Google difference is that these bookmarks are stored online, but are accessible through the Google toolbar in the browser.

I love being able to share my bookmarks between home and work and that I don't have to remember to back them up before I get a new computer.

Google Calendar - April 13th

My wife and I now share a calendar. This is a very convenient way to communicate events between us. There is also a very handy Google calendar gadget for the Google Sidebar that shows me the calendar right on my desktop at work so I always know what's coming up.

Windows Live Writer (beta) - August 11th

I'm using this software write now to create this post. It is a very nice blog entry tool. There are still a few kinks to work out, but overall it's great! It was very easy to set it up to upload my posts to my blog.

Firebird 2.0 RC3 - August 13th

This is a great database. It's reliable, performs well, easy to use, and it's free with no limitations. I've been using the previous version of the DB for close to a year and have been very impressed with it.

Of course most people need more than a command-line utility to create and manage a database (not to mention testing it). IBExpert is a great commercial product with a free version for individual developers (it's limited, but you can still do a lot of stuff with it). If you've used SQL Server Enterprise Manager you can probably imagine what features it has (I actually believe that IBExpert has more features than SQL Server Enterprise Manager).

Logitech MX Revolution Mouse - August 24th

Ok, this isn't software, but I'm still damn excited about it! Mostly it's the flywheel for scrolling. It actually switches between a flywheel and ratchet (standard scroll wheel behavior) depending on the application you are using.

PowerShell RC 2 - September 26th

Command-line + .Net, what's not to like :). If they can fix the performance issues, I'm sure that many Windows admins are going to be very happy people.

Google Docs & Spreadsheets - October 11th

The future of the office software suite is here! Google has created an Internet based document editor (like Word) and spreadsheet application (like Excel). They allow for a high degree of collaboration, including the ability to work on the same document at the same time and receive live updates, almost like an instant messenger program (as rumor has it anyway, I haven't had the opportunity to see that work).

Internet Explorer 7 - October 18th

It's about time Microsoft updated its browser! They have done a great job of cleaning up the UI and providing the features that experienced web surfers have come to expect (such as tabbed browsing).

Firefox 2 - October 25th

I am very impressed with the improvements that have been made in such a short amount of time by an open-source project. It's great to see a viable alternative to Internet Explorer (if for no other reason than to encourage Microsoft to keep its browser up to date).

Microsoft Windows Desktop Search 3.0 - October 25th

This is the most effective way to search your Outlook email that I'm aware of. It also searches other documents (including MS Office) on your system as well. It's easy to use, fast, and produces good results.

.Net 3 (including WPF and WCF) - November 6th

These technologies will definitely have an impact on the world, especially Windows Presentation Foundation (WPF), though it may take a few years for the hardware to catch up. Expect to see some amazing consumer applications coming out soon.

Basically the WPF (not to be confused with WTF) allows designers to create graphically intense (including animations) user interfaces quickly and easily. .Net 3 comes installed on Windows Vista and can also be installed on Windows XP and Windows 2003 Server.

Windows Vista - November 8th

Microsoft's new OS is possibly one of the best yet (based on the presentations I've had of it anyway). It has some great features for security and usability. As I look into my crystal ball, I see a new computer with Windows Vista on it in my future :).

I really looking forward to Windows Home Server. Home Server is essentially an appliance that you can hook up to your network for file sharing and other nifty things (it's a full version of Windows Vista). Unfortunately it's not due out until the second half of 2007. If you're interested in this, here's a great Ch 9 Video.

SQL Prompt 3 (beta) - ~December 11th

It's about time somebody added Intellisense to my SQL scripts. This has made writing SQL much less painful. I know longer need to scan the object browser every time I need to find a table or field.

Google Patent Search - December 14th

Patent surfing just might be the next big time-waster (ok, probably not). Google has certainly made looking for patents much, much simpler. You can now search for patents from the comfort of your home using Google's excellent search capabilities in order to make sure that your new "great idea" is not already patented.

Again, if you know of something I missed, please post it.

Monday, December 11, 2006

The beta for SQL Prompt 3 is now available

I just installed the beta for SQL Prompt 3 today. For those that don't know what SQL Prompt is, it is basically Intellisense for Query Analyzer. They are currently giving away v2, but they are planning on selling v3 (get v2 while it lasts). If you like Intellisense in Visual Studio and you also write T-SQL, you'll probably appreciate the productivity improvements with SQL Prompt.

They've made some great improvements to the Intellisense dropdown. It is, of course, context sensitive, but it is also organized in categories. It allows you to view just a certain set of candidates (such as columns or functions). It's vaguely reminiscent of Visual Assist X (VA). It would be nice if they made it work more like VA. One of the things I like most about VA is that I can type any part of a method/property/etc and it will list it in the dropdown. If you have a couple of hundred choices, being able to type "order" and getting all of the candidates that include "order" somewhere in the name is very handy!

Another feature that I really like about the new SQL Prompt 3 is the auto-expand. If you type out a stored procedure name, SQL Prompt 3 can automatically expand the statement to include the parameters as well. You can also expand a * to the complete list of columns simply by hitting TAB when the caret is next to the *.

SQL Prompt 3 offers many configurable options to allow you to setup your environment the way you like it. It also includes the ability to add snippets that can be automatically expanded for common or complex SQL statements.

I'm glad they decided to limit the number of products they support. I use Query Analyzer exclusively for writing SQL (I tried using Visual Studio, but could never get used to it). I would much prefer a product that works very well for one or two products than one that almost works ok for a half dozen very different products. One thing I often wonder is why they didn't just create their own IDE for SQL scripts. It seems like it would integrate well with their other products (which I haven't used, but they look intriguing). It would be nice to have a SQL IDE that integrated with VSS. Perhaps they could have even integrated it with Visual Studio (or at least be able to open up Visual Studio projects to get to the SQL scripts embedded in them).

A word of warning, the Automatic Closing Characters feature doesn't work very well. In fact, I had to turn it off. Often times I would type a single tick and it wouldn't add the second tick. However, when I added the second one, it would add a third! Fairly annoying. Even when it did work correctly, it still suffers the same annoying problem as most tools that implement this which is if you type the closing character yourself, you end up having to remove the extras. VA handles this much better. It seems to remember when it automatically adds a closing char and will remove it if you type it yourself (VA is the first tool that I have not turned this feature off).

Another issue that I've seen with SQL Prompt 3 are that the columns in the dropdown cannot be resized. This means I usually only see the first part of the column name and rarely see the column type. I can expand the whole dropdown, but all of the columns expand with it. This means the dropdown has to be absurdly wide in order to show the entire column name (good thing I have a widescreen monitor :).

If red-gate is reading this, a couple of features that I would like to see in the release (at least the next version), are...

  • Expand UPDATE and INSERT statements. It would really save me a lot of time if I was able to type "UPDATE MyTable[TAB]" and have the columns laid out for me similar to the auto-expand feature for stored procedures. It's much easier to delete the ones I don't want (even if it's most of them) than to add the ones I do want.
  • Being able to view a list of references in a script. For instance, view all the lines that use the Employee table or the FirstName column from the Employee table, or the @DoSomething variable.
  • Provide some SQL refactoring capabilities. Changing the name of a variable is the only one that comes to mind, but I'm sure if I spent some time on this I would find some other useful refactorings in a SQL script.
  • Spell check. Who can't use a good spell check program to check their comments :). This is something I didn't realize I needed in an IDE until I installed VA.

If you develop T-SQL scripts, SQL Prompt 3 will greatly improve your productivity. This is a must-have tool for all T-SQL developers.

Here's the link to the announcement on red-gates website...

http://www.red-gate.com/messageboard/viewtopic.php?t=3811

This post turned out much longer than I planned :). I hope you have found the information useful.

Tuesday, October 10, 2006

PowerShell Developer's Conference

I just finished the PowerShell developer's conference and it looks like Microsoft is pretty serious about it. A number of Microsoft teams are developing enterprise products around PowerShell (such as Exchange 2007).

Microsoft is pushing the use of PowerShell snapins to be coupled with MMC 3.0 snapins. Basically they want developers to create PowerShell snapins that provide the functionality to administer an application and then create a MMC 3.0 snapin to provide the GUI environment (this would use the PowerShell API to run the PowerShell snapin).

This approach makes administering an application across the enterprise much simpler. Many I.T. administrators prefer a command-line over a GUI, especially if they can create a script to perform repetitive tasks.

I'm hoping that Microsoft builds PowerShell into Visual Studio. It would be nice to have such a rich command-line hosted within VS, especially if it has full access to the IDE object model (possibly an alternative to some macros). Unfortunately they were unable to give us any news about upcoming uses of PowerShell because the event was being recorded for distribution on the Internet and so it was not considered an "NDA" event.

They did have good swag (second definition:)though. They gave out a PowerShell labeled USB drive and t-shirt as well as a Microsoft System Center scarf and a foam Ch 9 guy.

Friday, October 06, 2006

PowerShell = Command-line + .Net

PowerShell is the future of the command-line for Windows. It's most significant feature is the fact that it is built around .Net and is easily extendable by .Net. In fact, you can use reflection to access any .Net object!

It includes the ability to assign alias's to frequently used commands, define functions, and call a number of pre-defined (and very useful) CmdLets (the equivalent of a command-line utility). It also has it's own scripting language including looping and conditional constructs reminiscent of C#.

Another feature I really like is the ability to navigate to non-filesystem drives, such as the registry. This allows you to navigate the registry the same way you would navigate the file system. You can define your own drives based on the drive providers that come with PowerShell (there are a number of them) or you can create your own provider using .Net.

PowerShell has not been released yet (due Q4 2006), however, you can download RC2.

PowerShell Home Page

Download PowerShell

PowerShell Team Blog

Thursday, October 05, 2006

SQL Intellisense, Intellisense for SQL Server - SQL Prompt

This seems to be a very cool tool I've just discovered. It runs in the tray and turns Query Analyzer (I'm not sure about other editors) into a full featured editor! It includes intellisense with auto-complete, snippets, formatting, etc.

It is currently free, but not for long. Once version 3 is released (sounds like sometime this month), they are going to start charging for it.

SQL Intellisense, Intellisense for SQL Server - SQL Prompt

Tuesday, September 12, 2006

Trying out Windows Live Writer

I was unhappy with the blog editor in Blogger so I've been searching for a desktop blog editor that I can use instead. After spending way too long searching for one, I decided to try out Windows Live Writer (by Microsoft). The software is still in beta, but it looks promising.

One of the things I wanted to try out is uploading photos with my post. Here's a picture of my family at a recent Luau we had in our backyard (the picture is actually taken in front of a wall hanging in our basement). Unfortunately this feature did not work for me. When I tried to publish the post, Live Writer said Blogger did not support image upload. I ended up using Picasa to upload the file which meant I had to create a post and then delete it :(.

Being new to blogging, I'm not sure what features to really look for, but Live Writer seems to have all the features I can think of, including several different views such as normal, web layout, web preview (includes template), and HTML code (it seems to create reasonable HTML) and a spell checker (very handy to avoid embarrassing myself to badly). It's also built to be extensible, and with Microsoft backing it, it's likely to have a lot of good extensions soon. The fact that it's free is compelling as well (hopefully it will stay that way).

If you are interested in a good review of this software, check out Writer is Microsoft's first Live killer app on ZD Net.

Wednesday, September 06, 2006

My Favorite Tools

Here is a list of some of my favorite tools that I use on a regular basis (ok, some of them I just started using today :).

In order to keep this post a reasonable length, I wasn't able to include all of the features for each product that I wanted to. So if something seems moderately interesting, check out the link to find out about all of the features that it provides.
  • Google Desktop Search (Free) - Considering Outlooks terrible search engine, Google Desktop Search has proven very useful for finding emails concerning specific issues. I just type in the issue id into the search box (pops up by pressing Ctrl twice) and voila, every piece of correspondence associated with that issue.
  • Quick Launch for Google Sidebar (Free) - I've tried several diffent ways of organizing my most commonly accessed tools, projects, documents, etc and this is definitely the easiest. I just create a directory structure with a bunch of shortcuts in it and QuickLaunch shows them in a small window within the Google Sidebar and allows me to quickly navigate to the item I'm interested in and launch it with a single click without having to clutter my desktop with more windows.
  • Thunderbird (Free) - Easy to use tool for viewing news groups and rss feeds. It is closely associated with Firefox.
  • Firebird (Free) - A very nice relational database that is completely FREE! One of the best features is that there is a version that can simply be copied to the bin directory of your exe without any fancy installation. Great for embedded databases. It can also be placed on a server and can support very large databases with many connections (according to the website anyway:).
  • IB Expert (Free) - If you are going to use Firebird, you'll want to use IB Expert to manage your databases. It's actually quite a nice database management tool with plenty of handy features.
  • Zip Genius (Free) - I've had the need for a command-line zip utility and ZipGenius works great for that. It also has a good Windows interface, though I've never had the need for anything more complicated than the built-in compression utility in Windows XP.
  • NUnit (Free) - Every developer needs a good unit test utility and NUnit is the one for .Net developers.
  • The Regulator (Free) - A very useful regular expression evaluator. I can't imagine trying to create a complicated regular expression without this tool.
  • Reflector (Free) - If you don't have access to the source code, the Reflector is the next best thing. It can decompile most .Net binaries into the programming language of your choice. Very handy for learning about poorly documented features and figuring out how to get around bugs that won't be fixed until the next release of .Net (if you're lucky).
  • Process Explorer (Free) - A super-charged version of Windows Task Manager. My favorite feature is the ability to add descriptions to all of the processes so that you can determine what processes should and should not be running. It also gives you the ability to kill handles to files without killing the process (very handy if you want to delete a file that is locked by a required Windows process).
  • Color Cop (Free) - Handy little color picker that lets you determine the color for any pixel on your screen (much simpler than taking a screenshot and pasting it into a image editor that has a color picker). One of the neatest features is that the tool doesn't have to be installed, it can simply be copied into the directory that you want (for me it's my QuickLaunch directory).
  • Paint.Net (Free) - A MS Paint replacement. A simple image editor that can create moderately complex images (it's not Adobe Photoshop, but at the price, I ain't complainin'). It supports layers, different effects, and several other features that are needed for creating a reasonable image. I mainly use it for cropping screenshots before I send them in an email (it works great for that!).
  • Refactor! ($99) - An outstanding refactoring tool for Visual Studio 2005 users. Once you use it, you'll never understand how you could have developed without it. There is also a free version available for VB.Net users.
  • Beyond Compare ($30) - A diff tool that is easy to use outside of a source control tool. I especially like the ability to compare files and directories directly from the Windows Explorer context menu. If you are using VSS 2005 (or one of several other supported source control tools), you can setup Beyond Compare as the default diff tool.
  • PS Hot Folders ($19.95) - This is an awesome utility that allows me to quickly navigate to my "favorite" directories (beyond Desktop, My Documents, and My Computer) in any standard Windows Open and Save dialog. No more hunting for my development or download directories.
If you notice any great tools that I've missed, please post a comment so that I can check it out.