Windows .Net program in Ubuntu

Asked by mohanms

HI everyone.

I'm new to Ubuntu. Previously we did some softwares that was developed on Windows using C#.Net. Now I'm doing a research on whether this application can be converted to be deployed on Ubuntu. By deployin here I mean to put the program on Ubuntu and run it, and also change things that needed.

Previously I read that by using MonoDevelop we can develop .Net applications. But isit possible to use the same programs that was created on Windows and use it on Ubuntu?

I hope you guys understand what I'm trying to say here. Please do let me know if there is anymore details that I can provide.

Thank you very much.

Question information

Language:
English Edit question
Status:
Answered
For:
Ubuntu mono Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
mohanms (mohan-sangkar) said :
#1

HI.

I forgot to say this previously. We are also using Crystal Report on Windows.

I read that there is alternative for Crystal Report on Ubuntu. But we already created so many applications using Crystal Report and we wish to use the same reports. I also found out that we could use VirtualBox to install XP in it and use Crystal Report there. Can anyone provide me with some tutorials that I can follow to use the VirtualBox to develop Crystal Reports and use them in the .Net applications. Thank you so much...

Revision history for this message
actionparsnip (andrew-woodhead666) said :
#2
Revision history for this message
Jo Shields (directhex) said :
#3

In abstract terms, applications written for Microsoft.NET can run on Ubuntu via the Mono runtime, and vice versa - they are both implementations of the same standards, and use the same format for applications and libraries. There are two major caveats which may prevent simple binary movement, though:

1) Cross-platform code. For example, if your file paths are written in the form MyPath1+"\"+MyPath2, then you'll have problems. The correct cross-platform equivalent is System.IO.Path.Combine(MyPath1,MyPath2). Things like this - case sensitivity, paths, and so on, are low-hanging fruit to fix the portability of applications.

2) Availability of libraries. If you're P/Invoking a library of some kind, that library - or a clone of it - must be available on all executing platforms. If you use, say, SQlite, that's okay because SQlite is available for both Windows and Linux (and Mac) - but if you're calling into kernel32.dll, you're going to have problems. The same goes for user interface design - WinForms will work on Linux, WPF will not. Conversely, GTK# will work on Windows only if you install the GTK# redistributable first.

For the specific app that you name (Crystal Reports), I have no idea at all if it'll run - that depends on how well their code copes with the two points I made above. But in the general case, a .NET app written on Ubuntu can be copied and run on Windows, and the same in reverse.

Can you help with this problem?

Provide an answer of your own, or ask mohanms for more information if necessary.

To post a message you must log in.