Steve Holstad's "the bright lights"

"Just because your voice reaches halfway around the world doesn't mean you are wiser than when it reached only to the end of the bar." - Edward R. Murrow
in

April 2007 - Posts

Microsoft MIX 2007 Keynote announcements

Wow.  We just finished up the Microsoft MIX 07 keynote address, and as Ray Ozzie and Scott Guthrie were detailing the latest announcements from the Microsoft dev front, some eyepopping demos and incredible platform announcements were made public.  As I took notes, everytime I saw something I couldn't wait to get my hands on, I shorthanded a WOW next to the item.  The WOWs are piling up out here:

Without some screenshots, no blog cannot begin to describe how these new apps look.  All I can say is that the standard html site, and even the latest AJAX enabled sites will pale in comparision to the new "rich interactive applications" to be created in the coming months.

>> Silverlight 1.1 Alpha is now available, INCLUDING managed code support!  All 37 .NET supported languages are supported cross browser.  The ability for a designer to create XAML-based designs within Microsoft Expression Suite, sitting alongside a developer referencing the same files within Visual Studio is mind-blowing, as for the first time, the design/dev relationship is now a two-way street.  In the past, designers would create and spec out the general project layout, only to have devs mangle the design to the point of no return.  No more.  To make design tweaks the designer need only adjust his/her XAML files, and return them back to the developer. By the way, Silverlight is STANDARDS based.

Basically Silverlight comes down to three parts
  • Robust, even HD-quality, seamless video integration & streaming
  • .NET support in X-browser, X-platform web plugin
  • A service platform used to evolve "universal web" and "experience first" applications

>> The announcement of Microsoft Expression Suite, which includes Expression Media for video encoding; Expression Design for producing XAML projects managing "assets" (graphics, styles, etc); Expression Blend for combining design and multimedia; and Expression Web, for incorporating these projects into a web-based Silverlight site.

>> Micrsoft Streaming Service: We now have access to 4GB of upload space to host any videos for live streaming into our sites.  What a great way for devs without storage space and/or a Windows Server with streaming capabilities to take advantage of all Silverlight will offer.

>> Scott Guthrie's walk-through of the UX for a first time Silverlight visitor was shockingly friendly.  A clean XP machine, on first visit to a Silverlight site required one click to install the Silverlight runtime.  Assuming the demo was somewhat legit, the entire installation was complete in under 20 seconds, and the app instantly launched.

>> Remote, Cross-browser, Cross-platform debugging:  Devs now have the ability within Visual Stuio to attach to a remote machine running a Silverlight application, regardless of operating system and browser.  Imagine sitting inside VS, watching remote breakpoints being hit, while tweaking any objects you desire within the immediate window... pretty amazing to see a Mac being adusted on the fly via Visual Studio.

>> Full, open source, dynamic language support, including command line utilities (IronPython, JavaScript, Dynamic VB, IronRuby)

>> SO much more... I have a ton of topics to get to, I'll keep adding as we go...

All downloads are released as of this morning at http://www.microsoft.com/silverlight/downloads.aspx

Search DotNet

Lately I've really been listening to a lot of DotNetRocks podcasts, and in one program I heard mention of a great web site for .NET developers, SearchDotNet.com.  I have heard this site described as a great tool probably unknown by those who need it most... this site was created by a .NET developer tired of trolling horrible sites for quality coding content... check it out and recommend a few of your favorite resource sites to keep this resource growing.

http://www.searchdotnet.com/default.aspx

Btw, I'm off to MIX 2007 tomorrow, I'll post some of the more interesting things I learn throughout the day.  I'm planning on OD'ing on WPF and Silverlight, some of the demos I've read about should really blow people away, like the 2008 Beijing Olympics app, and of course, those Clarity MEDC keynotes.

SSIS Tip #2: Dynamic Property Expressions

When creating an SSIS package, keep mind the power of creating dynamic Property Expressions. Any Read/Write property of a package, task, event, manager, etc can be manipulated at runtime via Property Expressions to change the behavior of a deployed, otherwise static SSIS package. This gives the developer a powerful means of adjusting the package on the fly.

For example, you can create an expression to set a property value to a User variable, which is then configurable post-deployment (Tip #1: How to do this). Using this method would allow you to set the connection string to a desired target after deployment, without creating separate packages (Production, Staging, Test, etc).

User and System variables are all available for use in your Property Expressions, which are written via the Microsoft SQL Server 2005 Integration Services expression language. The syntax is uncomfortable at first, but it may grow on you. Eh, probably not...it's kind of nasty.

Below is an example of a Property Expression I've used to create a unique flat file name based on A) User variables to define the root path and base file name, and B) the current DateTime. Whenever my package runs, a unique filename is produced. Most of the expression is parsing out pieces of the date into our desired format:

 @[User::DestinationPath] + "\\" + @[User::RootFileName] + (DT_WSTR,4)YEAR(GETDATE()) + RIGHT("0" + (DT_WSTR,2)MONTH(GETUTCDATE()), 2) + RIGHT("0" + (DT_WSTR,2)DAY( GETUTCDATE()), 2) + RIGHT("0" + (DT_WSTR,2)DATEPART("hh", GETUTCDATE()), 2) + RIGHT("0" + (DT_WSTR,2)DATEPART("mi", GETUTCDATE()), 2) + RIGHT("0" + (DT_WSTR,2)DATEPART("ss", GETUTCDATE()), 2) + ".txt"

At runtime, the expression evaluates into "C:\MyPath\MyRootValue_20070412070021.txt".  Set this expression as the ConnectionString property value of a Flat File Connection Manager, and you're in business.

Struggling to find documentation? Searching for columns via SQL query

I recently had to locate some data within a mysterious, vendor created SQL database; we knew the fields existed, but thanks to really poor (non-existent) documentation, the search was on.

Here's a simple query that made my life easier... I think it's a handy snippet to keep around, especially when you're just not sure how some columns interrelate.  (Just change the @searchCol variable to the column you're looking for):

DECLARE @searchCol AS VARCHAR(10)
SET @searchCol = 'startDate'

SELECT
   cols.*
FROM
   information_schema.columns cols
   INNER JOIN information_schema.tables t
      ON cols.table_name = t.table_name
WHERE
   cols.column_name LIKE '%' + @searchCol + '%'
   AND t.table_type = 'BASE TABLE'
ORDER BY
   cols.table_schema,
   cols.table_name,
   cols.column_name

Posted: Apr 05 2007, 07:19 AM by sholstad | with no comments
Filed under: