Free Ebook on C# Programming
christophw writes "The programmers of SharpDevelop (better known to the /. crowd will be its sibling MonoDevelop) together with the publisher Apress made the book Dissecting a C# Application - Inside SharpDevelop available as a freely downloadable PDF document (no, no registration required). So if you want to judge for yourself if one can build an application of scale with .NET (or Mono for that matter), you now have a 500+ pages book for the holiday reading season (or the virtual bookshelf)."
Free tech books
Large collection of free online books at UPenn (not just tech)
Kind of like people who fool themselves into thinking they know what they are talking about?
Wow, you think RegExp capability is a key language feature?
I have found SharpDevelop to be very nice. The environment is very, very similar to VS.NET. It has a very professional look and feel, and I have found it a nice platform for building C# apps.
The only part missing in SharpDevelop is the ability to add "Web References", or references to XML SOAP resources. VS.NET automajically builds local interface classes and adds them to your project when you reference a XML SOAP resource, so that you have local classes and functions to call on. In turn, these call on the SOAP functions over the network. You do not need to know anything about the inner workings of the SOAP protocol to call upon remote functions.
Other than that missing piece, SharpDevelop is very fully featured and has yet to crash. Make sure to read the FAQ on their site if it does crash the first time you try to run it after install - their is a bug in the installer.
Great ideas often receive violent opposition from mediocre minds. - Albert Einstein
I don't, but a lot of the C# advocacy articles I've seen have pimped that feature. I've also seen several Slashdot comments that drooled about "how cool" C#'s regular expressions feature is.
Have you used .Net? it is actually quite decent, and if you really need libraries it is possible to make calls to windows dlls. Perhaps you should give it a try, its not just a Java clone. When it matures a bit it will be an excellent way to achieve cross platform applications.
Without working in .NET for more than a couple months, with an open attitude, you can't really have a credible opinion. Just because it's Microsoft, you'll get the people who are automatically anti, and then you also will have people who are only Microsoft that will think it's gods greatest gift. Fox example, C# has some nice features such as using delegates for events vs. having to implement the observer pattern in java. But then you'll also have somebody who doesn't know about the SOAP toolkits in Java that can build WSDL proxies just like the .NET utility does. More than anything, it's all opinion. Use the right tool for the job. If I'm going to write a web service, I'll take an ASP.NET web service any day. If I need to parse a huge file, give me Perl. Can't all languages just get along!!!
Exactly how is .Net supposed to be a way to achieve cross platform applications? Microsoft have no intention of porting .Net to anything other than Windows, and have not provided assistance in the development of .Net clones (such as Mono). Full .Net is likely to remain Windows-only long-term.
For many of us, it's not a case of being pro- or anti-Microsoft, it's a matter of simple business sense: Having only a single supplier for a technology has never been considered a sensible strategy in any area of business - with the strange exception of IT. Perhaps there is a mistaken sense that much software is always short-term and temporary, so it doesn't matter if the neat and friendly development system you use comes from only one company, and runs on only one platform.
.Net seems very short-sighted to me.
Well, I was using Turbo Pascal on Windows a decade ago. Now I'm developing for companies which have rolled out Linux desktops!
Using
I developed a .Net application without cross platform in mind at all, and immediately it ran under DotGNU's Portable.NET. and microsoft has expressed an interest in alternative implementations of .NET. according to the Mono faq at http://www.mono-project.com/about/faq.html#msft
Question 38: Is Microsoft helping Novell with this project?
There is no high level communication between Novell and Microsoft at this point, but engineers who work on
Microsoft is interested in other implementations of
Given MSOFTS past history, I wouldn't bet my marbles on much help from them. A company I know that has a MSOFT product, and uses VMWare where they need to deploy on a non-MSOFT platform.
Except for the fact that .Net code already runs on other platforms see http://www.go-mono.com/ and http://www.dotgnu.org/.
There is not one supplier. http://www.mono-project.com/ and http://www.dotgnu.org/.
.NET,Mono, or dotGNU then fine. But don't think you can influence anybody else to not use them.
But if you don't want to use
Microsoft dont need to port it.
Mono
Portable.NET
DotGnu
So some of the biggest groups in OSS development seem to think that it might be a good idea to have an implementation of the CLI for other operating systems (Linux, OSX, Windows, Solaris, NetBSD, FreeBSD) and architectures (x86, PowerPC, ARM, Sparc, PARISC, s390, Alpha, and IA-64 to name a few).
What you have to keep in mind is that the CLI (the virtual machine in a sense) is an ISO standard (Java still isnt). The API's such as the System.* namespaces are still in a murky area and they may still be controlled vigorously through MS legal. But that doesnt stop any developer from using API's developed independantly - ie gtk#/Wx.NET for cross platform gui across the above mentioned platforms (still in development.. but it will get there soon).
Ciao
What you have to keep in mind is that the CLI (the virtual machine in a sense) is an ISO standard (Java still isnt)
.Net to legacy (look at how it has treated Visual Basic 6 developers, for example).
I would rather have a non-ISO standard from a company (Sun) that has had a solid reputation for decades for upholding standards, than an ISO standard from Microsoft, which has a solid reputation for dumping standards on a whim.
The ISO standard for the CLI will be of no use at all if Microsoft decides in a few years that an entirely new technology is better and relegates
Except for the fact that .Net code already runs on other platforms
.Net code runs on other platforms.
No. only some
The difference with Java is that if you have a J2EE or J2SE implementation on a platform you get all of it. Every last API and libary. Guaranteed and tested. There aren't half-implemented bits or enterprise features that aren't supplied.
My point is made by another quote from that site:
.Net is always likely to have significant sections with are 'not currently implemented'
Question 50: Can mono run the WebMatrix?
No. That requires System.Windows.Forms support which is not currently implemented.
A non-Microsoft
There is a very big difference between .Net and the OSS implementations - one is supported by Microsoft and the other's aren't. One meets a full (and possibly changing) spec, including libraries, the others don't.
.NET,Mono, or dotGNU then fine. But don't think you can influence anybody else to not use them.
.Net, I already successfully have. I manage development that HAS to be successfully cross-platform. Not partially cross-platform, but where a rich and full-featured deployed application can be switched between different operating systems at short notice, with no porting required for GUI aspects or enterprise features. Using .Net was out of the question. Just look at the notes on the Mono website:
.Net is NOT cross-platform, only selected parts. When you are developing critical business applications, you really can't trust a 'cross-platform' technology that is incomplete, no matter how much you may like that technology.
But if you don't want to use
Oh, I not only think I can influence people not to use
Unsupported technologies
Some technologies are very hard to implement or are being phased out by components in the Longhorn time frame. In some cases, we feel that they are not crucial to the future of the open source desktop.
With all respect to the Mono developers (who have done a great job), I don't want to rely on a system which has missing ('hard to implement') features. This is proof that
Plus the fact that just the CLR was submitted for certification, not the all-importent windows.forms and web.forms libraries every windows developer uses...
Plus the fact that if you do not live in the windows world, there already is a well-established cross-platform language, with the associated runtime, called Java. Well supported by major vendors like IBM, who basically told Microsoft to shove .NET in a warm, dark hole.
Plus the fact that if you do not live in the windows world, there already is a well-established cross-platform language, with the associated runtime, called Java. Well supported by major vendors like IBM, who basically told Microsoft to shove .NET in a warm, dark hole.
.Net in terms of the client side, but the full functionality is there: There are plenty of tools that allow ActiveX/COM integration with both SWT and Swing Java clients for example, and the new Native Desktop APIs are superb. Java works fine in the Windows world!
The thing I find it hard to get across to many Windows developers is that Java does Windows too! It may not do things as elegantly as
Oh, I understand how bitter you and the other rabid microsoft haters are that Mono and dotGNU was even started. That Miguel, Rhys, and company have the gall to copy some microsoft technology onto Unix just infuriates you. I realize that the java developers are extremely angry that .NET/C# has many technological advantages over Java. And the most infuriating thing for the linux fangirls is that many Gnome developers actually like Mono/Gtk#.
It looks like you've drunk the Sun koolaid regarding cross-platform. dotGNU already runs on more platforms than any Sun implementation of Java.
And finally, when did Sun support the JDK?
It's obvious that by the number of posts you've made on this thread (for a technology you have no interest in) that you are absolutely infuriated that Java is dead on the desktop and that .NET is being embraced by many in the Gnome community. Hilarious. I can't wait to see you furiously pounding on the keyboard on the next .NET/Mono/dotGNU thread.
Name five platforms that J2EE has been ported to. Name five platforms that Mono runs on.
If you are interested in C# you should take a look at Groovy as well. It's a scripting language extension of Java, with the best of Java, Python and Ruby.
4 /0 3/16/2334201&tid=108&tid=156&tid=8
http://groovy.codehaus.org/
http://developers.slashdot.org/article.pl?sid=0
Oh, I understand how bitter you and the other rabid microsoft haters are that Mono and dotGNU was even started.
.Net: significant bits are missing, and are always likely to be.
.Net. So what? This is of no relevance to the discussion at all. Java (all implementations) runs with complete API and libraries on far, far more platforms than .Net (complete API and libraries).
.Net
Not bitter, just puzzled. Why copy Microsoft? All that expertise could have gone into an entirely new bytecode/runtime/language combination - something that could never be threatened by patents or trying to catch a moving target.
I find it bizarre that so many developers who don't like Java (because of licencing) are prepared to work on duplicating Microsoft technologies. In the past, anyone who has come anywhere developing a successful clone of a Microsoft product as either been sued or bought out. That is not an emotional response, or Microsoft-hating, its all on the record.
And the most infuriating thing for the linux fangirls is that many Gnome developers actually like Mono/Gtk#.
Why should it be infuriating? Mono/Gtk# is a great technology, and has come far in a short time. Good luck to it! It would be great if Mono became a high-quality standard for cross-platform enterprise applications. Guess what! It runs Java too!
My point is that it is NOT
It looks like you've drunk the Sun koolaid regarding cross-platform. dotGNU already runs on more platforms than any Sun implementation of Java.
How is this relevant to anything? The Sun implementation of Java runs on far more platforms than the Microsoft implementation of
Mono and dotGNU are NOT complete implementations of
And finally, when did Sun support the JDK?
Like, since 1994 when Java was released.
Well, Micrsoft is supposedly working on getting C# to run on mainframes. I agree that Microsoft failed in making .NET truly cross platform, but just as much as Java has failed with "write once run anywhere", I've heard many a stories from our architects here at work. .NET is young, I think we'll see after Longhorn comes out if the cross compatibility issue will still be a goal because System.Windows.Forms will no longer just be wrapper classes for the System32 dll's. I work at a Java shop and I've been becoming more and more interested in the OSS community, but I do feel there is a place for proprietary technology. But the bad news for all the anti MS people is, as big as MS is, and as much resources as they are using to progress .NET, .NET will be around for quite a while. Eventually way downt he road .NET will be dropped and they will release somthing new, but that's fine, it keeps me fresh with learning new technologies and not becoming dinosaured out and being one of those people who can't find a job in a saturated market in poor economic times. I know I come accross like I'm 100% pro MS, but I'm not, I completely agree with another post on here where the author stated Java is fine on Windows (executable jars freakin rock). Can anybody admit though that virtually everything in the Java 1.5 release was just catching up to where C# is now? One more thing, I maybe I should also make a comment about the original post topic. An author was complaining about how much hardware you need to run Sharp Develope, well that's just where we are now. SharpDevelope is writtin with managed code, just the same as Eclipse requres a beefy machine. I always have to remind my friends that computer hardware is cheeper and beefier than ever, so expect the software to be the same.
but just as much as Java has failed with "write once run anywhere
.NET will be dropped and they will release somthing new, but that's fine,
I think that almost all current Java developers would disagree with you here! Almost all the tools I use for Java development and all the libraries I use are completely platform neutral. In the early days there were serious platform-dependencies (there were thread issues on Linux for example), but those days are long past. I routinely transfer major projects between Windows, Solaris and Linux with no effort at all.
Eventually way downt he road
Those of us (like me) who spend a significant part of their time struggling to port legacy code to something modern and supportable learn to worry about such dropping of technologies. Java, for all its many faults, has been designed to be around for decades.
Can anybody admit though that virtually everything in the Java 1.5 release was just catching up to where C# is now?
I won't agree! There are huge new features in Java 1.5 with have nothing to do with C# - additions to the threading libraries, GUI enhancements etc. Generics have been under development for a very long time in Java (before C#) and are done in a different way. Annotations are, I agree, a catch-up feature (and very welcome).
If its not assembler its just scripting.
I thought Windows Forms was going to be essentially deprecated anyways, when Longhorn is released, in favor of Avalon/XAML?
Attention zealots and haters: 00100 00100
Let me ad VB help files, J++, VBScript for starters :]
Ok, I will admit that my slam was too general of a statement and not fair, I will take that one back. And I can certainly respect your point about porting legacy systems to new technologies being a pain, but hey, it gives you a job (hehe). With 1.5 you can't forget about enumerated lists and change of the for each looping. Java is still a young language, and I guess what chaps me the most about everybodies anti MS sediments is the fact that MS DOES provide good technologies, but nobody ever gives them the credit.
Not bitter, just puzzled. Why copy Microsoft? All that expertise could have gone into an entirely new bytecode/runtime/language combination - something that could never be threatened by patents or trying to catch a moving target.
.NET or Java. Open source is always playing catch-up. Parrot is still in that vaporware stage.
.Net: significant bits are missing, and are always likely to be.
.Net. So what? This is of no relevance to the discussion at all. Java (all implementations) runs with complete API and libraries on far, far more platforms than .Net (complete API and libraries).
.Net
.NET because it doesn't matter who implements the platform. Once again, except for the Microsoft.* namespace, Mono will have a complete implementation.
I find it bizarre that so many developers who don't like Java (because of licencing) are prepared to work on duplicating Microsoft technologies. In the past, anyone who has come anywhere developing a successful clone of a Microsoft product as either been sued or bought out. That is not an emotional response, or Microsoft-hating, its all on the record.
That's the crux of the matter. Open source hasn't come up with something like
Why should it be infuriating? Mono/Gtk# is a great technology, and has come far in a short time. Good luck to it! It would be great if Mono became a high-quality standard for cross-platform enterprise applications. Guess what! It runs Java too!
Agreed.
My point is that it is NOT
The only missing bits are going to be the Microsoft.* namespace. This is insignificant.
How is this relevant to anything? The Sun implementation of Java runs on far more platforms than the Microsoft implementation of
Mono and dotGNU are NOT complete implementations of
It's irrelevant that Sun's Java implementation runs on more platforms than
Like, since 1994 when Java was released.
Oh really? What kind of support? I'm somehow entitled to talk to a support engineer from Sun because I download the SDK? Or are you talking abut a support contract?
The only missing bits are going to be the Microsoft.* namespace. This is insignificant.
If this is going to be the case soon, I'm certainly going to be more interested in Mono, although I'd still be very nervous about what MS would do if Mono got really successful.
Oh really? What kind of support? I'm somehow entitled to talk to a support engineer from Sun because I download the SDK? Or are you talking abut a support contract?
Support contract. You can buy support for Java from Sun.
And I can certainly respect your point about porting legacy systems to new technologies being a pain, but hey, it gives you a job (hehe).
heh - and a lot of others too!
I guess what chaps me the most about everybodies anti MS sediments is the fact that MS DOES provide good technologies, but nobody ever gives them the credit.
I agree that when they do things, they do things well. My grouch with them is based on nearly 30 years (!) of using their products (I used their cassette-tape-based Macro Assembler for Z80 in the 70s). They always seem to play catch-up with other technologies then act as if they invented them! From Windowing to Object Orientation. I remember a recent note on their website regarding the addition of inheritance to Visual Basic in VB.Net as 'Innovative'! Excuse me! I was using inheritance in Smalltalk 20 years ago! They could easily have added full object-orientation to Visual Basic a decade before and made things easier for developers, but chose not to, for marketing reasons. Its their combination of arrogance and nerve that gets to me.
...I'm at least passingly interested in C# and if Mono can help my clients kick their MS habits, then it's all right in my book. As for ASP.NET being a right tool for the job- that's quite debateable. In all honesty, a Java Servlets and JSP engine is in the same class- in fact, it seems more robust (At least on the Linux side of things...) than IIS and ASP.NET is- or IIS/Apache and Mono's rendition of the same.
Having delegates seems to be nice, but I can't say that it produces better code- just easier to follow code. Until I see that it's better all the way around, I'm going to be sititng on the fence on that one...
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
http://msdn.microsoft.com/msdnmag/issues/02/07/Sha redSourceCLI/
Mono and dotGNU are NOT complete implementations of .Net
Linux is not a complete implementation of Unix