I just came across this slick JavaScript-based Visual Studio theme (color scheme) generator. You pick the basic colors and desired contrast level, and it fills in all the gaps and generates a .vssettings file for you to import. It is a lot easier to test and tweak color options with this utility, than it is in Visual Studio.
http://www.frickinsweet.com/tools/Theme.mvc.aspx
Be the first to rate this post
Tags: visual studio
Tools / Services
The Expression Design, Blend, and Encoder products each let you change properties with incremental values by clicking on the text box and dragging the mouse up or down. I think most people know that. But what I didn't know, is that you can hold [Ctrl] to slow down the rate of change and [Shift] to increase the rate. That makes this feature much more useful.
Tags: expression
Microsoft released a hotfix for Visual Studio 2008 that addresses several bugs and performance issues.
The hotfix is available here.
From Microsoft:
Issues that are fixed: We have fixed several bugs in this hotfix. All bug fixes are listed below. HTML Source view performance Source editor freezes for a few seconds when typing in a page with a custom control that has more than two levels of sub-properties. “View Code” right-click context menu command takes a long time to appear with web application projects. Visual Studio has very slow behavior when opening large HTML documents. Visual Studio has responsiveness issues when working with big HTML files with certain markup. The Tab/Shift-Tab (Indent/Un-indent) operation is slow with large HTML selections. Design view performance Slow typing in design view with certain page markup configurations. HTML editing Quotes are not inserted after Class or CssClass attribute even when the option is enabled. Visual Studio crashes when ServiceReference element points back to the current web page. JavaScript editing When opening a JavaScript file, colorization of the client script is sometimes delayed several seconds. JavaScript Intellisense does not work if an empty string property is encountered before the current line of editing. Web Site build performance Build is very slow when Bin folder contains large number of assemblies and .refresh files with web-site projects.
Issues that are fixed: We have fixed several bugs in this hotfix. All bug fixes are listed below.
HTML Source view performance
Design view performance
HTML editing
JavaScript editing
Web Site build performance
A colleague and I attended an Expression/WPF/Silverlight training session Microsoft provided to kick off their PhizzPop Design Challenge in Austin. Robby Ingebretsen was the primary instructor. He used a slick XAML editor called Kazaml throughout the training. Robby developed Kazaml himslef, using WPF. Compared to XamlPad, Kazaml is very feature-rich. It supports auto-complete and code snippets, has a color picker, XAML scrubber, snapshot capture (to an image file), and more. He was using version .2 during the class and recently released version 1.0.
You can read more about it in Robby's announcement post.
Tags: xaml, wpf
Nikhil Kothari has a series of posts on programming Silverlight 1.0 with C#, using the Script# compiler and framework. Script# seems like an interesting option for creating a migration path between Silverlight 1.0 and 2.0.
Tags: silverlight
Design / Technique | Tools / Services
Dustin Campbell (Did it with .Net) has an interesting post on leveraging Visual Studio 2008's mutli-targeting support to use C# 3.0 language features with .Net 2.0-targeted projects.
Visual Studio 2008's multi-targeting support for compiling projects to different versions of the .NET Framework is very powerful. Multi-targeting is a compelling feature because it enables users to continue working on solutions that target .NET Framework 2.0 and 3.0 while upgrading to the latest and greatest IDE. What isn't obvious is that all projects, regardless of target, are compiled with the C# 3.0 compiler. That means users can employ many of the new C# 3.0 language features in legacy projects. The only language features that can't be used are those that require library support from .NET Framework 3.5, in essence, LINQ, Expression Trees and Extension Methods. Implicitly-typed local variables, lambda expressions, auto-implemented properties, object and collection initializers, and anonymous types are all fair game. It's sort of like having C# 3.0-lite or C# 2.5.
Read more...
Tags: c#
I recently upgraded to dasBlog 2.0 and went ahead and updated my site design while I was at it. With the new design, I wanted to use dasBlog's navigator links for the horizontal menu. However, the navigatorLinks macro is hard-coded with a vertically-oriented table structure. So I wrote a custom macro to provide the links in a simple unordered list that I could style with CSS. I started from the source code for the navigatorLinks macro and just replaced the HTML-generating bits. While I was tempted to consolidate the redundant logic, I avoided any other refactoring to save time. For those interested, my code is below. For more information on creating custom macros, read: Creating custom macros for dasBlog.
public class CustomMacro
{
protected SharedBasePage requestPage;
protected Entry currentItem;
public CustomMacro(SharedBasePage page, Entry item)
requestPage = page;
currentItem = item;
}
/// <summary>
/// Return the navigator links in an unordered list.
/// </summary>
public Control GetNavigatorList()
string fileName = "navigatorLinks.xml";
StringBuilder navigator = new StringBuilder("<div class=\"navigatorContainer\"><ul class=\"navigatorList\">");
string itemTemplate = "<li class=\"navigatorListItem\"><a class=\"navigatorListItemLink\" href=\"{0}\">{1}</a></li>";
try
string fullPath = HttpContext.Current.Server.MapPath(SiteConfig.GetSiteConfig().ContentDir + fileName);
if (File.Exists(fullPath))
NavigatorXml nav;
using (Stream s = File.OpenRead(fullPath))
XmlSerializer ser = new XmlSerializer(typeof(NavigatorXml));
nav = (NavigatorXml)ser.Deserialize(s);
foreach (NavigatorItem navitem in nav.Items)
navigator.Append(String.Format(itemTemplate, navitem.Url, navitem.Name));
else
NavigationRoot nav;
fullPath = HttpContext.Current.Server.MapPath("~/SiteConfig/" + fileName);
XmlSerializer ser = new XmlSerializer(typeof(NavigationRoot));
nav = (NavigationRoot)ser.Deserialize(s);
foreach (NavigationLink navitem in nav.Items)
return new LiteralControl("Add '" + fileName + "' to your SiteConfig directory<br />");
catch (Exception exc)
ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error, exc);
return new LiteralControl("There was an error processing '" + fileName + "'<br />");
navigator.Append("</ul></div>");
return new LiteralControl(navigator.ToString());
Tags: blogging
The Patterns & Practices group has published a beta version of their Team Development with TFS best practices guide. According to J.D. Meier:
It's our Microsoft playbook for TFS. This is our guide to help show you how to make the most of Team Foundation Server. It's a distillation of many lessons learned. It's a collaborative effort among product team members, field, industry experts, MVPs, and customers.
The contents (360 pages) include:
Parts Part I, Fundamentals Part II, Source Control Part III, Builds Part IV, Large Project Considerations Part V, Project Management Part VI, Process Guidance Part VII, Reporting Part VIII, Setting Up and Maintaining the Team Environment Chapters Introduction Ch 01 - Introducing the Team Environment Ch 02 - Team Foundation Server Architecture Ch 03 - Structuring Projects and Solutions Ch 04 - Structuring Projects and Solutions in Team Foundation Server Ch 05 - Defining Your Branching and Merging Strategy Ch 06 - Managing Source Control Dependencies in Visual Studio Team System Ch 07 - Team Build Explained Ch 08 - Setting Up Continuous Integration with Team Build Ch 09 - Setting Up Scheduled Builds with Team Build Ch 10 - Large Project Considerations Ch 11 - Project Management Explained Ch 12 - Work Items Explained Ch 13 – MSF Agile Projects Ch 14 - Process Templates Explained Ch 15 - Reporting Explained Ch 16 - Team Foundation Server Deployment Ch 17 - Providing Internet Access to Team Foundation Server
Chapters Introduction Ch 01 - Introducing the Team Environment Ch 02 - Team Foundation Server Architecture Ch 03 - Structuring Projects and Solutions Ch 04 - Structuring Projects and Solutions in Team Foundation Server Ch 05 - Defining Your Branching and Merging Strategy Ch 06 - Managing Source Control Dependencies in Visual Studio Team System Ch 07 - Team Build Explained Ch 08 - Setting Up Continuous Integration with Team Build Ch 09 - Setting Up Scheduled Builds with Team Build Ch 10 - Large Project Considerations Ch 11 - Project Management Explained Ch 12 - Work Items Explained Ch 13 – MSF Agile Projects Ch 14 - Process Templates Explained Ch 15 - Reporting Explained Ch 16 - Team Foundation Server Deployment Ch 17 - Providing Internet Access to Team Foundation Server
Tags: tfs
Process / Methodology | References / Resources | Tools / Services
I was having trouble finding a good Vista-compatible virtual drive utility to mount CD/DVD images, so I thought I'd share the result of my quest. SlySoft's Virtual CloneDrive is completely free and without ad/spyware. The system requirements specify Windows 98/98SE/ME/2000/XP, but it works great on Vista, as well.
Virtual CloneDrive works and behaves just like a physical CD/DVD drive, however it exists only virtually. Image files generated with CloneDVD or CloneCD can be mounted onto a virtual drive from your hard-disk or from a network drive and used in the same manner as inserting them into a normal CD/DVD drive. Probably the best virtual drive software, Virtual CloneDrive allows you to enjoy the freedom of a virtual drive and is completely free.
Virtual CloneDrive works and behaves just like a physical CD/DVD drive, however it exists only virtually. Image files generated with CloneDVD or CloneCD can be mounted onto a virtual drive from your hard-disk or from a network drive and used in the same manner as inserting them into a normal CD/DVD drive.
Probably the best virtual drive software, Virtual CloneDrive allows you to enjoy the freedom of a virtual drive and is completely free.
Tags:
Microsoft recently published guidance for branching and merging with Team Foundation Source Control. Branching/merging can be a major headache if not thoughtfully planned and managed. However, it is a valuable and necessary tool for parallel development activities. Examples from Microsoft:
Example 1: A team of 40 developers is building an application. There are four feature teams, each led by a development lead. The feature teams vary in size from two developers to fifteen developers. The milestones for each feature area also vary. There needs to be a mechanism to provide isolation to each of the feature teams while allowing for changes to the common areas of the application in a reliable and controlled fashion. Branching is a very good solution here; this is referred to in this document as Branching for Feature Team Isolation. Example 2: A development team has just gone live with the first release of a Web site. The development team has started working on the next version of the site, but a critical bug is found by an important customer on the live site. A strategy needs to be introduced to allow the core development team to continue evolving the next version of the site while bug fixes can be made for maintenance of the released site. There needs to be a mechanism to isolate these two work streams. This is referred to in this document as Branching for Maintenance.
Example 1: A team of 40 developers is building an application. There are four feature teams, each led by a development lead. The feature teams vary in size from two developers to fifteen developers. The milestones for each feature area also vary. There needs to be a mechanism to provide isolation to each of the feature teams while allowing for changes to the common areas of the application in a reliable and controlled fashion. Branching is a very good solution here; this is referred to in this document as Branching for Feature Team Isolation.
Example 2: A development team has just gone live with the first release of a Web site. The development team has started working on the next version of the site, but a critical bug is found by an important customer on the live site. A strategy needs to be introduced to allow the core development team to continue evolving the next version of the site while bug fixes can be made for maintenance of the released site. There needs to be a mechanism to isolate these two work streams. This is referred to in this document as Branching for Maintenance.
You can read the guidance online, or download a PDF version.
Process / Methodology | Tools / Services
I'm an Internet technology business solution strategist, software architect, and development leader specializing in e-commerce, interactive marketing, and social media. read more...