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 (http://commonservicelocator.codeplex.com/releases/view/17694) and Unity 3.0 dlls (http://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 http://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 (22)

  1. Sledge70 says:

    Nice to get some progress on this.

    I did notice pubsub below the blue line. What's the main reason for this?

    In the 3 Win 8 apps I've been involved in we've used the event aggregator from prism (rebuilt for winrt) or something similar.

    Although Win8 apps tend to be built around the page concept there is plenty of scope for event aggregation.

  2. ta.speot.is says:

    Thanks for updating to and testing with the .NET Framework 4.5.

  3. Blaine says:

    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

  4. Sledge70 says:

    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.

  5. Sledge70 says:

    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.

  6. Harry Pfleger says:

    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 important

    I am looking forward to this project! Thankx!

  7. Andy Wilkinson says:

    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

  8. Szymon Kobalczyk says:

    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.

  9. Tom says:

    Add another vote to Sledge70's proposed integration of event aggregation.

  10. Blaine says:

    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?

  11. GugaWedge says:

    Great to see some news on this project. Keep it up and thank you.

  12. Glenn Block says:

    Nice to see this moving forward! Is a JS app also on the roadmap?

  13. Blaine says:

    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

  14. Juan Blanco says:

    Hi, have you got any links for Kona available yet? Or am i missing something obvious!

  15. Blaine says:

    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.

  16. Blaine says:

    The latest Kona drop includes event aggregator as a portable class library. It can be found at konaguidance.codeplex.com/…/101155.

  17. dnf says:

    You mentioned about investigating phone libraries – what about Prism for WP8 ?

  18. Blaine says:

    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

  19. When can we expect Prism4.5 for .Net4.5, we are starting new cloud project with WPF, (.NET4.5, VS2012) ????

  20. Blaine says:

    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.

  21. QualcoSA says:

    Are you going to release Project Linker for VS 2012, since you maintain it, it should be released

    Thanks

Skip to main content