🔒 Locked
.NET future
Advertisement
Original Post
I would like to hear an honest, clean discussion on the future of the .NET framework. As a developer that uses it, I like it quite a lot for its simplicity, as it lets me get work done instead of reinventing the Win32 wheel every time I want to make a window pop up.
Here is my question though:
What is the future of it on other platforms? Will I be able to develop on Windows and then quickly port to an implementation on Linux and Mac? Is there a running implementation for Mac, or plans for one?
Lastly, what about GUI design on other platforms? Could I use WinForms and have a "WinForms" mock-up for Linux, or Mac? How will that work?
Mono
I was messing with it last week and tried to compile a project I had written in VS.NET. I used slntomake (do a Google search for source) to convert the sln into a Makefile. Unfortunately, my project has compile errors on both Windows and Linux so I haven''t been able to further test it out (lots of school stuff taking up my time).
They have a Windows.Forms implementation that uses Wine. There might be other implementations of Windows.Forms using other toolkits, but I''m not sure.
I was messing with it last week and tried to compile a project I had written in VS.NET. I used slntomake (do a Google search for source) to convert the sln into a Makefile. Unfortunately, my project has compile errors on both Windows and Linux so I haven''t been able to further test it out (lots of school stuff taking up my time).
They have a Windows.Forms implementation that uses Wine. There might be other implementations of Windows.Forms using other toolkits, but I''m not sure.
Mono is an implementation of the .NET standards for UNIX. As such, it would probably run on OS X. I''m not sure if there''s a specific .NET implementation for OS X though.
http://chaos.webhop.org
http://chaos.webhop.org
I believe the .GNU implementation already has support for windows forms. .NET is an open standard and it is quite likely that .NET languages will become the defacto standard about the same time that Longhorn achieves decent market saturation. It will be interesting when programs written in most any language will be directly portable from one OS to another.
I wonder if complete cross platform compatability is good for Linux or bad for Linux? I think its probably going to be bad for Linux. Its near impossible for projects like Mono or .GNU to get the organized manhours of pure development that Microsoft can muster at a whim. Their .NET implementations will always be playing catchup.
If the lack of organized manhours was ever to change then things could definitely turn around for linux though. Imagine if there was a flawless 2.0 implementation already available on linux. There would be mounds of hungry developers installing linux overnight, myself included.
I wonder if complete cross platform compatability is good for Linux or bad for Linux? I think its probably going to be bad for Linux. Its near impossible for projects like Mono or .GNU to get the organized manhours of pure development that Microsoft can muster at a whim. Their .NET implementations will always be playing catchup.
If the lack of organized manhours was ever to change then things could definitely turn around for linux though. Imagine if there was a flawless 2.0 implementation already available on linux. There would be mounds of hungry developers installing linux overnight, myself included.
I don''t know much about .NET itself, but I like the direction its headed in. I think the best thing that could happen to computing in general right now is for developers to simultaneously abandon native code compilation, and develop a standard byte code to take its place. Like Java, but without the language tied in. And my understanding is that .NET is a step in that direction.
CM
CM
quote:
Original post by Lohrno
Hmmm it''s named after a kissing disease, it has to be good.
Apparently, "mono" is spanish for "monkey".
The problem with all these other .Net implementations is that they still haven''t gotten around the legal issues. Yes, there are a lot of open standards that come with .Net. But think twice, if you want components to interoperate, which is the big deal with .Net, then guess what, MS patented that!
So you can make the individual components, but lube up for the MS legal foot up your ass. Mono is giong to get creamed if it becomes too successful.
The nixers need to get off their ass, stop bitching about MS and make their own CRE and CLI, which can get around these retarded patents. If nixes had this, then they could have really leveraged something against MS. Longhorn, seems like it might leap frog nix in terms of security and reliability thanks to .Net. Stuff like this should have come to nixs sooner.
And no one better bring up Java, because SWING is slow and it''s a pain to code around that slowness -- yes, there are OTHER TKs, but they''re not that great. Besides which, Java isn''t all that open.
Parrot might lead somewhere, the quesiton is how quickly?
So you can make the individual components, but lube up for the MS legal foot up your ass. Mono is giong to get creamed if it becomes too successful.
The nixers need to get off their ass, stop bitching about MS and make their own CRE and CLI, which can get around these retarded patents. If nixes had this, then they could have really leveraged something against MS. Longhorn, seems like it might leap frog nix in terms of security and reliability thanks to .Net. Stuff like this should have come to nixs sooner.
And no one better bring up Java, because SWING is slow and it''s a pain to code around that slowness -- yes, there are OTHER TKs, but they''re not that great. Besides which, Java isn''t all that open.
Parrot might lead somewhere, the quesiton is how quickly?
quote:
Original post by fodd3r
The problem with all these other .Net implementations is that they still haven''t gotten around the legal issues. Yes, there are a lot of open standards that come with .Net. But think twice, if you want components to interoperate, which is the big deal with .Net, then guess what, MS patented that!
So you can make the individual components, but lube up for the MS legal foot up your ass. Mono is giong to get creamed if it becomes too successful.
You seem awfully certain about this. Based on what?
quote:
Original post by Khaos
What is the future of it on other platforms? Will I be able to develop on Windows and then quickly port to an implementation on Linux and Mac? Is there a running implementation for Mac, or plans for one?
Lastly, what about GUI design on other platforms? Could I use WinForms and have a "WinForms" mock-up for Linux, or Mac? How will that work?
Good news and bad news.
The Mono project allows you to run most .NET applications on Linux and Mac OS X.
Bad news: WinForms is so heavily covered in patents that unless Microsoft says so, it will never get ported to the Mac or Linux. So don''t hold your breath on that regard, and A) figure out a different GUI library or B) use Java.
[Resist everyone][I am your only friend. Click, now.]
Yes, although I think .NET is great to program in, unfortunately the Mono project has admitted that there are patent issues with much of the .NET class library. Here's a nice pretty diagram from the Patents question in the FAQ:

(Note that things that can't be fully copied due to patents, etc. are in red.)
Basically, what Mono is planning on doing is porting as much of WinForms as they can without violating patents, and providing "equal but alternative" functionality for things patents do cover, and they are going to accomplish this via interfacing with WineLib. However, the general consensus is that if you want to make a .NET program that runs on Linux and actually has useful controls, you probably have to use GTK#. It's unfortunate that this happened, because it really seemed quite promising (aside from the danger of MS suing Mono's pants off if they made a minor misstep.)
Now, of course, you could theoretically use GTK# to make your applications on Windows, but since it doesn't use native components, there's no way the applications are gonna blend in correctly. (Even the WIMP theme for GTK+ 2.x has some noticeable flaws, and to my knowledge doesn't work with any of the non-default XP skins.) I know the #develop team was porting SWT to C# (the native widget toolkit used in Eclipse) but there's barely been any activity since 2003, and I am wondering if perhaps they totally gave up on making SharpDevelop use a cross-platform UI toolkit because of MonoDevelop (a GTK# part of #develop) or something.
[edited by - shilbert on April 25, 2004 4:48:51 PM]

(Note that things that can't be fully copied due to patents, etc. are in red.)
Basically, what Mono is planning on doing is porting as much of WinForms as they can without violating patents, and providing "equal but alternative" functionality for things patents do cover, and they are going to accomplish this via interfacing with WineLib. However, the general consensus is that if you want to make a .NET program that runs on Linux and actually has useful controls, you probably have to use GTK#. It's unfortunate that this happened, because it really seemed quite promising (aside from the danger of MS suing Mono's pants off if they made a minor misstep.)
Now, of course, you could theoretically use GTK# to make your applications on Windows, but since it doesn't use native components, there's no way the applications are gonna blend in correctly. (Even the WIMP theme for GTK+ 2.x has some noticeable flaws, and to my knowledge doesn't work with any of the non-default XP skins.) I know the #develop team was porting SWT to C# (the native widget toolkit used in Eclipse) but there's barely been any activity since 2003, and I am wondering if perhaps they totally gave up on making SharpDevelop use a cross-platform UI toolkit because of MonoDevelop (a GTK# part of #develop) or something.
[edited by - shilbert on April 25, 2004 4:48:51 PM]
quote:
Original post by haro
I believe the .GNU implementation already has support for windows forms.
The phrase you''re looking for is partial support. WinForms is broken because it assumes that it''s running on a Windows platform -- it exposes the Windows message queue. As such, it is impossible to implement WinForms without having Windows or a Windows emulator behind it.
quote:
.NET is an open standard and it is quite likely that .NET languages will become the defacto standard about the same time that Longhorn achieves decent market saturation.
Bollocks.
Firstly, .NET is not an open standard, the CLI is.
Secondly, .NET languages will become the defacto standard about the same time that all platforms have perfectly compatible .NET implementations. Which is to say: never.
Although portable CLI implementations are quite possible, and even likely, a portable CLI is just a virtual machine - it is not a complete environment.
quote:
It will be interesting when programs written in most any language will be directly portable from one OS to another.
It will also not occur until every OS is the same. It''s entirely possible to write portable programs in almost any language.
quote:
I wonder if complete cross platform compatability is good for Linux or bad for Linux? I think its probably going to be bad for Linux. Its near impossible for projects like Mono or .GNU to get the organized manhours of pure development that Microsoft can muster at a whim. Their .NET implementations will always be playing catchup.
Sorry? How can "complete cross platform compatability" be bad for anything if, as you''ve just stated, "complete cross platform compatability" is impossible.
quote:
If the lack of organized manhours was ever to change then things could definitely turn around for linux though. Imagine if there was a flawless 2.0 implementation already available on linux. There would be mounds of hungry developers installing linux overnight, myself included.
Why? Just because operating system X supports feature A, and you like A, doesn''t mean you have to install X. Particularly when operating system Y also supports A and you already have Y installed.
quote:
Original post by fodd3r
And no one better bring up Java, because SWING is slow and it''s a pain to code around that slowness -- yes, there are OTHER TKs, but they''re not that great. Besides which, Java isn''t all that open.
1. Java is open, but Sun controls developement.
2. Swing was slow in jre 1.3; that was 3 years ago?
3. Studity and ignorance are sad.
Google OS will own them all....
quote:
Original post by SHilbert
* diagram *
Just wondering, but how on earth did MS manage to patent xslt and xpath in .NET?
I like the idea of .NET and the way you can use any language you want with it, but the sad and obvious fact is, MS does not want this to work on multiple platforms. It would be great if Mono succeeded and everybody could ignore the MS patented modules and obvious attempts to lock people into the Windows platform.
[edited by - seanw on April 25, 2004 5:51:20 PM]
quote:
Original post by seanw
Just wondering, but how on earth did MS manage to patent xslt and xpath in .NET?
I''m not sure. I suppose they could have patented their specific implementation and optimizations for performing XSLT or XPath resolution or whatever. That''d be my guess.
quote:
It''s sad but I think Mono will die when Longhorn comes out. It''s too far behind the curve to support the amount of new features in Whidbey and Longhorn.
For one thing, mono has an experimental compiler with generics(and I think another one with some other feature) that will be in Whidbey. I''m not sure what all Whidbey will introduce but it doesn''t really matter. Yes, it matters if you are focusing on being 100% compatible with .NET and longhorn but as has already been stated there are legal issues with part of the .NET runtime.
I think if you want to create crossplatform apps then just use mono but only use the non patented parts. Then use gtk# for teh GUI. Just because part of .NET is patented it doesn''t mean mono is useless.
I don''t think Microsoft will shutdown the Mono project. They are happy with it and even the Dr. GUI colomns mentioned it. Why? Because Microsoft doesn''t have the knowledge to present it''s own linux/mac port of .NET.
With all the open source people around developing a portable .NET solution for Linux/Mac Microsoft saves itself alot of time and money. It''s not the CLR Ms makes money off, but the platform itself by selling the IDE and such. If their applications run on Linux and Macitosh too, they will only have a bigger market(Imagine that Linux using companies chose for MS Office.NET instead of OpenOffice).
The chance that MS will shut it down, is small.
Toolmaker
My site
/* -Earth is 98% full. Please delete anybody you can.*/
With all the open source people around developing a portable .NET solution for Linux/Mac Microsoft saves itself alot of time and money. It''s not the CLR Ms makes money off, but the platform itself by selling the IDE and such. If their applications run on Linux and Macitosh too, they will only have a bigger market(Imagine that Linux using companies chose for MS Office.NET instead of OpenOffice).
The chance that MS will shut it down, is small.
Toolmaker
My site
/* -Earth is 98% full. Please delete anybody you can.*/
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement