Visual Studio Theme (Color Scheme) Generator

by Troy Sabin 20. October 2008 15:58

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

image

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Tools / Services

Expression Tip: Use [Ctrl], [Shift] with Incremental Properties

by Troy Sabin 14. March 2008 10:15

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. 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Tools / Services

Visual Studio 2008 Hotfix

by Troy Sabin 10. February 2008 14:35

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.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Tools / Services

Kaxaml! XAML Editor

by Troy Sabin 3. January 2008 11:26

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.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Tools / Services

Programming Silverlight 1.0 with C#

by Troy Sabin 10. December 2007 16:55

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Design / Technique | Tools / Services

Use C# 3.0 Language Features with .Net 2.0 Runtime

by Troy Sabin 27. November 2007 17:06

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...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Design / Technique | Tools / Services

Clean, Horizontal dasBlog Navigation

by Administrator 11. October 2007 17:03

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);

                if (File.Exists(fullPath))

                {

                    using (Stream s = File.OpenRead(fullPath))

                    {

                        XmlSerializer ser = new XmlSerializer(typeof(NavigationRoot));

                        nav = (NavigationRoot)ser.Deserialize(s);

                    }

 

                    foreach (NavigationLink navitem in nav.Items)

                        navigator.Append(String.Format(itemTemplate, navitem.Url, navitem.Name));

                }

                else

                {

                    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());

    }

}

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Design / Technique | Tools / Services

Team Foundation Server Best Practices

by Administrator 25. May 2007 14:37

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

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Process / Methodology | References / Resources | Tools / Services

Mount CD/DVD Images on Vista

by Troy Sabin 14. May 2007 10:39

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.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Tools / Services

Team Foundation Server Branching Guidance

by Administrator 10. April 2007 14:17

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.

You can read the guidance online, or download a PDF version.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Process / Methodology | Tools / Services