I am a simple man. All I ever wanted was drag and drop for source control. That folder chooser dialog was a bear. Now we will get it with Visual Studio 2008 SP1. Thank goodness. From the web site: - Simplified the user experience through cleaner "Add to Source Control" dialogs, drag and drop support to the Source Control Explorer and a much easier to use "Workspace" dialog for working folder mappings.
- Version control now automatically supports non-solution controlled files.
- Various changes to the Source Control Explorer such as a new checkin date/time display column, local path hyperlink support and en editable source location field.
I am not a big fan of installing a beta SP on may dev laptop, but I gotta tell ya, I did it for that feature alone.
Last week I had a chance to meet some of the brains behind gridGISTICS - a .NET development company in Atlanta that gets it. Not only are they up to speed on the latest .NET 3.x technologies, but they have some killer products as well. The one that struck me as the coolest was their Aware Server product, which is a grid-computing based deployment and management environment. In other words, the missing pieces to Team Foundation Server's build and (ahem) deploy automation. Packaging up applications by system and version into manifests, these binaries can be automatically deployed, registered, launched, and monitored by various Aware Agents installed around a company's environment. From the development side, they provide many Visual Studio 2008 templates and add-ins to help generate Aware-compatible applications very quickly. Follow their story here.
NBusiness is an Entity Definition Language focused on the creation of business entities. Basically, you use a construct called E# to build a code file, which is then 'compiled' into C#. Basically, NBusiness acts as a domain specific language for the creation of business entities. Below is an example of some E# code. It's still a bit stinted in the structure, but it 'feels' like English to me, much like an internal DSL in Ruby. (Even node the TRIVIAL creation of security around roles near the bottom of the example.) It seems people are really getting into the Domain Specific Language thing... But not the way Microsoft seems to be going. Microsoft seems to be focusing on the big, graphical DSL model. It'll be nice when they get there, but meanwhile, they're being left in the dust by the folks just creating very clean, very fast DSLs for a particular domain. Nicely done, guys! family BeerBase.Business { entity Address as EntityBase, EntityBaseCollection, EntityInfo, Scripts { field auto id int AddressId; field string Street1; field nullable string Street2; field string City; field string PostalCode; field int RegionId; relationship Kegbots with Kegbot on AddressId=AddressId as child; relationship Companies with Company on AddressId=AddressId as child; relationship Region with Region on RegionId=RegionId as parent; validate Street1 required; validate City required; validate PostalCode required; validate RegionId required; validate City minlength 2; validate Street1 maxlength 50; validate Street1 minlength 3; validate Street2 maxlength 50; validate City maxlength 50; validate PostalCode maxlength 16; validate PostalCode minlength 5; authorize allow * retrieve; authorize allow Administrators delete; authorize allow Administrators create; authorize allow Administrators update; } }
Sela has created a great little plug-in to VS 2005 that will warn you when you're doing a check-out if there are later revisions of any of those files on the TFS server. Download it here.
Learning a new language isn't always fun, especially Javascript. Plus, when you're working in one language, it takes context switching to flip to another, even for a trivial task. Nikhil Kothari, an architect on the Web Platform and Tools team at Microsoft, has created something called Script#, which allows you to program in C# while compiling to Javascript/Ajax. ZDnet has a good blog post on the importance of this technology, and a brief comparison with the Google version which compiles Java to Javascript.
John Paul Cook, a Microsoft MVP for Virtual Machines has an excellent article on VM Central on how to use Acronis to effectively compact your VPCs. (The article also covers other areas of interest to VPC users.) John is one of the few people in the MS community with a really firm grasp of virtualization technologies. Keep an eye out for future articles!
I've posted about this before, however, it's so important I'll repost. If you're trying to create a listener web service for TFS events, don't start from scratch! Use Howard van Rooijen's VS2005 template. It will create the web services, along with the appropriate signatures, as well as convert the events to an object, so that you can effectively use it.
Last year, at PDC, I sat down with Adam Cogan, of SSW, during an MSDN magazine party. Feeling the guilty pleasure of totally geeking out while a decent party was going on, Adam led a group of geeks through some of his very cool software tools. Somewhere during the discussion, he mentioned that he deploys his unit test, along with a test runner, with his shrinkwrapped application. That got my attention, since I'd never thought of them like that. I called him on it, and he explained. Now, there seems to be a visceral reaction from folks against the idea. Here's WHY it makes sense to deploy unit tests and a test runner with you application:
- Customer - "Your stupid app lost all my contact data!"
- Help Desk - "Maybe I can help. Go to Help -> Analyze"
- Customer - "OK. I see this list of green and red dots with text."
- Help Desk - "Can you read me the line next to the first red dot?"
- Customer - "It says 'Can't find database at C:\myapp\contacts.mdb'"
- Help Desk - "Hmm... Can you browse to that directory?"
- Customer - "No, I deleted it to have room for more mp3's"
- Help Desk - "Oh... That's a file required for our app to run. Did you subscribe to our backup service?"
- Customer - "Yes."
- Help Desk "Good, go to Tools -> Options -> Restore Contact..."
You get the idea. It rocks for troubleshooting those pesky support calls from customers. For a lot more information, and a very nice screenshot, see Adam Cogan's original posting on this topic! You can find the specific recommendation in his menu unit tests best practice. (While you're there, check out the rest of his best practices, he has a huge number of great ideas.)
Unfortunately, you cannot ship your Team System unit tests with your application. I know there's an NUnit to VSTS Unit Test converter. Does anyone know if VSTS Unit Tests can be converted to NUnit or MbUnit unit tests, so that all of us using VSTS Unit Tests can implement this best practice?
UPDATE: Adam Cogan claims he got the idea from James Newkirk (of NUnit fame). That may be the case, but I'll have to credit Adam. He's got so many best practices on his site (see this rule that covers shipping unit tests for an example) that if he didn't get the idea from Newkirk, he likely would have thought of it himself!
UPDATE TWO: This IS Adam's idea! James simply wanted a distributable test harness for developers to use! I misunderstood his first comment to me! (By the way, if you have comments on this post, or any other, please send email to steve+comments[at]accentient.com. We've had to disable comments until we find a way to more effectively eliminate comment spam.)
I'm generally involved in the .NET space, but often work with companies that have both .NET and J2EE running in their enterprise. Because of our focus on Team Foundation Server (TFS) and VSTS (Team System), when we run into Java, it's usually getting them moved over to TFS using TeamPrise. (See Martin Woodward's blog for more on this great product, plus some very valuable insights into TFS and software development in general.) But sometimes the companies we work with have J2EE as their primary servers. I only recently learned of a very interesting product called Visual MainWin for J2EE that allows a company to run their ASP.NET applications without recompilation on WebSphere servers! Now, web developers can get all the productivity, simplicity and maintainability of ASP.NET even before they convince their IT shops to move to a Windows platform! Combine that with TFS and TeamPrise for their Java developers, and we're talking a real Microsoft foothold in hostile territory. Side note: Speaking of Java and .NET, here's a Java Virtual Machine written in .NET!  It's called IKVM.NET!
Here's a great tool for agile development that was mentioned in a blog post below. Go get a stack of these! Shuffle them, pass them around, put your use stories on them, and slap them up on the board when you're ready! Here's one more link.
 |
Post-it® Sortable Cards only stick when you want them to! Now you have the flexibility to visualize and organize when and how you want on many different surfaces. Cards also easily sort, shuffle and stack together so you can use them again, or store them for later. |
Here's the install script for TFS, both Dual and Single server install. Thanks to Etienne Tremblay (VSTS MVP) for all his hard work in putting this together, and updating it for SQL Server 2005 SP1. TFSInstallScripts.zip (39.73 KB)
The best tool is the simplest. It shouldn't get in the way of doing things, and it should be incredibly easy. One of my favorite Agile dev tools is the digital camera. Simply snap a quick photo of your whiteboard and you've got a good replacement for a $10,000 whiteboard with print / scan capabilities. Plus, you then have it in digital format! No need for scanning.
The problem is that you have flash reflections, etc, and that makes the image harder to read. You need to do some image manipulation to really make it easy to read and understand. And it should be in TIF or PDF format if you want to do OCR. So, head to www.scanr.com This great little web site takes a digital photo of a white board, and converts it to a very nice PDF document. It eliminates most of the flash, rotates the image if you've taken a photo of the white board from the side, and saves it as a nice, high-quality PDF. Check it out!
I just found Protolize. It's a great resource for web development - everything from Ajax to XHTML. It's basically a collection of pointers (done very nicely) to various web resources. Very nice!
Brian Harry has just posted a great Word doc that gives a few ins and outs when building extensions to Team Foundation Server. It's focused on the Version Control side of the house, but many of the recommendations work for automating Work Item access as well. Head over to the blog post (here), and download the Advice for developing TFS client applications.doc document. If you build TFS extensions, it's definitely required reading! 
If you're building a web site that needs to be viewed in multiple different browsers, it has been difficult in the past to really get a good test. No longer. A site called BrowserShots.org provides a way to view screenshots of a web page as seen from over 30 different types of browsers. They actually run the site in the browser, take a screenshot, and post it. Pretty amazing! Here's a list of the browsers and options you can choose from. Color me impressed!
Microsoft will be releasing an Express version of their XNA development environment free! That means that folks like you and I can create our applications for the XBox 360 (and, simultaneously for Windows) much more easily! That is cool! I expect a development community to spring up with free games, trial games, and all sorts of non-game applications as well. Fun! You can read more about it here.
One of the main sticking points with many people is the lack of integration between Visual Studio Team System (VSTS) and Microsoft Project Server. Sure, you can indirectly connect the two through a MS Project file, and there's some light integration there. But most people want to use VSTS as part of a complete lifecycle management too... and that means tracking resources across multiple projects, and many across several organizational stovepipes. That's where MS Project Server comes in.
In the future, Microsoft will likely do a great deal of integration between the two, but for right now you'll need to download the Project Server Visual Studio Team System Connector. I haven't used it yet, but am planning on taking a look at it once it's been upgraded to support either TFS RC or TFS RTM. I'll let you know!
Every now and then I REALLY need to replace some text with some other text in a whole series of directories. This is especially true when working with MOC course, with LOTS of references to a server name in all sorts of solutions.
There's a GREAT tool that does simple search and replace, through any number or type of files, regardless of directory depth called ReplaceEm. And, it's FREE! The developer just wants you think of FitSoftware when you need some software development done. Download it here.
My good friend, business partner and coblogger, Rich Hundhausen posted this a while back. I just had a need for it, and LOVE the work that Christopher Bowen did putting this list together. It's a list of all the tools, both open source and not, that are impacted (positively or negatively) by the release of Visual Studio 2005 Team System. You can find the link here.
Don't miss the upcoming MSDN chat, this Wednesday at 10am (PST) on Developer & Tester Tools in Visual Studio 2005. If you haven't attended one of the MSDN chats, I strongly encourage it! Not only do they provide a bunch of solid information, there will be an entire series of Visual Studio and Team System experts on hand to answer any specific questions you have. I attended one of these recently, and got to ask some hard questions that ended up revealing bugs in the latest release of Team System. The folks there not only thanked me for my support, they worked overtime to get a workaround to me ASAP! I can't recommend the chats enough! Be there!
Team System MSDN Public Chat
Visual Studio Team System for Software Developer &
Visual Studio Team System for Software Testers
When: Wednesday 10/19/05 @ 10am PST
What: Join us to discuss the Profiler, Test Tools (Unit, Generic, Manual), Web & Load Testing, and Code Analysis (FxCop & PREFast). We have questions for you, will answer questions from you, and will chat about the exciting new technology.
Where: http://msdn.microsoft.com/chats
For those of you interested in using Aspnet_setreg for securely changing the identity of the ASP.NET process (in machine.config), here's a good KB article from Microsoft. It explains everything you need to do, as well as providing a download link.
I posted earlier that I had installed X1, the fantastic (if expensive) desktop search on an earlier OS install, and that I loved it. Well, Yahoo! has licensed it, and it's available for free download at http://desktop.yahoo.com/. I installed the free version, and LOVE it! Like X1, it handily beats Lookout and Google Desktop. I highly recommend it! By the way, if you ever search emails using the internal Outlook search, or search for files on your hard drive, you NEED a tool! And this one is the best I've found. A great review of Yahoo! Desktop Search can be found here.
Great news! Yahoo! has licensed the X1 desktop search engine for free download. I've used the Google Desktop, Lookout (free from Microsoft), and X1, which used to cost $99 for a personal license. X1 was by far the best. It's search was blazingly fast, the index was small and the UI was the simplest. Plus, it doesn't have the security issues of Google Desktop or the Outlook start-up time impact of Lookout.
I'll be downloading it as soon as it's released, comparing it to the full version of X1. I'll let you know how it looks.
|