Linked by Thom Holwerda on Wed 3rd Oct 2007 19:39 UTC, submitted by gonzo
.NET (dotGNU too) "One of the things my team has been working to enable has been the ability for .NET developers to download and browse the source code of the .NET Framework libraries, and to easily enable debugging support in them. Today I'm excited to announce that we'll be providing this with the .NET 3.5 and VS 2008 release later this year. We'll begin by offering the source code (with source file comments included) for the .NET Base Class Libraries, ASP.NET, Windows Forms, ADO.NET, XML, and WPF. We'll then be adding more libraries in the months ahead (including WCF, Workflow, and LINQ). The source code will be released under the Microsoft Reference License."
Order by: Score:
I have no words
by _Ramirez_ (1.86) on Wed 3rd Oct 2007 19:50 UTC
_Ramirez_
Member since:
2007-04-11
Fans: 0

WOW

8-|
by dmrio (2.24) on Wed 3rd Oct 2007 19:52 UTC
dmrio
Member since:
2005-08-26
Fans: 0

Microsoft release WHAT???

Microsoft Reference License
by anomie (4) on Wed 3rd Oct 2007 20:02 UTC
anomie
Member since:
2007-02-26
Fans: 0

Make sure you read the fine print on the license.

This is not OSS. It's a "read-only" license.

One of the more prominent theories circulating around goes something like this:
* MS gives read-only access to .NET source code.
* Developers review it. (Maybe mono developers?)
* Lawsuit time. Evidence shows that you looked at our code. MS kills mono or [insert_app_here].

v RE: Microsoft Reference License
by Almafeta (3.36) on Wed 3rd Oct 2007 21:23 UTC in reply to "Microsoft Reference License"
RE[2]: Microsoft Reference License
by umccullough (3.68) on Wed 3rd Oct 2007 21:32 UTC in reply to "RE: Microsoft Reference License"
umccullough Member since:
2006-01-26
Fans: 24

They will have no technical advantage over vanilla .NET, but they will get broadly advertised, and will be widely adopted by the 50% of the Internet composed of the MySpace generation.

I'm trying to think of a concrete example of what you're describing that has already happened in the *real world* today...

Considering the amount of open-source code already out there, I would expect this is to be a common problem (where 50% of the internet uses rip-off versions and thinks it is the real thing)...

Edited 2007-10-03 21:32

RE[2]: Microsoft Reference License
by SReilly (3.64) on Wed 3rd Oct 2007 22:30 UTC in reply to "RE: Microsoft Reference License"
SReilly Member since:
2006-12-28
Fans: 7

...damaging their reputation, and they'll only have themselves to blame for releasing the code in the first place.

Which side of their reputation are you talking about?

The side that is known for keeping interoperability information under lock and key so they can continue to monopolies their position as the world's no1 desktop?

The side that is known to invite partners to develop for their platform only to release a competing product and bundle it for free with their OS?

The side that bullies OEMs into offering systems with only their OS preinstalled?

The side that is known for trying to take over the internet with an inferior product, then providing operating systems without the security mechanisms needed to securely connect to said internet there by leaving the door open for scrip kiddies to run riot causing millions of dollars in downtime and damages?

How about the side that bankrolls other companies to threatens the only thing it can't buy, steal from or muscle out of the IT industry, i.e. Linux, and when that fails, starts threatening with bogus IP violation charges it is unwilling (read unable) to provide any evidence for?

If MS is damaging it's reputation, surely that's a good thing?

RE[2]: Microsoft Reference License
by tomcat (2.16) on Thu 4th Oct 2007 20:09 UTC in reply to "RE: Microsoft Reference License"
tomcat Member since:
2006-01-06
Fans: 7

These flawed copies will make MS scramble to explain why their cross-platform .NET programs don't work on Imperfect .NET Implementation XYZ, damaging their reputation, and they'll only have themselves to blame for releasing the code in the first place.


How does this differ from any OSS project? Forks happen all the time. That's the risk of releasing source code.

RE: Microsoft Reference License
by wirespot (3.28) on Wed 3rd Oct 2007 22:00 UTC in reply to "Microsoft Reference License"
wirespot Member since:
2006-06-21
Fans: 2

Lawsuit time. Evidence shows that you looked at our code. MS kills mono or [insert_app_here].


So what if you look at the code? In most parts of the world the only problem is copyright, and it's not an issue unless you copy and paste the code. Or, to make absolutely sure, you use "clean room" development, where one developer looks at the original code, tells another what it does and the second developer writes new code from scratch, with the same functionality.

Software patents or reverse engineering are an issue only in some countries.

RE[2]: Microsoft Reference License
by Kroc (3.08) on Wed 3rd Oct 2007 22:33 UTC in reply to "RE: Microsoft Reference License"
Kroc Member since:
2005-11-10
Fans: 14

Yes, but all Microsoft have to do is make the allegations. They don't have to back them up, or prove them conclusively. Microsoft can claim that such and such app is breaking the licence, and it's up to the app writers to prove otherwise, not Microsoft. MS fires off some cease and desists to the ISP, and before you know it, Microsoft have spun an allegation into an anti-open source, anti non MS-vendor bit of PR.

There's only so many ways you can make a simple function return an answer. Making other programmers have to tip toe around Microsoft's specific implementation will slow down development and increase administration. Just look at the audit that had to be done on ReactOS because of Microsoft allegations.

RE[3]: Microsoft Reference License
by navaraf (2.17) on Thu 4th Oct 2007 18:36 UTC in reply to "RE[2]: Microsoft Reference License"
navaraf Member since:
2005-07-08
Fans: 2

Just look at the audit that had to be done on ReactOS because of Microsoft allegations.


At least spread correct information please. The audit wasn't done because of MS allegations, but because of allegations of people from inside the project and from related projects. MS never ever approached ReactOS about it.

RE[3]: Microsoft Reference License
by wirespot (3.28) on Thu 4th Oct 2007 20:01 UTC in reply to "RE: Microsoft Reference License"
wirespot Member since:
2006-06-21
Fans: 2

Yes, but all Microsoft have to do is make the allegations. They don't have to back them up, or prove them conclusively.


Yes they do. If you bring charges of copyright infringement you have to back them up. Of course you do.

I don't see what ISP's have to do with this. If you meant hosting companies, they usually check around. They don't boot their paying customers for allegations alone.

RE: Microsoft Reference License
by hobgoblin (2.28) on Wed 3rd Oct 2007 22:37 UTC in reply to "Microsoft Reference License"
hobgoblin Member since:
2005-07-06
Fans: 0

ah, its "shared-source" ;)

Nice
by Xaero_Vincent (2.68) on Thu 4th Oct 2007 01:06 UTC in reply to "RE: Microsoft Reference License"
Xaero_Vincent Member since:
2006-08-18
Fans: 2

This "source release" isn't anything like "open source" but perhaps it will help the Mono developers. That would be a good thing.

RE: Nice
by hobgoblin (2.28) on Thu 4th Oct 2007 01:40 UTC in reply to "Nice"
hobgoblin Member since:
2005-07-06
Fans: 0

well microsoft coined the term "shared source", and iirc this kind of look but dont touch was the basic idea for it...

RE: Microsoft Reference License
by Hiev (1.2) on Thu 4th Oct 2007 01:24 UTC in reply to "Microsoft Reference License"
Hiev Member since:
2005-09-27
Fans: 1

wow, purist trolls have become masters in the art of speculation.

RE[2]: Microsoft Reference License
by Touvan (1.84) on Thu 4th Oct 2007 15:43 UTC in reply to "Microsoft Reference License"
Touvan Member since:
2006-09-01
Fans: 0

Microsoft's track record means they are going to have to prove they don't have those kinds of nefarious goals.

However, I think some good could actually come out of this. If there are any perceptible people in charge over there, they may start to notice better bug reports, maybe even receive a few high quality patches, and some of the other benefits that come from open source, and begin to really understand the advantages.

Again, they are going to have to demonstrate that they are not evil though. There's just too much history.

Licensing.
by bnolsen (2.24) on Wed 3rd Oct 2007 20:02 UTC
bnolsen
Member since:
2006-01-06
Fans: 0

I was immediately skeptical about this being some sort of submarine type license, but looks okay..

Looks like your standard "AS-IS" license with a clause of:
if you try to sue us over stuff found in this source code you lose rights to use it.

Nice short license.

RE: Licensing.
by chemical_scum (2.72) on Wed 3rd Oct 2007 23:15 UTC in reply to "Licensing."
chemical_scum Member since:
2005-11-02
Fans: 3

was immediately skeptical about this being some sort of submarine type license, but looks okay..

From the FL

2. Grant of Rights

(A) Copyright Grant- Subject to the terms of this license, the Licensor grants you a non-transferable, non-exclusive, worldwide, royalty-free copyright license to reproduce the software for reference use.


"Reference use" means use of the software within your company as a reference, in read only form, for the sole purposes of debugging your products, maintaining your products, or enhancing the interoperability of your products with the software, and specifically excludes the right to distribute the software outside of your company.


Looks like a "submarine type of license" to me.

RE[2]: Licensing.
by Marcellus (2.72) on Thu 4th Oct 2007 08:10 UTC in reply to "RE: Licensing."
Marcellus Member since:
2005-08-26
Fans: 1

Looks like a "submarine type of license" to me.


In what way is it a submarine type of license according to you?
It says what you're allowed to do and what you're not allowed to do in quite clear language.

What a bunch of CROCK
by WarpKat (3.56) on Wed 3rd Oct 2007 20:02 UTC
WarpKat
Member since:
2006-02-06
Fans: 0

The day Microsoft releases source code to anything of value is the day pigs fl...

*FLAP* *OINK* *FLAP* *OINK*

...well...whatta ya know?!?!

Don't get too excited
by shiny (4.32) on Wed 3rd Oct 2007 20:02 UTC
shiny
Member since:
2005-08-09
Fans: 0

I support the idea behind the viewable source, but I strongly suspect it will be released under some kind of "read only" license, i.e. no compiling possible, etc.
Don't forget that Microsoft already released parts of the Windows NT and CE to some business partners before.

But IF they would release .NET under some kind of open source license, it could make quite a boom in the Java vs .NET case. But Microsoft is not that smart ;)

holly...
by poundsmack (3.32) on Wed 3rd Oct 2007 20:08 UTC
poundsmack
Member since:
2005-07-13
Fans: 3

java watch out!

this is amazing though. thanks MS! (10$ says they lost a bet and this was the part of the bargin they had to held up) haha

RE: holly...
by TemporalBeing (1.28) on Wed 3rd Oct 2007 20:30 UTC in reply to "holly..."
TemporalBeing Member since:
2007-08-22
Fans: 0

Why? Java will actually be open source.

.Net - it'll just be there without anyone touching it.

RE[2]: holly...
by psychicist (2.32) on Wed 3rd Oct 2007 22:51 UTC in reply to "RE: holly..."
psychicist Member since:
2007-01-27
Fans: 3

I think you are a bit behind the times, because Java is already free software under the GPL v2 ;) . The source code has been released in the OpenJDK (http://openjdk.java.net) project with some minor binary stubs for those things that cannot be opened up.

The IcedTea project (http://icedtea.classpath.org) attempts to create replacements for these binary stubs with unencumbered free replacements and stubs. It will take some time before it's complete.

.Net is just a fad that will eventually die out on free software platforms, as there is no reason to come anywhere near it unless you really only strive for Windows compatibility.

RE[3]: holly...
by PlatformAgnostic (2.72) on Wed 3rd Oct 2007 23:00 UTC in reply to "RE[2]: holly..."
PlatformAgnostic Member since:
2006-01-02
Fans: 10

Or you could use .NET/Mono because it is likely to be a better runtime since it has the benefits of lessons learned from the Java experience. And having competition allows both platforms to evolve faster.

RE[4]: holly...
by TemporalBeing (1.28) on Mon 8th Oct 2007 19:39 UTC in reply to "RE[3]: holly..."
TemporalBeing Member since:
2007-08-22
Fans: 0

.Net is not any better than Java except in that it is tied to a single platform (Windows) and can therefore make certain optimizations that are otherwise not available.

It is a lot easier to design something for a single platform/API/processor than it is to try to do what Java does.

.Net has a bit better performance as a result, but it lacks the ability to move stuff between systems - yes, even with Mono which will never be as complete as Microsoft's .Net implementation is. So your comment is quite a bit off the ball.

RE[3]: holly...
by TemporalBeing (1.28) on Mon 8th Oct 2007 19:36 UTC in reply to "RE[2]: holly..."
TemporalBeing Member since:
2007-08-22
Fans: 0

I believe that was my point - though I said it that way as Java is not, as you admit, fully there yet. It's a good start, but still has some way to go.

Fully agree on .Net being just a fad.

RE: holly...
by google_ninja (2.56) on Wed 3rd Oct 2007 22:17 UTC in reply to "holly..."
google_ninja Member since:
2006-02-05
Fans: 13

#1) Java class library source has been around for at LEAST 10 years, if not since it was first released

#2) The .NET VM is not going to be open, only the API. SUN is just making the move now to open their JVM.

#3) Java needs to watch out more on technical issues, like how .net is language agnostic, C# is java with a bunch of things fixed, and .NET GUI apps don't suck. MS doesnt need to open their JVM, all they need to do is port it to other platforms (or just get Novell to do it), and that is the final nail in the Java coffin.

RE[2]: holly...
by sanctus (2.64) on Thu 4th Oct 2007 00:57 UTC in reply to "RE: holly..."
sanctus Member since:
2005-08-31
Fans: 0

The reason .net gui dont suck,
1. unlike Sun, Microsoft have a complete system with nice librairies. Microsoft need to keep its gui "modern" against competition (aqua, gtk, qt)

2. Sun is too political. SWT offer a far better alternative (wx in mono/.net/aqua/python), but because it is IBM's solution, Sun decide not to support it. Yet they fraud their developpers and supporter telling them that people really like swing and that it's fast.

RE[3]: holly...
by StaubSaugerNZ (2.88) on Thu 4th Oct 2007 20:29 UTC in reply to "RE[2]: holly..."
StaubSaugerNZ Member since:
2007-07-13
Fans: 1

> Yet they fraud their developpers and supporter telling them that people really like swing and that it's fast.

Actually sanctus, Swing is quite fast when done correctly. The greatest problem are Swing developers that don't correctly deal with the event dispatch thread that blocks repainting. With Sun JDK 1.6 update 5 (currently in early release testing) the *entirety* of Swing is rendered in hardware with DirectX on Windows. Pretty hard to get faster than that (unless you continue to block the Event Dispatch Thread).

If we forget the consumer desktop for a moment and consider the corporate/enterprise/government world, Java applications are very widely deployed. I have seen some .NET projects in the enterprises I deal with, and this restricted opening of the .NET libraries is definitely a help for them, but Java is still the "800 lb" gorilla in this space and will probably be for some time.

Edited 2007-10-04 20:30

RE[4]: holly...
by sanctus (2.64) on Fri 5th Oct 2007 14:38 UTC in reply to "RE[3]: holly..."
sanctus Member since:
2005-08-31
Fans: 0

When SWT came out, swing was slow (even if done correctly) and looked not only foreign, but unappealing. People were complaining about swing for years and Sun just didn't care a bit. Then IBM creates an amazing alternative that was faster than swing and the interface look native on every platform out of the box. IBM had listened.

It was too late, like Sun often do, before they start improving their product, they wait until customers were frustrated enough and create an alternative. Swing isn't alone, the whole jvm get nearly stagnant until .net was unveil.

They invest just more money where competition and development effort weren't needed.
Sun could have work with IBM to make the whole jvm more appealing for developers, business apps as well as end user in one shot. But they didn't want IBM to receive any credit. They politically played, against java and their customers.

Still today, swing feel foreign even with the nice themes, especially on Linux where it still look crap. Plus, it keeps burden the developer with extra work.

If we forget the consumer desktop for a moment and consider the corporate/enterprise/government world, Java applications are very widely deployed.


That is true, but as a consultant, I work for different clients, big enterprise and government. Java is still being use to develop server application, but when it comes to user interface, .net is becoming the standard. I worked for a government entity with more than 20000 employees that switch officially to .net. The look and feel wasn't the only issue, but it played big time. What people see is the GUI, if the GUI suck, they entire application/framework get tagged. Sadly, a very large amount of people dislike swing. That's good for consumer desktop and corporate.

I just hope the open source of the jvm will be more "open" and stop this over political attitude.

Edited 2007-10-05 14:39

For those who can't/won't read the license
by daddio (2.92) on Wed 3rd Oct 2007 20:23 UTC
daddio
Member since:
2007-07-14
Fans: 0

[blockquote]
"Reference use" means use of the software within your company as a reference, in read only form, for the sole purposes of debugging your products, maintaining your products, or enhancing the interoperability of your products with the software, and specifically excludes the right to distribute the software outside of your company.
[/blockquote]

So this is nice debugging tool for .net software houses(one of which I work for), but short of some innovative reverse engineering tactics using a third party to review code, useless for mono or dot.GNU

OTOH, since this is "reference" code, some sort of parser could probably be written to extract useful information while shucking any "creative expression".

Meh, I wil continue to stay away from C# for anything nonWindows

Edited 2007-10-03 20:24

Pretty useful
by google_ninja (2.56) on Wed 3rd Oct 2007 20:23 UTC
google_ninja
Member since:
2006-02-05
Fans: 13

The thing is, with tools like Reflector, you don't really need the source most of the time.

Where this will be incredibly useful is for debugging, now we will actually be able to step through framework classes, which is quite useful, and one of the few things I miss about my Java development days.

Huh?
by tuaris (2.26) on Wed 3rd Oct 2007 20:24 UTC
tuaris
Member since:
2007-08-05
Fans: 0

Isn't it a little early (or late) for April fools.

NOT open source
by elanthis (4.36) on Wed 3rd Oct 2007 20:24 UTC
elanthis
Member since:
2007-02-17
Fans: 0

This is not open source. At all. It just gives you the right download and distribute copies of the source provided you do not modify it or incorporate it into a product.

Basically, it's useful so that you can look at how the libraries work to make your own interoperable software (eg Mono).

It is not a submarine patent threat, as the license gives patent rights to anyone using the source, so long as the don't copy/modify the source. That is, Mono could use it to test compatibility or check how a function works, but they can't copy the code into Mono. So long as it's clear that they write the code cleanly, it's in theory safe.

Granted, IANAL...

RE: NOT open source
by sappyvcv (2.36) on Thu 4th Oct 2007 12:13 UTC in reply to "NOT open source"
sappyvcv Member since:
2005-07-06
Fans: 11

No one ever claimed it is open source?

...
by Hiev (1.2) on Wed 3rd Oct 2007 20:27 UTC
Hiev
Member since:
2005-09-27
Fans: 1

Miguel de Icaza coments about it:

http://tirania.org/blog/archive/2007/Oct-03.html

RE: ...
by MollyC (3.36) on Thu 4th Oct 2007 05:46 UTC in reply to "..."
MollyC Member since:
2006-07-04
Fans: 36

Miguel de Icaza coments about it:

http://tirania.org/blog/archive/2007/Oct-03.html


Hmmm...
Something interesting I noticed in Miguel's blog is that Microsoft is changing the name of MS-PL (which is not the license being used for the .NET Framework sources) from "Microsoft Permissive License" to "Microsoft Open License" (I assume to appease the claim by OSI that "Microsoft Permissive License" is a misleading name).

RE[2]: ...
by Beta (4.2) on Thu 4th Oct 2007 13:28 UTC in reply to "RE: ..."
Beta Member since:
2005-07-06
Fans: 4

Should we be taking bets for them needing to rename the licence again? ;)

RE[2]: ...
by SReilly (3.64) on Thu 4th Oct 2007 17:48 UTC in reply to "RE: ..."
SReilly Member since:
2006-12-28
Fans: 7

My dear fellow IT buff, I think we can both agree on one word when dealing with such a name change; marketing! ;-)

The Rat.
by systyrant (3.04) on Wed 3rd Oct 2007 20:29 UTC
systyrant
Member since:
2007-01-18
Fans: 2

I have to agree with the conspiracy theories. While I think this will benefit .Net developers I can't help but think that Microsoft will eventually use this to say open source "stole" from Microsoft. However, the reality is nothing can be done about this. Microsoft has every right to open it's source code and unfortunately ever right to claim somebody stole from it.

I just hope that if that day comes most people are smart enough to at least smell a rat.

RE: The Rat.
by umccullough (3.68) on Wed 3rd Oct 2007 20:54 UTC in reply to "The Rat."
umccullough Member since:
2006-01-26
Fans: 24

Microsoft has every right to open it's source code and unfortunately ever right to claim somebody stole from it.

Actually, they don't really have "ever [sic] right to claim somebody stole from it" unless they have some amount of legitimate proof... Otherwise it's known as libel/slander/defamation.

They may, however, exercise their legal rights if they happen to find that someone has violated their copyrights and license agreements.

I do think this is going to be a positive outcome for .NET developers everywhere - but hopefully it won't turn into some slander-fest...

RE[2]: The Rat.
by Beta (4.2) on Thu 4th Oct 2007 13:33 UTC in reply to "RE: The Rat."
Beta Member since:
2005-07-06
Fans: 4

"Actually, they don't really have "ever [sic] right to claim somebody stole from it" unless they have some amount of legitimate proof... Otherwise it's known as libel/slander/defamation."

You did hear Microsoft claiming Linux violates 235 of their patents, right? It's quite clear they have no problem with libellous statements.

RE[3]: The Rat.
by BluenoseJake (2.68) on Thu 4th Oct 2007 15:42 UTC in reply to "RE[2]: The Rat."
BluenoseJake Member since:
2005-08-11
Fans: 7

"You did hear Microsoft claiming Linux violates 235 of their patents, right? It's quite clear they have no problem with libellous statements."

Considering that absolutely no one believes it, it is a statement without any power whatsoever, and even MS knows it.

RE[4]: The Rat.
by chemical_scum (2.72) on Thu 4th Oct 2007 16:59 UTC in reply to "RE[3]: The Rat."
chemical_scum Member since:
2005-11-02
Fans: 3

Considering that absolutely no one believes it, it is a statement without any power whatsoever, and even MS knows it.

If it scares a few PHB's off from deploying Linux then it will have shown that it has power. PHB's are absolutely no one and can therefore believe it.

RE[4]: The Rat.
by PlatformAgnostic (2.72) on Thu 4th Oct 2007 17:14 UTC in reply to "RE[3]: The Rat."
PlatformAgnostic Member since:
2006-01-02
Fans: 10

It's probably true... Microsoft does have a lot of patents, and Linux implements a large amount of functionality. It's just that Microsoft doesn't have to show anyone information about this except those from whom it is accepting licensing fees. They don't want to sue customers and they don't want to sue end-users, so you won't see much of this except when they do a deal. The rest will be done quietly in confidential letters to big enterprise customers (the kind who might have a chance of getting Linux "for free" due to their ability to have a large in-house IT staff instead of paying RHAT for support). It is these people for whom the cost of linux must be made non-zero for Microsoft to compete there.

Think of it from Steve Ballmer's perspective (hard as that may be)... His company gets sued all the time for IP violations. Some are legitimate (the DEC case and the Apple case come to mind), but others are complete junk (cf. Eolas, Alcatel-Lucent). The industry (players like Sun, Novell, RedHat, and IBM) can't have it both ways: either IP laws apply to everyone or they apply to no one. Open Source does not magically exempt industry players from their obligation under patent law. This was never about individual developers or the independent OSS market... this has always been about big name vendors selling linux to big name customers.

RE[4]: The Rat.
by SReilly (3.64) on Thu 4th Oct 2007 17:54 UTC in reply to "RE[3]: The Rat."
SReilly Member since:
2006-12-28
Fans: 7

You are right, but then again you, I and MS knows that they don't have to be believed by the majority. All they need is to plant the seeds of doubt in the mind of one pointy heired manager for them to gain a customer.

Seeming as how they are trying their best to scare of customers as it is (you know, all that WGA and DRM crap), they gotta do something! Right? ;-)

Haven't this been around for years in Java?
by battlehorse (3.4) on Wed 3rd Oct 2007 20:31 UTC
battlehorse
Member since:
2005-07-06
Fans: 0

I never worked with .Net, so please be patient if I say something inappropriate, but ... isn't this announcement about something you have been used to do for years in Java ?

"offering the source code (with source file comments included) for [...] System.Collections" : how many times did you look into java.util.Collection ? maybe a thousand times? How do you manage to understand how your library works if you can't look into it?

HangLoose Member since:
2007-09-03
Fans: 1

One could buy Microsoft books or pay for phone call service ;)

umccullough Member since:
2006-01-26
Fans: 24

How do you manage to understand how your library works if you can't look into it?

There's this concept that apparently has gone out of style where interfaces and implementations used to be properly documented so that people understood how they worked.

For many years, programmers used to somehow write software this way, without seeing the source code of the OS/APIs they used...

MollyC Member since:
2006-07-04
Fans: 36

I agree with you. Generally I like to think of libraries as a "black box". And most Windows and .NET programmers do program that way.

But sometimes you'll run into a problem that isn't explained by the documentation. "Why the hell am I getting this exception??" Documentation never covers everything. ;) (Nor would you want it to, as it would unnecessarily bloat the documentation as well as tie it to the particular implementation details of the API, details that may change in future versions of the library.)

And even with the source available, one should not write code that depends on the exact source code since the underlying source can change. But programmers can use their own judgement regarding such matters. ;)

google_ninja Member since:
2006-02-05
Fans: 13

Not sure how much active development you do on .net Molly (you have mentioned your retirement before), but there is a very popular tool called Reflector, which is basically just a wrapper around the reflection apis, that disassembles any dll into very readable code. So, even though we havn't had access to the libraries, we have had the next best thing for a very long time now.

You covered two very common scenarios, now that we have the source the debugger can actually step through the API. Another one is if you want to extend a control that ships with the framework, you need to know how it works and what to override (extremely common, check out codeproject, codeplex, or any other .net open source site and youll see what I mean.).
(After reading Miguel deIcazas blog, he brings up another scenario I hadn't thought of, if you use the compact framework, and need some functionality that is in the standard edition, you can just copy the source)

As a side note, I would really like to see MS participate more in cross platform .net. As long as you still need a recompile, they would maintain the application advantage that windows has, while adding significant value to ISVs that are going to be porting anyways.

MollyC Member since:
2006-07-04
Fans: 36

Actually, stuff like System.Collections, System.IO, etc has had the source available for awhile now through Rotor.
http://www.microsoft.com/downloads/details.aspx?FamilyId=8C09FD61-3...

But this new offering provides the code to a lot of the stuff on top of that lower-level stuff, as well as easily stepping through the .NET code in VS2008. I'm particularly interested in WinForms, WPF, and LINQ. ;)

(I *was* hoping that this would include System.Drawing (it doesn't appear to), but now that I think of it the System.Drawing code is likely just a bunch of wrapper functions that do little more than call the corresponding GDI+ function, so the source would be of little value there.)

As side note, Microsoft has released code for the purposes of helping developers code and debug before, such as ATL and MFC (and of course, their CRT code).

Edited 2007-10-03 21:26

gonzo Member since:
2005-11-10
Fans: 2

How do you manage to understand how your library works if you can't look into it?

The same way people created thousands of applications for Windows (Win32, DirectX, etc) without having the source code for those.. The same way you can use Adobe Photoshop, without having the source code for it - you understand the interface, you don't really need to see/know the implementation details.

What you need is good API documentation and that's it.

I still have ZERO motivation to use it.
by bobjohnsonmilw (-0.57) on Wed 3rd Oct 2007 20:59 UTC
bobjohnsonmilw
Member since:
2006-04-06
Fans: 0

Overcomplicated, Overbloated, Overhyped, Overrated.

I'm sure there are many that love it, but given there's little to no portability (wasn't that half the point) I see no use for this framework.

(I used to dig it at one point, then found qt). Not saying qt is perfect, but at least it works on other platforms. (Yes I'm aware of mono).

google_ninja Member since:
2006-02-05
Fans: 13

if you are aware of mono, how can you say there is zero portability? usually all it takes is a few small changes and a recompile for even moderately complex apps...

Beta Member since:
2005-07-06
Fans: 4

"zero portability?"
"few small changes and a recompile"

Maybe he meant: tedious portability.

bobjohnsonmilw Member since:
2006-04-06
Fans: 0

Ok, you're right that's portability; but not provided by microsoft is what i meant to say I guess.

Portability in my opinion is of officially supported and released msil interpreters that would support the "write once - run anywhere" paradigm.

So technically, you're right ;) But you're wrong in assuming that small changes are required for true portability, imho.

BluenoseJake Member since:
2005-08-11
Fans: 7

If you are aware of Mono, then you must know your comments are rather incorrect. Mono allows portability. Just like with Java, if a system has a runtime, the code is portable.

SReilly Member since:
2006-12-28
Fans: 7

...if a system has a runtime, the code is portable.

Yes and no. You are very correct as in, if the system has a runtime then the code will run. The only problem with that setup is that only one company, more or less like Java up until recently, has the code and experience to develop and release this runtime (I know that IBM licensed the right to release their own Java runtime, but please bare with me;-). If MS refuses to develop a runtime for competing systems, so that those systems need to provide a reversed engineered implementation of that systems, then it ain't really a 'compile once, run anywhere' solution.

Sun develops give very serious support to as many platforms as they can. Furthermore, these platforms are being given a further bonus by Sun considering opening the source under the GPLV3, thereby attempting to negate any patent infringement issues. Non of these steps have been taken by MS, at least at this time.

The fact remains that, no matter how much verbal help MS gives to Mono developers; If they don't pitch in with the code, Mono will never be on par.

BluenoseJake Member since:
2005-08-11
Fans: 7

"The fact remains that, no matter how much verbal help MS gives to Mono developers; If they don't pitch in with the code, Mono will never be on par."

I think you will see more actual code coming from MS, especially since Novell and MS are working together on Moonlight. To get maximum value from that partnership, I think MS would be smart to help with Mono

I'm a bit shocked.
by PlatformAgnostic (2.72) on Wed 3rd Oct 2007 21:11 UTC
PlatformAgnostic
Member since:
2006-01-02
Fans: 10

This came out of the blue and I had no inkling of this. I guess it makes sense though because of Reflector. With Reflector (by Lutz Roeder of Microsoft), you can take any function in a .NET assembly and see a pseudo-C# representation of that function (it reconstructs the C# from disassembling the IL). This decompilation ends up being uncannily like the original thing, so it's about as good as viewing the source without comments. Microsoft isn't really giving anything away that people couldn't take before, but they're bringing the benefits of seeing good .NET code to the average dev who may not use Reflector.

I've long thought that Microsoft should release the KMDF and NT Kernel sources under a non-buildable license like the MS-RL. The only reason I say non-buildable is that we don't want multiple slightly different versions of Windows to get out there (not to mention that Microsoft doesn't want to lose control of their OS). Maybe if this release doesn't lead to problems, they will be able to do this.

Pressure from Java
by siki_miki (2.68) on Wed 3rd Oct 2007 21:27 UTC
siki_miki
Member since:
2006-01-17
Fans: 0

As Code of Java is already available, MS had to do the same thing to compete. Unfortunately they tend to be "open" only on things where they aren't holding a de facto monpoly. For that reason we won't soon see source of directx/3d, win32, network/auth/mail protocols, office formats nor many other API libraries, as those are mantaining their Windows lock-in.

But well, this will be helpful to Mono. Coders won't have to reverse engineer those libs, they will have help from someone looking at code and feeding them with information on API implementation details and quirks (a clean-room procedure).

But source isn't everything. It can help, but still much effort is required to reimplement such a huge framework.

RE: Pressure from Java
by Almafeta (3.36) on Wed 3rd Oct 2007 21:33 UTC in reply to "Pressure from Java"
Almafeta Member since:
2007-02-22
Fans: 5

For that reason we won't soon see source of ... office formats


*cough*

OOXML? You know, the specification they released that pretty much guaranteed their imminent failure in the office suite market?