Reputation: 24235
I want to rewrite an application that will be available on Windows desktop, Windows store, and Windows Phone.
Current state: Windows desktop is MFC app. Windows store and Windows Phone are sharing a PCL for backend and network comm.
I have to rewrite the whole app so that backend and APIs are added once and reused by 3 platforms.
One way I see is to rewrite the desktop app using .Net and reuse the PCL. But WPF .Net desktop apps are slow. Evernote Windows app was a .Net app until version 3, they moved to WTL C++ in 4.0; Evernote Windows moved to WTL
I am confused after reading that thread on Evernote. What other options do I have?
Upvotes: 0
Views: 174
Reputation: 408
WTL is more efficient and flexible than MFC/.net for the windows desktop version. It has been recently updated.
Upvotes: 0
Reputation: 39007
Evernote dropping WPF was years ago. Most of the issues they faced were fixed in .NET 4.0. A native MFC app will often be lighter than a WPF app, but you can't really drop WPF altogether just on the assumption that it's slow. Note that the text editor of Visual Studio is entirely based on WPF.
That said, your options depend really on what you want. I'd recommend going for sharing the business logic in PCL assemblies, and write the desktop UI in WPF. Another option could be to write your whole application using WinRT, and betting on the fact that the next version of Windows 8 will allow for Windows Store application to execute in windowed mode (as announced a week ago during the Build).
Upvotes: 1