Slashdot Mirror


Reverse Engineering .NET - Good, Bad or Inevitable?

It was only a matter of time until someone posed this question to the readership. After its announcement, last year, a Slashdot reader wants to know your thoughts on the issues surrounding a potential Open Source port of Microsoft's .NET.

legLess asks: "The Register has an interesting article about reverse-engineering Microsoft's .NET. Apparently ESR, Bruce Perens and Miguel de Icaza have all dropped hints that the project's already underway. The Register has this to say, though, which I think is worth discussing:

...In fact it's a risky strategy for the Open Sorcerers. If .NET isn't reverse engineered, it will surely remain a Microsoft-only platform, as even the best funded efforts to port Microsoft technology to non-Windows platforms in the past have remained at best, a niche option. But if a good implementation is produced, it has the effect of legitimizing the platform, and making much more attractive to conservative, non-committed corporate buyers. Which is certainly the last thing the Beast's foes want to see."

Yes, if we could get .NET working on non-Microsoft platforms, it would be a good thing, but I don't think that the Redmond Redwood will roll over and let this happen without a fight. How difficult would it be to port .NET, if Microsoft is free to add, extend and modify the underlying protocol to break any third-party implementation that may rear its head?

Jamie adds: XNS is worth keeping an eye on. This is a nonprofit, (promised) open source infrastructure to allow individuals to save private data which corporations can only access if they agree to (legally enforceable) point-and-click contracts. In short, it's the groundwork for an open version of .NET focused on privacy, and more. But they're making progress slowly if at all. They have a good team heading it up, and I really want to see them succeed at something besides writing whitepapers, but their mailing lists have slowly gone cold and they still haven't released any source.

22 of 254 comments (clear)

  1. Get these concepts straight by bhendrickson · · Score: 3
    People are talking about different things.

    Miguel de Icaza, the oreillynet article, and the register are talking about the .net development enviroment and c# language. This includes the .net common libraries and runtime for the p-code.

    The slashdot editors and some posters have confused this with the Hailstorm services (passport, the storing of information, etc.).

    Ignoring the issue of Hailstorm, lets consider the arguments for cloning .Net:
    • A common bytecode for all languages allows all languages to call each other without overhead (thats right, none of the problems of ORBit, Bonobo, XPCOM, etc.)
    • Will allow Linux to be a drop in replacement for Microsoft servers. Wow...
    • Managed execution is the future. Garbage collection is nice, sandboxing of untrusted code is nice, etc. A common managed execution enviroment has huge benifits, and we don't have anything close to this. Best open source has now is one managed execution enviroment for Perl, one for Python, twelve for Java, one for PHP, etc.
    The open source community doesn't have the resources the develop something like this from scratch. Just copying the design of Microsoft is a lot easier (like we did for our office suits). But suppose we could - what would we get? A solution incompatable with the dominate solution. Yeah, that is really a compelling reason to re-invent everything.

    If we balk at the idea of cloning it, we will be guilty of a major NIH complex. (NIH = not invented here).

    Lastly, a lot of poster are suggesting Microsoft will just change the standard and break our open source version. Two things in response. First, Microsoft is in the process of making .net an open standard (remember we aren't talking about hailstorm, just c#, the runtime, and libraries). Second, imagine if Sun tried to substantaly change Java (which is not an open standard like .net will be). Nobody would use Sun's new version because it would break compatiblity with HP and IBM's cloned Java implementations that make up a lot of the market. Microsoft would have the same problem if the open source .Net versions ever got reasonable market share.

    So lets start cloning already.

    Ben
  2. Inevitable? Already underway! by Sam+Ruby · · Score: 4

    http://www.southern-storm.com.au/portable_net.html

    --
    - Sam Ruby
  3. More stupid than revolutionary. by Bowie+J.+Poag · · Score: 3



    Allright. Lets sit back and think about the problem. You can use any computer in the world as your computer. Do we really want to do this? When I buy a car, thats my car. I don't want my neighbors using it, or anyone else for that matter. My data is my property, not my neighborhood's property. Sure, i'll lend it out on occasion if one of my friends needs it, but 99.9% of the time, I control it.

    I don't see how personal data (or computers in general) differ in this regard. They both share the basic premise of ownership. Human beings do function cooperatively in groups, but the larger the group, the less cohesive its cooperation tends to be. We dont take a car to the market, we take our car to the market. Sure, its an interesting idea--You grab whatever mode of transportation is closest and take it to whatever destination you have in mind...But people just plain don't work that way. If I wanted a network computer, i'd set up an NFS server and boot off of it transparently. Networking issues aside, its a novel idea. But it violates our inborn concept of ownership and "rights of use"..

    Time to think of a better idea, methinks.

    --
    Bowie J. Poag

  4. Open Sourcers do not control .NET's fate by RyanGWU82 · · Score: 5

    The Register article assumes that .NET's legitimacy rests on the availability of an open implementation to compete with Microsoft's. Nothing could be further from the truth. Most of of .NET's perceived legitimacy will in the eyes of CIOs, IT managers, etc. These people will be swayed by its performance in its initial MS incarnation; reviews in manager-oriented publications; availability of software based on .NET; etc. They will not care whether there's a free implementation available.

    Remember, SAMBA did not make Windows file sharing so widely-used!

    Ryan

  5. Does anyone KNOW what .NET is? by informer · · Score: 3
    With all the recent articles about .NET I think its high time sombody explained to you people a different perspective of what .NET is. I will start by saying .NET means different things to different people, however its a collection of a few technologies.
    To me, .NET is:
    • CLR (Common Language Runtime)
    • Standard Class Library

    .NET (the name iteself) is a MARKETING TERM. Of course the underpinnings of .NET are XML, SOAP, and other technologies usually associated with a networked environment, however .NET iteself can be used however you see fit. Personally if I was to creat an application using the .NET framework I would not be doing to create a distributed network of subscription web services. I would most likely be using it because :
    • My favourite langauges exist and have access to the well defined and well implemented class library.
    • The CLR provides for what microsoft call "managed code". This code is garbage collected and reduces the need for tedious memory management.
    • It is well supported on Windows which is my target market at my current job

    So keep this in mind when you bash .NET as being a "web subscription model". Its more than that, and to some people, it has nothing to do with that.


    --

    If a penguin dies in the woods, and nobody is around to hear it, what sound does it make?
  6. Re: Another thing to remember by Merk · · Score: 3

    Sun Tzu gives good advice, but you have to be careful following it. Grok the whole text before you take small quotes out of context.

    Hence to fight and conquer in all your battles is not supreme excellence; supreme excellence consists in breaking the enemy's resistance without fighting. Thus the highest form of generalship is to balk the enemy's plans, the next best is to prevent the junction of the enemy's forces, the next in order is to attack the enemy's army in the field, (when he is already at full strength) and the worst policy of all is to besiege walled cities.

    Attacking core deployed MS services is akin to besieging walled cities. If it is possible to stop them before they fully deploy .NET that would be like balking their plans. But MS is still the big army and when fighting a superior (numerically anyhow) enemy, it is smart to pick your fights.

    The spot where we intend to fight must not be made known; for then the enemy will have to prepare against a possible attack at several different points;

    In an open source context this doesn't mean secrecy, I believe it means keep all kinds of small projects open and underway and whatever project makes good headway against Microsoft should become "the spot where we intend to fight".

    I think it's important to not ignore .NET, and like Sun Tzu says: "Thus, though we have heard of stupid haste in war, cleverness has never been seen associated with long delays." Don't ignore .NET until it becomes entrenched. But don't let them choose the fight. Don't rush in and make a broken, inferior .NET implementation or people will think only MS can do .NET properly.

    (thank you Project Gutenberg)

  7. Reverse Engineering .NET by StaticLimit · · Score: 5

    So let me get this straight. Microsoft puts out C# to kill Java and .NET to kill JINI and the Linux community is going to jump on board?

    I can understand jumping on board for SOAP, which is a fairly basic element of .NET, developed alongside IBM and others. But I'm not sure embracing C# is the best way to "stick it to Microsoft"...

    -StaticLimit

  8. Re:Hypocrisy by prizog · · Score: 3

    BECAUSE THEY ARE DIFFERENT TYPES OF LICENSE, MORON!

    The GPL is a license on *copying*. That's why you see it in a file called COPYING. The MS EULA is a license on use. The GPL is supported by copyright law. The MS EULA is supported by nothing except a few dodgy court decisions (MAI v. Peak, say).

    Um, also, the GPL has a laudable goal, and whether or not it is required, we should release the source to our code. The MS EULA's goal is evil, and ought to be fought.

    Now go back to your hole, troll.

  9. As inevitable as Samba by KGBear · · Score: 3
    If .NET really succeeds and becomes as ubiquitous as Windows desktops, which is still to be seen, some open source version of it is inevitable, just as something like Samba was inevitable because of Windows desktop ubiquity.

    As for Microsoft being able to change stuff to frustrate open source .NET clients, this ability will be limited because they will want to remain compatible with their own clients.

    In short, if Andrew & friends can keep up to the point of making it possible to run a PDC on Linux and serve a bunch of W/2000, I'm sure it will be possible to do the same to .NET.

    The real issue is, however, that we would still be delegating centralized control over the Internet to one private corporation which is Real Bad no matter what OS you have on your desktop.

  10. .NET: Bill Gates' greatest trick by Ukab+the+Great · · Score: 4

    Future historians will say that greatest trick Bill Gates ever pulled was not lulling IBM into a false feeling of superiority and then clubbing them to death. Nor was it stealing Apple's revolutionary crown jewel and using it to rule to the desktop. The greatest trick Bill Gates ever pulled, they will say, was that he made windows desktop software so ridiculously difficult to install, use, and maintain (via the windows registry) and then convinced everyone to buy into a networked solution, .NET, to solve these problems he created. That will be the legacy of Bill Gates' genius.

  11. .NET is by mr_gerbik · · Score: 5

    the final nail in the coffin for OpenSource. If you think it is hard now trying to find a job using technologies that work rather that technologies that are popular, just wait until .NET comes out. This is when the shit is gonna hit the fan. We are fucked unless we do something drastic. We are all going to be out of a job.. and all the people who have been spending their time drinking coffee and eating doughnuts at these stupid fucking .NET seminars are going to take our place.

    So what can we do? There is only one solution. Start killing. If you know someone who is excited about compileable ASP code... KILL THEM. If you know someone who has Visual Studio .NET beta... KILL THEIR WHOLE FAMILY.

    If you want OpenSource then you are going to have to contribute to OpenKilling. This is the time to seperate the true advocates of free software, from the the poseurs who brag about the money they made when RHAT was hot... which reminds me, if you know someone who sold RHAT at a reasonable price.. KILL THEM.

  12. Hypocrisy by Otis_INF · · Score: 3
    Let me get this straight: when a company puts GPL-ed code in their own closed project, it violates the GPL and you all go bezerk (you have all right to do so). OK. Now, Microsoft gives out this closed source piece of software, under their own license which states you are not allowed to reverse engineer it.

    Doing so will violate that license. Saying that reverse enginering software, even if the license it comes with states it's not allowed, is OK, is stupid, to say the least. By agreeing that reverse engineering of software should be allowed even if the license doesn't allow it, you automatically also agree with the fact that people shouldn't obey YOUR licenses. Copyright anyone?
    --

    --
    Never underestimate the relief of true separation of Religion and State.
    1. Re:Hypocrisy by gowen · · Score: 3

      Fortunately, I'm not an American, and reverse engineering is a right guaranteed to some of us.

      --
      Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
  13. Don't fall for it! by stox · · Score: 5

    Why should Microsoft pay someone to port .net when the community will do it for free and get a much higher quality port than Microsoft would if they did it themselves. Are efforts to reverse engineer .net playing into Microsoft's hands? As long as we fight the battle on their turf, we are greatly handicapped. If we can design an alternative to .net and pull the game onto our turf, we stand a much greater chance of succeeding.

    --
    "To those who are overly cautious, everything is impossible. "
  14. Comment removed by account_deleted · · Score: 3

    Comment removed based on user account deletion

  15. Comment removed by account_deleted · · Score: 4

    Comment removed based on user account deletion

  16. Comment removed by account_deleted · · Score: 4

    Comment removed based on user account deletion

  17. Comment removed by account_deleted · · Score: 5

    Comment removed based on user account deletion

  18. Re:Stuff that matters by _ganja_ · · Score: 5
    Arrgg fuck, should have previewed that before posting it :s/porn/pawn

    I've given away slightly more insight in to my life than I wanted to there I think.

    --

    A journey of a thousand miles starts with a brutal anal raping at airport security

  19. Microsoft is already doing that. by rabtech · · Score: 3

    Microsoft has already comitted to an Open-source Common Language Runtime, which will contain all the basic System.* classes and everything else you need to run any of the .NET compiled languages. It is being developed in conjunction with Corel, and will be released for the *BSD platforms. It should be a short order to get it running on Linux.

    What they aren't doing is putting WinForms out there, which is an AWESOME library for dealing with desktop apps. On some level, I understand this, because so much of WinForms is dependant on how Windows does things, the porting job would be huge (but not impossible.)

    ASP.NET will also be Windows only, but again that isn't surprising, given that IIS only runs on Windows.

    Bottom line: They will be ensuring that the basic core of the .NET programming side is available. As for the extra frills, you'll have to use Windows for those.

    Reverse engineering them (WinForms especially) shouldn't be too hard though -- all of the classes have well-defined interfaces generally. It will just take a lot of tedious work.
    -- russ

    --
    Natural != (nontoxic || beneficial)
  20. Stuff that matters by DaSyonic · · Score: 5
    How about first reverse engineer Microsoft Exchange? A project exists for this, but volunteers are badly needed. I for one have offered to volunteer, but there arent yet enough people who really want to help make this a reality.

    Nothing could help bring Linux to the backend for corporations more so than this... OpenMail and Mailone are costly, and OpenMail is also now dead. This is a needed project!

    --

    Linux: Because a PC is a terrible thing to waste.
    James Brents
  21. Community port a non-issue? by Proud+Geek · · Score: 3

    Microsoft has said that their plans include a reference implementation on a free UNIX platform, likely some BSD or Linux. They are staking their future on this platform, so they want it to be adopted widely and they definitely don't want the DOJ to kill it. I think they may play it safe and make their own port under a free license.

    --

    Even Slashdot wants to hide some things