Posted
by
timothy
on Monday November 16, 2009 @05:42PM
from the what's-your-angle-college-boy dept.

An anonymous reader writes "Back in July, Microsoft announced it was making .NET available under its Community Promise, which in theory allowed free software developers to use the technology without fear of patent lawsuits. Not surprisingly, many free software geeks were unconvinced by the promise (after all, what's a promise compared to an actual open licence?), but now Microsoft has taken things to the next level by releasing the .NET Micro Framework under the Apache 2.0 licence. Yes, you read that correctly: a sizeable chunk of .NET is about to go open source."

I'm not a.NET developer... but I seem to remember having to run.NET applications with the.NET framework on my local machine?

I'm not sure how much Microsoft gains by keeping.NET closed-source. Perhaps that's a good question, too: why not open source it. I don't think you have to pay anything to do.NET development, do you? So may as well get any free improvements from the open source community.;)

I have nothing against mono, I just can't afford to work in what amounts to a 4 year old version of the framework.

Bogus. Mono is very current with.NET and has even beaten MS to the punch on some features. The major missing features compared to.NET are the MS specific libraries and proper current Silverlight support. So unless you're developing Silverlight apps or Windows specific software (which would obviate the choice to use Mono anyway) I doubt you have even tried Mono.

If those are the only things you think Mono is missing, you don't know much about the differences between Mono and the MS compilers and frame works.

First major problem in Mono: Non defragmenting garbage collector.

You can't consider Mono a replacement when it leaves out a major reason to use the.NET framework. It will work OK for small, short lived ( as in short runtime ) apps, but when you start talking about services that run for long periods of time or ASP.NET applications, Mono sucks. Yes, it will 'wo

Where I work, our ERP software is primarily coded in.NET, and needs 3.5.

It is the only reason to stick with Windows on each and every workstation there.Every so often I check up on the status of Wine and.NET, only to see 2.x is only partially supported with no plans on supporting 3.

If this lets me run our ERP client under Linux, be it Wine or Mono or whatever wrapper is needed, that will be a good number of workstation licenses that will fall out of the upgrade cycle.

It will also let us deploy more ERP dedicated terminals on slightly older hardware that XP doesn't treat too well, and 2k is too painful to run on (Plus we only have so many licenses for 2k that aren't OEM)

This could very well lead to a measured loss of sales. I am sure I am not the only one in that type of situation, even if it is not very common.

Sybase? I think you mean MSSQL. Also, the Eclipse IDE actually has some capability for.NET development now [ibm.com]. This can easily be used with open version control solutions. It may not be good for developers who are doing large projects, but for anyone developing plug-ins for office apps or something similar it's not too bad.

Lots of people have corrected you, but I'm going to correct you in a different manner: not only is SourceSafe not required, but MS has basically been trying to phase it out in favor of Team Foundation Server (part of VS Enterprise I think) for a while now.

MS knows SourceSafe is crap; it's one of the few products that no one dogfoods internally.

Well, no matter what else, they gain marketshare. Right now, they have the best -- or at least, rumored to be the best -- development tools for it (Visual Studio.NET), so it's in their interest to promote the platform as a whole, as that means more people using their tools.

It's the same reason it's in Google's best interest to improve the Internet as a whole, even if that means releasing a bunch of open source stuff which doesn't immediately, directly benefit them. Obvious example: Chrome was the catalyst

Yes, and no - like Java,.NET is much bigger than just web apps, you can write pretty-much anything you want in it (with the usual caveat that you're probably not going to be writing anything too low-level, such as device drivers). There are plenty of client-side apps available written in.NET.

Sorry,.NET Compact Framework is for devices running CE..NET micro is different, its a version of.NET that runs directly on the the hardware (no CE at all), a lot like running embedded C on a microcontroller. Says it right in TFA.

Nope, you're wrong. You're thinking of the.Net Compact Framework [wikipedia.org]. Basically there are three.NET implementations available from MS (ignoring Rotor for the time being). The Windows one (known as "the.Net Framework") is the largest, with lots of libraries and capabilities. The Compact Framework targets Win CE level devices (fewer resources, lower capabilities), and takes about 12 Mbytes. The.NET Micro Framework [wikipedia.org] targets even smaller devices; it has a subset of the.NET classes, and can fit in 300 kBytes or less. The.NET Micro Framework doesn't need an OS to run (but it can run on an OS). That's the thing that was running in the (now defunct) SPOT watches and MSN Direct traffic dongles. Those were tiny devices which couldn't have run Win CE.

OR maybe they just think that this will be the best thing for the framework. Maybe they feel that if they get more people using it, it will only strengthen their hold on the market, while making the open source crowd happy.

.NET is "a Windows thing" in the same sense that Internet Explorer is "a Windows thing": it's the name of Microsoft's implementation. IE is not the only web browser; there's also Firefox. Likewise,.NET is not the only CLR; there's also Mono.

Haven't people been yelling about for years how you can make money with open source? Maybe someone at MS believed them. Despite the general feeling that MS is "out to get you", a company is made up of people, and is not a big bad menace who does evil for evils sake. MS as a corporate entity has exactly one goal (the same as any other company) - make money for its investors. If they can make more money with open source then why is it a surprise they would pursue that avenue?

and it is also a company, a hierarchal organization were those lower down have to do what those higher up tell them to do. Those higher up have a pattern of behavior that justifies many of the fears on Slashdot. Groklaw is full of evidence, much of which was gained through court systems from around the world.
So to quote Wikipedia [wikipedia.org]

The base technologies submitted to the ECMA, and therefore also the Unix/GNOME-specific parts, may be non-problematic. The concerns primarily relate to technologies developed by Microsoft on top of the.NET Framework, such as ASP.NET, ADO.NET and Windows Forms (see Non standardized namespaces)

Not only that, maybe MS believes that they can use this route to make better software too. If the OSS community can respond and show MS how much there is to benefit from opening one of their projects, maybe they'll be more responsive with other projects too.

The OSS community should see this as an opportunity to give something back to MS for good reason. They would be less likely to stab the OSS community in the back with patent suits and the like if we can engender a true, two-way relationship. Maybe with some dialogue, we can start moving toward working in harmony instead of against each other.

They don't need to open source the code for that. Mono is already behind and always will be. The.NET Micro Framework is a stripped-down version of.NET for use on embedded devices and such. It only has a small subset of the whole.NET library, and the VM itself is much simpler. Opening up the code gives away none of the interesting stuff, and probably nets them greater market share. There's absolutely no downside for them. There's also really no downside for the free software community, but they don't gain

Just what is Microsoft's angle? Surely they are gaining some advantage here.

That's easy: Free code from their newly-minted community.

One of the advantages that a company going FOSS has is that the company gets a potential for hordes of non-employees to help them code their product. Or, at least that's how the concept goes. Reality usually delivers a bit less, often a lot less. YMMV, but I suspect that Microsoft is banking on getting a whole bucketload of free dev help out of this (assuming they take in patches and etc).

This is their smallest subset of.NET. They are already pretty much giving the code away to developers for Windows Mobile, now they are having their arses handed to them by Android and it's only looking worse. They keep going at this rate and they are going to be irrelevant. That's not what they want. So therefore they open source.NET in the hope that they can get some more traction in the market.

best messenger ever. Don't even dare to argue with me on that one because you WILL lose this one

I'm game. What makes it so great?

I can give you a list of things it doesn't have, and likely never will, that other messengers do. Towards the top of the list is interoperability. Google Talk uses Jabber to begin with, which is the defacto open standard for IM, so it wins as a network. Pidgin, Kopete, Adium, Trillian, and Meebo all allow connections to most IM networks, including Windows Live, Yahoo, and AIM, and I know for a fact that Pidgin, Kopete, and Adium support Jabber.

"I'm game. What makes it so great?"It pioneered and still pioneers messenger features and therefore with it a lot of online culture.

"Google Talk uses Jabber to begin with, which is the defacto open standard for IM, so it wins as a network."Oh come on! Number please!

"Pidgin, Kopete, Adium, Trillian, and Meebo all allow connections to most IM networks, including Windows Live, Yahoo, and AIM"Pidgin suffers from horrible, not soon to be fixed security holes and the developper refuse to fix them. Nobody is under

MS Messenger is pretty good, don't get me wrong. However it does have some downsides. Like how long did it take them to get offline messaging. ICQ had it back in the 90's, and MSN only managed to get this feature in 2006. Which has been a while, but why they couldn't get it out the door earlier is beyond me. And, also, the MSN client is built for 13 year old girls. Great for sending little IMs to your friends, complete with plenty of emoticons, and even attrocities such as winks and nudges, but fails

I must have the swine flu. Maybe I'm having a psychotic episode. Did I wind up in a holodeck? Or the Twilight Zone? It must be one of these things because I keep having these senseless hallucinations where MicroSoft acts like a decent company.

Nope this framework is for mobile devices and the 360.Microsoft is really dieing in the mobile space right now. WinMo 6.5 Still doesn't have native support capacitive touch screens and the Mobile world is on fire with Android and of course the iPhone.HTC, LG, and Samsung are all developing or have released Android phones.Palm and Motorola are now dropping WinMo and going with WebOS and Android.This is one space where Microsoft is at best an also ran and really is dropping in the race for mind share.

Microsoft knows that mobile development is booming right now and their best chance to get into the market is on very accessible powerful development tools rather than the Windows OS which is quickly losing market share. If Microsoft can have mobile developers coding in.NET, having them be familiar with Windows development is trival (since the Framework obstruficates most of the OS API.)

If the Framework gets ported to non-MS platforms, having those developers develop on Visual Studio, on Windows, in Windows eco-systems is additional trivial.

I am absolutely certain that iPhone development is causing iPhone developers to learn and be comfortable with XCode on Mac machines while at the same time creating more skilled Objective-C coders that will be more proficent in writing normal OS X applications.

All of the above... good catch, those would both be better choices in terms. Though I don't know to what degree Microsoft has documented what Win32 (or other) APIs are being utilized by the various methods in the framework in all cases.

The standard platform for phones is the.NET Compact Framework. What is the Micro Framework intended for anyway? My guess is that this is Microsoft abandoning a product that has no market, and trying to look good in the process.

# The.NET Compact Framework is a cut-down version of the full-fat framework, stripping out many things that aren't used in small environments. Windows Mobile devices commonly ship with Compact.NET, as does the Xbox 360.# The.NET Micro Framework has the smallest footprint of all, and is designed for devices with very limited resources.

So its not even good enough for mobile phones, maybe if you want to run your dishwasher on.NET, then it might be useful - except its got a very limited set of framework classes and a cut-down GC. This is the cannabis edition, designed to get you hooked enough to need to more powerful.NET CE, and then the full.NET framework.

Correct me if i'm wrong but doesn't.net run in a VM which are explicitly banned from the iphone? OFC it's useful on other smartphones but unless it has sybian support i can't see it being a major player.

There's already a Mono [mono-project.com] compiler for the iPhone - it simply doesn't run in a VM at runtime, but is statically compiled beforehand. Apple doesn't care how the binary you submit was produced.

I personally don't think it's a good idea to use bridge techniques like this just because you are familiar with a language, you will always lose out over truly learning the native platform.

One other thing of note is the Unity game development framework that lets you write game behavior login in either Javascript or C#.

XCode is actually a pretty good tool, and while the multiple floating windows of IB can be hard to deal with I find that approach to GUI design to be way, way better than code-behind stuff UI tools normally spit out.

If you take the time to learn how to use XCode you'll find it does a lot more than you are thinking it does.

Not satisfied with killing software competitors by the Embrace, Extend and Extinguish methodology, now they are doing it to licenses. Pretty soon Apache license will be incompatible with everything non Microsoft, inlcuding Apache Web Server. Run, Run away when you still can!

I was initially impressed by the MS 'open' pledges, until I talked to several coder friends. Their take, paraphrased, was that it was window dressing with a lot of traps. Basically, they 'opened' the wrapper, just like they did with their Office formats.

The problem, as it was explained to me, is that if you want to do anything useful, you have to call a bunch of things that are not opened, will not be opened, and MS can still sue your *ss off for using. One person asked how useful it is to 'open' the hypothetical call, Play_video_with_MS_proprietary_closed_codec? I mean, you can copy the functionality, but your software is only cross-platform to the extent that MS proprietary and closed codecs and other things are 'open'.

This is nothing more than a stealth PR attempt, they will use it to say, "We opened everything up, and see, Linux still sux0rz because it can't play movies, sound, DRM, or anything else useful. We opened everything up, but the Linux model is broken, and their lazy codes won't do the right thing. If you want real XYZ, you need Windows".

It is nothing more than opening the most useless bits, and using it as a PR hammer. Yay progress?

Except, of course, that Mono has actually done a fairly good job of replacing the 'missing' functionality with viable alternatives, so this move is less about "yay! new stuff for me to play with" and more "yay! this is sure to help the Mono guys port their enviroment to new architectures sooner".

This. The Micro Framework is for resource-constrained embedded devices... which are just about the last place you'd want to run bytecode anyway, as far as I can see. We've got tons of embedded stuff where I work, but I fail to see how controllers for mechanical bits and pieces are going to benefit from having the CLR, object classes, GUIs, etc. made available to them.

Yes, I know they're hoping to scoop the mobile market, but which part of it - the non-smartphone (dumbphone) market?

This. The Micro Framework is for resource-constrained embedded devices... which are just about the last place you'd want to run bytecode anyway, as far as I can see. We've got tons of embedded stuff where I work, but I fail to see how controllers for mechanical bits and pieces are going to benefit from having the CLR, object classes, GUIs, etc. made available to them.

I think they're targetting the same area as some embedded Java implementations, like MicroJava [is2t.com]. You're getting a nice programming environment (you can use Visual Studio to write C# software for your embedded app), you're getting automatic memory management and it'll offer a migration path for people familiar with larger platforms. While it's not going to be as efficient as hand-tightened C and/or assembly code, it should allow faster development for embedded applications.

Yes, I know they're hoping to scoop the mobile market, but which part of it - the non-smartphone (dumbphone) market?

Not sure they're interested only (or even mainly) in the mobile market; the.NET MF can run on much lower performance processors than the ones used in phones, even feature phones (i.e., not smartphones). From what I've seen most phones use ARM 9 level CPUs, or even ARM + DSP combos, like the TI's OMAP (please feel free to correct me, phones aren't an area I have much interest in). That's overkill for the.NET MF which can happily run on ARM7 level CPUs.

I know you're joking and I don't mean to direct this at you necissarily but I think it should be said.

Many companies suck. They abuse their positions and take advantage of their customers, they manipulate the writing and interpretation of laws to suit their ends, they sue innocent people in an effort to scare people into respecting their intangible rights. Slashdot, correctly, berates them when there is news about this kind of thing. We help spread knowledge of their actions and provide sometimes insight

It took some work to locate, but I knew there was skullduggery afoot...

Microsoft has taken things to the next level by releasing the.NET Micro Framework under the Apache 2.0 licence.

There ya go. Microsoft has cleverly made it look like they were following the Apache 2.0 license, when in reality they've got some evil spawn of their own creation that goes under the name "Apache 2.0 licence". That special Microsoft license probably says Ballmer gets to eat your firstborn, or something equally nefarious.

You also do not reward a dog for puking up a steak you didn't like either.

As was pointed out elsewhere, Micro framework (not even Compact) is hardly used by anyone, nor is anyone all that interested in it. So why should they be lauded for opening something no one was wondering what was inside of?

This is all about trying to gain mobile market share, but realistically all they're doing is highlighting the headache. Thanks, but I don't want to build an app in Objective C, Java, and.Net and get them certified by Google, and Microsoft, and Apple. What a headache. As usual Microsoft is arriving at the point when the whole idea of writing custom apps per phone is starting to jump the shark.

If they would release an easy to use IE mobile virtual images like they've done for all the current IE desktop applications they might actually have something like a leg up on their competition (I know they have some emulator inside Visual Studio, but that's not the same).

Google has a cross-platform emulator, but neither Apple nor Microsoft do. This could easily be another situation like Firefox where developers design webapps for Android and make them work passably on the other browsers.

What market uses.NET Micro? Is it for smart phones or embedded devices? If it's for smart phones, I can see this as a reaction to Apple, Android, and Palm Pre. While Windows apps still outnumber the other platforms, all the interest these days is in the newer platforms.

Microsoft isn't opening up the whole stack: the TCP/IP parts are missing because another company wrote that code, and the cryptography libraries are missing because "they are used outside of the scope of the.NET Micro Framework"

Does anyone know how hard it is to write your own.Net classes/wrappers for the missing pieces?Are there any good.Net references for CLR internals? I know how Java was designed and written, did Anders or Microsoft provide any references for.Net internals outside

Making it open source allows you to use it, distribute it, and modify it. Even if nobody ports it to your favorite platform, it's still a win for the users. No longer do you have to depend on Microsoft for bugfixes. No longer do you have to hope that, one day, they will implement the feature you're waiting for. Microsoft is no longer the only party allowed to improve the platform or tailor it to your needs. Once it's open source, everyone is allowed to do so.

So while you are right that making the software open source doesn't magically make it portable, it is far from meaningless.

No longer do you have to depend on Microsoft for bugfixes. No longer do you have to hope that, one day, they will implement the feature you're waiting for. Microsoft is no longer the only party allowed to improve the platform or tailor it to your needs.

Yes, you are, and yes, they are, because in the end it's them who will distribute their.NET Runtime, not you. Your fork may have feature X added, and bug Y corrected, but it doesn't matter because in the end, you'll have to code for their platform implementa

No longer do you have to depend on Microsoft for bugfixes. No longer do you have to hope that, one day, they will implement the feature you're waiting for. Microsoft is no longer the only party allowed to improve the platform or tailor it to your needs.

Yes, you are, and yes, they are, because in the end it's them who will distribute their.NET Runtime, not you. Your fork may have feature X added, and bug Y corrected, but it doesn't matter because in the end, you'll have to code for their platform implemen

In case you're not getting the joke: The very definition of open-source [opensource.org] states that modification and distribution must be allowed.

So yes. If it is open source, you _are_ allowed to distribute and modify, exactly as I stated.

Also, Free software and open source software are _not_ different things (and neither does the article referenced by the parent [gnu.org] claim they are). The difference is not in the software, but in the philosophy: open source is the apolitical term, whereas Free software is the