Still partially rubbish though
Just this morning I tried to run MS's own keyboard re-mapper, only to find it wants .net 2.0 despite having 3.5 on the machine.
Makes me want to hug a penguin...
We take it for granted now, but it was ten years ago this week — July 7, 2000 — that Microsoft announced its brand-new application development initiative, the .NET Framework, at TechEd Amsterdam. The company then provided more detail at its Professional Developers Conference in Orlando, Florida, the following week. It was Paul …
You're mistaking a strength for a weakness there. Later versions of .Net do not replace earlier versions, they coexist. That way apps written for .Net 2.0 still work when versions 3.0, 3.5 and 4.0 are installed without the dll hell problems experienced with earlier Windows runtimes.
...could come up with this. No wonder .NET made me despair.
At least this attitude explains why it was impossible to move .NET apps from one Windows server to another. Trying to install 1.0/1.1 and 2.0 at the same time seemed to be the root of the problems - or something.
Final laugh was when I finally installed an expensively purchased Visual Studio cos writing clean code by only using Web Matrix wasn't good enough for anything much beyond 'Hello World'. After installing a brand new VS the .NET on that server failed altogether.
We tried to warn the company about MS products - but they (of course) knew better. Sadly they went bust on a pay day leaving 400 staff with no wages.
Still, at least MS got all their licenses paid for - so it wasn't a complete loss!
No, it doesn't raise a bell - no Netflix available in my country that I am aware of, so never even seen the service.
I had heard that Netflix used silverlight, but then the Netflix CEO sits on the board of Microsoft... so while Netflix might have made a technical decision to use Sliverlight, its more likely to have been a political CEO level decision:
http://news.cnet.com/Microsoft-adds-Netflix-CEO-to-board-of-directors/2110-1014_3-6170596.html
In otherwords if a board-member of Microsoft decides his company should use MS technology, then its not exactly a ringing endorsement of the tech.. hence something often ignored by astro-turfers promoting silverlight.
So, maybe if there was Netflix in my county, and I wanted to use it, I might install Silverlight.. but for now its not installed in any of my browsers or OS's that I am aware of.
Roll on HTML 5 (I aren't a huge fan of Flash either, but at least I have it installed on everything).
that would be the one that MS joined in the standardisation process to stop becoming a standard - in case someone used it and discovered that ECMAScript 4.0 had everything you needed to write really nice features you could use to easily and quickly write a really good GUI in the browser and so ditch the desktop forever?
Powershell however has been a breath of fresh air.
I always found the mutual exclusiveness of .Net a hindrance especially if a program had been badly written and demanded a particular version of .NET yet there was no reason not to allow the newer version to run. I have also had the flipside where the program tries to use the latest .NET and fails. I guess the whole system assumes that everyone knows what they are doing and update regularly, which pareto's law says they won't.
Hailstorm.
Not an integral part of .NET, as such, but very much a part of the strategy. Fell by the wayside, because, until Facebook, no one could work out a way of forcing users to willingly spend their entire day creating unnecessary online data about themselves, simply so that they could unwittingly end up sharing it with absolutely everyone, everywhere.
Do I need to have three different versions installed on my machine? A previous poster said it is a strength - like perhaps Microsoft don't understand the concept of backwards compatibility. Why is it, also, the Windows Update .Net components always fail to be updated? I ought to just unstall the whole damn lot...
Hahaha... I've seen 25% perfomance hits on machines that have all 4 versions of .net installed. Dropped the last 3, no one has complained. What really cheese me off is that MS pushes out the updates to this drek even if you don't have anyversions installed, and why on earth would they auto-update and install their powershell on an old XP box? Yup, critical update, even though it wasn't needed or wanted.
Biggest miss is the umpteen megabytes that the runtimes take up.
OK, we don't expect coding efficiency from the likes of microsoft. Never use a single bit where a kilobyte could be used.
But what is it that really, really needs more than half a gigabyte? And why, after 250+Mb of 3.x it really shouldn't be necessary to insist on keeping 300+ Mb of the 2.0 version as well?
3.0 and 3.5 are extensions of .Net 2.0. The 250Mb installer actually includes .Net 2.0 with it.
The number of comments re backward compatibility are also incorrect. By default, the apps will use the latest version of .Net installed on a system. Yes, there are some breaking changes between versions, but if you hit these then the developer can specifiy which version the app requires.
If you don't know what you're talking about, best to keep shtum really.
Each new version of Silverlight runs on fewer and fewer Mac models and no version of Silverlight supports all of the stuff Silverlight on Windows supports, especially any WM file v10 or above (Macs are limited to v9 and earlier). So, absolutely no multimedia with any kind of DRM on anything but Windows. I'm pretty sure Mono is in the same boat.
Strange logic on M$'s part. Create a plug-in that brings the "windows experience" to the internet, then limit to Windows machines. (Don't they already have the "windows experience?")
Just to take issue with your "Finally avoid .NET clones like mono" - MS can't actually hit Mono/users of Mono with patent violation for .NET stuff because, erm, they actually made the spec (not the implementation code) available to anyone that feels like writing an implementation of a managed language - one of the few decent things they've actually done!
And yeah, performance in .Net stuff is terrible for some things, but on the bright side it is a hell of a lot easier to do things like file manipulation or working with system libraries with C# than it every was with C++. Oh, and stuff written against mono (rather than MS.Net) will run more-or-less out of the box on pretty much any linux or windows box with it installed (apart from issues with needed GTK# installed on windows 'cos you can't really use winforms in linux for obvious reasons ;))
The multi-version shite that MS use is a pain though - but again the Mono implementation gets round that... iirc it has pretty much all the features of MS.Net up to 3.5 (definitely at least to V2.0 anyway), but is backward compatible in the core library so you only every need one version, which microsoft should really get around to doing. And yeah - having .Net 3.5 and 4 each incur a 30+ second increase in boot time for some bizarre reason, probably something to do with the friggin registry that MS still haven't fixed!
Anyway, long live .Net and similar standards (like Java) that let you write programs for one OS and run it on any without the pain of recompiling against a completely different heap of libraries, types & function calls.
@Mike Norrish 1:"And the Mono version is coming along quite nicely, thank you very much. WITH full support and blessings from Microsoft, no less."
No it's not, it's crap. I installed it a while ago, besides being more bloated than Flash and Java put together, it usually didn't work. Quite a few pages would claim I "had" to install Silverlight and wouldn't even TRY to run. Others on a demo page, a few random demos would work, but the rest wouldn't run at all -- demos that were to do such complicated things as draw a square or put a couple rows of text into the plugin area.
Unless it's COMPLETELY changed in the last few months, it's essentially a ploy for Microsoftians to say "Oh but there IS Linux support" when in reality there is not.
Mono itself, on the other hand, well I haven't had to run much .NET stuff but it worked OK when I did, so long as they wrote portable code and not Windows-specific crap.
Recently updated some Windows software and for an experiment recoded in C# for .Net over a weekend (almost 10K lines but only a small UI). About the same time again debugging til done.
Pleasing results. Program now runs on Linux - only tested 32 and 64 bit x86 but presumably PPC etc. as well. All with no recompilation silliness and config hell. OSX likewise. And runs on Windows as well.
MonoDevelop seems usable now. Visual Studio too.
Oh, and the JIT compilers for Mono and .Net benchmarked my application faster in C#/.Net/Mono than its C++ predecessor with static compilation.
With much of the hardcore *nix dev community struggling on with masses of unmanageable C++ as if it is still 1990, IMO its a fine thing Novell are putting the effort into Mono.
So what it came from Microsoft. C came from AT&T. Less FUD and mythology please from non developers.
The article says the .NET Framework class libraries are not included in the ECMA standards. While that's true, it is somewhat misleading because important parts of the Base Class Library are there. See http://en.wikipedia.org/wiki/Base_Class_Library for details.
Anyone who thinks that verbosity (given example VB) is a bad thing and would prefer brevity (like C#) really needs to go back to school and learn about readability in programming languages (or possibly, just go on an APL course).
The excuses given for using { and } instead of words like begin and end are no longer valid. Furthermore, in these days of semi-decent typists, I would wager that most people would actually be able to touch type begin and end a damn sight quicker than they can { or } or < or >.
Crap syntax, unreadable... miss.
You're serious aren't you ??
Scattering begins and ends all over the place obscures the code. It makes things worse. {} && || symbols are much cleaner. If you can't handle that then god knows what you'd make of the bitwise operators or the ternary operator.
Overly compact code can be a problem, and coding clearly doesn't seem to come naturally to a lot of my colleagues, but I think you're aiming at the wrong target here...
Yes I am.
Go away and do the courses about readability and how the human brain works and then come back and comment on how words actually make things easier to read than obscure characters like { and }.
You will notice that I had nothing to say about && and ||. Come back after you've done the courses.
Firstly the verbosity of VB has sod all to with using words like begin and end, neither of which has been a keyword. Secondly, anyone who HAS actually studied anything about the readability of computer languages will tell you that is easier for the eye to pick up {} pairs from blocks consisting of mostly other characters, due to the more obvious differentiation. Anyone who has read a little further will tell you that they can be made entirely redundant by relying on whitespace as in python.
Furthermore, a) there is no such thing as a 'semi decent' touch typist. There are touch typists and there are non touch typists, that is all, b) we actually live in a world of awful hunt and peck from the pov of /actual/ touch typists, and c) even if the preceding were not true, your assertion that there is some method of typing such that typing five characters is somehow faster than typing one is, to put it politely, utter arse wash.
Interesting that 'classic' ASP is still going strong.
One of the frustrations with ASP.NET is the constant restarting of the application whenever a new DLL is loaded - this plays havoc with user's session state if you're daft enough to use the out-of-the-box state management. All this makes it difficult to scale applications without a lot of release management effort.
All you need to do to use DX with .NET is wrap the library. If you can't be bothered to do that then use SlimDX because it's already been done for you. I agree it sucks that MS no longer support DX wrappers for .NET, but then their strategy has changed since WPF came online. If you want high performance graphics in LOB applications then that's where you head. If you want to write games, you're probably using C++. The people in the middle, wanting to use .NET and DX are probably hobbyists and the XNA community is a fine enough place for them to be.
Now some other points: .NET is probably one of the major projects MS has pulled off that has actually worked. Sure it might not be a win in all situations, but then is there a language/environment that is? Windows Forms is/was great for LOB applications (the vast majority of applications out there).
C# is ok to use, VB.NET is ok to use. I wouldn't choose between them in terms of readability. It's not the code, it's how you format it. If you don't use whitespace to separate functional units inside methods, then it doesn't mater what language you're using, the developer is going to have to scan. Some people (where I work) like to have ZERO whitespace. For me whitespace encourages you to reduce cyclomatic complexity as well, because you want to keep the braces on a single screen. It's a big win for software quality.
I think the reason so many people prefer C# now is because they don't like the "Basic" in "Visual Basic". They can demand higher pay for seemingly being more skilled, through knowing "if() {}" instead of "if then". To me there's practically no difference. Indeed I prefer the verbosity of VB.NET over C# in certain circumstances.
It's the .NET size I object to - verging on the ridiculous on a SSD netbook
A fresh Windows 7 64-bit install of .NET gives a folder size of 796MB that contains 2,252 files 496 folders with Framework 32-bit and 64-bit folders.
On a Windows XP 32-bit netbook the folder size is 657MB 1,782 files 414 folders.
For a consumer user this seems ridiculous for a program that I appear not to have used, and compared to regularly updated Java plus Flash is plain silly.
Microsoft is not very considerate to the netbook (and other portable device users) where the update suite for version 3.5 occupied 197MB, but version 2.0 occupying 184MB was not removed, even though redundant (Apparently because of Microsoft rollback rules, uninstalling version 3.5 requires the facility to rollback to the previously installed version 2.0, if it was there before the 3.5 update.)
Apparently installing version 4.0 that doesn't manage to run a program needing version 1.0 requires uninstalling version 4, installing version 1.0 and then reinstalling version4.0 - so versions are not as independent as other comments here have implied.
Using 796MB is not a problem on a desktop PC - but if any version is needed on a netbook it would be better from a user's POV if either:
1. the latest version was able run programs that were written for earlier versions, or;
2. every version was stand alone, so that only the required versions need be installed, with their security updates.
My experience is that after needing version 2.0, this led to security updates that cannot be ignored, and then updates to prepare for the next version, that eventually resulted in a fully updated 3.5 together with the original updated 2.0. Barking!
On the netbook I had to uninstall the lot, reinistall 2.0 and limit it's use with a firewall program, which is not what a consumer should need to do.
For a very long time, it seemed that MS was pushing everybody to use nothing but .NET, but not exactly jumping in and using it themselves.
I know that dropping Office/Windows and rewritng in C#/.NET was not going to happen quickly, but 10 years later on, it still seems like bits & pieces of MS applications (like Shrepoint/SQLServer) use .Net but the core products still very much C++. Remember back in the day, MS were talking up Longhorn (Vista?) being an operating system built around .NET.
http://www.theregister.co.uk/2005/05/26/dotnet_longhorn/
Looking at apps I use every day, or 'first things to install on a clean machine', things like Firefox, Skype, Office/Open Office, Vuse etc, not appear to be .NET. I think Paint.Net is the most obvious one I have at home.
Been developing apps for 30 yeas, and I love .NET, and not just .NET but Visual Basic as well. Hate the case-sensitive and braces hell of C# and it's ilk (although I use them all for various clients). What really rocks for me with .NET is the add-on libraries like DevExpress which is like having the next version of .NET already! If I remember, the numbers are like C# takes twice as long to code in as VB, and C++ is something like 4 or 16 times as long. C++ is faster, of course, but slow with overall development, whereas with .NET you get RAD development on everything, but then go in deeper for those specific parts that need to be faster.