BusinessRx Community

Dedicated to the advancement of software, technology and the people who devote their lives to it.

Welcome to BusinessRx Community Sign in | Join | Help
in Search

BusinessRx Reading List

These blog entries are written by industry experts and leaders. We consider this content to be a good read for any software developer or web technologist.

Browse by Tags

All Tags » Community News » WPF/E   (RSS)

  • Styling a Silverlight Twitter Application with Expression Blend 2

    Silverlight 2 provides a rich platform for building cross-browser/cross-platform RIA applications. 

    One of the things that makes Silverlight so powerful is the ease with which developers and designers can collaborate together on projects.  Developers can use Visual Studio to open and edit Silverlight 2 projects and get a powerful code-focused .NET development environment, and designers can use Expression Blend 2 SP1 to open and edit the exact same project and use a creative tool to sculpt and create optimal user experience designs.

    The WPF UI framework shipped in Silverlight further enables a great designer/developer workflow by supporting concepts like layout management, controls, styles, templates, and resources - which help avoid scenarios where designers and developers end up tripping over each other when integrating functionality, behavior and expressive design.

    Silverlight 2 Twitter Sample

    Last month I posted an in-depth blog tutorial on how to build a Silverlight 2 Digg application which you can read here.  This tutorial was aimed primarily at developers, and focused on introducing the fundamental programming concepts involved when building a Silverlight 2 application. 

    Today Celso Gomes and Peter Blois posted a cool 10 minute video tutorial that shows off using Expression Blend to stylize a Silverlight 2 Twitter Messenger application.  You can watch the video here.  You can download the source code for the completed Silverlight Twitter application here.

    The video does a nice job demonstrating how designers can re-style a Silverlight application without having to mess with the code behind it.  In the process it shows some of the power and capability that Expression Blend 2 provides to build really rich user experiences.  Celso starts with a developer version of the application, and then customizes and sculpts the UI to have a fun twitter character theme:

    The Application Model

    The Silverlight Twitter client is hosted within an ASP.NET server application that exposes a web service that enables the Silverlight Twitter application to communicate to the Twitter service (since Twitter does not allow direct access from client applications). Communication between the Silverlight client and the ASP.NET web server is done using Windows Communication Foundation (WCF).

    The client application uses a Model-View-Presenter (MVP) pattern (also known as the Model-View-ViewModel pattern) which is commonly used in large WPF applications. Even though this is a fairly simple application they wanted to take advantage of the flexibility that MVP allows and allow room for future growth. 

    Maintaining the separation between the visuals and the application logic also enables designers to make fairly complex visual changes without impacting the basic application flow.  The video goes through some examples of the styling flexibility this architecture facilitates.

    The Styling Process

    In the video, Celso highlights how Resources can help designers quickly change colors.  A common Brush Resource, for example, can be used to change the color of all the text elements in the application:

    Celso shows how easy is to create new User Controls from graphics using Expression Blend 2 SP1 (just select multiple elements in the designer, right-click, and choose the "Make Control" menu option):

    And also how to create new states inside this new User Control (using the Visual State Manager feature - which is also now supported with WPF), to animate the bird (fly, blink, etc...)

    Celso also shows how to create animations for each state, changing advanced properties like Key Spline curves, and Repeat Behavior:

    He also shows how to create custom buttons from drawings (which can come from XAML or any other design tool like Photoshop or Illustrator). All the states of a Button Control are available out of the box.

    Expression Blend also enables you to easily change complex controls like List Boxes. Designers have access to all Styles, Templates, and states - and can completely customize all the parts of a List Box without having to write any code:

    You can watch the video and download the code to check out the above Twitter application.

    To learn more about Expression Blend, I also recommend watching the Expression Blend: Tips and Tricks presentation from the PDC conference two weeks ago.

    Hope this helps,

    Scott

  • Building Silverlight Applications using .NET

    I'm just about to hop on the flight back to Seattle after finishing up a 10 day business trip to Europe where I spoke at conferences and user group events in Budapest, Amsterdam and Zurich.  Although trips like these are a little exhausting, I find them really valuable as a way to connect with developers from around the world, as well as provide me the opportunity to create and deliver new presentations and samples.

    One of the talks I delivered on this trip was a new "Building Silverlight Applications using .NET" talk that people seemed to really like. 

    Building Silverlight Applications using .NET Talk

    I tried to keep the format and samples in this talk simple, and used a model where I used a few slides to explain each programming model concept in Silverlight, and then showed a very simple sample for each concept that helped demonstrate concretely how it worked.

    In the talk I covered:

    • XAML
    • Using Shapes and Text
    • Using Controls
    • Layout (Canvas and Layout Managers)
    • Brushes
    • Transforms
    • Handling Events and Writing Code
    • Building Custom UI Controls
    • Reaching out and Programming the HTML of a page from a Silverlight control
    • Handling HTML Events in Managed Code (e.g. html button click handled in C#/VB on the client)
    • Exposing managed APIs to HTML JavaScript in the browser
    • Using the File Open Dialog support
    • Using the HTTP Network APIs
    • Using the Web Service APIs
    • Isolated Storage for local data caching

    The slide deck comes to 83 slides - but I think does a good job of explaining everything step by step (it is also an easy deck to read - so even if you don't want to run the samples locally I'd recommend taking a look through the deck since I think you'll find it useful).  You can download the slides + demos of this talk below:

    Included in the .zip download are readme instructions on how to run all of the samples on your own machine.

    Quick Answer to a Common Question about .NET with Silverlight

    One of the most common questions I received when giving the talk was - "do I need to have the .NET Framework installed in order to use Silverlight?".  The answer to this is no - a cross platform version of the .NET Framework is included in the 4MB Silverlight 1.1 download, which means you do not need to have anything extra installed on the client in order to program Silverlight with a .NET programming model in the browser. 

    The Silverlight version of the .NET framework includes the same CLR engine (same GC, type-system, JIT engine) that ships with the full .NET Framework, and a subset of the .NET Framework namespace libraries.  You can see the full list of all classes/namespaces that are included by opening up the Object Browser when you create a new Silverlight application using Visual Studio (click here for a sample screen-shot of this).

    People are usually pretty stunned/confused to hear that it is possible to get this much stuff in so small and quick an install package.  Let me just say it wasn't easy. <g>

    Other Silverlight Talks and Blog Posts

    For a broader overview talk of Silverlight, as well as some cool (more complete) samples you can download, please check out my previous "Lap Around Silverlight" talk and blog post here.  You can learn even more about Silverlight from my summary post here.  And you can watch me build a Silverlight application using .NET from scratch in this video here.

    The talk above borrowed a number of slides from a few other Silverlight and WPF/E talks that others and I have given (although almost all of the code samples I showed in my talk are new).  In particular, my WPF/E talk from earlier in the year, Jamie Cool and Nick Kramer's Two Talks at MIX, and Stefan Schackow's Extending the Browser Programming Model with Silverlight talk at MIX.  You can watch Jamie, Nick and Stefan's talks online (along with all of the other MIX talks) for free here.

    Hope this helps,

    Scott

  • Expression Products Added to MSDN

    Last December Microsoft announced the new Expression Studio products.  These products enable designers to build awesome user experiences, and are designed to help facilitate great designer/developer workflow collaboration on projects.  

    The Expression products share a common project file format with Visual Studio, which enables designers using Expression and developers using Visual Studio to open and edit the same projects together.  They also share common UI declarative markup formats (HTML and XAML), which enables clean design/coding interaction.

    When we originally announced Expression, one of the common questions/complaints was over why we weren't planning on including the products (especially Expression Web and Expression Blend) within MSDN subscriptions.  Today we announced that we were changing this (you can read details on Soma's blog post announcing it here).

    Expression Web and Expression Blend will now be available at no extra charge to all MSDN Premium Subscribers (this includes customers with the "VS Professional with MSDN Premium" subscription).  This means many more developers will have awesome design tools for building great ASP.NET, WPF and "WPF/E" solutions.

    Visual Studio will also have integrated WYSIWYG designers for HTML, WPF and WPF/E as well.  As I mentioned in my "First Look at Orcas for Web Development" blog post last month, the HTML designer within Visual Studio "Orcas" is actually the same one that ships in Expression Web (but integrated into the Visual Studio shell).  VS "Orcas" also ships with a great new designer for WPF that integrates nicely within the Visual Studio IDE and adds rich developer features (for example: like live split-view designer/source editing and rich control extensibility).

    If you haven't tried out Expression Blend or Expression Web yet, I'd highly recommend giving them a spin.  You can download free 180 day trial editions for them on the Microsoft Expression web site.

    Hope this helps,

    Scott

  • Video Interview of Me Talking about WPF/E, Orcas, IIS7 and MIX

    Yesterday Channel9 posted a video interview of me with Rory Blyth that was filmed earlier this week. 

    During the interview I talk about WPF/E, VS Orcas, IIS 7 and the upcoming Microsoft MIX conference on April 30th - where Ray Ozzie and I are the keynote speakers.  I also talk about having my car towed by Microsoft campus security.

    Click here to watch it.

    - Scott

     

     

     

     

     

     

     

     

     

  • Next Generation Yahoo Messenger built with WPF and .NET

    At the Consumer Electronics Show this week, Yahoo showed off some cool demos with their next generation messenger client (you can watch a video of it in action at http://messenger.yahoo.com/vista).  One of the really cool things about the new messenger client is that it was built using Windows Presentation Foundation (WPF) and the .NET Framework.

    One of the most powerful aspects of WPF is its ability to create really immersive user experiences that go far beyond what we typically expect today from either a client or web application.  Developers can style and templatize UI in a way not possible with most other UI frameworks, and use its built-in UI/Code separation model to enable both designers and developers to collaborate on projects together.

    Over the next few months I'll be posting a number of blog posts that walkthrough how you can start learning WPF to build great applications (note: WPF is now a built-in library of the .NET Framework redist).  If you are interested in learning more about WPF I'd also highly recommend subscribing to "theWPFBlog" - which posts some great articles on both WPF and WPF/E (the above screenshot came from this recent post).

    Fun stuff,

    Scott

Powered by Community Server, by Telligent Systems
'