Is there any way to port WPF application to Windows IoT? - wpf

We have developed a WPF application runs great on Windows 10. At this point we are looking for ways to run this software on a Minnowboard. This board has a Windows IoT OS. As I've seen it is only capable to run UWP applications. Is there any way to make our app run under IoT? Thanks.

Of course you can port your code. Depending on how complex your app is, it still might need some rewriting as many APIs are not available anymore, have changed or were added.
Maybe these links help you:
Move from WPF and Microsoft Silverlight to WinRT on MSDN
UWP Bridge tool by Mobilize.NET
UWP samples by Microsoft on Github

Windows 10 IoT Enterprise version enables WPF apps

Related

how to port existing wpf desktop apps to Windows 10 universal apps

So I have an existing windows desktop application which is written using WPF. I searched through the net for possible ways of upgrading it to Windows 10 universal app but cant seem to find anything on this upgrade path. There are documentation available to port WPF desktop app to WinRT (which according to my understanding is no same as Universal platform) but nothing on this topic.
This link https://msdn.microsoft.com/en-us/library/windows/apps/dn751495.aspx
shows up options to "Port your app to the Universal Windows Platform (UWP)" but doesn't mention anything for this upgrade path.
So I am curious if this is even possible? If yes, are there any documentation or examples to follow? If no, why?
Thanks in advance!
You cannot upgrade a WPF app to a Windows 10 Universal app, because those are very different platforms.
Both have capabilities and markups that doesn't exist or have an equivalent in the other.
So there is no "simple" upgrade path, you would have to rewrite a lot of UI but you can maybe reuse the "business" part if it's written in a Portable Class Library.

Can I host Windows Forms control in a Windows Store app?

I want to create Windows Store app and it in it would like to host some Windows Forms controls. Is this possible?
The short answer is no. As pointed out in the comments, Windows Store apps use XAML and not winforms, and also run inside an app container (Modern UI) and cannot access the desktop (where winforms works). Also, Windows Store apps run in a highly sandboxed environment and cannot run external desktop applications.
The answer to this question may have been "no" in the past, but it appears that Microsoft has a specific solution to address this scenario. the Desktop to UWP Bridge is designed to host Windows Forms and legacy applications in a UWP container that can (with some limitations) be installed from the Windows Store.
The Desktop to UWP Bridge appears to be designed to handle this situation
https://developer.microsoft.com/en-us/windows/bridges/desktop

Application that works on pc and mobile

I have to create an application with metro design on vs2010 and windows 7.
The application should work both on pc and device without internet.
Initially i though of wpf but i do not know if it works on Mobile.
Please let me know how i can develop once such standalone application for
both device and PC also
Unfortunately, there is not a single platform that targets both PC and Phone...although, the presumption is that Windows Phone and Windows Store applications are moving toward a unified foundation.
Windows Store applications unfortunately don't run on Windows 7. Only Windows 8 and above, but the advantage is they work with the desktop version as well as the tablet version of windows.
If you want to target windows 7 and say windows phone as well, your best bet is to use portable class libraries to create a common "core" for the application. And use WPF for the desktop which has a lot in common with XAML for Windows Phone.
If you want to target windows phone 8, you have to use Visual Studio 2012 or above.
Pretty old question, but in case anyone is still blindfolded, there is UWP.
Furthermore, if you want to have XAML and C# deployed as native apps in a variety of platforms (UWP, Droid, iOS, WinPhone), be sure to check out Xamarin, which now belongs to Microsoft, and follows the awesomeness of open-source MIT just as the entire .NET does now.

UI development for windows (desktop + web application) and windows CE

I am working on a project where there is requirement of GUI to be created in Silverlight. Some key requirements are:
Extremely rich GUI
Real time visualization process graphics
Support multiple themes
Support different display size
Support charting / trending controls
Same functionality for Desktop / Web using same code base
Same functionality to be available on embedded controller (based on Windows CE)
I understand that using Silverlight we can have same codebase for desktop / web applications. However challenge is to have the Silverlight application (windows and/or web) for Windows CE. I would like to understand what is the best way to implement Silverlight application on Windows CE with as much code reuse as possible.
I would appreciate if you could provide some inputs on what should our architecture approach be for this application development. Also, please let me know if you need more inputs on the requirement side...
"Silverlight" for Windows Embedded (SWE) is a bad name. It's not really what most would call Silverlight. It's simply a XAML-based engine that you can use Blend to develop for. For Windows CE, you must use C++ to develop for SWE. You cannot reuse SWE assemblies in other Silverlight projects. You cannot use other Silverlight assemblies in an SWE project. Your XAML itself will probably have some reusability, but XAML sharing from a code perspective is a challenge in its own right.

Is it possible to create a desktop application using Silverlight?

I have been using WPF for a while, and I keep on realizing again and again that Microsoft invests its efforst in Silverlight, not in WPF (RIA Services, default theme, controls and more).
I thought it might be a good idea to migrate to Silverlight (i.e. creating standalone desktop apps with Silverlight 4.0), the question is whether this is possible or not.
BTW, I think LightSwitch applications are generated with Silverlight as standalone desktop apps.
From MSDN:
Silverlight 3 applications are no longer restricted to running in a browser. They can be run in a browser or it they can be detached from the browser and run from the desktop. These out-of-browser applications allow you to bring the richness of Silverlight 3 applications directly to the desktop without the restriction of running within a browser.
Link: Building An Out-of-Browser Client With Silverlight 3
It is possible to create standalone desktop apps(Out of browser apps) with silverlight version 3.0 or higher and it works great. Now it is also possible to install the out of browser app even without opening a browser as shown at this blog post .Silverlight is awesome and silverlight apps even run on MACs and Linux(limited support)
However, it is not true that Microsoft is only investing in silverlight. Microsoft is investing in WPF too. Though it is possible to create out of browser applications with silverlight, they have lot of limitations when compared to a full blown WPF applications.Dont forget that silverlight is just a subset of WPF, for example, silverlight doesnt have ADO.NET, Hardware device access etc. So if your application is merely a business application and you dont have to access hardware devices or database directly then silverlight might be an option, however if your application accessing client machines hardware resources directly then you are better off with WPF.
My suggestion is, If you know before hand that it is going to be a desktop application then go with WPF(or may be even XBAP). In my experience, useful applications grow with time, new features are always requested time to time. If in future,a feature is requested that cannot be accomplished with silverlight and can only be accomplished with WPF, then you will be in a big trouble because you need to rewrite your app in WPF and it will be hard for you to convince your CFO to allocate more fund just to implement one feature. Silverlight is not designed to develop desktop applications, its main goal is multi-platform support.
Silverlight 3 supports Out-of-Browser functionality.
Quote from Wikipedia silverlight page :
Silverlight 3 supports Out-of-Browser experiences, i.e., Silverlight applications can be installed to the system for offline access (provided the application manifest is designed to allow local installation) where they run outside the browser.
Also here is a quick howto
Out of browser applications have the same security restrictions as in browser applications.
With Silverlight 4 you can create full trust applications which have full access to the computer.
More on Network Security Access Restrictions in Silverlight
If you mean Out of Browser apps, certainly. The Seesmic Desktop 2 app is an excellent example of one of these apps, with it's own updating mechanism. Seems a no brainer to use the XAP/MEF plug-in Model and Silverlight in this manner.
Seesmic Desktop 2
We're developing an OOB app along the same lines, one internet download and you're done. You're not going to get exactly the same APIs as you get in WPF, though.
As others have pointed out, Silverlight apps can be installed to run 'out-of-browser', but even with elevated trust they still have significant restrictions on what they can do and certainly don't have "full access to the computer".
Creating an app from scratch, you may want to consider parallel Silverlight & WPF builds. The code can more-or-less be shared by adding the .cs files from one project (e.g. WPF) to the other (Silverlight) using "Add As Link". The XAML files cannot be linked this way and need to be duplicated, but that may not involve much more than copying & pasting, depending on your structure. There're good examples of this on the web.
Developing both types in parallel would likely involve a lot less effort than having to abruptly switch types at some point and discovering incompatibilities/limitations too late.

Resources