Xperimentality

Building a Better Xperience with .NET

 Friday, June 20, 2008

I have had a minor release of the Silverlight Code Camp Template for some time and just keep getting side-tracked when I go to move it out to CodePlex.  So I had a few spare minutes today and uploaded the new file.  I know a lot of people wanted the better mouse support.

The only change in Version 0.4 is the addition of the mouse scrolling support libraries.  So now all scrollable regions in the site can be controlled with the mouse-wheel and by dragging the scroll thumb.

More releases will be forthcoming (more quickly than this one)!

Friday, June 20, 2008 9:16:34 AM (Central Standard Time, UTC-06:00)
 Thursday, May 08, 2008

A couple of weeks ago Scott Hanselman posted about creating your ALT.NET Geek Code.  I know there has been quite the debate about ALT.NET and I am not going to get into that.  But whether you are an ALT.NET-ian or not, there is an interesting twist to the ALT.NET Geek Code.

Seasoned pros and beginners alike are inundated with new technology and new terminology almost every day.  How do you figure out what to look into and what to ignore?  You could drive yourself crazy trying to keep up with all of it.  But a side-effect of the ALT.NET Geek Code Generator on Scott's blog is that it is a great checklist of things you should know about!

Take a look at the list of processes and tools that can be selected to form your own ALT.NET Geek Code.  It is a pretty good list of things you should know about.  I am not talking about becoming an expert in all of them....maybe not even in any of them.  But, in my opinion, developers should at least know a little about all of them (if only to be able to carry on a fairly intelligent conversation about them).  As you investigate each one, you might actually find one or more that you want to delve into and perhaps even use on a daily basis.

So the next time you are trying to decide what to look at next, take a look at the ALT.NET Geek Code Generator and pick one of the ones you don't know about.  You might just discover a new hammer!

Thursday, May 08, 2008 8:17:37 AM (Central Standard Time, UTC-06:00)
 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)
Who Am I - Todd Miranda
Me
MVP Visual Developer - ASP/ASP.NET
Search
Links
On this page....
Calendar
<June 2008>
SunMonTueWedThuFriSat
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
Archives
Aggregate Me!
RSS 2.0 | Atom 1.0 | CDF
Categories
Blogroll
Contact me
Send mail to the author(s) E-mail
Administration