Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Creating .NET C# Applications for Linux

Zonk posted about 9 years ago | from the expanding-your-horizons dept.

Programming 340

An anonymous reader wrote to mention an article on the IBM site entitled Mono brings .Net Apps to Linux. From the article: "Mono gives open source developers the programming power and flexibility to build applications for Linux while maintaining cross-platform capabilities, using a variety of .NET-compatible languages. One of the great advantages of Mono for current .NET developers is providing an easier migration path to Linux. The Mono project has a very open and active development community and provides both developer tools and the infrastructure needed to run .NET client and server applications. Perhaps the most important benefit of using the Mono architecture is that you gain language independence. Mono lets you leverage any existing code from languages supported in the .NET runtime. "

Sorry! There are no comments related to the filter you selected.

Ewww.... (5, Funny)

Afecks (899057) | about 9 years ago | (#13743047)

IBM gave me mono... gross!

IBM's strategy? (1)

Slashdot_Gandhi (912342) | about 9 years ago | (#13743213)



One of the great advantages of Mono for current .NET developers is providing an easier migration path to Linux.

OK, so if you provide windows developers with tools to create .NET applications for Linux, they will end up creating more applications for Linux. Basically we are making it easier for them to migrate to Linux because previously they were not-so-interested, or it-was-too-hard-to-do-freaking-linux-stuff. I think if they really had a need to use Linux, they would have developed everything necessary under Linux long before this IBM crap came along. Move them to Linux and then what? Keep them with VB and C# in Linux, or have them totally transform into something else that is incompatible with windows?

let me get this straight ... (4, Insightful)

SamSeaborn (724276) | about 9 years ago | (#13743050)

Linux programmers will use .NET/C# but they won't use Java?? What's up with that?

Sam

Re:let me get this straight ... (4, Insightful)

mysqlrocks (783488) | about 9 years ago | (#13743095)

Linux programmers will use .NET/C# but they won't use Java?? What's up with that?

Yea, that is pretty strange. I would use Java before I'd use .NET. It's much more cross-platform then .NET is or ever will be even with Mono. Also, they mention that an "advantage" of .NET is being able to write in more than one language. Technically speaking this is true. However, practically speaking the two choices are VB.NET and C#. VB.NET was seriously overhauled from VB6 to make it more compatible with .NET thus losing a lot of it's "roots". I'm certainly not suggesting that VB6 should have stuck around. I'm stuck building stuff in VB6 at work right now and it's not pleasant. I'd jump to VB.NET in a heart-beat. However, I'd much prefer C# which I think is really the only viable language for .NET. Anyways, I'm not a big fan of either. Like I said before, I'd use Java before I'd use .NET (if it were my choice).

Re:let me get this straight ... (0)

Anonymous Coward | about 9 years ago | (#13743131)

You can develop for the JVM in any language. You just need a comppiler that will generate java bytecode =) Java is both a platform AND a programming language. Th

Re:let me get this straight ... (3, Insightful)

Anonymous Coward | about 9 years ago | (#13743233)

I used Java and at the moment I'm doing C# .NET. I have to say I had a lot of pleasure at that time programming in Java (as long as I didn't have to do any Swing or AWT). But I like C# much more. It is a little more close the Delphi (probably the only thing wrong with Delphi is the Pascal syntax, don't tell me about C++ Builder, that was one big disaster...).

I think Delph did a very good job of the GUI. .NET is much nicer and easier than Java's Swing, but it still isn't as great as Borland made VCL for Delphi.

I think the interoperability between VB.NET and C# is a good thing, it isn't 100%, but in most cases you're able to write one thing in one language and an other thing in other language, without really getting in trouble. (Two problems: One is overloaded functions in C# vs Default Parameters in VB.NET, the other is the static nature of structures in VB vs everything is an Object in C#.)...

Re:let me get this straight ... (1)

m4dm4n (888871) | about 9 years ago | (#13743109)

They all secretly want to run on Windows?

*thud*
Ow, hey stop throwing stuff at me!

help

HELP!

Re:let me get this straight ... (3, Funny)

MyLongNickName (822545) | about 9 years ago | (#13743216)

Fortunately for you, the Linux crowd throws like girls. They don't get out much to do real physical activity, so they couldn't throw much harder than my two-year-old.

Now if they get ahold of some open source robotic arm code, you are screwed.

Re:let me get this straight ... (-1, Flamebait)

Anonymous Coward | about 9 years ago | (#13743122)

Java's slow and most of the stuff written these days won't work cross-platform.

Re:let me get this straight ... (2, Interesting)

photon317 (208409) | about 9 years ago | (#13743152)


Sounds just like .NET

I've always though that Mono was a waste of time. .NET hasn't been around for very long at all. If you've got the brains to switch to Linux now, where were those brains two years ago when you wrote your now "legacy .NET code", and how much trouble would it be, really, to just own up to the mistake and start over from scratch in a better environment instead of bringing your .NET cruft over to Linux with you? I don't see it being practical and useful and interesting until about 5-8 years down the road when almost nobody is writing new software for .NET, and the last few braindead idiots are finally getting the point, and need to move quickly to Linux and bring with them (temporarily while they do real porting) 10 years of built up .NET infrastructure. And I cannot fathom how the (talented and insightful, obviously) Mono developers can stomach putting in all this effort for future idiots who are in the process of committing the sins that will ultimately lead to Mono's usefulness right now, as they code it.

Re:let me get this straight ... (1)

Decaff (42676) | about 9 years ago | (#13743186)

Java's slow and most of the stuff written these days won't work cross-platform.

Wrong.

Java 5.0 beats .Net and Mono in almost all benchmarks, and comes close to C++ speed, even for high-performance numerical work.

If Sun can write complete IDE (NetBeans) that is fully cross-platform and portable between different vendors JVMs, then the statement 'that most stuff written these days won't work cross-platform' is nothing more than a troll.

Re:let me get this straight ... (0)

Anonymous Coward | about 9 years ago | (#13743215)

and NetBeans is still slow

Re:let me get this straight ... (1)

Decaff (42676) | about 9 years ago | (#13743235)

and NetBeans is still slow

No it isn't. NetBeans 4.1 and 5.0 under Java 5.0 are far faster in terms of GUI performance than, for example Eclipse - which uses native GTK components.

Re:let me get this straight ... (1)

SIGALRM (784769) | about 9 years ago | (#13743351)

Do you have any stats I could look at to support your statement? Just curious...

Re:let me get this straight ... (2, Informative)

Decaff (42676) | about 9 years ago | (#13743381)

Do you have any stats I could look at to support your statement? Just curious...

yes, I do.

I have been severely critical of Swing performance in the past, however it has improved dramatically.

here is a single post which gives a typical comparison:

http://www.javalobby.org/java/forums/m91832009.htm l [javalobby.org]

But in the end, the best thing to do is to download NetBeans + Java 5.0 and Eclipse (the GTK version is best) and try them out.

Re:let me get this straight ... (2, Informative)

Rycross (836649) | about 9 years ago | (#13743455)

Doing a quick google search it appears that C# often beats Java [shudo.net] or shows comparable performance [tommti-systems.de] in most tests. That is unless you're a Java zealot [manageability.org] who bases opinions on limited and unfair tests. [hutteman.com]

In real-world applications, C# matches up quite well to Java's speed.

Re:let me get this straight ... (3, Insightful)

Anonymous Coward | about 9 years ago | (#13743125)

C# and the core parts of .NET are open standards, whereas Java is not. While true that some parts of Microsoft's implementation are not covered by the standard, the standard covers everything that's needed for anyone with the talent to create an implementation of core .NET and leverage most of the benefits. That in itself won't give you compatibility with Microsoft applications, but it you're more interested in the better technology than in compatibility with a corporations products, then Mono (at least the core parts) is the way to go, and you lose nothing by not going to Java.

Re:let me get this straight ... (4, Insightful)

Decaff (42676) | about 9 years ago | (#13743223)

C# and the core parts of .NET are open standards, whereas Java is not

This means nothing. These parts are still subject to patents. Sun is prepared to certify any Java implementation as 'Java' providing it passes their compatibility tests. They have even done this for clean-room implementations by rival companies like HP.

That in itself won't give you compatibility with Microsoft applications

Whereas Java gives you a definite guarantee of compatibility.

and you lose nothing by not going to Java.

Except performance, reliability, being able to use quality products from multiple vendors such as Sun, HP, IBM etc, and using the language which is now the de-facto standard for commercial server-side software development.

Re:let me get this straight ... (1)

CyricZ (887944) | about 9 years ago | (#13743130)

Perhaps Java will be a more useful option once GNU Classpath matures a bit more, and GCJ support under Windows is improved. Indeed, a GCJ+SWT+Java solution could be quite powerful. You get the benefits of native compilation, with the benefits of the semi-portable SWT, and the benefits of Java, for desktop application/client development. Best of all, you lose most of the crud of the JRE (or the .NET CLR equivalent).

And if the GNU Classpath support for Swing and AWT improves, then there'll be an option available for existing programs.

Re:let me get this straight ... (2, Informative)

Decaff (42676) | about 9 years ago | (#13743274)

Perhaps Java will be a more useful option once GNU Classpath matures a bit more, and GCJ support under Windows is improved.

This will be news to the thousands of developers who are already using Java under Linux and Windows for application development right now! If you look at the IT job market (Java being the most required skill for commercial application development), you won't see Java uptake being held up because it is not currently a 'useful option'!

Personally, I can see the advantage of a mature open source Java, but Java is not being held back by this.

Where are the apps? (1)

CyricZ (887944) | about 9 years ago | (#13743319)

While Java is often suitable for enterprise apps or web based apps, it just isn't useful for consumer-grade application development. That's why we haven't seen any serious and widely-accepted office suites or web browsers written in Java, for instance, even after ten years.

Re:Where are the apps? (3, Informative)

Decaff (42676) | about 9 years ago | (#13743353)

While Java is often suitable for enterprise apps or web based apps, it just isn't useful for consumer-grade application development

That will be news to the many developers who have produced such applications. Go to the Swing Connection on the Sun Java Website and you will see hundreds of applications that are consumer-grade. This includes games, graphics apps, and multi-media apps.

And, of course, there are the thousands of different Java games that are downloaded to mobile phones every day!

So much for Java not being 'consumer-grade'!

C# is an open standard (1, Informative)

Sycraft-fu (314770) | about 9 years ago | (#13743208)

ANSI controls it. No changes can be made without submission to ANSI, and those chances will be made public. Sure, MS could make another language based on C# but not compatible (so could anyone else) but then it won't be C#.

Re:C# is an open standard (1)

pmike_bauer (763028) | about 9 years ago | (#13743259)

Being an open standard does not guarantee any sort of compatability accross implementations whatsoever.

The fact that Sun religiously guards what is called 'Java' with their compatibility test kits is what makes Java so uniform accross platforms.
Does C#/.NET have such an analog?

Re:C# is an open standard (2, Informative)

mozingod (738108) | about 9 years ago | (#13743300)

That's the problem. C# is open and can be completely cross platform, but .NET isn't. To me, though, the greatest part of using C# is having the .NET framework available to you. Mono is having to recreate the .NET framework on Linux, while Java's framework is already there (though not open source).

I'd rather use Java and have its full framwork available to me than use C# and a crippled, albeit quickly catching up, .NET framework. Six of one, half dozen of another, I suppose.

Re:C# is an open standard (3, Informative)

The Bungi (221687) | about 9 years ago | (#13743293)

It's ECMA, not ANSI.

Re:let me get this straight ... (4, Insightful)

psavo (162634) | about 9 years ago | (#13743209)

Linux programmers will use .NET/C# but they won't use Java?? What's up with that?

I can apt-get install mono, but Sun told me to go fuck myself with a chainsaw when I wanted a .deb of Java1.5. (Yes, there is java-package, which does a great job, but really, it's a fucking mess).

Re:let me get this straight ... (1)

ad0le (684017) | about 9 years ago | (#13743214)

Because Swing and AWT suck so bad, thats why! Try GTK# and you'll soon see why people love it.

Re:let me get this straight ... (2, Informative)

cortana (588495) | about 9 years ago | (#13743425)

More people need to know about the Java-Gnome [sourceforge.net] project!

Re:let me get this straight ... (1)

anglete (782289) | about 9 years ago | (#13743502)

I definatley agree, also, note that Gtk# [mono-project.com] is easily installed under windows.

GTK# looks clean under both platforms and the programs run without recompile.
There's also Glade#, an improvement over windows forms.

With the code generator for Glade# [extremeboredom.net] , it lets you split UI design from backend work which has worked so well for webforms and the like.

Re:let me get this straight ... (1)

fm6 (162816) | about 9 years ago | (#13743308)

Where does it say that? TFA specifically says that you can write Java for .NET/Mono, using third-party IL generators. Many programmers already do that on Windows. They have various reasons for having to support .NET, but don't want to abandon their Java toolset.

Re:let me get this straight ... (0)

Anonymous Coward | about 9 years ago | (#13743312)

100% of my development time is spent with embedded devices, and I struggle with the whole Java thing constantly. It's an uphill battle writing an application that will work under the variety of Java embedded standards - J2ME, MIDP, blah, add to that all the vendor profiles (JSR's) and you have one great pile of steaming s#$&.

So what happens you ask? You end up working for the lowest common denominator - J2SE, maybe MIDP 1.0. What a joke. Trying to develop a rich client experience? Get a life.. Java is _not_ going to come to the rescue.

Along comes .NET CF - Java really needs to get its act together. It's time for device manufacturers to drop the CDLC/MIDP, and move to CDC. They're limiting functionality far too much, manufacturers are forced to hack JSR's left right centre to try and get _something_ acceptable for an attractive platform for developers. My advice - Sun, look at the CF.

Besides, after spending 5 years in Java, C# is a breath of fresh air. Java is too darn wordy and messy.

Re:let me get this straight ... (2, Interesting)

sloanster (213766) | about 9 years ago | (#13743328)

Linux programmers will use .NET/C# but they won't use Java?? What's up with that?

Sam


I'm a long time linux user, and I love java - and I meet a lot of people of like mind in the course of my work. As for mono, we're all pretty much taking a "wait and see" approach. It's a neat hack, but... can we trust that microsoft won't stir up patent trouble? I dunno, java just seems a lot less risky.

Alright, so who told you that linux programers won't use java?

YHBT, my friend!

HAND

Re:let me get this straight ... (1)

fairyliquidizer (843205) | about 9 years ago | (#13743412)

I think you are falling for the "Embrace, Extend, Extinguish" magic already. C# is still an open standard, it's just one that Microsoft will doubtless Extend and Extinguish :)

Re:let me get this straight ... (1)

cortana (588495) | about 9 years ago | (#13743477)

One can apt-get install mono.

MONO MAKES YOU SLEEPY (-1, Offtopic)

Anonymous Coward | about 9 years ago | (#13743051)


Finally ... (-1, Troll)

Anonymous Coward | about 9 years ago | (#13743054)

A real development environment for Linux

Why bother - Java rules!! (-1, Troll)

teutonic_leech (596265) | about 9 years ago | (#13743060)

Sorry, I have Karma to burn and just had to throw this into the mix ;-)

Wouldn't it be funny if... (5, Insightful)

jarich (733129) | about 9 years ago | (#13743061)

Wouldn't it be funny if .Net (with Mono) actually delivered on the promise of Java? That is to say, bringing software to the Linux platform from traditional MS developers?

Given that Java was a new language, maybe the migration from MS developers wasn't all that great... but now, with Mono, MS developers can move right over.

Re:Wouldn't it be funny if... (1)

Radres (776901) | about 9 years ago | (#13743083)

What about the Windows developers working on Java? :-P

Re:Wouldn't it be funny if... (1)

nick-less (307628) | about 9 years ago | (#13743133)


  Wouldn't it be funny if .Net (with Mono) actually delivered on the promise of Java? That is to say, bringing software to the Linux platform from traditional MS developers?


it probably would, but as long most .net apps (or at least most of the apps I was tricked to fix) look like

                #region User Declaration
                clsDML objDML = new clsDML();
                public clsCommon objCommon = new clsCommon();
                clsGridFunctions objGridFunction = new clsGridFunctions();
                Hashtable hstUserSel = new Hashtable();
                int intPageSize = 2;
                string strCateLogPage = "CATELOG", strMacVal = "Mac";
                string strCurrDir = "", strVirImgFolder = @"/TEMP/", strPhyImgFolder = @"C:\TEMP\";
                string strAddCart = "AddCart", strDownload = "Download", strSQL = "", strZipExt = ".zip", strAmbientenbild = "";
                static string[] strarrTable3Fields = new string[]{"DISTINCT VALID_FOR","VALID_FOR"};
                string[] strImgSupportTypeExt = new string[]{"jpg","jpeg","gif","bmp","png"};//Allowab le image formats
                string[] strMovieExt = new string[]{"mpg","mpeg"};//Allowable movie file formats
                string strMovieFileImgPath = "Images\MPG-File.jpg";//Path(relative) of image to be displayed when we have a movie file
                clsModifyImage objThumbnail;
                public string str72 = "_72", str300 = "_300";
                FileStream fsGetFile;
                string strSpace = "";

                #endregion


you probably won't want it running on linux...

ps: I didn't write the mess up there, I was just hired to extend it ;-)

Re:Wouldn't it be funny if... (1)

Tony Hoyle (11698) | about 9 years ago | (#13743266)

Since .NET is 99.9% Windows pretty much all .NET apps will have windows dependencies eg. COM objects, file paths with backslashes, assumed case independence, etc.

Making cross platform code has to be done from the ground up... just because you have some kind of binary (well, pcode) compatibility means nothing if you weren't thinking of Unix when you wrote it.

Even trivial things will break you... assuming Mono has written the ADO+ classes (no mean feat if so) most ADO+ code is written to MSDE/SQL Server and will just die if you run it against MySql..

Re:Wouldn't it be funny if... (1)

manual_overide (134872) | about 9 years ago | (#13743348)

what?

have you ever used ADO or ADO.NET? You do realize there is an ODBC driver for nearly every database in existance? ADO and ADO.NET will run perfectly fine against MySQL. Or postgres or oracle or whatever. Stop spreading FUD.

.NET Windows Forms (2, Interesting)

Anamanaman (97418) | about 9 years ago | (#13743063)

I have a .NET Windows forms app that I'm looking to port to Linux using Mono. Anyone have any experience doing this? Is it something I should even bother trying to do?

Re:.NET Windows Forms (1)

tomasvilda (818284) | about 9 years ago | (#13743115)

Maybe just wait for winforms to get ported to .net?

Re:.NET Windows Forms (1)

mindtriggerz (914619) | about 9 years ago | (#13743145)

In theory, you should be able to run: mono MyApp.exe if it's been compiled and everything should work. IIRC, Mono implements Systems.Windows.Forms in Cairo.

Re:.NET Windows Forms (3, Informative)

MooCows (718367) | about 9 years ago | (#13743245)

Mono implements System.Windows.Forms, but currently it's not stable.

It's recommended to use the latest build of Mono System.Windows.Forms, you can find it here [mono-project.com] .
And here is the the Mono WinForms class status [myrealbox.com] .
I currently wouldn't rely on it. But the outlook is good.
And here are some pretty pictures [myrealbox.com] of Mono's WinForms in action.

For apps where the both compatiblity with Windows and Linux/OSX are important I'd use wx.NET [sourceforge.net] .
However on Win32 WinForms works best, even if it isn't the nicest (for developers) toolkit around.

I'm sorry (1, Troll)

smartin (942) | about 9 years ago | (#13743079)

But just use Java. Why play second class citizen in some one elses world. Java was designed to be cross platform from day one and is really supported on all platforms.

Re:I'm sorry (1, Informative)

hkb (777908) | about 9 years ago | (#13743276)

But just use Java.

We do, sometimes, when we're forced to, but Java IS slow (don't bother quoting any BS benchmarks.

Why play second class citizen in some one elses world. Java was designed to be cross platform from day one and is really supported on all platforms.

Uhm, .NET and Mono were designed to be cross-platform from day one, too. MS didn't decide to use MSIL for the hell of it. It was designed for portability.

Mono is also supported on just about every relevant platform, except maybe in the mobile and embedded spaces. But don't kid yourself, Java isn't exactly "good" in these spaces, either.

And I'm not too sure Mono/Microsoft are exactly second-class citizens in Java's world. They're kind of carving their own niche.

Re:I'm sorry (2, Interesting)

Alkonaut (604183) | about 9 years ago | (#13743278)

C#/.NET was designed to be all that java is in terms of platform independence, but MOST importantly, VM and package versioning was thought of from the beginning. Makes the whole difference.

but it's non-free (4, Insightful)

themusicgod1 (241799) | about 9 years ago | (#13743292)

details [debian.org] . I will not use java, for anything, so long as licenses like theirs are forced upon it. With java, you are always a second class citizen.

Not really news... (2, Informative)

Momoru (837801) | about 9 years ago | (#13743085)

Mono has been around and kickin' for almost as long as .NET has been. It still doesn't execute .NET 100%, but definitely something to check out if your a .NET person and want to use Linux.

Mono is dangerous (-1, Flamebait)

Anonymous Coward | about 9 years ago | (#13743091)

.NET is covered by quite a few software patents that Mono must either license or infringe upon. Just wait a few years until Mono is completely integrated into GNOME and using it on free platforms becomes unavoidable. Only then will Microsoft pull those patents out of its hat and take aim for the kill...

Re:Mono is dangerous (1)

Trigulus (781481) | about 9 years ago | (#13743380)

Can you provide examples of the patents? Thought not.

my case (1)

akadavex (783086) | about 9 years ago | (#13743099)

i'm sysop of debian machines for network services, i also write or modified some apps in php, and them run on apache. but my better applications (standalone/web) are made in visual basic. once i used visual basic and cgi4vb for web developement. now i write apps in vbnet. is the more productive language for my. and i'm not scared about palladium or so for the next year, because i can be a developer fo linux applications. with vbnet, of course, and mono. is not a politic or karma choiche is only for

Re:my case (1)

Krach42 (227798) | about 9 years ago | (#13743154)

i'm sysop of debian machines for network services

Now there's a word I've not heard in a while...

"of"

Re:my case (1)

i.of.the.storm (907783) | about 9 years ago | (#13743489)

Call me a microsoft sympathizer, but I agree with this guy. VB is way more productive than Java. I have experience in both VB and Java and Java takes far longer to code and is often a little unintuitive where VB does things far simpler and doesn't try to force you to speak in code or think of everything as an object.

portability problems (4, Interesting)

vlad_petric (94134) | about 9 years ago | (#13743110)

The article is silent on the GUI part. Unfortunately, that's also the most unportable part with .NET. Since winforms was really tailored for the windows api, porting it is no trivial tasks. Windows.Forms/Mono [go-mono.com] is still under heavy development.

Keep in mind that Microsoft saw .NET as cross-platform, but only between windows platforms. Java is far better in that respect. While full compatibility is in many cases impossible, the extra effort per platform is much smaller

For portable GUI apps..... (1)

CyricZ (887944) | about 9 years ago | (#13743157)

Perhaps it is still better to stick with a cross platform C++ framework like wxWidgets or QT. They offer many of the benefits of Java and .NET, without many of the nasties.

Re:For portable GUI apps..... (1)

despisethesun (880261) | about 9 years ago | (#13743196)

Mono has a cross platform GUI framework. GTK# is already fairly stable all-in-all and works well on all platforms except for Mac (which requires X to use it). I'm sure there are people who will dump all over GTK+ here but it is possible to make cross platform .NET apps as long as you don't actually use Microsoft's shit to do it.

Re:For portable GUI apps..... (1)

CyricZ (887944) | about 9 years ago | (#13743227)

While I'm sure it's a fantastic solution under Linux or some other UNIX-like system, GTK+ is noticeably different under Windows. Users of GTK+ Windows apps (such as GAIM) often can tell that it's not a "real" Windows app.

And if it barely works on Mac OS X, and it isn't really suitable for serious, large-scale Windows apps, then perhaps it really isn't all that useful.

wxWidgets vs. Qt vs. Windows Forms (2, Interesting)

everphilski (877346) | about 9 years ago | (#13743198)

I'm looking into wxWidgets vs. Windows Forms at the moment for a project I'm working on at the moment. It's my thesis research.

Qt was eliminated right out - my project can't be made GPL (due to a piece of the code that is subject to export restrictions), and I can't afford the license cost for a commercial license (and the educational license was too restrictive: I could only develop on campus on a school owned computer.).

Windows Forms is looking very slick. Cross compatibility isn't a requirement, its something I would like. I havent bought into the whole .net or "managed C++" thing, my project is pure C++. I haven't investigated wxWidgets close enough yet to see if they mandate all of my code has to be GPL yet. If not I will give it a serious look. The sample code didn't look quite as clean or object oriented as Windows Forms did, however, which I do value. One cool thing about Windows Forms is that you can keep the "old" C++ code seperate from the Windows Forms program and just call the classes without converting them to "managed C++" or .net.

-everphilski-

Re:wxWidgets vs. Qt vs. Windows Forms (2, Informative)

CyricZ (887944) | about 9 years ago | (#13743243)

wxWidgets is LGPL. You should be able to dynamically link to it while still licensing your software as you see fit. It may have a static linking clause, allowing you to link statically instead of only dynamically. You'll want to check on that, though.

What about using FOX [fox-toolkit.org] ? It's far lighter than wxWidgets or QT, while still offering a decent cross-platform GUI. And it's LGPL, with static linking exceptions.

Re:wxWidgets vs. Qt vs. Windows Forms (1)

everphilski (877346) | about 9 years ago | (#13743287)

Hadn't heard about FOX, will give it a look. (website is loading r e a l l y s l o w . . . )

-everphilski-

Re:portability problems (1)

MooCows (718367) | about 9 years ago | (#13743305)

Actually, wx.NET [sourceforge.net] and GTK# [sourceforge.net] work just fine on both Microsoft's runtime as on Mono's runtime. Compile on Win32 with VS.Net, run on Linux with Mono (or Portable.Net). I've tried it and ran into no problems.

QT# exists or you can call QT libs directly from .Net. I have no experience with QT so can't comment. .Net isn't so 'boxed in' and 'made for win32' as I thought it would be. And C# is a pretty nice language.

Here we go again (3, Insightful)

Billly Gates (198444) | about 9 years ago | (#13743113)

"maintaining cross-platform capabilities, using a variety of .NET-compatible languages." .. great! You can use Microsoft VC.NET, Microsoft C#.net, and Microsoft VB.net on any version of Microsoft windows. (Well recent)

maintaining cross-platform capabilities, using a variety of .NET-compatible languages. One of the great advantages of .NET is providing an easier migration path to Linux .. " Is the poster on crack? He might as well say " .. using a variety of MFC based languages makes targetting to Unix easy.

Why do people even bother with Mono? I know I am going to be modded as a troll but I have yet to see a single app besides a hello world being cross platform? I think the developers looking at C# and Mono in a greater light than Java are ignoring the patent and copyright issues just because C# looks cooler. Thats pretty short sighted.

C# would be the lowest ranked languaged behind visual basic if you want to avoid vender lock in.

What will happen when C# 2.0 comes out? My guess is Linux will be playing catchup again and meanwhile windows will look like a better alternative to businesses standardizing on C# because their geeks mentioned how great Mono is.

Re:Here we go again (1, Interesting)

Anonymous Coward | about 9 years ago | (#13743202)

I have written a scripting engine in C# and the non-UI portion (i.e both the compiler and virtual machine) compile on Windows and execute on Linux perfectly, even the object files my compiler outputs are platform independant. The development environment I have written does not compile under Linux, which agrees with other posts about Windows.Forms not yet being ported properly.

I personally think it rocks, and as a Windows developer by trade, allows me to get a wider audience for my programs.

My scripting enigne will be open sourced and make available in due course (probably via gotdotnet or sourceforge).

Re:Here we go again (1, Insightful)

Omega1045 (584264) | about 9 years ago | (#13743318)

I am sorry that you have not taken the time to really look at .NET. Your statement that you would put it behind VB really shows your ignorance of the platform.

For Windows development, C# and .NET far exceeed anything I have experienced with Java or VB (I get around). I guess I really have a disrespect for Java as 1.0 really sucked hard. The eventing model was worthless, and AWT is just plain out stupid. Hate would be the word I would use to describe how I felt about Java's idiotic way of doing things circa 1998. I have writen stuff on 1.1 and 2.0 since then, but it just seems like it so sooooo friggen slow. We are not talking about a stereotype here. Java, in my experience, is ass slow. On Windows (if that is all you care about) .NET is soooo much better. And nicer. You have to admit that Visual Studio, while it has its own variety of suck, is nominally better than just about any Java IDE out there. And I have tried a lot of them.

As far as running on Linux, we don't really care as we know that none of our clients give a crap about Linux on the desktop. Hell, they would have to port 20 other apps over to Linux first! And as far as server tasks go, all the server dlls I have right now run on Mono on Linux. The strugle for us has been getting the latest/greatest in Mono to compile on AIX.

So, I would be willing to listen to your argument if you were more informed with more experience in the subject.

Re:Here we go again (1)

Exatron (124633) | about 9 years ago | (#13743430)

I think there's a more important question to as first. Why bother with .Net?

Re:Here we go again (1)

Mr2001 (90979) | about 9 years ago | (#13743463)

What will happen when C# 2.0 comes out? My guess is Linux will be playing catchup again and meanwhile windows will look like a better alternative to businesses standardizing on C# because their geeks mentioned how great Mono is.

Actually, Mono already supports the features of C# 2.0. The Whidbey beta has been out for over a year, you know.

Re:Here we go again (2, Insightful)

MooCows (718367) | about 9 years ago | (#13743479)

"great! You can use Microsoft VC.NET, Microsoft C#.net, and Microsoft VB.net on any version of Microsoft windows. (Well recent)"

Right [gotdotnet.com] .. of course not all of these are completed, but still. There are also some implementations not listed there like IronPython.
Or you can install Mono or Portable.Net on Windows and compile without resorting to Microsoft tools. The resulting application will run just fine using the MS runtime or any other runtime on any other platform. (As long as you have the libraries you need on every platform.)

IMHO: .Net isn't perfect, but isn't fundamentally broken either. Unless of course you don't want to touch anything having to do with Microsoft, ever. That's fine, understandable even. Just check facts before flaming their software. ;)
Also, so now we have .Net as an alternative to Java. I thought more choice and competition was good?

About vendor lock in. In practice there is no lock in, as stated above C# and .Net applications are already quite compatible with non-Win32 platforms. Patent and copyright issues? Well C# is pretty safe, MS might somehow claim to 'own' the CLR standard .. but I think that would be highly unlikely. (And even more unlikely to succeed.)

Check Out Imeem.Com (0)

Anonymous Coward | about 9 years ago | (#13743116)

They're doing a lot of Stuff with mono, they've got a windows client and supposedly have a Mono based Mac version on the way, their developers all keep blogs on the site about building applications in mono and .Net.

"cross-platform" (4, Funny)

oGMo (379) | about 9 years ago | (#13743121)

You keep using that word. I don't think it means what you think it means.

Re:"cross-platform" (2, Funny)

Billly Gates (198444) | about 9 years ago | (#13743139)

Whats the problem?

You can run Mono in almost any version of Windows.

How is this news? (0)

Anonymous Coward | about 9 years ago | (#13743140)

This is not new at all... Mono has been around, where have you guys been?

Is "Mono" the new OOG? (1)

Bingo Foo (179380) | about 9 years ago | (#13743146)

MONO conjugate verbs for Linux.

Re:Is "Mono" the new OOG? (0)

Anonymous Coward | about 9 years ago | (#13743286)

I'd like to point out that the editors have changed the offending conjugation in the story, so the parent post now looks like a non-sequitur. It wasn't when it was posted.

MONO not portable. (0)

Anonymous Coward | about 9 years ago | (#13743151)

MONO is not portable to other architectures due to assembly language used.

Why bother? (4, Insightful)

Decaff (42676) | about 9 years ago | (#13743158)

With Java you now have a complete implementation of all language APIs on Windows, Linux, Solaris, HP and so on, not an incomplete port of .NET (Mono) potentially subject to Microsoft patents.

If the Apache Harmony projects succeeds (and it has a lot of backing) there will be a complete open source cross-platform Java implementation. There are already open-source Java versions that are good enough for many applications (gcj, Kaffe).

Mono is a waste of time.

Re:Why bother? (1)

Decaff (42676) | about 9 years ago | (#13743329)

How on Earth can this be rated troll when it there is not a single fact in the post which is incorrect?

.NET a marketing term (0)

Anonymous Coward | about 9 years ago | (#13743182)

The problem is that the Mono team, and Miguel specifically, will absolutely not relent in using the term ".NET". The thing is that Microsoft *intentionally* created a brand around .NET that blends deep within the Windows platform. VisualStudio.NET, anyone? It is so unbelievably stupid to use Microsoft's brand in that it will always, always be very tied to the Windows platform. The day VisualStudio.NET runs on Mono is the day they can start even *using* the term .NET OR .NET Runtime, or whatever, in conjunction with Mono. The technology is OK from a pure technologists standpoint, but from a basic business/marketing standpoint it shows that Mono and Miguel are pathetically stupid. Again, the mantra should be that Mono is done when it runs VisualStudio.NET. NEVER GOING TO HAPPEN.

Ah Please, it's really old news (1)

TarrySingh (916400) | about 9 years ago | (#13743183)

My .NET colleague has been using this for quite sometime on his SuSe box(in his VMWare).

How cross-platform (2, Interesting)

pmike_bauer (763028) | about 9 years ago | (#13743188)

A few years back, I had a serious Java epiphany. Try taking a JAR that runs on an IBM JVM (AIX) and, without a recompile or glitches, run it on a Sun JVM (Windows). It just works.

A C# program targeting the Mono runtime will probably be very portable to all operating systems that run Mono. But, will a Mono app/code base developed on Linux run just as smoothly on the .NET runtime in Windows?

Re:How cross-platform (1)

ad0le (684017) | about 9 years ago | (#13743283)

With my experience, 90% of the time, yes! I've even been able to use GTK# and NgPGSQL for GUI and Database access (respectively). I compile with Mono on my gnu/linux box and run on windows just fine and vice versa. It's pretty amazing.

Re:How cross-platform (0)

Anonymous Coward | about 9 years ago | (#13743296)

Yes.

Javascript/AJAX is an awesome combination. (0, Offtopic)

hughperkins (705005) | about 9 years ago | (#13743217)

Javascript/AJAX is an awesome combination. Scripting languages provide very awesome RAD, whilst using a web browser + javascript + xmlhttprequest provides a very smooth professional appearance to your application. .Net and ASP .Net are cool, but my personal experience is that development times tend to be quite long, compared to the same application in Javascript/XMLHttpRequest.

One issue is variable declaration. Declaring a variable as an XMLElement rather than simply typing var takes a half second or so longer each time. Certain results need to be cast to be useful, for example, SelectSingleNode often needs to be cast into an XMLElement. You can't easily write a function that can handle many datatypes, and the datatypes tend to be purvasive throughout your project, difficult to change, at least without using typediffs, which has its own overhead.

ASP .Net provides web form widgets that work along similar lines to VB forms elements. However, plain old html is much easier to work with, more dynamic and more flexible than VB-type widgets. The .Net widgets do provide the illusion that the application is client-based, but AJAX does this too, and is much easier to use. ASP .Net provides a form editor but it tends to work uneasily with custom-edited HTML.

Javascript/XMLHttpRequest rock totally. They provide the separation of display and code that ASP.Net provides. They're lightweight, readily maintainable, easy to read, and very flexible and powerful.

Obviously, it would be unwise to state that AJAX is the best solution for every scenario, but it's certainly a highly optimal solution for a wealth of functional, technical and user specifications. So much so that Microsoft is currently trying to move ASP.Net to use AJAX, the Atlas project!

Hugh

Re:Javascript/AJAX is an awesome combination. (0)

Anonymous Coward | about 9 years ago | (#13743236)

What the hell are you rambling about?

Mono's purpose (1, Flamebait)

Peaker (72084) | about 9 years ago | (#13743229)

The only purpose Mono actually serves is to feed the myth that .NET is any more portable than ordinary Win32 programming.

Re:Mono's purpose (1)

shaunbaker (157313) | about 9 years ago | (#13743258)

being the .net programming and win32 programing have nothing in common except for the fact that you can use both to make windows programs, your argument seems a little short sighted. You can program with windows forms and use those forms on linux with mono, it actaully works pretty well. Then theres always gtk#

Re:Mono's purpose (1)

Tony Hoyle (11698) | about 9 years ago | (#13743303)

Actually it has a lot in common - look at the function names available... a lot of them have direct Win32 equivalents. The behaviour of those functions is the same as the Win32 functions they call.

No matter how hard you try to port that to Linux it's a different underlying system.. the documented behaviour might work, it might not. Anything use COM or PInvoke definately won't.

Re:Mono's purpose (1)

MooCows (718367) | about 9 years ago | (#13743346)

So? If I write a Java application and call the Win32 API does that make Java not crossplatform anymore?
System.Windows.* and Microsoft.* are called that for a reason. So you'll remember not to call them when writing an application intended for multiple platforms.

Why so many stories about mono? (4, Insightful)

t35t0r (751958) | about 9 years ago | (#13743237)

Why does Mono show up so many times on slashdot? [google.com]

Why use Mono/.NET when you have ruby, perl, php, and python? All of which are cross platform? As far as only being able to give binary code to your customers ActiveState's Perl Dev Kit allows you to do just this (even though it's not free, but still less expensive than a license for Visual Studio .NET). I'm sure someone has written a decompiler for PDK binaries but the same thing could be done for .NET applications.

But honestly can someone who has done development in Mono and and the other aforementioned languages convince me or anyone else for that matter to learn C#/Visual Basic.NET, and enjoy what it has to offer? What does it offer that the other aforementioned languages do not?

Re:Why so many stories about mono? (1)

ad0le (684017) | about 9 years ago | (#13743307)

Modern and well thought out libraries that fix mistakes or poor design in older more mature languages.

The power is not the language itself, it's the framework as a whole.

Re:Why so many stories about mono? (1)

M$ Mole (158889) | about 9 years ago | (#13743342)

Why use Mono/.NET when you have ruby, perl, php, and python? All of which are cross platform? I think the point would be that by having the same framework that MS is pushing for available on Linux allows for easier migration from Windows to Linux for those who would normally never consider such a move. The PHB's in our organization just realized that Windows is expensive (shocking, I know), but we've been working on a .NET Windows app that's already about 1.5m lines of code. I've been asked what I know about Mono on Linux, which, ufortunately is not a lot, but it at least provides some semblance of a way to move away from Windows/MS without abandoning several years of work.

Re:Why so many stories about mono? (2, Insightful)

Mr2001 (90979) | about 9 years ago | (#13743501)

Why use Mono/.NET when you have ruby, perl, php, and python? All of which are cross platform?

Why use C++ when you have JavaScript? Why use Haskell when you have BASH? They're apples and oranges.

As far as only being able to give binary code to your customers ActiveState's Perl Dev Kit allows you to do just this (even though it's not free, but still less expensive than a license for Visual Studio .NET). I'm sure someone has written a decompiler for PDK binaries but the same thing could be done for .NET applications.

Actually, you can pre-compile .NET/Mono apps with a tool called ngen, which translates the IL code to native machine code to reduce startup time and make it harder to decompile.

Java has language independence too! (4, Informative)

TheNarrator (200498) | about 9 years ago | (#13743317)

Perhaps the most important benefit of using the Mono architecture is that you gain language independence.

This is by far the most hyped feature of C# but it's also present in Java. If you look at the large incompatibilities between Visual Basic and VB.NET you'll see that .NET is not really that language independent and that each language is really more of a "skined" version of C#.

As far as alternative languages go in Java there are many. Among the most popular are: JRuby [sourceforge.net]
# interpreter written in 100% pure Java
# Most builtin Ruby classes provided
# Support for interacting with and defining java classes from within ruby
# Bean Scripting Framework (BSF) support
# Distributed under a tri-license (CPL/GPL/LGPL)

Jython (Python) [jython.org]
Jython is an implementation of the high-level, dynamic, object-oriented language Python written in 100% Pure Java, and seamlessly integrated with the Java platform. It thus allows you to run Python on any Java platform.

Groovy [codehaus.org]
Groovy is an agile dynamic language for the Java 2 Platform that has many of the features that people like so much in languages like Python, Ruby and Smalltalk, making them available to Java developers using a Java-like syntax.

There's a lot more smaller projects like JavaScript and Rhino, Jelly, BeanShell, Tcl/Java, Sleep, ObjectScript, Pnuts, Judoscript. Some people event think there are too many alternative languages for the Java Virtual Machine.

It's the tools (3, Insightful)

somerandomstring (882953) | about 9 years ago | (#13743336)

Why Mono? The answer is extremely clear: outstanding tools.

Microsoft has some of the best development tools around, and the best of their stuff targets .Net. That being the case, and seeing that windows developers largely use MS tools, it stands to reason they'd find targeting Linux via Mono the path of least resistance.

Mono!==.NET (0)

Anonymous Coward | about 9 years ago | (#13743356)

"One of the great advantages of Mono for current .NET developers is providing an easier migration path to Linux."

You have that backwards

[Mono to Windows .NET]
Addition of various Windows specific code.

[Windows .NET to Mono]
Removal of various Windows specific code.

So basically a pure Mono app that becomes popular, will run easier on Windows, but the reverse will not always be true.

GUI applications (4, Interesting)

DynamiteNeon (623949) | about 9 years ago | (#13743485)

Don't get me wrong, I happen to like both C# and Java, but if I have to create a gui app on windows for some reason, C# and .net wins hands down.

Yes, I realize I could use SWT, but that's still not necessarily good enough. It surprises me that Swing still sucks so much after all this time. I would love to use one language exclusively if I could, but until I see some decent gui apps being built using Swing, it's hard for me to want to use Java unless I have backend services to create.

Having said that, I would like to know if anyone can point me to gui applications that use swing and are actually good and fast. I'm curious if they exist at all.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?