Joe Wood's profileMeasured and ArrangedBlogLists Tools Help
    May 02

    Silverlight 1.1 Feedback - What to include on the GUI stack?

    The news from MIX07 this week has been very interesting.  After watching some of the breakout sessions I thought I would answer Nick Kramer and provide some feedback as to which controls and functionality to include in the final Silverlight 1.1 release.  The decision here is between supporting something at the core level, supporting it as a standard additional DLL or leaving it to the community.  Of course, the more interop between WPF and Silverlight the better, but the size of the download needs to be kept in mind. 

    So, in general, my inclination would be to use the following as guidance:

    • Include as much of the plumbing as possible.  Adding alternative, competing plumbing solutions on top of Silvlight could drift the design direction away from the solutions used in WPF.
    • Ship the controls as an additional DLL.  When I say controls I mean button, textbox, listbox, combo etc..  These file sizes should be very small if the infrastructure is shipped in the core product.
    • Work out a way of caching signed DLLs for reuse by other apps.  The assembly resolver should be able to check an assembly cache for already loaded assemblies.  Nothing as fancy as the GAC, just a dynamic cache of loaded assemblies on a best efforts basis.

    So, specfically - taking the above....

    • Include in the core the infrastructure for ItemsControl, including the virtualization of elements, Panel templates etc.
    • Include DataBinding, Styling and TemplateBinding.  A must have for the MVC pattern to work in WPF and Siliverlight.
    • Include basic Panel support, additional Panels could be added from other DLLs (imported with ListBoxes etc).
    • Include the basic controls where the data that they model is unique - not the behavior.  So, an ItemsControl should be included but the ListBox, ComboBox and even ListView can be included as a sample or left to the community.  Abstract controls providing the base classes are more important than covering the basic traditional Windows controls.

    I would also suggest including a new version of the assembly linker that works to intelligently link referenced assemblies together and removed unused functions.  Without this I think the third party control support is going to be limited to source code distribution only.  Who will want to include a 10MB Grid Control if you are only using 10% of the functionality?

    Comments (1)

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    No namewrote:
    Joe, there's great wisdom in those recommendations, so, thanks. I just posted this about the Silverlight UI Controls. We have a set of UI controls released as sources with the 1.1 Alpha SDK. They derive from System.Windows.Controls.Control class which is part of the Silverlight framework and runtime. As you can see from the sources, there's no magic dust or smoke-and-mirrors involved. The control sources show the Silverlight developer how s/he can build UI controls using XAML and code-behind, and how these controls play with each other and the rest of the XAML tree. Now and even in future, you will see the platform provide support for other "plumbing" such as, say, a layout system or databinding support. But in every case, the purported features will be weighed against their impact on the runtime size, and the possibility of a pay-for-play solution where app authors bundle the binaries with their apps. Your involvement and feedback in making Silverlight better is and will continue to be much appreciated.
    May 3

    Trackbacks

    The trackback URL for this entry is:
    http://joewood.spaces.live.com/blog/cns!ED8F6AE13739FF99!184.trak
    Weblogs that reference this entry
    • None