Xperimentality

Experiences and Experiments in Programming

 Sunday, May 04, 2008

Finally!  And I say that not meaning that "it is about time", but "how exciting"!  On Thursday of last week, Expression Studio 2, in all its new feature goodness, was released.  There is just no way to list all the cool features that have been added in version 2 of all the products.

For those of you who have been using the preview releases of the Expression suite of products, you know how exciting it is that version 2 has been released.  There are some extraordinary new features in version 2 of all the products (I look forward to recording videos taking advantage of some of the new features).

For those of you who have not used the preview releases, you are in for a big surprise!  There are some absolutely awesome new features to be found in version 2.  Once you use version 2, you will wonder how you could have ever used version 1!

For those of you who have not used any of the Expression products, what in the world are you waiting on?  How could you not use such a great product?  Seriously, there is something here for everyone.  Expression Web is a great tool to help build standards-based web sites.  Expression Design is a great vector graphics tool.  Don't get me wrong...it still has a ways to go and is no Illustrator or Photoshop, but its easy integration with the other Expression products makes it a win win!  Expression Blend is the only way to go when working with XAML.  Whether you are building Silverlight applications or WPF applications, you need Blend!  Expression Media is an asset management tool that makes organizing and working with media assets super easy!  Expression Encoder is the tool for you if you work with encoding video for multiple devices/platforms/scenarios.  You definitely want to give these tools a try!

Take a look at version 2 and fall in love all over again!

Sunday, May 04, 2008 12:23:12 AM (Central Standard Time, UTC-06:00)

The Expression Team have released an updated version of Deep Zoom Composer!  A lot of changes have been made to make things faster and more efficient.  Some of the bigger features according to the Expression Blend and Design Team Blog are:

  • Improved Exporting
  • Better Design Experience
  • Updated Collections Export
  • Greater Access to Help

Keep in mind that this is just a stepping stone to the future of Deep Zoom Composer, but it is a travertine tile stepping stone!  It is definitely worth downloading if you have used an earlier version.

Saturday, May 03, 2008 11:46:01 PM (Central Standard Time, UTC-06:00)
 Friday, May 02, 2008

Anyone that builds or has built web applications, is familiar with the idea of writing some JavaScript code that will pop up a confirmation message to the user prior to performing a postback.

While I love JavaScript, I always thought the way this had to be done was a little messy.  An ASP.NET Button has an OnClick attribute, but this attribute's value is the server-side event that will be invoked upon a postback.  In order to invoke a client-side click handler in JavaScript, the attribute that must be set on the rendered HTML Input control is also OnClick.  Therefore, in order to accommodate both a client-side click event and a server-side click event, the client-side click handler must be added at runtime before the button is rendered.

In the code-behind, the following code would be used to add the client-side click handler:

btnDelete.Attributes.Add("onclick","javascript:if(
!confirm('Are you sure you want to delete this item?'))
return false;"
);

In the markup, the button would then look like this:

<html>
<head>
</head>
...
<asp:Button id="btnDelete" onclick="btnDelete_Click"
runat="server" Text="Delete" /> ... </html>

Starting with .NET 2.0, there is an easier way to do this.  .NET 2.0 introduced the OnClientClick attribute.  Instead of having to add the "onclick" attribute to the button in the code-behind, you can use the OnClientClick attribute at design-time in markup.  The new button code would like this:

<html>
<head>
</head>
...
<asp:Button id="btnDelete" onclick="btnDelete_Click"
runat="server" Text="Delete" OnClientClick="return
confirm('Are you sure you want to delete this item?');"
/> ... </html>

Much cleaner to me.  And I like that it can be done at design-time!

Thursday, May 01, 2008 11:17:23 PM (Central Standard Time, UTC-06:00)
 Monday, April 21, 2008

I got the Silverlight Code Camp Template out on CodePlex last Wednesday.  It still needs a little work but I wanted to go ahead and get it out for folks to start using it if they wanted.  This is the same template that I built for the Alabama Code Camp site.

The template is built to be deployable on the widest range of machines.  It does not use ASP.NET.  In fact, there are no dynamic server side technologies involved.  The site is 100% HTML, JavaScript, CSS, and Silverlight.  It utilizes XML files on the server for data storage since all the data is read-only.  The template also utilizes Silverlight's downloader object and zipped up assets in order to increase network performance.

Yes, more could be accomplished utilizing a combination of ASP.NET, AJAX, Silverlight, and perhaps asmx services, but then the deployment scenarios would be restricted.  And part of the point for developing it the way I did was to demonstrate that none of this was necessary in order to develop a Silverlight site!

The template consist of a main frame that contains the header and navigation.  Each subsequent page is dynamically loaded from the server when needed, then cached in the browser cache for subsequent requests.  Some pages are actually zipped up sets of assets which are then parsed and displayed by Silverlight.  This decreases the number of connections from the browser to the server and decreases overall download size.

By default, there are 5 pages:

  • Home
    home
    The home page is the landing page.  The home page contents are not dynamic.  They are edited directly allowing maximum flexibility.
  • Speakers
    speakers
    The speakers page is a zipped up set of assets.  Contained within the zip are the XML data for the page, pictures of the speakers, the main page layout, the left speaker item template, and the speaker bio template.  This page is generated entirely from the XML file.
  • Sessions
    sessions
    The sessions page lists all the sessions from all the speakers.  Clicking on a session title, displays the full description of the session.  This page is also a zipped set of assets containing the page layout, the session template, and the XML file for the data.
  • Agenda
    agenda
    The agenda page is a scrollable agenda.  This page was originally dynamically created but, quite honestly, I broke it!  So it is currently edited manually.  The content has been ordered to make it easy to edit in Expression Blend.  One of my first orders of business is to fix what I broke so I can get the dynamic generation part working again.  It will be driven from an XML data file as well.
  • Contributors
    contributors
    The contributors page is dynamically generated from an XML data file.  This page is downloaded as a zipped up set of assets containing the page layout, the contributor pics, and the XML data file.

There are a number of enhancements that will be made quickly.  Most of these are easy changes that I just did not get to before posting the project: things like better mouse support in scrollable regions, fixing the dynamic agenda generation, etc.  Hopefully it will be of some use to folks interested in quickly setting up a Silverlight site for their code camp.  I'll be sure to keep my blog updated as enhancements are made!

Monday, April 21, 2008 12:17:35 PM (Central Standard Time, UTC-06:00)
 Wednesday, March 05, 2008

The day started off pretty good yesterday.  Got to airport on time, got on plane, then got squashed into my tiny seat for 4-5 hours of immobile flight!

Last night I caught up with some guys that I knew and met some that I didn't.  Hung out for a while with Doug Turnure, Shawn Wildermuth, Joe Healy.  I met Scott Hanselman, Tim Sneath and a slew of other folks.

We initially got together at an O'Reilly event.  They were introducing a new concept in book publishing using a Silverlight 2.0 book.  It is called "Up To Date".  It is a book that is up to date with the initial release of Silverlight, but will be updated as releases are put out.  The book itself is unique binder construct that allows new pages to be put into the book ( in a similar fashion to a 3-ring binder ).  Updates to the book will be released both as PDF downloads and as a purchasable update.  Once you register the book, you can download the PDF updates, hole punch the pages, and put it in the book.  It is definitely an interesting concept!

Wednesday, March 05, 2008 11:25:44 AM (Central Standard Time, UTC-06:00)
 Saturday, March 01, 2008

Many of you may know that I have been recording "How Do I" videos for Microsoft Expression products for a while.  Recently a new Web site has been created by Microsoft focusing on the Expression Community.

There are sections for blogs, news and events.  There is a section for videos laid out more similarly to WindowsClient.net.  There is a gallery of work that not only demonstrates work done with the Expression suite of products, but also some creative inspiration sites!  And needless to say, there is a forum section for questions and answers.

If you do any work with the Expression products or are interested in getting started, be sure to check it out!  You can find the new site at http://expression.microsoft.com.

Saturday, March 01, 2008 1:13:48 PM (Central Standard Time, UTC-06:00)
 Saturday, February 23, 2008

Well I got in to Huntsville last night and went to the speaker's event.  We had a game night...not to mention cookies and other food.  Notice I specifically mentioned cookies!  While I am not a big gaming person, I watched Doug Turnure, Keith Elder, and Jeff Barnes play Rock Band.  They did a lot better than I could have!  As a matter of fact, I think Keith needs more to do since it looked like he must play 5 times a day!  Anyway, it is now day 2 and things have started off great.  There is a large group here so I am sure it will be another overwhelming success!

Saturday, February 23, 2008 9:14:48 AM (Central Standard Time, UTC-06:00)
 Sunday, February 17, 2008

Although I have not been blogging much, I have been spending a ton of time on WPF and Silverlight projects.  I am still doing some things with ASP.NET AJAX but the majority of my time over the last year or so has been spent in what I call the "XAML Technologies".  Recently I had the opportunity to work with 3 other guys from Moxie Interactive on a Silverlight project for a 20th Century Fox movie called Jumper.  The site is an interactive trailer viewing site built entirely in Silverlight 1.0.  Take a look at the Silverlight site and definitely go see the movie!

Sunday, February 17, 2008 11:50:52 AM (Central Standard Time, UTC-06:00)
Who Am I - Todd Miranda
Me
MVP Visual Developer - ASP/ASP.NET
Search
Links
On this page....
Calendar
<May 2008>
SunMonTueWedThuFriSat
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567
Archives
Aggregate Me!
RSS 2.0 | Atom 1.0 | CDF
Categories
Blogroll
Contact me
Send mail to the author(s) E-mail
Administration