Webcast schedule has been updated

The Webcast schedule has been updated slightly. You can find it here. You can always find it in the sidebar as well:

WebcastSidebar

The key change is this

September 10 Silverlight Animation and Expression Blend

Posted in z Silverlight Archives | Comments Off on Webcast schedule has been updated

Three New Videos On Data Binding

[Temporary Notice – The video DataBinding and Data Templates in Xaml has been pulled due to a production problem that is expected to be resolved no later than Tuesday.]

I’m pleased to announce that we’ve posted three new videos on DataBinding and on DataTemplates (creating templates that control the display of a collection of data in a list control such as a list box)

 

 
(click image to go to video)

An Overview explains the fundamental concepts of DataBinding and ListTemplates.

 

 

 

 

 
(click image to go to video)

DataBinding and DataTemplates in Xaml shows how to bind the properties of business objects to Silverlight controls in Xaml and how to create DataTemplates by hand.

 

 

 

 
(click image to go to video)

DataBidning and DataTemplates With Expression Blend recreates that same work using Expression Blend (and note that it is 9 minutes vs. 22!).

 

 

 

 

A Note To Those Who Want Deeper Material

I’ve received a lot of feedback from users who feel that we’re mired in introductory material; especially about data. I will at a later date write a longer blog post on this, but the short response is “I hear you and your wish is my….”  

While balance is important (lots of folks are still just arriving) there is no reason we can’t dive deep as well. The Webcast schedule calls for a discussion of Creating Skinnable Custom Controls and From DB to Display in the Data Grid with Silverlight, but those are pretty far out on the calendar (Aug27 and Oct 15 respectively). I can certainly get tutorials and videos on those subjects out before then.

In the interim, let me know what other advanced topics you’d like to see covered and either Tim or I will try to make sure we add them to our list and give them high priority.

Thanks!

Posted in z Silverlight Archives | Comments Off on Three New Videos On Data Binding

Web 2.0 Run Amok

In the past few months, I’ve dramatically increased the number of channels from and to the community and since they are likely to cause some confusion, this post will briefly review and explain my intentions.

First, the list:

  • Tutorials
  • Books
  • Videos
  • Webcasts
  • Presentations
  • Silverlight Blog
  • O’Reilly Blog
  • My Other Blog
  • Amazon Blog
  • Private Twitter
  • Silverlight MicroBlog
  • Silverlight HyperBlog  +Email +Forum
  • Portal
  • Book Support
  • Email
  • Phone
  • Emergency IM
  • Other IM
  • Technorati
  • Facebook
  • DotNetSlackers
  • CommunityCredit
  • Plaxo
  • Linked In
  • Del.icio.us
  • DiggIt
  • Wikipedia
  • Flikr
  • etc.

Formal, Mostly One Way, High Value Communication

SidebarLinks A large part of my job is to produce what we call “content” (though I bet I’m not supposed to say that out loud) which includes our Tutorials, Videos, Presentations and Webcasts.  You can always find links tot he latest of these on the sidebar of my blog

In addition, Tim and I are under contract with O’Reilly to write the forthcoming Programming Silverlight 2 which has been embraced by Microsoft and is also (isn’t this cool?) part of our job here.

I try to keep my Blog reasonably focused on Silverlight, but I do include the occasional article on anything from technology rants to just rants.  That said, if the signal to noise ratio falls too low, let me know!

 

Other Connections

iStock_connections_xSmall

In addition to the big 5 (Tutorials, Book, Videos, Presentations and Webcasts) I’ve created as many innovative connections as I can think of or steal from others. These include a few that require explanation…

The Twitter Family

  • Private Twitter – I use this for occasional outbursts, but mostly to let folks know where I am when I’m on the road
  • Silverlight MicroBlog – an experiment in “how much blogging can you do in 140 characters” – that I’m still working on but that is an interesting idea I keep coming back to
  • Silverlight HyperBlog – a new experiment in blogging my work day in some detail supported by a dedicated email address to get feedback and a dedicated community forum in case subscribers want to discuss anything that comes up in the blizzard of tweets.   This is clearly experimental, but interesting.

Other Blogs

O’Reilly Blog and author site is often neglected in favor of this one. However, it does  contains links to book information, old articles and can be useful (at least to me) from time to time.

The  Amazon Author Blog is mostly a “fan” site, with reproductions of blog entries from elsewhere, the occasional original entry and such compelling data as my wish list and my most recent purchases (a digital download of Brian Eno’s Fat Lady Of Limbourg)

Finally, I recently renamed my political blog to My Other Blog – it has had numerous names, but its focus has moved away from pure *** Politics and it is now where I write anything I feel the need to write that doesn’t belong here (perhaps this blog entry should have been put there??) 

Phone and IM

I’m quite ambivalent about posting my phone number and now I’ve added Instant Messaging to my blog, which is absurd. 

LiveIM

With 1/2 a million readers of my books, and 200+ incoming emails a day, and working an average 70 hour week, it is silly to think that I can answer calls or take IM. But there is an endless internal psychic conflict in  wanting (needing?) that personal touch; meeting the needs of the individual developer. Of course, the reality is that the only choice is to redirect callers to the excellent Silverlight forums or to my book support site, but this keeps alive my hope that I will, from time to time, be able to provide that personal answer that gets someone back on track.

Web 2.0 Sites

It may not be completely accurate, but I would put my membership in Plaxo, LinkedIn, Facebook, Flikr, even DotNetSlackers and CommunityCredit under this heading. All of this is an effort to be “out there” as a presence, reaching out to the community. At the same time, participating in Technorati, Deli.icio.us and DiggIt is a way to let folks know about the Blog, and Wikipedia is not something I can control but it is a blast to be listed.

All in all, my goal, over time, is to provide access, community and, most important, useful information, with as little noise as possible.

Posted in z Silverlight Archives | Comments Off on Web 2.0 Run Amok

Canonical Q&A

Every day I get about 10-30 questions that I answer with a stock response (sorry) that says something like

Hello and thank you for writing.

I would encourage you to post your question in the Silverlight Forums. Be sure to include:

* which version of Silverlight you are running,
* which version of Visual Studio and/or Blend you are using and
* whatever else you can add to help reproduce the problem.

Meanwhile I’ll try to look into this as well.

Thank you,

I hate this answer; but it is the right thing; I can’t possibly do my job and also dive deep into all the questions I get; the forums really are the right place and 1,000 brains are better than one. Oh, and  I do follow and I do look into many (though not all) of them.

That said, some questions come up a lot, and today I received a note with 4 that I must get at least five times a week, so here are my quick responses (I’ve paraphrased some of the questions)

I'd like to make my website a bit more "rich" and a better UI experience for the users and I'm considering Silverlight. It currently uses….  What would be your advice?

Since you are new to Silverlight you probably want to work your way through a suggested learning path and then ask a lot of questions in the forums. I wish I could spend a day (or a week) working on the design with you

For this website, with respect to your multiple page example…Let's say I have 30 existing .aspx pages. Would I make page1.xaml, page2.xaml, page3.xaml, etc. that would correspond to each respective page that I currently have?

Not necessarily (and I hope you’d use better names <grin>). In fact, there is no reason you wouldn’t have a mixed model, using ASP.NET where it is working for you and Silverlight for enhanced (richer, faster, etc.) experiences.

Are there any resources that tell you how to convert a complex ASP.NET web site into a complex Silverlight site?

Not that I know of, but more information is coming every day. Be sure to keep an eye on silverlight.net and subscribe to Silverlight Cream, and Silverlight News.

4. This may sound odd, but how do I know that wanting to do this in Silverlight is not completely strange when it works and looks satisfactory now? Still make the change and why I guess is what I'm asking here.

If it is satisfactory now, go do something else <smile>. But maybe it isn’t completely satisfactory; maybe a faster richer experience, in at least some parts of the application would be valuable. Take a look at some of the showcase applications to get an idea of what is possible.

 

Hope that helps

Posted in z Silverlight Archives | Comments Off on Canonical Q&A

Over The Top Twittering

I see my job as, in part, community building, and as part of that, lots of experimentation. Today, I’m pleased to announce the launch of a new (experimental) HyperMicroBlog named SLGeek (join now)

I will be blogging everything – all blogging all the time, at least while I’m working, often when I’m just thinking about work — though topics may range beyond work, and you are fairly warned that you may learn ore about me than you care to know.

(Intensive blogging begins later this morning and won’t stop for at least one week)

The goal is that I’ll be recording not only what I’m working on but what I’m thinking about what I’m working on; as well as who I’m talking with, what we’re talking about (when it isn’t confidential), and anything else I can possibly tell you about what is going on. 

Expect the blogging to come in bursts, but there will be lots of it.

Sign Up Here

To keep this from being entirely absurd, in this blizzard of words you should (if this goes as I hope) find tidbits about what I’m working on that won’t be posted for a while, what my team is thinking about that isn’t a big deal secret, what I find interesting that you might (or might not) and most important, have a chance to feed back to me and even more important discuss with others where I’m nuts, wrong or just off the rails.  To facilitate that, I’m setting up two places for community feedback:

  • First, you can write to me directly, but I almost certainly won’t respond (except when I grab your email and plunk it into this blog) at slGeek@jliberty.com.

SLGeekForum

  • Second you can post your thoughts, but I almost certainly won’t respond, and my not have time to even keep up to date)  on a public  discussion site I’ve created (you may have to join to post, but it is free).

It is the forum that I hope will prove most interesting. Feel free to discuss anything there and if you need more folders, write to slGeek@jliberty.com and let me know. 

NB: This is an experiment. We’ll see how it goes.

Posted in z Silverlight Archives | Comments Off on Over The Top Twittering

The 5 Levels of Technophilia and Silverlight

Bookmark and Share

I used to work for a man named Larry Weiss at Citibank, who did a number of magical things (including creating the best ATMs in the world in the 1980s that still surpass anything I’ve seen other banks do yet!). 

One concept that he talked about a lot (I have no idea if it was original) was the 5 levels of Technophilia, which he described as a pyramid but probably is better described as a bell curve and in fact a quick Live-Search turns up many such images.

quintiles

Doesn’t matter; it was his labels, and more important his one sentence examples (which I’ve paraphrased and updated) that I cared about:

I – First Buyers 

Technology for its own sake. Gotta’ have it. They’re the ones on line right now buying the new iPhone

II Technology Lovers

“Show me any any good reason, and I’ll buy it.” These folks already have FIOS and HDTV and don’t understand why anyone thinks that is odd.

III Technology Comfortable

“If there is a good reason, I’ll buy it, but show me the reason. After all, there is some cost to learning, some hassle to maintaining, but if you overcome my hesitation then I’m happy to buy.”  These folks are buying DVRs now and considering a GPS for their car.

IV. Technology Resistant

“I don’t like it, I don’t want it, but if you can really convince me that I have to have it,  I’ll complain a lot, but I’ll buy it.”  This is my mom.  Has a VCR, won’t take a DVD player as a present. 

V. Go Ahead, Pull The Trigger, I’m Not Using It.

Forget it, they don’t even have answering machines.

 

 

So?

I’ve found these quintiles to be totally   arbitrary and inconsistent, and yet a guiding principle for the past 20+ years. The fact is, I’m a Quintile I, my wife is a Quintile III and most folks fit pretty easily into one of these descriptions.

Here’s how I know I’m a Quintile I.  I leave my GPS on all the time, even when I know just where I’m going. Why? Because I am totally gassed by what it is. The fact that this tiny little box is sitting in my car is just too fantastic. Think for a moment about how it works (which I only know to a first approximation:

Satellites in the Global Navigation Satellite System continually transmits messages to the tiny box in my car.

Each of these messages encodes the time the message was sent, as well as the satellite’s precise orbit and the almanac of the orbits of all the other satellites. Given signals from four satellites, that tiny box not only computes its position in 3 dimensional space, but also the exact time so no precise clock is needed.

Consider that the calculations must take into account not only that the signal travels at the speed of light through space, but is slowed by the atmosphere, and, more, the on-board clock speed with relation to an earth-bound clock is altered both by the special and the general theory of relativity and this must be taken into account by the satellite engineers if the GPS is to be sufficiently accurate.

On top of all of that, once you have your position, you have only just begun, you next must include a complete mapping program, algorithms to compute getting from here to there, UI for describing where you want to go, and when you want a different route or to find a gas station on the way. And then it talks, and it does so usefully, giving good directions with plenty of notice, and reinforcing it by showing the alternative roads and clearly marking my path with an arrow.

Best of all it does not complain when I miss a turn but quietly reroutes new directions. And this box costs about $150 and weighs less than a book of maps.

TomTomOne

My wife (Type III) is happy to use it. She agreed we need one for each car. But here’s the thing: when she doesn’t need directions she turns it off. It is a useful piece of equipment, a utilitarian device, but it has no aesthetic for her.

To me, it is a nearly inspiring work of technology. It is intrinsically fascinating. It is, I would say, pretty close to awesome. 

Epilogue.

Watch out if you identified with my ramblings above! 

whyswsucks In the wonderful book Why Software Sucks, David Platt relates that he often asks (at his presentations), how many of the geeks in the audience drive a stick shift (or would if their spouse would let them). Some huge percentage does. But the rub is that only a tiny percentage of the overall population does.

His point, and it is a good one, is that we (that is geeks) tend to be type I or II, but we’re building software mostly for type III. That is well worth remembering, especially when confronting software like DeepZoom – software which can suck you into its own power causing you to lose site of the correct order of operations, which is this:

1. Figure out what is needed,
2. then figure out which technology can best be applied to the problem. 

When we reverse that order, we die. And we should.

So…

So… So… As Silverlight matures, and as we come to understand it better, we will go through phases in the tutorials and videos, etc.

  • Just trying to get started
  • Trying to catch up as things keep changing
  • Mastering the skills
  • Applying the skills and diving deeper
  • Stopping and asking, is this steak or sizzle?

Meanwhile the world is changing, other technologies arrive, promise, fail, surprises happen, opportunities come and go… the thing I find exciting about Silverlight is that it is not nailed to the deck; it swivels, it rolls and thus as things change, Silverlight should be able to morph into the tool that is needed. We’ll see, but I suspect we will look back at this not as the early period but as the very very beginning.

Should be fun.

Posted in z Silverlight Archives | Comments Off on The 5 Levels of Technophilia and Silverlight

Styles and Templates – Three Videos

I’m very pleased to announce a three part video series (currently listed in reverse order) as companions to my new tutorial).

The three videos are

ThreeOnVSM

 

The new Visual State Manager and Parts model are very exciting and I’ll be following this up with a good bit more, including two up-coming Webcasts:

Posted in z Silverlight Archives | Tagged | Comments Off on Styles and Templates – Three Videos

Green Eggs and Blend

I do so like it

I’m pleased to say that the accident of not recording my first (new series) Webcast led to the opportunity to reformulate it as a video, which is now available for viewing or download.

This is a brief, somewhat  tongue in cheek overview of  why I gave up a 15 year commitment to working in a single Integrated Development Environment and came to discover I do so Like Expression Blend.

Posted in Blend | Comments Off on Green Eggs and Blend

Data Binding Webcast

iStock_manInKeyholeSmallI presented a live Webcast today on Databinding and Data Templates, and a few resources were mentioned. As promised, here are links to all of them

I have a tutorial specifically on data binding that is about to be completed, which should to be released in a few weeks, along with “How Do I” videos on the subject; I’ll post an update at that time.

Thanks for joining me, and be sure to check the schedule for upcoming Webcasts.

 

photocredit: istockphoto, all rights reserved


Posted in z Silverlight Archives | Comments Off on Data Binding Webcast

July 9. Celebrating A First Very Happy Year At Microsoft…

 

 

iStock_ cupcake one candle Large

and thanking you all for your support and shared excitement as Silverlight evolves.

 

 

istockPhoto; rights reserved

Posted in z Silverlight Archives | Comments Off on July 9. Celebrating A First Very Happy Year At Microsoft…

Tutorial on Styles & Templates Now Available

I’m very pleased to announce that my latest tutorial, on Styles, Templates and the Visual State Manager is now available, in HTML, or as a PDF, and the complete source code is available as well.

The Visual State Manager is a very exciting part of the new Parts model that decouples the logic of controls from their UI, leading to the startling realization that every control is lookless and you are free to change the look of every control in the toolbox.

This tutorial examines the three fundamental ways you might modify the appearance of a control:

  1. In-line style attributes
  2. The creation of Style objects (in Xaml by hand or using Blend)
  3. The creation of Control templates

The Parts and State model is examined and I spend a good bit of time examining the ways in which you can significantly modify the appearance and state transition behavior of a control without changing its event handling.

TemplatedButton

This tutorial, however, is far from the last word (its not even the first word!). I posted  an intro to this tutorial just a few days ago, and I’ll be posting a few videos very soon.

On July 23 I’ll be doing a Webcast: Visual State Manager: Transitions and Animation, and then on August 27 we’ll go deeper with a Webcast on Creating Skinnable Custom Controls (and you can, of course, expect videos and blog entries on these topics between now and then).

 

All in all, templates are an exciting and (to be honest, fun) aspect of Silverlight programming, and I’m not sure we’ve done more than scratch the surface of the creative possibilities.

Posted in z Silverlight Archives | Tagged | Comments Off on Tutorial on Styles & Templates Now Available

Styles and Templates

Follow up posted at bottom of article

I’m about to release a tutorial and a few videos on Styles and Templates. To set the stage, I wanted to discuss one aspect of templating in Silverlight that is in some ways revolutionary.

The designers of the Silverlight 2 control libraries established from the outset that there would be an absolute decoupling of the control logic (as implemented by event handlers) from the User Interface. This allows the UI to be dictated entirely by Tempolates, (and the Visual State Machine) and in turn that allows templates to be written entirely in Xaml and to consist of a combination of graphic primitives and story boards (transitions).

This means that every control is lookless. 

 

The appearance of all the controls in the toolbox is just the appearance provided by the “out of the box” template assigned to it  by the control creator. It has no more intrinsic validity than any other skin you might put on the control.

Say what?

That means you are absolutely and 100% free to use the button as is, or to make it look like a dog, and have it bark when pressed. Or, consider the images shown here. Both sets show buttons being before and after being clicked. Other than aesthetics and convention, there is nothing that makes one set more correct than the other.

Button1Unclicked ButtonClick1

 Button2UnclickedButtonClick2

The Possible States are Defined and Embedded in Metadata

Both “looks” are equally valid, and both buttons send exactly the same click event.  Since the designer of the out of the box button was kind enough to embed all the button’s state information in the button’s meta-data (e.g., “I have the states Normal, MouseOver, MouseDown, Disabled, Focus and NotFocused), and since Expression Blend reads that meta data and makes editing the appearance and behavior astonishingly easy, it is not only valid to change it to a round, spinning,  dipping shape,  it is (to be honest) fun.

Three Ways To Modify Controls

 

As you will see in the tutorial to be release within the next day or so, I distinguish among three ways to modify the look of a control:

1. “In line” attributes

2. Style objects

3. Templates

In Line Attributes

Very briefly, the first of these we all do all the time. This is as simple as adding such UI controlling attributes as HorizontalAlignment="Left" to the Xaml.  It is fielder’s choice as to whether you set these attributes directly in Xaml or let Blend set them for you as you create your UI

Styles

The second is a more formal approach in which you create a Style object that can be applied to multiple controls to provide a uniform look to controls used in the same way. The cannonical example is TextBlocks used as labels.

You might decide that all labels in your application will be

  • Foreground=”Black”
  • FontFamily=”Verdana”
  • FontSize=”18”
  • VerticalAlignment=”Bottom”
  • HorizontalAlignment=”Right”
  • Margin=”10,0,15,0”

Rather than having to repeat this for every TextBlock you can create a style (in the .xaml page or for the entire application in App.xaml) and then apply the style to each TextBlock used as a label like this:

<TextBlock x:Name="ProgMtl" Text="Pregressive Metal"
Grid.Row="2" Grid.Column="0" Style="{StaticResource LabelStyle}" />

<TextBlock x:Name="JazzLbl" Text="Jazz"
Grid.Row="2" Grid.Column="0" Style="{StaticResource LabelStyle}" />

 

 

In previous documents I showed how to set Styles by hand, but Blend makes this so easy and so much less error prone I’ve stopped hand-coding Styles.

Tempaltes

Templates is the big enchelada. With the advent of the Visual state Machine, and the use of storyboards for transitions between states (giving a much more natural look to your application)  templates simultaneously free you to create the most dramatic and impressive changes to your application while virtually (but not literally) forcing you to use a tool like Blend to do so (you can hand-code anything if you are patient enough).

Much more on the details of Templates to come.

Follow-up



More
Templates and Custom Controls

Posted in z Silverlight Archives | Comments Off on Styles and Templates