AJAX, Silverlight, WPF & More

RDU DNUX / Silverlight Group - Meeting V1.0

Wednesday, April 16, 2008 9:16:45 PM (Eastern Daylight Time, UTC-04:00)

SilerlightLogo

The details are finally in place for the beginnings of the Raleigh/Durham Dot Net User Experience / Silverlight group. We will be meeting on Tuesday April 22, 2008 at 6:00 PM. We will be meeting at 1143 Executive circle, suite H, Cary, NC 27511.

Map image

[*****pushpin estimated may not be exact]

Please help us spread the word! If you know of people working with or interested in Silverlight/WPF in the Raleigh/Durham/Chapel Hill area please forward this along.

What is the purpose of a new group?

The purpose of the group is to bring together individuals who share an interest in exploiting the Microsoft .NET platform to create Rich Interactive Applications that provide the end user with the best possible user experience. We will be focusing on  using technologies such as Silverlight, WPF, etc., as well as the related design user experience topics that are related.

Who should attend?

As suggested above, the audience really isn't limited to any type of individual; however, for the sake of providing "labels", the group is targeting Microsoft Silverlight / WPF / Expression  developer and designer audience. While we will be started off with some basics of Silverlight, the goal of the group is going to be to focus more on intermediate and advanced topics. We will be working jointly with the Triangle .Net User Group (www.trinug.org) which is starting to offer a Silverlight 101 focus group.

Where do I sign up?

There are a number of logistical issues that we need to work out getting this group going, such as a website, etc. If you are planning attend the next meeting, please leave a comment or drop me an email so that we can plan for numbers and hopefully have some discussions beforehand on what people would like to see.

What will be covered?

At the first session I will be presenting some work I have been doing relating to styling and Control Templates in  Silverlight 2 controls and have a Q&A. At that time we will also get some ideas of what we'd like to see in future events.

Why DNUX?

I met Cory Smith who has started the DNUX (www.dnux.org) groups in the Dallas Texas area and I thought the idea was brilliant. While our initial topics will likely be Silverlight related, I did not want to bind us complete to one technology. Dot Net User Experience provides a much better description of the direction I'd like to see. Hopefully I'll find him again so I can official ask to "borrow" the name idea.

Posted in  |   | Comments [1] 


Mole 2 - Visual Studio Visualizer for WPF

Sunday, December 09, 2007 6:27:24 AM (Eastern Standard Time, UTC-05:00)

Karl sent me a note a little while ago and I've been meaning to blog about this, but in the mean time I think Karl has gone without sleep since then and along with Josh Smith has already rolled out Mole version 2! You can get it HERE

Mole 2 is

"a high performance, full featured, multifunction visualizer that allows in-depth inspection of the Windows Presentation Foundation (WPF) visual and logical trees. For each element in the visual or logical tree the developer can view all properties, visual image, run-time XAML or IEnumerable collection data."

If you work with WPF this, Mole is a thing of beauty! ( I wonder it would take to do this for Silverlight? )

 

image

 

Great work guys! For more info please see http://karlshifflett.wordpress.com/mole-visual-studio-visualizer-for-wpf/

Posted in  | Comments [1] 


Karl Shifflett: Authoring WPF Custom Controls

Monday, October 29, 2007 2:07:32 AM (Eastern Daylight Time, UTC-04:00)

The energy level is going to be through the roof in November when WPF Fanatic Karl Shifflett arrives at the Triangle .Net User Group (TRINUG) for his presentation on Authoring WPF Custom Controls on Wed November 14, 2007. If you are interested in WPF, and want so see some examples of it's power in real world applications come check it out.

 

Authoring WPF Custom Controls
Karl Shifflett
Blog: http://karlshifflett.wordpress.com

When Microsoft released the .NET Framework, they really energized and radically expanded the toolset available to developers. The .NET 3.0 Framework is no exception to this trend.


In this presentation we will explore the steps required to build and consume lookless WPF Custom Controls that expose Dependency Properties and Routed Events.  The sample code includes a WPF CheckListBox and HyperLink control (that is not dependent on the FlowDocument, Page or TextBlock controls) along with a WPF application demonstrating their use. 

visit www.trinug.org for more info!

 

Technorati Tags: ,

Posted in  |   | Comments [0] 


Josh Smith Speaking at North Carolina Code Camp

Thursday, October 04, 2007 6:46:25 AM (Eastern Daylight Time, UTC-04:00)

Karl has just announced that Josh Smith will be giving a WPF presentation on October 20th, 2007 at the Charlotte Developers GUILD Code Camp, in Charlotte, North Carolina. Josh writes one of the most information WPF blogs and contributes a great deal to the WPF community. If you're anywhere near the area, it should be a really great session.

Brian Hitney and I will also be jointly presenting a two part Silverlight session at the event as well. (Please Bill don't schedule us all at the same time!)

Technorati Tags: , ,

Posted in  | Comments [0] 


Show Us Your Blendables Contest

Monday, September 17, 2007 5:38:22 AM (Eastern Daylight Time, UTC-04:00)

I was looking for the latest Blendables release from Identity Mine (The "Love Your Software" people) and noticed this contest. It's hard not to create amazing applications with their WPF controls, so if you're doing cool things be sure to enter. (But not too many of you because I want to still have a chance to win too!)

Technorati Tags: , ,

Posted in  | Comments [0] 


3D Programming for Windows

Sunday, August 19, 2007 7:35:48 PM (Eastern Daylight Time, UTC-04:00)

This week my friend in the brown truck stopped by and left a little Amazon.Com box containing Charles Petzold's brand new 3D Programming for Windows book.

Windows-3D_WPF

I'm a big fan of his writing and the tremendous amount of quality information he drops in along the way. This one looks like another must have (In additional to his previous WPF book) for an serious WPF developer.

Posted in  | Comments [0] 


Raleigh Durham WPF/Silverlight/Blend Group?

Wednesday, July 11, 2007 5:44:59 AM (Eastern Daylight Time, UTC-04:00)

In addition to the local .NET fun that takes place at the Triangle .Net User Group, I'm looking to get a group of interested people together on a regular basis to take a somewhat more focused and advanced look into WPF and Silverlight. If you are in the area and working with WPF, Silverlight, Blend, or related topics I would be very interested in hearing from you. I'm especially interested in people coming at the from more of the design side than the typical developer would. If you're interested, please leave a comment or drop me a note. If you have space and would like to host such a meeting, please let me know as well!

Posted in  |   | Comments [0] 


Code Camp - WPF Presentation Links

Wednesday, June 27, 2007 5:09:21 AM (Eastern Daylight Time, UTC-04:00)

As promised, here are the links from my WPF presentation at CodeCampRDU

Microsoft WPF Momentum video

Kaxaml XAML editor - Robby Ingebretsen

SolarSystem Templates Demo - Beatriz Costa

ShowMeTheTemplates - Chris Sells

If you're in the Raleigh area and are interesting in learning more about WPF, XAML, SILVERLIGHT, and RIA/Design please drop me a note as I'm trying to arrange some additional gatherings.

Technorati Tags: , ,

Posted in  | Comments [1] 


MIX07 Wrap Up

Friday, May 04, 2007 8:13:59 PM (Eastern Daylight Time, UTC-04:00)

MIX07 has come and gone, and I can hardly wait until MIX08. It was great to see some of those old "conference friends" that I only get to see at events like this. The event also allowed me the opportunity to meet many more new contacts! Thanks to everybody that took the time to stop, chat, and share your expertise.

If you have been following the news from the event, you will know that the announcements were simply stunning. The buzz generated by Silverlight was unreal. To hear so many experts in the industry talking about how this changes the web was surreal. There is no doubt that Microsoft has a RIA (Rich Internet Application) strategy and they are executing it with skill. Look out web!

Ya, ya.. It's great that it runs on a Mac. Yes to be clear, the Silverlight .Net CLR now runs cross browser/cross platform on the Mac. What I find most impressive however is how they have brought so many of these new technologies together in one "developer ecosystem". That's the part that I really think the nay sayers don't get, is what that means to be able to develop the server, desktop (tablet, umpc), client (web, mobile device.. ) all using the same tools, the same languages. It's about productivity, scalability, and reliability.

As a developer that has been investing heavily in learning the new world of WPF, WCF, and AJAX, this has been a great validation that those efforts are worth while.

As for Mix.....

My absolute favorite session was the very last session of the conference, Kevin Moore's XD009 - Windows Presentation Foundation for Developers (Part 2 of the talk that Rob Relyea started which is darn good too!) (Video of the session is available here) We hear so much about designers these days, and developer designer work flow, you wonder if the role of the developer is getting lost. Well Kevin clearly shows why "Developers Still Matter". First, I need to say that there are few things more exciting than hearing somebody present on a topic they are truly passionate about. For Kevin, WPF is obviously more than just a job. His session shows how developers can create code to work for better for designers (or developers) working with it from XAML, but also goes on to show how much further a developer can take things. Kevin has updated his "Bag of Tricks" samples which continue to be one of the best reference samples out there for WPF.

Also on the last day, a conference just would not be complete without hearing Don Box. Steve Maine and Don Box held court to a packed house for their "Navigating the Programmable Web" talk, a deep dive into "GET". (Why does Don always need a "code monkey"? Can't he type?) The showed some coolness with the new UriTemplate class that at the time was soon to be released, but has now been released as part of the new Biztalk SDK  (That apparently isn't only about Biztalk). To remain cool and in the spirit of MIX, they did code their demo using a WPF app. (But didn't use WPF to host their WCF service. Slackers! ;-)

Other highlights were the sessions by Robby Ingebretsen and the Identity Mine crew (If you do WPF, Blendables are a must see!), Scott Stanfield from Vertigo and their Family.Show reference app, and last but not least on my favorites list was Sam George in his Ink on the Web using Silverlight talk. Way cool!

If you didn't make MIX07, or did and couldn't attend all of the sessions you wanted to, the videos are all online at http://sessions.visitmix.com

 

Technorati tags: , ,

Posted in  |   | Comments [1] 


Only Hours Until MIX07

Saturday, April 28, 2007 7:55:56 PM (Eastern Daylight Time, UTC-04:00)

In less than 24 hours I will be on an airplane heading towards Las Vegas to attend Mix07, the Microsoft conference that brings together the pocket protectors, turtle necks, and suits (Developers, Designers, and Business Decision Makers) of the world to discuss the future technology of the web and hear from "some of the most successful and innovative practitioners on the Web".

If you're not able to attend MIX07 which sold out early, be sure to pay attention to the www.visistmix.com website:

VisitMIX from Home!

"Starting on Monday morning, we’re going to be updating this page continually – people at home will be able to see all of the news, fun, live keynotes, sessions and partner demos coming out of the show."

As I've said before, I'm really looking forward to MIX07. MIX06 was great, and provided me with a lot of inspiration to dig into the new technologues of WPF, WCF, and AJAX. It also opened my eyes to a world of opportunities developing for Media Center.

I truly think that WPF and Silverlight are going to positively change the status quo in computing today, allowing us as developers to truly write software that people love. And I'm not just talking about flashy special effects programs with little core value, but to allow us to really focus on make user interaction truly makes sense for a given task.

One of the many sessions I'm looking forward to is Scott Stanfield from Vertigo Software taking dive into their new WPF reference application Family.Show that was developed for Microsoft.

 

Family.Show Screen Shot

 

 

Technorati tags: , , ,

Posted in  |   | Comments [0] 


WPF/E: AKA Silverlight

Monday, April 16, 2007 4:13:54 PM (Eastern Daylight Time, UTC-04:00)

With the rollout of a new website, Micrososft shares more of the vision.

"Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of media experiences and rich interactive applications (RIAs) for the Web."

http://www.microsoft.com/silverlight/

 

I look forward to MIX07 as more details are announced:

from Soma's blog: "Silverlight announcement at NAB is only part of the story, the rest will be unveiled at MIX including details about how Silverlight is a core component of Microsoft’s broader .NET platform. Keep your eyes on Mix07 as part of Ray Ozzie’s and Scott Guthrie’s keynote – be sure to check it out. "

 

Technorati tags: , ,

Posted in  |   | Comments [0] 


Expression Blend - Release Candidate 1

Wednesday, March 14, 2007 5:24:49 PM (Eastern Daylight Time, UTC-04:00)

The Expression team has announced the availability of Expression Blend RC1. This release includes "updated User Guide, a host of quality improvements, and a shiny all-new set of impressive and informative samples"

More info and download links on the Expression Web Site

Posted in  | Comments [0] 


Microsoft Expression Session 07 NYC

Friday, February 02, 2007 10:56:44 PM (Eastern Standard Time, UTC-05:00)

This week I attended the Microsoft ExpressionSession07 event held in New York City. As somebody not from NYC, the view from the 52nd floor of 7 World Trade Center was simply amazing!

 

 

The content of the day was equally as exciting, although I must say that while I think Microsoft has a great story with their Expression suite of products, they need to present a much more refined message. That being said, it was still a worthwhile event to attend.

The day featured a keynote in the morning lead by Eric Zocher, and afternoon sessions by presenters including Robby Ingebresen from Identity Mine & Beau Ambur fromMetaliqq (On Expression Blend/WPF), Microsoft's Jeff King, and Eric Meyer (Expression Web). The highlight for me was hearing from Robby and Beau, both individuals that are with companies delivering WPF solutions. Both showed opportunities to productively deliver amazing looking solutions and talking about the issues of a developer/designer world. I think hearing from these two clarified a lot of the message that Microsoft needs to be spreading to make Expression a success.

Expression Blend

Coincidentally, on the same day Microsoft Expression Blend Beta 2 was released to the web and is available here. Check out the entire Expression suite at www.microsoft.com/expression

Electric Rain also presented their new presentation software StandOut, which makes use of WPF. [Info here]

 

Posted in  | Comments [0] 


WPF Must see - Doninoken

Saturday, January 27, 2007 1:33:33 AM (Eastern Standard Time, UTC-05:00)

 

I don't quite get it, but this is still a must see!!!!

Via Karsten

 

Technorati tags:

Posted in  | Comments [0] 


TimeLinePanel - Custom WPF Control Part 2

Thursday, January 11, 2007 9:01:37 PM (Eastern Standard Time, UTC-05:00)

So Dwayne tells me that my Timeline Panel is in desperate need of a graphics artist. Ouch. While it didn't actually hurt my feelings, it was good motivation to get Part 2 online here which shows that the screenshot I left you all with of the basic timeline was really just showing the functionality of organizing textblock elements based on their event date.

In order to do the layout I override the ArrangeOverride method and introduce my own code to adjust the horizontal positioning. I utilize a ConvertDateToPosition function in which I calculate the _eventDate's position relative to the start and end dates provided to the panel. This could be inferred from the child dates but I decided to allow this to be set independently.

        protected override System.Windows.Size ArrangeOverride(System.Windows.Size finalSize)
        {
            foreach (UIElement child in base.InternalChildren)
            {
                Size sizeChild = new Size(child.DesiredSize.Width, child.DesiredSize.Height);
                
                DateTime _eventDate = (DateTime)child.GetValue(EventDateProperty);
                double NewSize = ConvertDateToPosition(_eventDate, _startDate, _endDate);
                NewSize = NewSize*finalSize.Width;

           child.Arrange(new Rect(ptChild, sizeChild));
       }
       return finalSize;
 

Now the cool thing about the way that XAML and WPF handle child elements is that they can be of any type. Initially I used boring text boxes, but they could be Ellipses....

Or buttons...

Really any element could be used. The next step to follow my original Kayakalon example was to have the width of the elements determined as well by the end date provided. This would allow a more visual indication of the time spans.

To do this, I used the same ConvertDateToPosition function mentioned above to to calculate a new width for the child element which is inserted in the Child.Arrange call that executes for each child element during the ArrangeOveride method.

Before I forget, I wanted to mention that I also added some code in the arrange method to vertically stack the elements if their dates overlapped. This was done by tracking the potion and width of the last child element to see if the next one overlapped and if so increase it's vertical position. I also added the tick marks along the top by overriding the OnRender event.

Now I need to go make my hip shiny, trendy colored version of this for Dwayne.

 

Technorati tags: , ,

Posted in  |   | Comments [1] 


TimeLinePanel - Custom WPF Control Part 1

Wednesday, January 10, 2007 4:39:18 AM (Eastern Standard Time, UTC-05:00)

Frequently when I see a new technology presented, there are often demos of key concepts that stick in my mind. These examples become things that I feel I must try to build and thoroughly understand myself. At Microsoft's Tech Ed conference in Boston back in June, one of the demos that really stuck with me was the "Kayakalon" demo application used in presentations by Robert Ingebretsen and Lauren Lavoie from the WPF team.

The demo application touched on a number of items revolving around the graphical display of airline flight searches returned from a kayak.com web service. The end result would display flight legs on a graphical time line.

The creation of this TimeLinePanel become a task on the learning list to help me understand. I began trying to recreate the functionality of the control. I started off by inheriting from a Panel control to build a custom panel that would horizontally position child elements based on date criteria.

public class TimeLinePanel : Panel

    {

        protected override System.Windows.Size ArrangeOverride(System.Windows.Size finalSize)

        {

            return base.ArrangeOverride(finalSize);

        }

 

        protected override System.Windows.Size MeasureOverride(System.Windows.Size availableSize)

        {

            return base.MeasureOverride(availableSize);

        }

    }

In order to handle the layout as required, we are able to override the ArrangeOverride and MeasureOverride methods. The MeasureOverride measures the size in layout required for child elements and determines a size for the element. The ArrangeOverride positions child elements and determines their size. What I wanted to do was to horizontally position the elements based two dates, the would become the start and stop dates for each object, or in the case of the above example the departure and arrival times of the flight legs. In order to take advantage of a WPF design, enabling me to put any type of child elements into this panel, I needed some way to attached these properties to any objects residing in this container, even if they had not concept of these dates.

In .Net 3.0, Microsoft introduces the concept of a DependencyProperty according to the docs "Represents properties that are registered with the Windows Presentation Foundation dependency property system. Dependency properties provide support for value expressions, property invalidation and dependent-value coercion, default values, inheritance, data binding, animation, property change notification, and styling. This class cannot be inherited."

More specifically, I want to make use of an attached property which is "A dependency property that can be attached to any DependencyObject type and that is not limited to the type which defines it. The attached property provider must provide a static get(PropertyName) and set(PropertyName) methods as accessors for these attached properties." So basically, in the end I can create a two properties, independent of their actual types, allowing me to define a start and end date that get attached to any child elements with default values, that can be changed. Through these I can control the layout of the controls.

        public static DependencyProperty EventDateProperty;

        public static DependencyProperty EventDateRangeProperty;

        static TimeLinePanel()

        {

            FrameworkPropertyMetadata metadata = new FrameworkPropertyMetadata(DateTime.Parse("1/1/0001"), FrameworkPropertyMetadataOptions.Inherits );

            FrameworkPropertyMetadata metadataB = new FrameworkPropertyMetadata(DateTime.Parse("1/1/0001"), FrameworkPropertyMetadataOptions.Inherits);

 

            EventDateProperty = DependencyProperty.RegisterAttached("EventDate",

                typeof(DateTime), typeof(Control),metadata);

            EventDateRangeProperty = DependencyProperty.RegisterAttached("EventDateRange",

                typeof(DateTime), typeof(Control), metadataB);

        }

 

        public static void SetEventDate(DependencyObject dependencyObject, DateTime eventdate)

        {

            dependencyObject.SetValue(EventDateProperty, eventdate);

        }

        public static void SetEventDateRange(DependencyObject dependencyObject, DateTime eventdaterange)

        {

            dependencyObject.SetValue(EventDateRangeProperty, eventdaterange);

        }

Once these properties are in place, I can define my elements like this:


    Windows 1.0
    Windows 2.0
    Windows 3.0
    Windows 3.1
    Windows NT 3.51
    Windows 95
    Windows NT 4
    Windows 98
    Windows 2000
    Windows Me
    Windows XP
    Windows Vista

The end result renders like this:

Working through this example I discovered a lot of cool things that I could easily do to add functionality to this control. The main take away is how you can control how child elements are arranged.

Technorati tags: , , ,

Posted in  | Comments [1] 


WPF/E Dev Center - Now You See it, Now You Don't

Sunday, December 03, 2006 9:21:56 PM (Eastern Standard Time, UTC-05:00)

Last night a noticed a couple of blog posts on MSDN referencing the new WPF/E Developer Center on MSDN. None of the downloads for the SDK or runtimes for various platforms were up, but there was some core content.

Today when I went back to follow up, the Dev Center content was gone! I sound like it will launch soon, but some of the content appears to have snuck out early. If you missed it, it looked something like this:

Posted in  |   | Comments [0] 


Vista Coolness: PostitBoard

Wednesday, November 01, 2006 4:23:18 AM (Eastern Daylight Time, UTC-04:00)

This has been around for a bit, but since I'm posting cool Vista/WPF related things tonight, it can't be missed. Via Michael G. Emmons @ xamlxaml.com:

Posted in  |   | Comments [0] 


Vista Coolness: RikReader

Wednesday, November 01, 2006 4:11:19 AM (Eastern Daylight Time, UTC-04:00)

A slick WPF based feed reader that takes advantage of both the Vista RSS Platform and WPF. Check it out!

Posted in  |   | Comments [0]