| Comments

Expression Studio 4 box shotToday (7-Jun-2010) at Internet Week in New York, Microsoft announced the general availability of Expression Studio 4 which includes upgraded versions of Expression Blend (including Sketchflow), Encoder, Web (including SuperPreview) and Design.

You can find out the details of each product and download a trial at http://www.microsoft.com/expression right now.

With this release comes a free Upgrade for licensed version 3 (Studio or Web) users!  All you need to do is install the trial version of v4 on top of your licensed version of Expression Studio 3 or Expression Web 3 and the installer will find your license and upgrade it to the full v4 product with no expiration.  This applies to customers who received their software through retail channels or electronic software download direct.  For customers who have broader license agreements (i.e., MSDN, WebsiteSpark, BizSpark) you should install the product using the software provided from your program site.

Here’s a quick break-down list of what’s new in this release:

Expression Blend 4 New Features include:

  • VS2010 compatibility
  • Windows Phone support
  • Deeper Adobe Photoshop import (layer effects)
  • New behaviors & conditional behaviors
  • Enhanced sample data support
  • Listbox path layout for designing with data
  • Pixel Shader effects (including animations)
  • Easier styling and customization
  • Model View View-Model support
  • Mockup controls for SketchFlow

Expression Web 4 New Features include

  • SEO Reporting from inside of the application
  • New extensibility model enables creating add-ins with HTML, JS, and CSS
  • New SuperPreview online service beta for browser compatibility testing now supports Macintosh Safari

Expression Encoder 4 Pro New features include

  • Live Smooth Streaming (VC-1 & H.264)
  • New H.264 encoder from MainConcept
  • Enhanced Screen Capture
  • DRM (PlayReady) for Live Content

This is an awesome release for XAML, web and media developers creating interactive solutions. 

NOTE: If you are developing in Silverlight for Windows Phone 7 and need/want to use Blend for this, do not install the released version of Expression Studio 4. You must continue to use the Blend 4 Beta and Add-in Preview for Windows Phone. This Beta will be refreshed with each Phone SDK pre-release and will be unified with released Blend 4 in a service pack which will release when the Windows Phone SDK releases.

There will be a bunch of information coming out about these features and tutorials by the Expression team along with videos, etc.  I would keep an eye on Adam Kinney’s site for details on some of this information.  As the Expression Evangelist, Adam is a ‘must subscribe’ resource that you should have in your toolbox!  So go check out an overview of Expression Studio 4 and get the trial!

Hope this helps!

| Comments

MSDN Radio imageThis morning I was on a weekly (new) radio show from MSDN, hosted by Mike Benkovich.  The show, MSDN Radio, features live call-in questions that you can ask.  It was a better format than the typical live meeting text-based QA I thought.  I think hearing questions gives you a better chance of articulating your inquiry more.  Thanks to all those who listened and asked questions.  I know it seemed short and there were a few more questions in the queue – feel free to send me questions you may have.

UPDATE: The audio from the show was just posted here.

There were a few that I wanted to follow-up on and get some more answers from other team members.  Here are 3 items I wanted to provide a bit more follow-up to (I’m paraphrasing the questions).

Vince asked a question around Prism and part of that was what are the plans for Prism moving forward?  I didn’t know a concrete answer, so I quickly asked around.  Take a look at the team’s post on Prism, A Look Ahead.  The team talks about the next release (v4) to be around the September 2010 timeframe.  They also comment on using Prism today with Silverlight 4.  As to what will be in Prism 4?  They offer some insight:

  • Managed Extensibility Framework (MEF)“In particular, we’ll be looking at leveraging MEF for Component Composition (for hooking up Views and ViewModels, and other types of components), for Modularity (for the discovery, download, and instantiation of functionality packaged in a module), and for UI Composition (for mapping Views to Regions).”
  • Model-View-ViewModel (MVVM) Pattern – “…we’re looking to expand our current guidance and to include more re-usable code assets to support various MVVM scenarios. In particular, we’re looking to support common patterns for View/ViewModel interaction, hierarchical ViewModel composition, and ViewModel-based navigation. In addition, we’re also looking to provide more support for application-level structural patterns, layout management, the use of Ribbon/Popup/Dialog controls, and user state management.”
  • Data Access and Application Services (i.e., WCF RIA Services) – “…we are looking to provide guidance on using these technologies in the context of MVVM, and on patterns for data validation and caching. This area also includes the use of other services for user preferences, authentication and authorization. This latter aspect brings in the possibility of providing guidance for role-driven (or claims-driven) applications and user experience.”

I’d encourage you to subscribe to their blog and be a part of their conversation over there as well.

Scott asked a question about how to best define DomainServices (contexts) in your application – is it better to have 1:1 for entity:DomainService or other methods.  I asked the RIA Services team for some additional input to my answer. 

DomainService should be based on a set of related tasks that you expect the end-user to perform in [your application]. Typically such tasks involve a small group of closely related entities; e.g. in an Expense reporting app, Expense Report, Line Items and Details would be a good set of entities to cover in a single DomainService while covering accounts and payments in a separate DomainService type.

Additionally Jane asked about many-to-many relationships with regard to RIA Services.

Currently RIA Services require the “class in the middle” containing FK values in a many-to-many. In  a POCO model, you can add it yourself while in an EF-generated model, you would have to change the model (edmx) to add such a class in the middle.

Hopefully these provide some additional clarity on top of my opinions.  There sure seems to be a lot of interest in the RIA Services space!

Hope this helps!

This work is licensed under a Creative Commons Attribution By license.

| Comments

Quick, what’s the most popular thing in XAML development?  Yeah, thought so…MVVM or Model-View-ViewModel.

It’s one of the most popular subjects I hear about when people talk about developing applications with WPF and Silverlight.  However, as much as it is talked about and as much as frameworks are born every day, there isn’t a ton of just simplified ‘here’s how you do it’ information in one place.  I mean, sure there *is* information, but I have to admit I think it is a bit scattered all over.

One of the pioneers of promoting this pattern for WPF development, Josh Smith, took some time to try to solve that.  Josh has recently released a self-published book titled Advanced MVVM and is a quick and good read about the pattern.

FULL DISCLOSURE: Josh presented me with a complimentary printed copy of this book a few weeks ago.  I had already intended on purchasing it when available on Amazon Kindle and have since done so.  In the nature of ensuring I share the love and complimentary goodies, Josh allowed me to give away my printed copy to someone, which I did at a Silverlight user group meeting just last night.  I’m grateful Josh provided me with a printed copy and also grateful he encouraged me to give it as a prize.

Advanced MVVM Book CoverThe book is about 50-ish printed pages and is a quick read.  It covers creating a simple and common game, Bubble Burst, using the MVVM pattern.  The code is all WPF, but the concepts still apply to Silverlight development and Josh points out some areas where there are differences.

All of the code discussed in the book is available to download so that you can work with starting projects as you go throughout the book learning the pattern.  Josh covers all the key topics of the pattern you would expect: ViewModel, View, Commands, etc.  One of the things that Josh is good about is not being a zealot of the pattern.  He’s quick to point out that when code belongs with the View and when he thinks it doesn’t.

When doing development I always think it is a great idea to have some solid references on your shelf.  No matter where you are in your skill set, there will always be those times when you want to refer back to something you may have forgotten or perhaps get a different perspective on a specific way of doing things.  For MVVM development, I think this is one such reference.

On a side note, Josh got a lot of crap for his initial chosen method of distribution (Lulu digital, which uses a DRM PDF).  He quickly responded and offered a printable copy as well as put it on Amazon for Kindle distribution (which I bought and can read on my Kindle, my phone or my PC…note: phone and PC are in color too).  There are a multitude of ways you can get the title all of which are listed at the AdvancedMVVM.com web site which also lists a table of contents for the book.  If you are doing Silverlight or WPF development you should pick it up, read it and keep it handy.  It’s not the only opinion, of course, but it is a great presentation of the pattern relevant to the development platform that I’ve seen.


| Comments

There seems to be a lot of buzz around Silverlight lately and I admit, I like it :-).  But I also think that there is a huge misconception about Silverlight “replacing” WPF.  I get emails a lot about people asking me questions about Silverlight and after a bit of prodding, I see that their target platform for their application is Windows.  I then begin my rant on why it should be WPF if that is the target platform.  I’m usually met with some weird looks being that I do a lot of Silverlight, but I state my case accordingly.

The conversation usually follows about not understanding WPF or trying to find more information about it.  Well, the WPF teams are trying to change that perception.  In fact, Jaime Rodriquez and Karl Shifflett have been organizing a WPF LOB Tour to provide 2 days of free WPF training for developers.  Jaime is the technical evangelist for WPF and Karl works on the WPF team.  They will be in these cities soon:

  • Los Angeles, CA
  • London, UK
  • New York, NY
  • Chicago, IL
  • Phoenix, AZ

Take a look at what they’ll be covering about WPF:

  • Day One:

    • Lap Around WPF
    • WPF Tools ( Blend, Visual Studio 2008)
    • Graphics Subsystem
    • Layout
    • WPF Fundamentals and new concepts
      • Application Model
      • Dependency Properties
      • Trees (logical & visual)
      • Events
      • Threading
      • Resources
    • Controls
    • Styling
    • Templating
    • Q&A with instructors at end of day
  • Day Two:
    • WPF integration with Win32 and Windows Forms
    • Data binding
    • Introduction to Model-View-ViewModel
    • Commanding in M-V-VM
    • Views, Navigation and Transitions
    • Data Validation
    • Error handling, Model dialogs, Logging
    • Unit Testing
    • MVVM & LOB tips and tricks
    • Q&A with the instructor
  • If this is coming to an area near you, I’d strongly encourage you to make the time to be there.  There is no cost to you other than getting yourself there (if it isn’t in your same city).  Their first event packed a full house on registration within 2 hours and the feedback from the training was overwhelmingly positive and exciting.  Karl is such a dynamic and fun guy to be around, it will be worth your price of admission to hang out with him and Jaime for 2 days.  I’d love for one city to rally together and all show up wearing Hawaiian shirts to make Karl feel at home :-).

You can find all the information about the events on Karl’s blog or Jaime’s blog.  Registration links and everything are listed there.  If you have a question about the event, please reach out to Karl or Jaime.  I know their most asked question is "why aren’t you coming to <fill-in-the-blank-location>?  Honestly after talking to Karl I’m convinced he wouldn’t sleep if he could go everywhere…and he wants to as well!  I think there are some plans to do some studio recordings and produce the information online, but there is no timeframe for that just yet…and I do believe that nothing really supplements being able to network with others learning and being in-person to ask questions, etc.  It’s a great opportunity to learn and demystify WPF development for yourself…really, make the time to be there.

Additionally, there have been some organized XAMLFest events happening around the country (US – but if there are others worldwide, leave a comment where they are happening).  These aren’t 2-day workshop trainings, but are events organized around our XAML technologies, specifically WPF and Silverlight. 

I think WPF and Silverlight are really great technologies and compliment each other well.  Try not to learn one without the other.  I know personally I’m trying to do more WPF learning myself as the natural progression of the Microsoft platform is the continuum of Silverlight to WPF as shared application platforms.  I hope you’ll do the same.

If you’ve attended one of these WPF events listed above, please leave a comment about your feedback as well. 

| Comments

The big news in the Silverlight developer world today is the release of Prism v2 (also called the Composite Application Guidance).  So what is this?

Prism guidance is a set of tools, samples, references and written guidance to help you more easily build modular applications.  Generally the “modular” application will feature several screens, flexible user interaction and role-based behavior.  Composite applications using these patterns are meant to be loosely coupled and contain independently evolving pieces that can work together.  So in the Prism 2 release you are provided:

  • Composite Application Library
  • Reference Implementation (Stock Trader application)
  • 9 Quick starts
  • 26 How-to’s
  • Documentation and written guidance on the UI patterns and client architectures you may face

There has been much talk about the Model-View-ViewModel (MVVM) pattern for Windows Presentation Foundation (WPF)and Silverlight development.  The Prism release adapts this model (refers to this as the presentation model to match what some other pattern documentation in the greater technology world uses) in the reference implementation of the Stock Trader application.

NOTE: The Stock Trader application is a reference implementation of the composite application guidance.  It isn’t meant to actually server real stock trading, but was inspired by those similar scenarios.

Prism 2 is an evolution from a July 2008 release that was primarily for WPF applications.  This new release brings updates and those concepts to Silverlight, including an implementation of commanding in Silverlight as well as demonstration of the use of input validation using these concepts.

For a walk through of some of the concepts and a brief discussion from the Patterns and Practices program management team, watch the latest Continuum show about Prism with Blaine Wastell.  This is a great development evolution for line-of-business application developers.  Check it out!