Tips on creating a plug-in architecture for WPF - wpf

I'm making the switch from Winforms to WPF. In Winforms I have a plug-in architecture where a user control is hosted in a Winform. Does anyone have any suggestions on creating a plug-in architecture for WPF? I want to rally the forces of the developers in my community to further extend my products so I believe in an extensible framework for my apps. I'm just starting WPF so I'm not sure what the best way is to go about this.
Thank you.

Have a look into the Managed Extensibility Framework

You might find the article about modular architecture for WPF applications interessting as well. Please not that a plugin is the same thing as a module in this aspect.
The Information Manager sample application of the WPF Application Framework (WAF) shows how to apply these concepts to create a plug-in architecture. It uses MEF as well to discover and load the Plug-Ins.

Related

Using Sharpdevelop Addin Architecture to develop WPF application

I am new to this AddIns architecture but it really seems fascinating to me. I downloaded shardevelop code to understand it but it is too huge and the examples given are using Winforms. I want to use WPF. Can you please provide me some links where they have used sharpdevelop with WPF?
Regards,
Priyank Thakkar
In most cases, SharpDevelop code base is your best resource.
BTW, did you check out MEF from Microsoft?
http://msdn.microsoft.com/en-us/library/dd460648.aspx

Good opensource WPF applications

I have experience with Silverlight + MVVM + WCF RIA. My next project will be developing by WPF and its architecture is 3-tiers. I want to know are there good example for this kind of project?
The MVVM is pretty cool and here is a MVVM lite which make your developement more easier.
http://www.galasoft.ch/mvvm/#intro
Also, I recommend to check the project "Ribbon for WPF" which uses binding a lot. You can download from "http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2bfc3187-74aa-4154-a670-76ef8bc2a0b4" which comes with the source code and samples.

MVP or MVVM framework for both WPF and .NET CF 3.5 development

I am creating a draft architecture outline for a disconnected client-server platform, that involves multiple different client types. I need to support: web clients, desktop workstations and mobile devices (WM 6.x now and Android later).
I am searching for a MVP or MVVM based framework that would let me to reuse as much of the code and architecture as possible between clients, while:
using WPF for desktop development
using .NET CF 3.5 for Windows Mobile development
This framework does not obviously need to support Android, however I am considering Mono for Android to develop the Android client (for easier maintenance of the whole platform), so portability would have been an added asset.
So far I ruled out:
Prism (does not support WM based mobile devices - Windows Phone 7 only)
MVC# (does not support WPF)
I would appreciate any hints that would aid in researching the subject further.
These MVVM Frameworks work with Windows Phone 7:
Caliburn Micro
MVVM Light (it doesn't advertise it, but I've been to a demo where it was used on WP7)
ReactiveUI (Uses the Reactive Extensions for .NET)
My personal favorite is ReactiveUI, but if you've never used the Reactive Extensions it can be a brain burner at first.
As for UI Composition (you mentioned Prism), there aren't a lot of options, mostly due to reflection restrictions on the phone. I have seen an article where someone got basic MEF working on the phone and MEF is probably all most people need in this situation. You can check out that article here.
Hope this helps.
In my opinion, this would be a custom Framework with a mix of UI Processes for different client types. The business logic or entities can definitely be reused to suit the needs of the view.
I did the same research and I concluded the following (which I did not implement yet):
There aren't any open source MVVM frameworks that support .NETCF. You
can only find MVC or MVP, but not MVVM.
Suggestion: get the source code of an Open Source MVVM framework that supports the Full/Desktop .NET, and see if you can adapt it(so that it recompiles) to the .NETCF. I found the following two, which also support the other platforms that you mentioned:
MVVM FX for Windows Forms and Visual WebGUI - Home
MugenMvvmToolkit
Other than that, I don't see any other way of doing this.
HTH,
MVVM wouldn't make much sense in Windows Mobile + .NETCF since you don't have INotifyPropertyChanged and implementing Model-View-Presenter in WPF or any INotifiyPropertyChanged supported framework wouldn't be as effective as Model-View-ViewModel
You can share assets between the full and compact framework by moving most of the business logic into a seperate class library (or several) that target the .NETCF. You can reference a .NETCF library from a full framework project, but not the other way around.
Check out this very good article by Daniel Moth describing how to share assets between the compact and full framework:
http://msdn.microsoft.com/msdnmag/issues/07/07/ShareCode/default.aspx

What is involved in making WPF web-based application?

I am developing an eCommerce site as a project for a class and I've only done mostly console application programming. The site is to use WPF, and is either web-based or mobile (and use Adventure Works db). I'm not sure what exactly is involved as far as programming technologies.
I became confused as I did some searching and saw terms like .xbap and wcf. What is the general overview and relationships of the technologies involved to develop a web app that is an eCommerce.
WPF is a technology designed for RDA (Rich Desktop Applications). You can't use it to build a website. Silverlight is a technology designed for RIA (Rich Internet Applications), so it is clearly better for your use.
You told about mobile... What do you mean ? Should your website be used on a mobile device ? In this case, you shouldn't use any of these technology because of interoperability...
If your project MUST be WPF, so you should read about XAML, WPF Binding, MVVM (not mandatory at first, but can helps to design your app).
If you could give us a little more precision about your project, we'll help you more efficiently.

Good way for experience WPF developer to learn Silverlight

I'm a developer with WPF experiences, my next project will use Silverlight. I have read some articles on the internet (almost all msdn and silverlight.net) and I think that they aren't much different. Anyway, I still have questions that I'm not sure.
What is different between WPF 4 and Silverlight 4? (I found an article on msdn but its based on .NET framework 3.5)
Are there any resources for learning Silverlight that are good for experience WPF developer?
Do I need a book on Silverlight?
I personally really like the course posted here:
http://channel9.msdn.com/learn/courses/Silverlight4/
I don't know what you intend to develop using Silverlight. But it's a good start if you like to develop business applications using Silverlight.
WPF has hardware-accelerated full faceted 3D support
WPF has direct access to the full .NET framework
WPF can take full advantage of the hardware on the system.
Silverlight allows you to create a single app that works across browsers, operating systems.
You can use Silverlight for Windows Phone 7 development
For Books, I would recommend Silverlight Recipes and Microsoft Silverlight 4 Data and Services Cookbook.

Resources