Porting C# WPF to Mono
-
Hi All, I'm getting some requests to port an application I've built using WPF/C#/SQL Compact to the Mac platform. My understanding of the general tasks to achieve this are: Re-write the whole UI (No WPF Support in Mono) Replace all database access to use MySQL or other DB The rest of the C# code is targeting C#3.0/.NET 3.5 SP1 so I'm guessing that an absolute stack of this will need re-writing as well as Mono is more or less .NET 2.0 compatible. I'm just trying to get a feel for the total effort that would be required to do this. I keep coming to the conclusion that it would be more or less a complete re-write from the ground up which is kinda daunting at the moment. Anyone performed a similar task that can give me a bit more insight? Cheers,
Jammer My Blog | Articles | DMon | SampleSort
-
Hi All, I'm getting some requests to port an application I've built using WPF/C#/SQL Compact to the Mac platform. My understanding of the general tasks to achieve this are: Re-write the whole UI (No WPF Support in Mono) Replace all database access to use MySQL or other DB The rest of the C# code is targeting C#3.0/.NET 3.5 SP1 so I'm guessing that an absolute stack of this will need re-writing as well as Mono is more or less .NET 2.0 compatible. I'm just trying to get a feel for the total effort that would be required to do this. I keep coming to the conclusion that it would be more or less a complete re-write from the ground up which is kinda daunting at the moment. Anyone performed a similar task that can give me a bit more insight? Cheers,
Jammer My Blog | Articles | DMon | SampleSort
-
Hi All, I'm getting some requests to port an application I've built using WPF/C#/SQL Compact to the Mac platform. My understanding of the general tasks to achieve this are: Re-write the whole UI (No WPF Support in Mono) Replace all database access to use MySQL or other DB The rest of the C# code is targeting C#3.0/.NET 3.5 SP1 so I'm guessing that an absolute stack of this will need re-writing as well as Mono is more or less .NET 2.0 compatible. I'm just trying to get a feel for the total effort that would be required to do this. I keep coming to the conclusion that it would be more or less a complete re-write from the ground up which is kinda daunting at the moment. Anyone performed a similar task that can give me a bit more insight? Cheers,
Jammer My Blog | Articles | DMon | SampleSort
-
Hi All, I'm getting some requests to port an application I've built using WPF/C#/SQL Compact to the Mac platform. My understanding of the general tasks to achieve this are: Re-write the whole UI (No WPF Support in Mono) Replace all database access to use MySQL or other DB The rest of the C# code is targeting C#3.0/.NET 3.5 SP1 so I'm guessing that an absolute stack of this will need re-writing as well as Mono is more or less .NET 2.0 compatible. I'm just trying to get a feel for the total effort that would be required to do this. I keep coming to the conclusion that it would be more or less a complete re-write from the ground up which is kinda daunting at the moment. Anyone performed a similar task that can give me a bit more insight? Cheers,
Jammer My Blog | Articles | DMon | SampleSort
Hello SilverLight 4 is a good choice for you. The Out Of Browser -aka OOB- has major improvements. I did an application for Mac this way in SilverLight 3 but the experience were't rich. Two major improvements that could have saved me a lot of trouble are the elevated permissions and the printing support. Also porting your WPF to Silverlight is a bit easy as both rely on Xaml and Silverlight is just a subset of WPF. As for the database; the typical solution is to put your database on a windows server and communicate using services. If your program is a stand alone and this is not an option you can use some of the embedded DB engine. I don't remember any now but I remember I saw a few names to use back when I made my app. If you use LINQ and your data access isn't huge or demanding your can switch your (LINQ to SQL) to (LINQ to Xml) and store your data as an Xml file. P.S. Make good analysis on the OOB in SilverLight 4. There could be some features in your program not covered.
Regards:rose:
-
Hi All, I'm getting some requests to port an application I've built using WPF/C#/SQL Compact to the Mac platform. My understanding of the general tasks to achieve this are: Re-write the whole UI (No WPF Support in Mono) Replace all database access to use MySQL or other DB The rest of the C# code is targeting C#3.0/.NET 3.5 SP1 so I'm guessing that an absolute stack of this will need re-writing as well as Mono is more or less .NET 2.0 compatible. I'm just trying to get a feel for the total effort that would be required to do this. I keep coming to the conclusion that it would be more or less a complete re-write from the ground up which is kinda daunting at the moment. Anyone performed a similar task that can give me a bit more insight? Cheers,
Jammer My Blog | Articles | DMon | SampleSort
The mono project has a tool named Moma which is designed to help you figure out what is missing from mono for a particular project you want to port. Run the tool on your current implementation and you should be able to find out what is missing from mono. Moonlight has full support for Silverlight 2.0. Hope this helps. --- Adar Wesley
-
Hello SilverLight 4 is a good choice for you. The Out Of Browser -aka OOB- has major improvements. I did an application for Mac this way in SilverLight 3 but the experience were't rich. Two major improvements that could have saved me a lot of trouble are the elevated permissions and the printing support. Also porting your WPF to Silverlight is a bit easy as both rely on Xaml and Silverlight is just a subset of WPF. As for the database; the typical solution is to put your database on a windows server and communicate using services. If your program is a stand alone and this is not an option you can use some of the embedded DB engine. I don't remember any now but I remember I saw a few names to use back when I made my app. If you use LINQ and your data access isn't huge or demanding your can switch your (LINQ to SQL) to (LINQ to Xml) and store your data as an Xml file. P.S. Make good analysis on the OOB in SilverLight 4. There could be some features in your program not covered.
Regards:rose:
If your program is a stand alone and this is not an option you can use some of the embedded DB engine. I don't remember any now but I remember I saw a few names to use back when I made my app. OS X comes with SQLite "built in", perhaps this is a possibility...
-
Hi All, I'm getting some requests to port an application I've built using WPF/C#/SQL Compact to the Mac platform. My understanding of the general tasks to achieve this are: Re-write the whole UI (No WPF Support in Mono) Replace all database access to use MySQL or other DB The rest of the C# code is targeting C#3.0/.NET 3.5 SP1 so I'm guessing that an absolute stack of this will need re-writing as well as Mono is more or less .NET 2.0 compatible. I'm just trying to get a feel for the total effort that would be required to do this. I keep coming to the conclusion that it would be more or less a complete re-write from the ground up which is kinda daunting at the moment. Anyone performed a similar task that can give me a bit more insight? Cheers,
Jammer My Blog | Articles | DMon | SampleSort
Haven't done it, but the Mono site has an analysis tool that will help you figure out how much effort is needed. It basically checks the compatibility of the BCL calls with what is available in Mono.
-
Hi All, I'm getting some requests to port an application I've built using WPF/C#/SQL Compact to the Mac platform. My understanding of the general tasks to achieve this are: Re-write the whole UI (No WPF Support in Mono) Replace all database access to use MySQL or other DB The rest of the C# code is targeting C#3.0/.NET 3.5 SP1 so I'm guessing that an absolute stack of this will need re-writing as well as Mono is more or less .NET 2.0 compatible. I'm just trying to get a feel for the total effort that would be required to do this. I keep coming to the conclusion that it would be more or less a complete re-write from the ground up which is kinda daunting at the moment. Anyone performed a similar task that can give me a bit more insight? Cheers,
Jammer My Blog | Articles | DMon | SampleSort
You can consider using the following technologies on Mac: 1) Silverlight 4 as a replacement for WPF (the most closest approximation though not 100% complete) 2) SQLite as a replacement for SQL CE (Mono has good support for SQLite) 3) In this case, you will need to re-design your app to support multiple layers (DAL/BLL exposed via WCF - it is partially supported by Mono, specifically for Mac), UI layer running on Silverlight. This is what I would do if I were in your shoes.
-
Hi All, I'm getting some requests to port an application I've built using WPF/C#/SQL Compact to the Mac platform. My understanding of the general tasks to achieve this are: Re-write the whole UI (No WPF Support in Mono) Replace all database access to use MySQL or other DB The rest of the C# code is targeting C#3.0/.NET 3.5 SP1 so I'm guessing that an absolute stack of this will need re-writing as well as Mono is more or less .NET 2.0 compatible. I'm just trying to get a feel for the total effort that would be required to do this. I keep coming to the conclusion that it would be more or less a complete re-write from the ground up which is kinda daunting at the moment. Anyone performed a similar task that can give me a bit more insight? Cheers,
Jammer My Blog | Articles | DMon | SampleSort
Is it an option to use a VM? You could run the app in a VM hosting Windows in 'integrated' mode (or whatever its called) and the app will appear to be running 'like a native app' (i.e. without being inside the VM's virtual desktop). I think VMWare has a Mac version; Parallels is the other major VM for the Mac. If its politically acceptable to the client to do this, it might be much cheaper (VM license + Windows license + small amount of work) to go this route than the porting route. Of course, there are maintenace burdens once you have a VM that hosts something of importance...