Prism on .NET 4.5 and the road to Windows 8 apps

This blog post discusses our plans for Prism to run on .NET 4.5 and our plans to create guidance for Windows 8 Line of Business (LOB) apps. Prism for Windows 8 is now released. Read about it on my blog post or see a demo of Prism on Channel 9. 

Prism on .NET 4.5

We are currently testing Prism on .NET 4.5 and will have a release within the next 2 - 4 weeks. If you want to get started now, you can download the Prism 4.1 code from the download center. You will need to update the project files to target .NET 4.5 and also copy the Portable Class Library version of the Common Service Locator (https://commonservicelocator.codeplex.com/releases/view/17694) and Unity 3.0 dlls (https://unity.codeplex.com/releases/view/92699) into the appropriate lib folder.

We are currently evaluating how to update the Prism phone libraries. Once we have more information, I will let you know.

Windows 8 Line of Business (LOB) Guidance 

I’m happy to announce that we recently started a new project code named Kona that will provide guidance on developing line of business (LOB) apps for Windows 8. Initially we called this project Prism for WinRT. Many of you asked what happened to Prism running on Windows 8? We changed the name of the project from Prism WinRT to Windows 8 LOB because it is more descriptive of the projects goals.

Project Goals

Provide written guidance and a reference implementation that describe recommended practices for building LOB Windows 8 client apps using WinRT and .NET. The guidance will focus on how to create apps that are maintainable and testable.

Approach

For this project, we are taking a similar approach that we took when we started Prism after CAB which is to provide guidance on the new platform. In both cases the core platform changed significantly from the previous and our collective knowledge of proven practices evolved from when we initially created the guidance. Given this, we decided it would be most beneficial to developers to provide guidance on developing Windows store apps.

As part of the project, we are evaluating which Prism capabilities make sense for Windows store apps. We currently believe that MVVM and delegate commands make sense but modular deployment does not. We also believe that we can accomplish UI Composition using a hierarchy of ViewModels instead of porting regions.

Scope

For Kona, we selected a product catalog and shopping cart scenario which allows us to display content (product catalog) and create forms that require data input (checkout process). We plan to create a reference implementation based upon AdventureWorks that will demonstrate how to implement this scenario. We will scope the reference implementation to demonstrate the product backlog items listed below.  Where we draw the line will change as we get farther into the project based upon feedback and our experience. Let me know your thoughts.

As background, we conducted a survey which influenced our thinking about the scope. The scope will be a mix of demonstrating how to implement Windows 8 features, traditional line of business requirements, and typical patterns and practices (no pun intended Smile). The items above the blue line are what we think will make the first release. The items below will probably not be included. Let us know your thoughts on the scope.

Windows Features

  • Camera, GPS, or other device sensors
  • Suspend, Terminate, and Resume
  • Snap
  • Live Tile
  • Search
  • Navigation
  • Setting
  • image
  • Share

Line of Business

  • Local data management
  • Usually connected
  • Interact with services
  • Validation
  • image
  • Deployment – side loading
  • Security – AuthN and AuthZ

 

patterns & practices

  • MVVM and unit testing
  • UI composition (through composition of ViewModels)
  • Delegate commands
  • image 
  • Loose coupling pub/sup
  • Modular development and / team independence

 

Deliverables and Schedule

 

As mentioned before, we plan will create a reference implementation and a supporting library. We will release documentation on the Windows Dev Center and also a PDF. The code will be written in C#.

We plan to ship the project in the first quarter of 2013. The Codeplex site is https://konaguidance.codeplex.com which we use to share our work in progress.

Current Page Comps

I want to share with you our current page comps. These pages will change as we go through UX reviews and we build the app.

Product Catalog Hub Page

image

Product Detail Page

image

 

Shopping Cart Page

image 

Comments

  • Anonymous
    December 13, 2012
    The comment has been removed
  • Anonymous
    December 13, 2012
    Thanks for updating to and testing with the .NET Framework 4.5.
  • Anonymous
    December 13, 2012
    Sledge70,What are the specific scenarios that you are using event aggregator for? In our current development we have not needed it. Understanding the specific scenarios would be really helpful for us to evaluate it.Thanks.blaine
  • Anonymous
    December 13, 2012
    A user views an item, we fire an event to announce this. We can then listen in and show this as a recent item, additionally we could track that elsewhere.Network connectivity events, change in login status, items to queues.Generally used to loosely couple VM's where we don't want to create a common interface.
  • Anonymous
    December 13, 2012
    Also forgot to mention that Management who have bought into the concept of Prism like to know features travel. It means we can get a dev team up to speed using the same concepts from WPFSLWP.In addition it's handy for multi targeting when you do it, Win8 -> WP is a good example. I would like at least the basic building blocks of prism ported across to Kona. Namespace changes are easy enough to cope with, not a complete dare I say it 'reimagining' of PrismKona.Thanks for your time on this Blaine.
  • Anonymous
    December 13, 2012
    Feedback on Kona: I would like to see it written in HTML/CSS/JS In my view, for a LOB, Camara and GPS is not that important than Share Security seems another one, which is important I also believe, that pub/sup is very importantI am looking forward to this project! Thankx!
  • Anonymous
    December 16, 2012
    Great news about P&P bringing some guidance to the Windows 8 LOB platform.I've published a Windows 8 centric app framework to assist with MVVM over on CodePlex (http://okra.codeplex.com) that might be of interest to your team to spark ideas.Andy
  • Anonymous
    December 16, 2012
    Great to see that the project is evolving. I'm looking forward to try out new bits.I agree with Sledge70 that event aggregation or similar mechanism is needed. Please consider keeping it around.
  • Anonymous
    December 16, 2012
    Add another vote to Sledge70's proposed integration of event aggregation.
  • Anonymous
    December 17, 2012
    We identified a scenario for our next iteration that we think loose coupled pub/sub makes sense. One of the key requirements is having a weak reference. We will let you know how it goes. What other requirements do you think are important?
  • Anonymous
    December 17, 2012
    Great to see some news on this project. Keep it up and thank you.
  • Anonymous
    December 24, 2012
    Nice to see this moving forward! Is a JS app also on the roadmap?
  • Anonymous
    January 07, 2013
    patterns & practices first guidance for JS is Hilo JavaScript which can be found at msdn.microsoft.com/.../jj674095.aspx or using http://aka.ms/hilojs-doc. Once we complete this version of Kona, we will evaluate what else is needed. Let me know what requirements you have for a JavaScript version.Thanks. blaine
  • Anonymous
    January 14, 2013
    Hi, have you got any links for Kona available yet? Or am i missing something obvious!
  • Anonymous
    January 14, 2013
    Found it konaguidance.codeplex.com
  • Anonymous
    January 16, 2013
    We decided to update Prism for .NET 4.5 after Unity is released for .NET 4.5. We will target a release 30 days after Unity is available.
  • Anonymous
    January 31, 2013
    The latest Kona drop includes event aggregator as a portable class library. It can be found at konaguidance.codeplex.com/.../101155.
  • Anonymous
    February 10, 2013
    You mentioned about investigating phone libraries – what about Prism for WP8 ?
  • Anonymous
    February 11, 2013
    Dominikj,We are starting our planning process for the next 6 to 12 months. Guidance for WP8 will be a project that we will prioritize. I'll let you know when we make a decision.blaine
  • Anonymous
    March 20, 2013
    When can we expect Prism4.5 for .Net4.5, we are starting new cloud project with WPF, (.NET4.5, VS2012) ????
  • Anonymous
    March 27, 2013
    Srigopal,We will ship Prism 4.5 for .NET 4.5 shortly after the new version of unity ships. If you want to start now, you can with Prism 4.1 and follow the directions from this blog post.
  • Anonymous
    April 21, 2013
    Are you going to release Project Linker for VS 2012, since you maintain it, it should be releasedThanks