Microsoft open sources .NET Micro Framework


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. Unsurprisingly, 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 licence. Yes, you read that correctly: a sizeable chunk of .NET is about to go open source.

For the uninitiated, we need to make it clear that .NET comes in three major flavours:

  • The full .NET Framework is what Mono aims to replicate. It has all the functionality Microsoft offers, and is thus around 200MB.
  • 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.

It's that latter part that Microsoft is releasing: it runs in about 300KB of memory, works on multiple CPUs (most notably ARM chips), has a simplified version of garbage collection, plus implements only a small number of the .NET classes - Wikipedia estimates about 70.

What's more, 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" - which presumably means that the code is being used elsewhere in Microsoft and they'd rather not give it away.

Even so, this is another example of Microsoft doing what would have been unthinkable just a few years ago: giving away source code (and, let's face it, .NET is the crown jewels of their development stack) under an open source licence that is compatible with GPLv3. We should also say that the licence they chose - Apache 2.0 - comes with a "perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable" patent grant.

So: this is by no means enough to make Mono safe to the nay-sayers (although increasingly we're of the belief that Microsoft could release all the .NET code and patents into the public domain and some people still wouldn't trust it), it's another surprising step in the right direction, and adds more fuel to the discussion of whether we should trust Microsoft's open source contributions.

What do you think, folks?

Click here read Microsoft's announcement in full.

You should follow us on or Twitter

Your comments

Good news!

I think Microsoft is making real headway here and it would be great for them to open the whole platform; open specification and an open reference implementation.

Saying all that I tend to stay away from Mono apps because Mono has always felt like an extra dependency; it has nothing to do with IP infringement.

Someone people will never be happy...

because you can never fully trust a legal system (not a justice system) where the corporation with the money wins hands down every time.

BubbaT, paranoia is

BubbaT, paranoia is *adorable*.

Why is Mono still following .Net?

Why is Mono still following .Net? At this point there is a stable base to Mono, but still it wants to replicate the rest of .Net. Linux did not become as popular as it did by copying Windows. After all a better version of a crappy operating system is still a crappy operating system. Instead Linux took the Unix kernel, took Unix like utilities called GNU and made them into this new unique operating system. Anyone wanting to improve Linux should be looking to make a better Linux, not a better Windows.

As Mono is a part of Linux it should be making itself into a part of a better Linux, not a better .Net clone.

BubbaT has it correct

You will note that Microsoft only ever release "parts of" some technology or another. Parts of .NET come under Microsoft's Community Promise (and parts do not). Parts of Microsoft's OOXML specification come under Microsoft's Community Promise, but whatever that specification references (uses) but does not define ... those parts do not.

In this announcement, "sizeable chunk of .NET is about to go open source". Part of it. No the whole deal.

Now, if one actually wanted to write a functional, useful, application under .NET, would that application have to include some pieces of .NET that were NOT released as open source, and which did NOT come under Microsoft's Community Promise?

You betcha!

Embrace, Extend, Extinguish just acquired another phase. It is now: Embrace, Confuse, Extend, Extinguish.


@Ed Ropple

When dealing with any company, a heavy dose of skepticism (not paranoia) is always advisable. Past experience has shown this to be doubly true for Microsoft.

Honestly this is just good business for Microsoft

There isn't anything shady about this or the other releases or promises. Microsoft is taking a beating in the server and mobile markets. Releasing what are essentially free sample products and code to entice developers, team leaders, and shop managers to switch or stay is just good business sense.

If people like using their products then it is good news for them, and if you don't, then why do you care? I like C# even though I probably won't use it. I have a Microsoft keyboard and mouse. It was the best one at the store. Not everything they do is absolute evil, just most of it ;)

Honestly this is just the result of layoffs

The MF team was one of the teams heavily affected by the May layoffs. Since they still had contracts with customers, they kept enough people to release the code publicly. This is the result. Don't expect large investments (or any at all) here in the future, as they probably want it to just die off.

They can't let it die off

They cannot let it die off for the simple fact that it is a subset of the whole .NET Framework.

As it is a part of a larger whole that Microsoft still actively works on, they would probably keep working on it. Now... IF they release the entire Windows Mobile code under the Apache 2.0 license, then we can be worried about Microsoft letting it rot.

Lets see how much of .net this covers.

True open source licence this is what people like me want.

Lot of Mono class libs are licensed under MIT license that does not give a patent grant.

We were not asking for them to release the soruce code but provide a patent release allowing open source project under apache 2.0 or gplv3 to be made that provides ass protection.

put up or shut up

"When "open source lawyers" spoke up, we discovered there were holes in the Promise you could drive a tank through."

That's irrelevant because open source users of Mono don't need to rely on the Community Promise since they are not usually using the .NET APIs. So, even if you are paranoid about Microsoft's .NET patents and don't trust their community promise, you can still safely use Mono.

I think it is an outrage that the FSF keeps misrepresenting the situation and as far as I'm concerned, they have lost credibility. And the FSF hasn't lifted a finger to provide an alternative to Mono; their attitude is that C/C++ is still good enough. I used to support RMS and the FSF, but no more.

FOSS needs something like Mono, Mono is one of the legally best-vetted platforms out there, and people who criticize it should either put up or shut up.

Stop emulating bad software

People in Linux should stop emulating bad software and continue with the solid base of excellent code from the Linux heritage. .Net/Mono is a sandcastle constructor set - so quick to throw together some impressive-looking mash-up, but no foundations, no depth and limited maintainability. It attracts a certain mentality of uncommitted coder and results in glitzy, crap applications.

I love it when I open up a source file and find original authorship notices from the 80s or 90s, excellent comments, clear structure and references. .Net/Mono discourages good coding practices.

Re: They can't let it die off

@InuYasha: MF mostly contains code that isn't changed much, and when they do, they don't necessarily have to test it on all of the architectures that MF supports. When that happens, MF has effectively "died off". The larger frameworks also doesn't use some of it's libraries, e.g. the memory allocator and garbage collector so they have little reason to "work" on that. And it's not like working code suddenly becomes broken over time, so it can still be useful to someone somewhere.

Pigs fly

I think I just saw a pig fly past my window...
It was a small flying pig, but a flying pig none the less. :)

Can the London Stock Exchange be wrong?

I think that it's worth noting that the London Stock Exchange recently threw out its .Net platform in favour of a new GNU/Linux alternative. When I asked CEO Xavier Rolet what advantages he saw in this move he replied that the LSE would gain a competitive advantage from the new platform with significantly reduced costs, a huge speed advantage, and improved scalability. So much for .Net then -- open source or secret and proprietary.

Funny thing about the London Stock Exchange

The other day I was on the .NET site and they are STILL showing it off as a customer! I think at some point they need to be held accountable for fraud? How many of the other sites are not really using .NET either?

A cruise ship with software

A cruise ship with software developers goes and only the Microshaft employees are spared by the sharks as "a professional courtesy"

doh! goes down <eyesroll>

doh! goes down <eyesroll>

no TCPIP =?

So what exactly can be used in .net without TCP/IP and crypto? From my understanding, not much, so it's still a patent minefield all over again.

BubbaT is dead on correct, and ed is off, but then "Ed Ropple" posts for boycott 'boycott novell', the most asinine name of a site if I ever heard one, and clearly against open source. May as well have worked for MS Ropple, you'd be just as insignificant.

appropriate captcha for ed: Whooshed shot.

but everyone loves apple

i don't uderstand.
Microsoft as a long story on sueing other _companies_.
And it's been sued by a lot of other _companies_.
Sometimes won, sometimes not.
It's called the american way of doing _business_!
But, seriously, this is a product.
Like it or not, it's good to have part of it open sourced.
Apple is much more evil, but everyone buys its expensive laptops, embrace it's proprietary system, only because they shine and run some flavour of Unix?
Come on, stop bitching.
Don't like Mono, don't use it.
Don't wanna trust MS, don't use their products.
Freedom is good, don't you agree? : )

I haven't seen so much arguing when Sun open sourced java.
And saying that a free jvm is a replacement for .Net, it's
simply lame stupid!
Classpath is a dead end, just like HURD...

Up to you

It's up to you whether or not you want to trust Ms in this situation, but of course this is a company that has made itself clear in the past that it will destroy any and all competition. It has targeted Linux in the past.

I don't feel comfortable with using the technology. I'd much rather just develop in Java.


And how much of .net micro is *new* code that we didn't already have in Mono? I'm betting pretty close to none.

This is like Caldera open sourcing UNIX. Sure, it's nice, but at this juncture we don't need any of the code. So, thanks?

Tux Radar / Linux Format loves to bend over to M$

I am one of those who will never trust Microsoft even if they GPL *all* their code. Biased as I may be, I can't shake off my impression that somebody, somewhere at Tux Radar / Linux Format's headquarters *loves* Microsoft. That person or group is always trying to put a positive spin in every piece of shit Microsoft dishes out for the world to feast on - morsels of crap to make the stupid happy.

Come on, TR/LF, what is your problem?

woh! this is the great news

woh! this is the great news for opensource technology...


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Username:   Password: