MONO and Linux
-
I have being playing with Mono and even considering contributing to their project. Some good and some bad news for you: 1. You have IDEs for C# on Linux: at least, Eclipse and SharpDevelop run. I don't even consider Emacs, but some people love it. Not that they are better than VS.NET, but they are better than working on VI. 2. There's no strong need for a .NET IDE on Linux, unless you want to abandon Windows completely. You can develop, compile and debug on Windows, get your assemblies on Linux and retest them there. 3. If you really want to build your assemblies on Linux, you can use NAnt. 4. Mono is still slower than .NET, and the GC is still not a generational one. Some things are actually faster than in .NET, but my simple tests showed, e.g., that a combination of XmlDocument.Load and several XmlDocument.selectSingleNode is 4 times slower. 5. A large application, as it is your case, will also probably have lots of dependencies on Windows, that’ll need to be dealt with: . Hard-coded ‘\’ in paths . Hard-coded CRLF on text files and text file writing . Database: you’ll need to support some kind of free database, too. . COM and Interop Instead of Redhat, on your next time. you can also try installing Knoppix on a hard disk partition and try mono on it. For simple testing, it's way faster than installing a "full" distribution like RedHat or Mandrake.
"If you weren't my teacher, I'd think you just deleted all my files." -- an anonymous UCB CS student, to an instructor who had typed "rm -i *" to get rid of a file named "-f" on a Unix system.
Daniel Turini wrote: but they are better than working on VI. real programmers use ed ;) :laugh: My code isn't buggy. Those are all fleatures.
-
Have a look at Portable .NET (www.dotgnu.org[^]) too! IMO, the whole setup is much better than Mono's. Further more, PNET includes not only C# compiler, but C, BrainF@ck, VB, Java compilers too. You can even compile to Java byte code. Also Mono, only supports GNU/Linux, where as PNET supports, well anything. They might not be as far on the UI (winforms) side as Mono, but they getting there :) John Cardinal wrote: And sadly there is yet no IDE for Linux and c#, but one's bound to be on the way. They are trying to port #dev to PNET too. leppie::AllocCPArticle("Zee blog");
Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it. -
I have being playing with Mono and even considering contributing to their project. Some good and some bad news for you: 1. You have IDEs for C# on Linux: at least, Eclipse and SharpDevelop run. I don't even consider Emacs, but some people love it. Not that they are better than VS.NET, but they are better than working on VI. 2. There's no strong need for a .NET IDE on Linux, unless you want to abandon Windows completely. You can develop, compile and debug on Windows, get your assemblies on Linux and retest them there. 3. If you really want to build your assemblies on Linux, you can use NAnt. 4. Mono is still slower than .NET, and the GC is still not a generational one. Some things are actually faster than in .NET, but my simple tests showed, e.g., that a combination of XmlDocument.Load and several XmlDocument.selectSingleNode is 4 times slower. 5. A large application, as it is your case, will also probably have lots of dependencies on Windows, that’ll need to be dealt with: . Hard-coded ‘\’ in paths . Hard-coded CRLF on text files and text file writing . Database: you’ll need to support some kind of free database, too. . COM and Interop Instead of Redhat, on your next time. you can also try installing Knoppix on a hard disk partition and try mono on it. For simple testing, it's way faster than installing a "full" distribution like RedHat or Mandrake.
"If you weren't my teacher, I'd think you just deleted all my files." -- an anonymous UCB CS student, to an instructor who had typed "rm -i *" to get rid of a file named "-f" on a Unix system.
Excellent info! Thanks. I sort of thought that would be the case with the IDE since it's for the most part the same code why not use visual studio. My only concern comes when the user interface needs to be done for Linux. I should say that we're not so much porting an app as re-designing it in UML right now using Enterprise Architect (the Aussie one, not the Microsoft one) then writing an equivalent from scratch in c#, but this time doing it with business objects and a proper 5 tier logical architecture. So much of what people have requested ever increasingly is the ability to run the program on just about anything. We currently have a web browser interface on a web server we wrote from scratch but the whole process was done over years and there is duplicate code everywhere. It runs and runs well, but from a maintenance standpoint it's a nightmare. No one's fault really, just reality, sudden popularity pressuring addition of features etc etc. I'm really looking forward to cleaning it all up and adding about 500 new features in our features list but making it much cleaner and simpler to use etc. It's a real pleasure to have the time to do it right and from scratch. Bottom line is that we're not going to run into "porting" issues, more issues related to being careful to design the business object layer to handle all the possibilities of .net on Linux as well as different data layers for different database platforms and different front end user interfaces. Only way to do that is some experimentation with linux and it's databases I think which is what I have the pleasure of doing for the next little while. My main concern with Mono is in the area of remoting since our new architecture for the business objects is going to rely heavily on it as we're planning a physically distributed architecture. According to MONO docs it's implemented and works, but with some bits to come still.
-
Daniel Turini wrote: but they are better than working on VI. real programmers use ed ;) :laugh: My code isn't buggy. Those are all fleatures.
-
Anyone try out the .net port to linux? (http://www.go-mono.com[^]) We're porting a large commercial app to .net for windows and we've had more than a few users lately telling us they would like to see a Linux version because they've been thinking of switching to Linux. Apparently Mono is just about at the stage of supporting the entire .net framework other than the Windows Forms parts which they have an alternative for Gnome desktop. They even support asp.net and ado.net. This seems ideal for a business app since you typically have business objects and an independant user interface layer anyway. (at least that's how were doing it) So offering a Linux version seems (SEEMS) to be as simple as compiling the business objects and data layer under Linux / MONO and then simply writing a different front end for it. I'm just installing Red Hat on a test system to try it out (unfortunately it's been churning away all day since 8:00am to now 2:11pm installing updates with no end in site and no progress bar visible because I made the mistake of switching to another window and now it won't refresh). And sadly there is yet no IDE for Linux and c#, but one's bound to be on the way. Linux has sure come a long, long way. It's many orders of magnitude easier to install than it was the last time I tried it about 5 years ago. And if you believe some of the recent stats (which do seem believable) a significant number of corporations are starting to switch to it for client workstations, not just servers.
Mono gave me a warm fuzzy feeling the first Hello World I compiled on it. However, I'm sticking to Windows .NET for now untill Linux .NET improves its compatibility 10 fold. Rotor (SSCLI) is cool too.
"werewnt we going to run off and start a convent on as islandf]"
-David Wulff, again on MSN while plastered...
Jonathan 'nonny' Newman Homepage [www.nonny.com] [^] Blog [^] -
Mono gave me a warm fuzzy feeling the first Hello World I compiled on it. However, I'm sticking to Windows .NET for now untill Linux .NET improves its compatibility 10 fold. Rotor (SSCLI) is cool too.
"werewnt we going to run off and start a convent on as islandf]"
-David Wulff, again on MSN while plastered...
Jonathan 'nonny' Newman Homepage [www.nonny.com] [^] Blog [^] -
Anyone try out the .net port to linux? (http://www.go-mono.com[^]) We're porting a large commercial app to .net for windows and we've had more than a few users lately telling us they would like to see a Linux version because they've been thinking of switching to Linux. Apparently Mono is just about at the stage of supporting the entire .net framework other than the Windows Forms parts which they have an alternative for Gnome desktop. They even support asp.net and ado.net. This seems ideal for a business app since you typically have business objects and an independant user interface layer anyway. (at least that's how were doing it) So offering a Linux version seems (SEEMS) to be as simple as compiling the business objects and data layer under Linux / MONO and then simply writing a different front end for it. I'm just installing Red Hat on a test system to try it out (unfortunately it's been churning away all day since 8:00am to now 2:11pm installing updates with no end in site and no progress bar visible because I made the mistake of switching to another window and now it won't refresh). And sadly there is yet no IDE for Linux and c#, but one's bound to be on the way. Linux has sure come a long, long way. It's many orders of magnitude easier to install than it was the last time I tried it about 5 years ago. And if you believe some of the recent stats (which do seem believable) a significant number of corporations are starting to switch to it for client workstations, not just servers.
If you want to develop apps on Windows and run them on Linux, why don't you use Java? For all its faults, it is a proven technology, unlike Mono.
-
If you want to develop apps on Windows and run them on Linux, why don't you use Java? For all its faults, it is a proven technology, unlike Mono.
Nemanja Trifunovic wrote: If you want to develop apps on Windows and run them on Linux, why don't you use Java? For all its faults, it is a proven technology, unlike Mono. Simple, I don't know anything about Java and I am comfortable using c#. I have the tools already to develop for it (iis, vs.net, sql server), I know it works, is very stable and super fast for development. And finally everything I've read (even from Java fanatics) leads me to believe that there is little to choose between the two for the sort of work that I need to do. Java is certainly a mature technology, but .net is relatively new and it's already acknowledged in many circles to be as good as Java, .net can only get better and it's damn good now. Bottom line is that Linux compatibility would be a bonus but we're primarily concerned about making business apps with a windows interface, IIS web browser interface, web service interface etc and the overriding consideration is time to market which with c++ was terribly slow for a small organization like ours, we've estimated we can cut the typical time to market by a factor of 50 to 100 times using .net. That means we can release updates more quickly with the features that our customers want and it means that it takes far less sales to recoup the expense of bringing the product to market, a huge profitability gain. If I had a Java background I would probably be doing it in Java.:-D
-
Jonny Newman wrote: Rotor (SSCLI) is cool too. Yeah, what is that anyway? I saw it mentioned but have no idea what it is.
It's an implementation of the CLR, written by MS, that compiles on XP and FreeBSD. It comes with full source, and with some tweaking it can be compiled on linux as well. I think it only comes with a C# compiler - I'm not sure what else it comes with. The catch is that the license specifies that you aren't allowed to build commercial systems with it (or derive commercial works from it). It's designed and distributed with hobbyists and researchers in mind. For instance, you can get a version of C# generics on it right now. SSCLI (Rotor): SSCLI C# generics implementation Gyro Be prepared for one hell of a build though - their custom build system uses nmake and alot of Perl scripts ;) Quite frankly, I'm impressed with the whole SSCLI distribution... -- Russell Morris "So, broccoli, mother says you're good for me... but I'm afraid I'm no good for you!" - Stewy
-
Daniel Turini wrote: but they are better than working on VI. real programmers use ed ;) :laugh: My code isn't buggy. Those are all fleatures.
My code isn't buggy. Those are all fleatures. Your sig is buggy ;) Sean Winstead
-
I have being playing with Mono and even considering contributing to their project. Some good and some bad news for you: 1. You have IDEs for C# on Linux: at least, Eclipse and SharpDevelop run. I don't even consider Emacs, but some people love it. Not that they are better than VS.NET, but they are better than working on VI. 2. There's no strong need for a .NET IDE on Linux, unless you want to abandon Windows completely. You can develop, compile and debug on Windows, get your assemblies on Linux and retest them there. 3. If you really want to build your assemblies on Linux, you can use NAnt. 4. Mono is still slower than .NET, and the GC is still not a generational one. Some things are actually faster than in .NET, but my simple tests showed, e.g., that a combination of XmlDocument.Load and several XmlDocument.selectSingleNode is 4 times slower. 5. A large application, as it is your case, will also probably have lots of dependencies on Windows, that’ll need to be dealt with: . Hard-coded ‘\’ in paths . Hard-coded CRLF on text files and text file writing . Database: you’ll need to support some kind of free database, too. . COM and Interop Instead of Redhat, on your next time. you can also try installing Knoppix on a hard disk partition and try mono on it. For simple testing, it's way faster than installing a "full" distribution like RedHat or Mandrake.
"If you weren't my teacher, I'd think you just deleted all my files." -- an anonymous UCB CS student, to an instructor who had typed "rm -i *" to get rid of a file named "-f" on a Unix system.
Hey now there! Daniel Turini wrote: Not that they are better than VS.NET, but they are better than working on VI. I write almost all of my C# code in vi, or VIM rather, and have used it on the Win32 platform as my primary editor since I had to port it there myself in the NT 3.x days. You heathens and your big, slow, everything but the kitchen sink IDEs... There should be a test - if you need wizards and intellisense to write code, you aren't qualified to have them. Only if you don't need them should you be permitted them. -Blake (who doesn't need no stinkin' arrow keys)
-
Nemanja Trifunovic wrote: If you want to develop apps on Windows and run them on Linux, why don't you use Java? For all its faults, it is a proven technology, unlike Mono. Simple, I don't know anything about Java and I am comfortable using c#. I have the tools already to develop for it (iis, vs.net, sql server), I know it works, is very stable and super fast for development. And finally everything I've read (even from Java fanatics) leads me to believe that there is little to choose between the two for the sort of work that I need to do. Java is certainly a mature technology, but .net is relatively new and it's already acknowledged in many circles to be as good as Java, .net can only get better and it's damn good now. Bottom line is that Linux compatibility would be a bonus but we're primarily concerned about making business apps with a windows interface, IIS web browser interface, web service interface etc and the overriding consideration is time to market which with c++ was terribly slow for a small organization like ours, we've estimated we can cut the typical time to market by a factor of 50 to 100 times using .net. That means we can release updates more quickly with the features that our customers want and it means that it takes far less sales to recoup the expense of bringing the product to market, a huge profitability gain. If I had a Java background I would probably be doing it in Java.:-D
John Cardinal wrote: I don't know anything about Java and I am comfortable using c#. For all intents and purposes Java == C#. If you're talkin J2EE, then thats a different beast I agree. Woke up this morning...and got myself a blog