Saturday, April 26, 2008

Tuning SQL Server 2008's Backup Compression

SQLCAT - Tuning the Performance of Backup Compression in SQL Server 2008

"...

Overview

Backup compression is a new feature in SQL Server 2008 that can help provide smaller sized backups and reduce backup time. This document provides guidance related to tuning options for backup performance. All of the information and test results presented here were done specifically by using the backup compression feature of SQL Server 2008; however, they apply broadly to any backup scenario whether backup compression is used or not. They also apply to restore operations; however, restore will not be covered in depth in this document. For an introduction to the backup compression feature, see Backup Compression, in SQL Server Books Online.

Benefits of Backup Compression

One major benefit of backup compression is space saving. The size of the compressed backup is smaller than that of the uncompressed backup, which results not only in space savings, but also in fewer overall I/O operations during backup and restore operations. The amount of space you save depends upon the data in the database, and a few other factors, such as whether the tables and indexes in the database are compressed, and whether the data in the database is encrypted.  ...

...

Table 1 shows the output of the above query after taking an uncompressed and a compressed backup.

Database Name Uncompressed Backup Size (MB) Compressed Backup Size (MB) Compression Ratio Backup Time (Seconds) Comments
BCTEST 292705 95907 3.05 1705 Compressed backup
BCTEST 292705 292705 1 3348 Uncompressed backup

..."

The new compression features are those that will push me to push for quick deployment of SQL 2008 (well that and the new transparent encryption, Policy Management, data types, PowerShell and other coolness in 2k8 ;)

This SQLCAT article is a very nice in-depth one which covers a good bit of the inner workings of this feature as well as tuning suggestions (hard to imagine given the title isn't it?... :)

Friday, April 25, 2008

TFS Power Tools - March 2008 Release (aka v2.1). Build Notification, Find in Source Control, Process Template Editor TFS2008 updates and Destroying Work Items...

Microsoft Downloads - Visual Studio Team System 2008 Team Foundation Server Power Tools - March 2008 Release

"The Visual Studio Team System 2008 Team Foundation Server Power Tools is a set of enhancements, tools and command line utilities that improve the Team Foundation Server user experience

..."

Team Foundation Server Developer Center - Visual Studio Team System 2008 Team Foundation Server Power Tools

"...New in this Release

  • Find in Source Control tool is an addition to the Team Explorer menu that provides the ability to locate files and folders in source control by the item’s status or with a wildcard expression.
  • Open a selected folder in Windows Explorer straight from Team Explorer. This feature allows you to jump straight to the mapped folder location from within Source Control Explorer.
  • Quick Label feature that allows labels to be easily applied to a given selection of files and folders in the Source Control Explorer.
  • Build Notification tool that runs in the Windows task bar notification area monitoring the status of the build definitions you have specified. It can be configured to show notifications when builds are queued, started, or completed for multiple build definitions spanning multiple Team Foundation Servers.
  • Additional TFPT.EXE commands for configuring Team Explorer connection settings (tweakui) and for  destroying Work Items and Work Items Type Definitions (destroyWI, destroyWITD).
  • Updates to the TFS Best Practices Analyzer for use with a Visual Studio Team System 2008 Team Foundation Server deployment.
  • The Process Template Editor is updated for use with Visual Studio Team System 2008 Team Foundation Server. It also has several improvements, including: the ability to launch standalone w/o a Visual Studio installation, performance improvements, improved discoverability and bug fixes.
  • Bug fixes and removal of Power Tools that are now included within Team Foundation Server: 
    • Annotate and Treedif are now included in Visual Studio Team System 2008 Team Explorer; however, Annotate remains is still available in the command-line tool (TFPT.EXE).
    • TestToolsTask is included in Visual Studio Team System 2008 Team Foundation Server as part of Team Foundation Build.

..."

Power tools are good...  :)

 

Related Past Post XRef:
VSTS 2008 TFS Power Tools (December 2007) Released (aka TFPT 2.0)
TFS Power Tools, v1.3 (September 2007 Release), with Two New Tools, TFS Best Practices Analyzer and Work Item Templates
Team Foundation Server Power Tool, Process Template Editor Tip - If you open a *.WIT file and it appears as a normal XML file, instead of in a Designer...
Microsoft Visual Studio 2005 Team Foundation Server Power Tool (formerly known as Power Toys) - V1.2, February 2007

GData .Net Assembly 1.1.4.0 Released. Now .Net Framework 2, VS (2005) Templates, and support for Google Contacts

Google Data API - .NET library 1.1.4.0 released

"It took a while, but we just released a new version of the .NET client library for the family of Atom Publishing protocol based Google Data Apis. There are a lot of changes in this release (you can find the full release notes here: http://google-gdata.googlecode.com/svn/trunk/clients/cs/docs/generate...) , but the most notable changes are listed here.

Visual Studio Project Templates

It was never so easy to get going. When you use the setup program, 6 project templates are placed into your Visual Studio template folder. Now, just use "New Project" and pick the template you like. You get a minimal, but working, Google Data API application. ...

...

.NET 2.0 and upwards

The code is slowly moving to the present, and support for .NET 1.1 was removed with this release. Generics and other features just make the SDK perform better and easier to maintain. ...

...

Support for Google Contacts

There is support for the Google Contacts API as well as a project template to get you going.

..."

I've been using the GData assembly in my Blogger Backup utility for a while now and am pretty happy with it. And the team (Frank Mantek and associates) have been very responsive to any issues I've raised (and fast with releases to resolve them).

If you're doing Google "stuff" in .Net then this is a library you should check out...

Wednesday, April 23, 2008

How not to end your morning commute...

Got in an accident today on the way to work...Not the way I wanted to end my daily commute.

Luckily there were no injuries on site (though I'm starting to feel it now) and only the two cars were involved. Given that it happened at 6:30'sh AM on the I605 (a busy five southbound lane freeway) and my car was spun into three'ish 360's from the fast lane to the far shoulder, it's rather amazing that more cars were not involved and that someone wasn't seriously hurt. Heck, the other car was able to drive away (once we exchanged info, etc)

Not wanting to leave my car 70 miles away, I had to brought home (on a flatbed). Yeah, ouch. But the towing company cut me a nice deal and the driver, Big Tim, took good care of me and the car.

Damage to the front and back on the driver's side...

(BTW, you can also see all the outstanding work my wife has done to make the front of our house pretty... :)

 

Can you see the tilt of the front wheel? It's hard to see here, but in person, there's a pronounced tilt to it.

 

From the front, the poor thing has a droopy eye... :(

Anyway, there are more pictures in the photo album if you're interested (not sure why you would be, but hey you never know :)

And gee, guess what? I just paid off the car last month.

Well I'm off to the Doctor's as I'm starting to stiffen up and not feel all that swell.

 

PS. These pictures were inserted with Scott's cool Live Spaces Photo Album Plugin. His plugin made it very easy to find and insert them... Thanks Scott!

Tuesday, April 22, 2008

Windows XP SP3 - Coming soon to a download near you

The Road to Know Where - Microsoft Announces Windows XP Service Pack 3 Release Dates

"...

Nick MacKechnie, Microsoft Senior Technical Account Manager in New Zealand posted THEN removed the following Windows XP SP3 release schedule:

Apr-21 = RTM (Release to Manufacturing)
Apr-21 = OEM Channel
Apr-29 = Windows Update
Apr-29 = Download Center
May-02 = MSDN/Technet Download
May-19 = Windows XP SP3 Fulfillment Media
Jun-01 = Volume Customers via Download
Jun-10 = Automatic Updates

...

Windows XP SP3 Resources:

Windows XP Service Pack 3 Overview

...

Windows XP Service Pack 3 Blocker Tool Kit

..."

Based on Blake's notes, these dates were retracted so take them with a grain of salt, BUT they do jive with the dates I've been seeing around so it seems to be GOOD salt... ;)

Monday, April 21, 2008

Krypton Toolkit 2.8 Released

Component Factory - Krypton 2.8.0 Released

"Your favorite WinForms toolkit is now better than ever before! The free toolkit has grown to include 21 controls, 5 components and 1 form. And that does not include the 9 different elements that can be added inside the context menu component. Here is a summary of the new features…

New Controls/Components
    KryptonDropButton
    KryptonColorButton
    KryptonListBox
    KryptonCheckedListBox
    KryptonCommand
...
    6 x KryptonContextMenu Elements

Download 2.8.0 Now!

..."

This is growing into quite a complete suite of WinForm controls. Plus the price (free, even for commercial apps) is just right if you want to check them out...

 

Related Past Post XRef:
Krypton Toolkit v2.7 Released
Krypton Toolkit 2.6 Released
Krypton Toolkit 2.5 Released
Krypton Toolkit 2.2 Released
Krypton Toolkit (Free WinForm UI Controls) 2.0 Released
Krypton Toolkit 1.0.0 Released
Krypton Toolkit 0.9.0 (Free Office-Like UI Controls)

Windows Live Application Based Storage API (Experimental)

Windows Live Dev - Application-Based Storage

"Store per-user setting for your web site

Application Based storage is an experimental API that allows application developers to store a small amount of state/configuration data in the Windows Live data centers on behalf of a user. This API has an AtomPub service end point so developers will be able to call this using ADO.NET data services or other AtomPub compatible tools. The real value kicks in here if an application was to have hundreds of thousands of users as the client bandwidth and storage are offloaded to Windows Live infrastructure." [Description leached in full]

MSDN - Windows Live Application Based Storage API

"Welcome to the Windows Live™ Application Based Storage API. The Application Based Storage API enables Web sites to view and update user data using the ATOM protocol. Web sites can incorporate the following functionality.

  • Upload or download documents and photos.
  • Create, edit, or delete folders.
  • View information about a user's data.

This documentation contains the following sections:

..."

I've been looking for a cool and easy way to store application settings, etc, in "the Cloud". I want my apps to be local, but their settings stored in a central, web accessible, repository. Or have the capability to sync their settings between the different machines (using a central web based repository as a proxy). But I don't want it to be hard, yet I want a users data to be secure. Oh and I want it free of course... ;)

Well the Windows Live Application Based Storage API (WLABS) seems like just the thing for me. At least at first glance. I need to check this out in some more depth when I get a chance.

Tie this with WCF 3.5 (and its built in ATOM support) and I think I may have a winner...

(via Technology Talks - Windows Live 4 developers)

A handy PowerShell script to keep your Sysinternals Suite up to date

John Robbins' Blog - Easily Downloading and Installing the Sysinternals Suite

"Everyone uses Mark Russinovich's and Bryce Cogswell's excellent Sysinternals Tools. Tools like Process Explorer and Process Monitor have helped solve some of the toughest bugs I've ever worked on. I've been surprised how many people didn't know that all the tools available in a single download: the Sysinternals Suite.

Whenever I see that one of the tools is updated, I find it easiest to grab the Suite .ZIP file and unzip it to my utility directory. After having done the manual updating a couple of times, I wrote a PowerShell script to do the download and unzipping automatically. I thought others might find it useful. Note that you'll need the excellent and free 7z archive tool in your path.

..."

A handy little script to help you keep you Sysinternals Suite in sync with the latest version.

Saturday, April 19, 2008

Required Monthly Cat Post (aka Britannica WebShare Test)

My free Britannica WebShare subscription came through so it's test it time...

One way to present their data is via their Widgets.

So in the sense of two birds with one stone, etc, here we have a post to fulfill my cat post quota and widget test post.

 

Related Past Post XRef:
Encyclopaedia Britannica Online Free for Bloggers?

Screaming for Rock Band - Full JP Album Available Next Week (for 1600 Points)

XBox.com - Judas Priest Releases Entire Album for Rock Band

"Influential metal band Judas Priest will be the first band to release an entire album's worth of contents as downloadable and playable tracks for the popular music game Rock Band™. All ten tracks on the classic 1982 double platinum album Screaming for Vengeance will be released as individual tracks and in an album pack, available April 22.

..."

That just rocks! I want more...

Talk about living the metal dream. Full albums (hopefully not covers) could take Rock Band to another rock reality level.

Now if only I was almost good at RB. My son is now working on Expert and I'm still working on not totally sucking. ;)

Encyclopaedia Britannica Online Free for Bloggers?

TechCunch - Encyclopedia Britannica Now Free For Bloggers

"...

And now, you can get access to the online version for free through a new program called Britannica Webshare - provided that you are a “web publisher.” The definition of a web publisher is rather squishy: “This program is intended for people who publish with some regularity on the Internet, be they bloggers, webmasters, or writers. We reserve the right to deny participation to anyone who in our judgment doesn’t qualify.” Basically, you sign up, tell them about your site URL and a description, and they review it and decide if you’ll get in. ...

..."

Britannica WebShare - Welcome to WebShare

"All of us at Encyclopaedia Britannica are very pleased to introduce WebShare, a new initiative that lets web publishers and bloggers link to Britannica articles. Your readers will be able to follow those links without an account.

This site is dedicated to the WebShare initiative and includes a variety of tools and guides to help you make the most out of WebShare. To start with, read through the FAQs (they’re short). This will tell you exactly how the program works and what you have to do to get started. Then complete the registration form for your free account. It’s not an instant process, I’m afraid, but you’ll get your userid and password in a day or two.

..."

Registered. Now we'll wait and see if my blog qualifies...

VLinq Source Released and Setup Updated

Visual LINQ Query Builder - Visual LINQ Query Builder [Release]

"...

The setup bugs were fixed in the current version (4/17/2008). If you want to install the new version but you had the last version, you should uninstall the last version before installing this new version.

..."

VLinq setup tweaked in response to issues found in the first release. Also the Source is now available for download too...

 

Related Past Post XRef:
Visual Linq Query Builder (VLinq) - A Visual Studio Add-in to help build LINQ to SQL Queries (Think "Access Query Builder for Linq to SQL")

Friday, April 18, 2008

Hero's Happen Here Event in Second Life... Note: There's a Registration Process...

Just got back from a quick trip into SL (Second Life) to make sure everything was working and ready for next weekend's SL Hero's Happen Here event.

If you're planning on attending, there's a very quick and easy registration process they, the Microsoft Island reps, are asking you go through. Just a couple fields and all done in game (err... um... in SL... in context... by your SL avatar... whatever, you get the idea). Go to the Registration Desk and click on the orange triangle to get started.

According to Strawberry Fride (who held my nub hand through the process) the team has been working hard to try to make this, first of a kind, event for the SL Microsoft Island noteworthy. Adding islands, building auditoriums, etc. All with a pretty short lead time.

Also interestingly enough, DotNetRocks talked about SL yesterday (Developing for Second Life).

If nothing else you can use this as a business case to install SL... :)

 

Related Past Post XRef:
Hero's Happen Here event via Second Life

Thursday, April 17, 2008

WCF Security Guidance v1 Released

J.D. Meier's Blog - patterns & practices WCF 3.5 Security Guidelines Now Available

"For this week's release in our patterns & practices WCF Security Guidance project, we released our first version of our WCF 3.5 Security Guidelines.  Each guideline is a nugget of what to do, why, and how.  The goal of the guideline format is to take a lot of information, compress it down, and turn insight into action.

...

Here's a snapshot of the guidelines, but you can see our security guidelines explained at our WCF Security Guidance project site.

Categories
Our WCF Security guidelines are organized using the following buckets:

  • Auditing and Logging
  • Authentication
  • Authorization
  • Binding
  • Configuration Management
  • Exception Management
  • Hosting
  • Impersonation and Delegation
  • Input/Data Validation
  • Proxy Considerations
  • Deployment considerations 

..."

Wiki based guideline to help you keep secure when you use WCF.

I don't use WCF now, but I'm sure it's only a matter of time (I hope as I think WCF is pretty darn cool and I really want to use it... and there IS a project feature I have in mind where it's the right tool for the job...  :)

"Solutions for Common T-SQL Problems" Wiki

MSDN Code Gallery - Solutions for Common T-SQL Problems

"Information presented in this WIKI represents the suggestions, ideas, and opinions of Volunteer Moderators and Answerers who support the Microsoft MSDN SQL Server Forums. (Unless specifically stated otherwise, nothing should be construed to represent the official positions or opinions of Microsoft and/or its Employees.)

...

How To Examples of selected T-SQL programming constructs
Create a Comma Delimited List from a Column in a Table
Create and Use A Numbers Table
Control Return Results by Range
Find and/or Delete Duplicate Rows in a Table
Find Rows of Data Between Two Dates
Increment an AlphaNumeric Value
Use ISNULL() and COALESCE()

..."

Still in the early, initial phase, but could grow into a useful resource (actually it already is for me as I always forget  COALESCE  ;)

(via SQL Server Code,Tips and Tricks, Performance Tuning - Solutions for Common T-SQL Problems Wiki Launched)

Wednesday, April 16, 2008

Interested in template based code generation? Own Visual Studio 2008? Then guess what? You already have one... Say hello to the Text Template Transformation Toolkit (T4)

Oleg Sych - Text Template Transformation Toolkit

"Text Template Transformation Toolkit (T4) is a template-based code generation engine. It is included with Visual Studio 2008 and available as a download for Visual Studio 2005 in DSL and GAT toolkits. You can use T4 templates to generate Visual Basic, C#, T-SQL, XML or any other text files.

Syntax

T4 templates have ASP.NET-like syntax and consist of processing directives, text blocks and code blocks.

<#@ template language="C#" #>
Hello
<# Write("World!") #>

Processing directives provide template compilation and processing options. In the example above, <#@ template #> directive specifies that code blocks of this template are written in C#.

..."

madhavrao… - T4 - How to

"List of How-to for Text Transformation Template Toolkit (T4)

..."

Clarius Consulting - T4 Editor (Beta)

"...

The T4 engine used to support transformations is currently distributed by the Visual Studio SDK and with the advent of Visual Studio 2008 (codenamed Orcas) the T4 bits will be come pre-installed "into the box" on all Visual Studio installations (Standard edition and better).

Unfortunately, the design-time experience when using T4 is not yet on a par compared with what you are used to expect from other tools integrated within Visual Studio.

The T4 Editor developed by Clarius Consulting is aimed at converting this missing experience into a first class one, fully integrated into the development environment, offering you support for colorization of the different T4 template parts, IntelliSense, and design-time preview of your templates.

Our T4 Editor is currently supported under both Visual Studio 2005 and Visual Studio 2008 products.

..."

I heard about this today in the recent DotNetRocks cast and seeing the ZarkBlog post reminded me to check it out...

This is pretty cool. It seem that we, VS2008 users, have a template based code generation feature included in the box (and VS2005 users can also get it as a separate download) Free, gratis, etc.

More stuff to play with... :)

(via DotNetRocks - It's the ALT.NET Show! & ZarkBlog - Text Template Transformation Toolkit (T4))

Lock your bits - Faster C# bitmap manipulation

Windows Mobile Team Blog - Faster C#

"...

Today’s lesson is fast bitmap manipulation. Trying to alter pixels on an image is an intensive operation due to the problems associated with accessing managed memory. It’s just plain slow. This won’t be a big concern if all you are doing is drawing an image to a graphics object – but when you want to run a per-pixel filter on an image you quickly hit a performance bottleneck.

For this tutorial lets create a few classes that will let us invert the pixels on an image. The first thing we need to do is create a faster bitmap class. I’m going to make a class called FastBitmap, but I can’t subclass from Bitmap since it’s sealed. Oh no! Relax … we can fix this. Let’s create a class that contains a member variable that is a bitmap.

...

But we still haven’t solved our performance problems. How do we quickly manipulate the pixels on an image? Simple – lock the pixels in memory so we can access them quickly and in a contiguous fashion. This is done via the LockBits method. I’m going to add the following methods to our FastBitmap class that allow us to put the managed pixel data into a format that is better suited for direct manipulation.

...

Now we have an algorithm that in union with our FastBitmap class can invert a 320x240 image nearly instantly on a mobile device.

..."

Interesting...

It's been a bit since I've had to play with images, but I will be returning to Managed Image Land one day in the not to distant future, so wanted capture this tip.

 

Related Past Post XRef:
Converting a Color Bitmap to Greyscale with .Net (referenced article doesn't exist anymore, but you can find it in the Google Cache)
Playing with Text and GDI+ in VB.Net - System.Drawing.Fun
Bob Powell's GDI+ FAQ

Tuesday, April 15, 2008

N-Tier Linq to SQL in VB

Beth Massi - Sharing the goodness that is VB - LINQ to SQL N-Tier Smart Client - Part 2 Building the Client

"In my last post we built the service and data access layer for our LINQ to SQL N-Tier application. In this post we'll walk through building a very simple Windows client form that works with our middle-tier.

Adding the Service Reference

Now that we have our middle-tier built it's time to add the service reference to the client project. Sine we have both .NET on the server and the client I'm going to use type sharing so that we can reuse the business objects (LINQ to SQL classes) on both ends. If you recall we we already added a project reference on the client to the OMSDataLayer project that defines these types.

...

And that's basically it. As you can see even in it's simplest implementation (that I could think of) writing n-tier applications with LINQ to SQL takes some work, especially as the relations between our object collections increase. LINQ to SQL is really just used as the data access technology in the middle-tier, everything on top of that is up to us to implement as we see fit for our particular scenarios. "

Beth Massi - Sharing the goodness that is VB - LINQ to SQL N-Tier Smart Client - Part 1 Building the Middle-Tier

"In my previous posts on LINQ to SQL I showed how to build LINQ to SQL classes and set up the data binding in your Windows applications. If you missed them:

Related Data Binding and ComboBoxes with LINQ to SQL

Creating Lookup Lists with LINQ to SQL

One-To-Many (Master-Detail) Forms with LINQ to SQL

Simple Validation with LINQ to SQL Classes

These articles focus on the binding and validation and use a connected model; meaning that the DataContext is alive and available tracking the changes we make to the collections of LINQ to SQL objects. Out of the box, LINQ to SQL is really easy to get working with a connected client-server architecture. As long as your objects are attached to the DataContext you get all the nice features like change tracking and automatic lazy loading of related collections. However, unlike the DataSet, once you disconnect from the data source you lose all automatic change tracking. So why use LINQ to SQL objects and not distributed DataSets?

...

If you're ready to jump off the cliff there's some really good information in the MSDN Library on how to set up LINQ to SQL in distributed applications. There are a variety of ways to handle LINQ to SQL in these scenarios as the library shows. In this post I'm going to walk through the most common scenarios to get this to work with a remote .NET Windows smart client (WPF coming soon!).  This post will focus on the data access and service layer and I'll follow up with the client in the next post.

..."

Thoughts and an example of using Linq to SQL in an N-Tier, smart client, scenario.

A quick look at ASP.Net Dynamic Data

Frank Wang's inspirations on .NET - First look at ASP.NET Dynamic Data Preview

"A major upgrade to the ASP.NET Dynamic Data was released on April 8th, 2008. This release is named ASP.NET Dynamic Data Preview. ASP.NET Dynamic Data allows you to automatically render fully functional data entry and reporting pages that are dynamically constructed from your ORM data model meta-data (LINQ to SQL or LINQ to Entities object model).  In addition to supporting a dynamic rendering mode, it also allows you to optionally override and customize any of the view templates using any HTML or code you want.

..."

This is one of those technologies I think I'm going to "want and see" on (but still keep an eye open for). On the surface it kind of seems like "demo-ware," the stuff we saw when ASP.Net first came out, etc, etc. But that might just be my age talking (i.e. been there, done that, burned once, got the t-shirt, etc)... Then again the stuff coming from Microsoft recently seems, again on the surface, like some older stuff warmed over, but as you look closer you see that they have learned from their past lessons and are now closer to getting it "right". The ASP.Net Dynamic Data maybe something like that...

Anyway it's worth keeping an eye on at least... :)

Creating Audio CD's with .Net and IMAPI2

CodePlex - Creating Audio CDs using IMAPI2

"musiccd

This is my 3rd article now on burning media using IMAPI2, version 2 of Microsoft's Image Mastering API. I received a few inquiries on creating Audio CDs after I wrote my last article Burning and Erasing CD/DVD/Blu-ray Media with C# and IMAPI2, so I decided to write this article next. This article goes into more detail about the IDiscFormat2TrackAtOnce interface which is the IMAPI2 Interface for creating audio CDs.

...."

Another cool IMAPI2 with .Net article by Eric Haddan. Think about creating an application (or service, etc) that automagically burns audio to a CD, such as maybe podcasts. Watch a folder, when a new file arrives, convert to wav, burn to CD, wash, rinse, repeat.

Now that I have a Zune I doubt I'd build this now, but not too long ago I'd have seriously considered writing something like this...

Related Past Post XRef:
Burn CD/DVD/Blu-ray's with C# and IMAPI2 (Image Mastering API v2)