Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Programming Microsoft OS X Open Source Linux

Microsoft To Open Source .NET and Take It Cross-Platform 525

An anonymous reader writes: Microsoft today announced plans to open source .NET, the company's software framework that primarily runs on Windows, and release it on GitHub. Furthermore, Microsoft also unveiled plans to take .NET cross-platform by targeting both Mac OS X and Linux. In the next release, Microsoft plans to open source the entire .NET server stack, from ASP.NET 5 down to the Common Language Runtime and Base Class Libraries. The company will let developers build .NET cloud applications on multiple platforms; it is promising future support of the .NET Core server runtime and framework for Mac and Linux. Microsoft is also making Visual Studio free for small teams.
This discussion has been archived. No new comments can be posted.

Microsoft To Open Source .NET and Take It Cross-Platform

Comments Filter:
  • by iggymanz ( 596061 ) on Wednesday November 12, 2014 @11:05AM (#48368951)

    Too little too late, Billy Bob Gates

    • by bill_mcgonigle ( 4333 ) * on Wednesday November 12, 2014 @11:07AM (#48368985) Homepage Journal

      They're taking it Mono a Mono.

      With nasty patent clauses, no doubt.

      • by ljw1004 ( 764174 ) on Wednesday November 12, 2014 @11:52AM (#48369637)

        They're taking it Mono a Mono. With nasty patent clauses, no doubt.

        :) Microsoft's patent clauses are spelled out here https://github.com/dotnet/core... [github.com]

        I guess these are the key paragraphs:

        Microsoft Corporation and its affiliates (“Microsoft”) promise not to assert any .NET Patents against you for making, using, selling, offering for sale, importing, or distributing Covered Code, as part of either a .NET Runtime or as part of any application designed to run on a .NET Runtime.

        If you file, maintain, or voluntarily participate in any claim in a lawsuit alleging direct or contributory patent infringement by any Covered Code, or inducement of patent infringement by any Covered Code, then your rights under this promise will automatically terminate.

        Disclaimer: I'm not a lawyer, but I am on Microsoft's VB/C# language team

        • by kthreadd ( 1558445 ) on Wednesday November 12, 2014 @12:47PM (#48370365)

          Sounds reasonable. I don't think they are legally bound to keep that promise, but that they spell it out like that is a good thing. An interesting question that comes to mind is if the promise also covers modified code, it looks like the definition of covered code only covers code published by Microsoft. But still, better than nothing.

          • by benjymouse ( 756774 ) on Wednesday November 12, 2014 @01:14PM (#48370705)

            I don't think they are legally bound to keep that promise

            They are: Promissory estoppel [thefreedictionary.com]. It is like a one-sided contract - i.e. one that you do not have to sign for it to be legally binding for Microsoft.

            • Re: (Score:3, Interesting)

              by rtb61 ( 674572 )

              Easy peasy, M$ can just manufacture an off balance sheet company and sell the patents to them and that company can then sue the crap out of you. So the M$ promises are empty unless the patents are specified, otherwise the future 'owner' can argue which patents are or are not covered, seeing that shite like rounded corners can killed a product under corrupt US Patent law, the risk still seems grossly excessive.

    • Re: (Score:3, Insightful)

      by Anonymous Coward

      Billy Bob Gates

      It's good to know Slashdot's irrational hatred is still firmly entrenched in the '90s.

      • Another development stack and application ecosystem is nice, and if it's licensed under a proper open source license, then I'm all for it. I can't say I'd be in any rush to develop in it, and that may be the real problem here, that Microsoft is about seven or eight years too late.

        • by jbolden ( 176878 ) on Wednesday November 12, 2014 @12:33PM (#48370227) Homepage

          Digia doesn't have the money to keep Qt up where it was. Cocoa is 100% entirely Apple. GTK never really worked all that well outside Linux. Java applications are well out of favor and Oracle isn't throwing much money at it. .NET is the most widely used widget set in the world, it faces no meaningful competition. Why wouldn't it be the cross platform standard almost instantly?

          • by TheRaven64 ( 641858 ) on Wednesday November 12, 2014 @01:10PM (#48370657) Journal
            How about because they're not open sourcing any of the client side bits?
        • by lgw ( 121541 ) on Wednesday November 12, 2014 @12:47PM (#48370361) Journal

          I've spent years using both Java and C# professionally. C# wins hands down. For many years before Sun's demise the languages would leapfrog one another in functionality, but Java stopped keeping up a couple years before Sun went down. Java 8 is about where C# was 5 years ago now. It's night and day.

          The real question for MS is: what about phones? MS has partnered to get mobile cross-platform C# working with Mono, but it's not free if you want VS integration. Being able to write and test on the PC and then run on any phone or tablet (well, at least modern ones) is a big deal.

          • C# > Java
            Scala ? C#
            Kotlin ? C#
            Groovy ? C#
            Clojure ? C#

            NuGet ? Maven
            NuGet ? Gradle
            NuGet ? Leiningen
            ( NuGet > SBT because _ > SBT )

            It's safe to say C# trumps Java. But even with .NET as open source under the excellent MIT license, I'm not sure .NET trumps the JVM and the JVM ecosystem.
            • by Anrego ( 830717 ) *

              To me the strength of Java has always been the tool stack and libraries around it.

              Most languages usually have something available with regards to dependency management, continuous integration, static analysis, code quality, unit testing/test coverage, etc. Java just seems to have multiple well supported and very polished versions of all that.

              And one thing Java seems to have as an exclusive is a consistent coding convention. Yes people sometimes deviate from it, but the vast majority of Java code you'll see

    • by pmontra ( 738736 )

      Maybe not too little, but yes, it's too late. They should have embraced and estinguished the other platforms when they had a virtual monopoly on both the desktop and the server. In the late 90s it was common to write Java web applications and make them run on Windows NT 3.51 and 4.0. Enterprises were comfortable with Windows and were wary of Linux (unproven technology). It took over in the 2000s.

      About being it too little: are they going to port Visual Studio to OS X and Linux?

      • They are integrating major parts of the development process into other, existing editors rather than porting VS (which would be a huuuuuuuge job) - for example, serious effort is being put into adding debugging and intellisense into SubLime Edit for .Net stuff.

    • Balmer once called Linux a cancer that was eating the world's software. Sounds like M$ now has a terminal case. That's what it sounds like, but I'm sure they are lying.

      • by ArcadeMan ( 2766669 ) on Wednesday November 12, 2014 @11:37AM (#48369387)

        AFAIK both Bill Gates and Steve Balmer don't control Microsoft anymore.

        This is a new Microsoft with a new CEO, so we should at least give them the benefit of the doubt.

        • by Anonymous Coward on Wednesday November 12, 2014 @01:21PM (#48370793)

          No kidding. An open sourced .NET should get praise rather than grumpy old complaining. Some spend years complaining and then when a company takes a step in the right direction they deride it. Sure it is a decade overdue, but they did it.

          • They didn't open source all of .NET. The only open sourced the bits that are critical for .NET being viable for cloud computing, which is an utterly self-serving decision that smacks of desperation.

            If Microsoft really wants to raise eyebrows, they should open source the ENTIRE stack, including all the APIs necessary to write desktop applications.

            So far all they've been doing is playing a game of "Gee, maybe if we open up this one particular little tidbit, that'd be enough for people to bite and give our st

      • by xonen ( 774419 ) on Wednesday November 12, 2014 @11:58AM (#48369723) Journal

        You are twisting his words. Ballmer was not talking about Linux, but about the GPL and it's 'viral' nature.

        And to their defense, MS has released more open-source software and libraries in the past. Also they actually contribute to the Linux kernel.

        There's plenty left to dislike MS for without twisting the truth.

        • by Whiney Mac Fanboy ( 963289 ) <whineymacfanboy@gmail.com> on Wednesday November 12, 2014 @06:59PM (#48374249) Homepage Journal

          You are twisting his words. Ballmer was not talking about Linux, but about the GPL and it's 'viral' nature.

          No. You are totally incorrect. Here's the quote, from it source [archive.org] in the Chicago Sun-Times (via the internet archive):

          Q: Do you view Linux and the open-source movement as a threat to Microsoft?

          A: Yeah. It's good competition. It will force us to be innovative. It will force us to justify the prices and value that we deliver. And that's only healthy. The only thing we have a problem with is when the government funds open-source work. Government funding should be for work that is available to everybody. Open source is not available to commercial companies. The way the license is written, if you use any open-source software, you have to make the rest of your software open source. If the government wants to put something in the public domain, it should. Linux is not in the public domain. Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works.

    • You're stuck in the past.

      Bill is too busy saving lives to care about what you think of him. MS is still making money hand over fist and doing an impressive job adjusting to the changing landscape it finds itself on. They are clearly not going the way of Sun any time soon.

  • Our company would have used it as a platform then.
  • by ErichTheRed ( 39327 ) on Wednesday November 12, 2014 @11:13AM (#48369059)

    This is actually a pretty smart idea, but it sounds like what Sun did with Java and parts of Solaris. .NET was designed to be a Windows-only application platform, requiring Windows clients for fat applications and at least Windows servers for web applications. Now Microsoft is seeing Windows become less relevant, but they do want people to be using their software stack regardless of platform.

    Same thing with Visual Studio being made free...kind of like XCode being free for MacOS, and the open source IDEs being free. It's a bold move because now the .NET ecosystem needs to stand on its own, and I guarantee they're going to try to tie this in with Azure somehow (like making you run the free VS in Azure VMs you pay for or something...)

    One scary thing from my side of the house (systems engineering/integration) is the number of new security flaws and the sheer volume of patches that are going to be released once .NET gets more scrutiny. A good thing, yes, but patching .NET is already a pain in the butt.

  • I've got only one question: What license will they use?

  • by trandles ( 135223 ) on Wednesday November 12, 2014 @11:28AM (#48369245) Journal

    I really hope systemd is rewritten using .NET!

  • by Ryyuajnin ( 862754 ) * on Wednesday November 12, 2014 @11:29AM (#48369269)
    I fully expect post-Ballmer Microsoft will continue to surprise all of us.
  • 16 years after it became clear that Linux would break through. Well, at least they posted the stuff on GitHub under the MIT license. Let's see if anyone bites.
  • saywhatnow? (Score:3, Funny)

    by ihtoit ( 3393327 ) on Wednesday November 12, 2014 @11:38AM (#48369403)

    bit fuckin' early for April Fools isn't it?

  • Die, mono, die! (Score:5, Interesting)

    by damn_registrars ( 1103043 ) <damn.registrars@gmail.com> on Wednesday November 12, 2014 @12:03PM (#48369809) Homepage Journal
    As much as I don't care for Microsoft, if this brings about an end to all the headaches I run in to trying to use mono then I will welcome it. I love all the applications that I need to run that have 30 pages worth of crowd-sourced (and nearly unreadable) documentation for how to run them in wine with mono. It's time to be done with this bullshit and get back to work. I understand the goals of mono and they were admirable but they just never really worked out. Hopefully those guys can help the development of the open-sourced .NET.
  • by neo-mkrey ( 948389 ) on Wednesday November 12, 2014 @12:07PM (#48369867)
    "We are Microsoft. Unix is irrelevant. Openness is futile. Prepare to be assimilated."
  • by Nkwe ( 604125 ) on Wednesday November 12, 2014 @12:19PM (#48370037)
    In concept making the .NET framework open source sounds cool. But, does making it open source mean that I can make a change to the framework, recompile it, distribute the binary framework along with my dependent application, and expect that someone else can just install my version of the framework and be good? Or does it mean that if I want to distribute a modified framework, I have to go through some sort of code signing process in order to allow it to run on someone else's computer? What would this signing process look like? In addition the assembly loader in .NET makes certain assumptions about version numbers of assemblies. It will be interesting to see how it works when due to multiple development paths, core assembly version numbers are not necessarily sequential / increasing over time.
    • by ljw1004 ( 764174 ) on Wednesday November 12, 2014 @12:57PM (#48370497)

      In concept making the .NET framework open source sounds cool. But, does making it open source mean that I can make a change to the framework, recompile it, distribute the binary framework along with my dependent application, and expect that someone else can just install my version of the framework and be good?

      Yes exactly that. Imagine you wanted to change System.Xml.dll. You'd do that, and distribute your modified version of the binary alongside your app. (You won't be installing the binary framework system-wide; you'll only be distributing your updates to it locally).

      disclaimer: I'm on the VB/C# language team.

      • disclaimer: I'm on the VB/C# language team.

        Question: PowerShell is implemented using .NET. Will we see PowerShell on Linux?

  • by AmazinglySmooth ( 1668735 ) on Wednesday November 12, 2014 @12:27PM (#48370141)
    I'm sure this will usher in a new era for Linux desktops!
  • by Rob Riggs ( 6418 ) on Wednesday November 12, 2014 @12:31PM (#48370185) Homepage Journal
    Does this mean that the client-side stuff (WPF) will be missing? .NET is a lot less useful if the GUI components are still missing.
    • At this time WPF isn't being ported. They are giving Xamarin a lot of press at the event, that's the current approach to mobile UI development at this time (I've been using Xamarin for over a year at this point for Android development).

      They talked to this a while ago while taking Twitter questions, during the Halftime Show (go down and there's a jump link), it's about 15 minutes long.

      Here's the link.
      http://www.visualstudio.com/co... [visualstudio.com]

  • by HyperQuantum ( 1032422 ) on Wednesday November 12, 2014 @12:46PM (#48370355) Homepage

    To make it cross-platform for real is hard. Lots of programmers don't try to avoid platform-specific and write code such as:

    string fullname = directoryname + "\" + filename;

    ...instead of:

    fullname = Path.Combine(directoryname, filename);

    Another mistake is using explicitly hardcoded paths that only exist in Windows. And another challenge would be case-sensitivity of the filesystem on Linux; this can break programs that were developed and tested on Windows only.

    The framework must provide for platform-independent ways to do things so that it is easier/shorter to do it the right way than using a naive but non-portable approach. Or programmers not really thinking things through will simply keep writing non-portable code anyway. The example above illustrates that; it is way more conventient to combine pathnames with such a non-portable string concatenation than it is with the right approach.

    • There are all sorts of Windows-centric issues that I can see being a problem. The reliance on environment variables pointing to home directories, system directories and program data directories could be an issue. I suspect that there will be a considerable amount of .NET software that will never run on any other platform than Windows, even if the byte code executes.

      Mind you, I've seen Java programs that committed similar sins, so it isn't completely a .NET problem, it's just that, as you say, the .NET ecosy

    • It's nowhere near as hard as you're claiming. Those are bad practices even if you only ever intend to run on Windows. And .NET has had portable ways to do these things since version 1.0, and always encouraged their use.

      The example above illustrates that; it is way more conventient to combine pathnames with such a non-portable string concatenation than it is with the right approach.

      To me the correct, portable code looks easier to read and write. You don't have to check if directoryname already has a trailing seperator, for example. The Path APIs will also handle .. (and ~/ on linux).

      In practice there are only a handful of things you need to know to write portable cod

  • by StripedCow ( 776465 ) on Wednesday November 12, 2014 @01:10PM (#48370665)

    Good for them.
    Open sourcing .NET will probably work better than just shouting "developers, developers, developers!!!"

  • by ndykman ( 659315 ) on Wednesday November 12, 2014 @01:23PM (#48370807)

    Of course, I saw all the expected arguments, and a lot of "but, Microsoft is the exact same company from 20 years ago, so this must be wrong, evil, etc." Well, companies change. Skepticism is good, but evaluating things as they are is good too.

    The .Net ecosystem is a good environment to program in. They have great languages and frameworks. The Python Tools in VS are actually quite nice (they work fine with CPython). It is disappointing that the IronLanguages project has died off, but maybe this will spark some new interest.

    And one of the main drawbacks to the platform in terms of target platforms is starting to be addressed in a real way.

    It's a pragmatic decision. Microsoft has already benefited from open source projects (ASP .Net MVC, Entity Framework), and this is just an expansion of this. The hardest part will be getting resources to get people to really bang on it on other platforms.

    I bet that internally at Microsoft, lots of people are happy about this, as they really do think they did great work and this gives them greater visibility.

  • I hear it's gettin' cold down there ...
  • by JDG1980 ( 2438906 ) on Wednesday November 12, 2014 @06:55PM (#48374219)

    This is very good news. ASP.NET is a great web development platform, far superior to the atrocious hack that is PHP. The only reason so far why PHP has predominated is licensing costs: until now, you needed a Windows Server to do ASP.NET properly (or else resort to unsupported hacks like Mono), whereas PHP is free. Now that the playing field is about to become more level, hopefully it will be the beginning of the end for PHP.

Utility is when you have one telephone, luxury is when you have two, opulence is when you have three -- and paradise is when you have none. -- Doug Larson

Working...