18 ms·
Introducing .NET Core
- steven777400 12y agoAs a .NET developer, I've oft complained to my coworkers that years and years ago, a Java program could be compiled and run as a desktop app, or in the browser as an applet, or theoretically in other contexts. Microsoft kept not figuring that out, requiring different and slightly incompatible libraries (say, between WPF and Silverlight). It drove me crazy. Same with WPF and Windows Phone. I see this kind of motion as very positive and recognition that horizontal re-use is a desired feature (one of the reasons people like node.js).
- pjmlp 12y ago> Microsoft kept not figuring that out, .NET 1.0 allowed it, but very few people ever used it.
- delluminatus 12y agoI'm psyched for the changes in the way .NET applications are being deployed. NuGet was already a great step, and having a well-factored .NET core framework in NuGet is only going to make it better. Even little things like renaming the NuGet packages so that they are the same name as the assembly (hopefully "System.Web.Mvc" instead of "Microsoft.AspNet.Mvc" or whatever it is now) are a good sign to me that this push to create a cohesive .NET ecosystem around NuGet might actually succeed. Unfortunately at least at our company this will take a long time to be fully embraced, but I look forward to the day when you can update the version of System.X that your team depends on without making it a system-wide upgrade initiative to move from one version to the next.
- deleted 12y ago[deleted]
- smatthews 12y agoThey clearly indicate that it was inspired by XKCD and even print the URL to the original comic in the image. How is that plagiarizing?
- deleted 12y ago[deleted]
- mynameisvlad 12y agoExcept they did follow the "license". Specifically, >> as long as you tell people where they're from. Which they did. They even included the URL of where it was inspired from. And even so, it's not up to you to determine what follows the license and what doesn't. It's up to the author and his lawyer(s). Microsoft may have already asked for permission to do what they did, none of us know that. Furthermore, "not nice" would have been not linking at all. What was done is not "not nice". It could've been better, sure, but it's perfectly okay as is.
- terrajobst 12y agoNot linking the original location is a fair point and I've fixed that. --Immo
- nly 12y agoLicense is likely irrelevant, this would count as parody. Also, why so serious? :)
- mynameisvlad 12y agoThe person I replied to basically just played the "OMG Plagiarism" card without any real proof, then tried to cite the license to back themselves up.
- bjz_ 12y agoArt is about stealing and remixing, whilst noting where you got things from. I'm sure Randall understands this, and would not object.
- hockeybias 12y agoI too find what they did free of shame.
- meddlepal 12y agoAs a Java and JVM focused developer the openning up of .NET really excites me. First, because .NET is a fantastic framework in and of itself, but also because this hopefully will encourage Oracle to be faster and more competitive with Java features and improvements.
- Someone1234 12y agoI know what I am about to say is both heresy and insanity, but maybe we could get a C# implementation that compiles to the JVM? I mean, yes, C# has been largely open-sourced already. But with the new compiler framework being opened up also it seems imaginable that someone could write a version that spits out Bytecode instead of MSIL. I have nothing against the JVM, but am not a huge fan of the Java language (and also how the Java libraries have been forced to be developed due to limitations within Java the language). Yes Java 8 made Java much MUCH better than before, but just because Java 8 is a around doesn't mean all the libraries and other underpinnings got magically updated overnight.
- runT1ME 12y agoScala does everything C# does and a lot more. I'm a big C# fan but we're doing new development in scala and even porting some of our C# code over.
- venomsnake 12y agoMost languages give you enough rope to hang your self with. Scala gives you options to choose brand, width and color from a wide selection. The flexibility of Scala was scary when I started.
- pjmlp 12y agoHowever C# is the official .NET systems language, while Scala is a third party language. This already rules it out from our projects, due to the way our customers manage their IT stacks and development environments. So I don't need to ask permission to several IT departments to have C# on our projects, but I do need to do it for Scala.
- Varcht 12y agoI suppose the Xamarin guys need to eat but it's kind of disappointing they are not directly targeting iOS and Android.
- pauldbau 12y agoThe key paragraph from the post RE:Mono is: "we’ll make .NET Core great for Windows, Linux and Mac OSX. This also enables the Mono community to innovate on top of the leaner .NET Core stack as well as taking it to environments that Microsoft isn’t interested in." Seems like a pretty clear split - MS will cover the server-side + Win UIs, while Xamarin handles the other plats (IOS, Android, PS4 etc). This plays to the strengths of both companies, and I would not be surprised if MS has some security in place - e.g. some kind of first option to buy Xamarin should another suitor come calling.
- dubcanada 12y agoI doubt they would want to directly compete with someone who is 100% focused at that market and is already in a partnership with Microsoft. It just doesn't make any sense for them. tbh I wouldn't be surprised if Microsoft just flat out bought Xamarin eventually.
- Varcht 12y agoYeah, I was hoping they would pick them up sooner rather than later. I really like working with Xamarin, I am able to work in C# and share >75% of my code between iOS and Android but I am hamstrung using it on my own projects and it can be a hard sell to use it on commercial projects.
- tonyedgecombe 12y agoI don't see why they would, if they wanted to be in the IOS/Android developer marketplace they have the clout to enter it without buying Xamarin.
- justincormack 12y agoIt is odd that they havent bought them already. At this point I guess they will be much cheaper, as there will be no other potential buyers.
- jameshart 12y agoThe nuget package versioning/app local deployment model introduces a very different model for security patch distribution. Microsoft got their fingers burnt a few years back with the 'embeddable' SQL Server distribution, MSDE, when the Slammer worm hit and there were hundreds of systems redistributing MSDE which had to figure out how to deliver patches separately. When .NET applications all share the installed .NET framework, all applications benefit from Windows Update patch distribution for .NET Framework fixes. But when all applications are distributing their own required versions of dozens of .NET core nuget packages, those patches won't be deployed until the app developer updates the nuget reference, rebuilds and ships their own patch.
- DavidHogue 12y agoI hear that they still plan to have a mechanism for patching zero-day vulnerabilities. Don't know how exactly, but a slide in one of Hanselman's talks mentioned it.
- breischl 12y ago"Critical security fixes must be deployed quickly and holistically in order to be effective. We are fully committed to making security fixes as we always have for .NET." So they apparently have some approach for this, but didn't really say what it is. It'll be interesting to see how this works - some form of machine-wide assembly redirects, perhaps?
- zastrowm 12y agoI believe that they already have a solution and have already used it[1]. > This is the first release from Microsoft that uses Security Updates for .NET NuGet Libraries Support. This feature enables Microsoft to update app-deployed .NET NuGet libraries, for machines with the .NET Framework 4.5.1 or later version installed. This security bulletin was released on 10/14/2014 as part of the monthly “patch Tuesday”. [1]: http://blogs.msdn.com/b/dotnet/archive/2014/10/28/asp-net-mvc-security-bulletin-ms14-059-ships-to-help-secure-net-nuget-libraries.aspx http://blogs.msdn.com/b/dotnet/archive/2014/10/28/asp-net-mv...
- 12y ago
- AntiRush 12y agoThe referencesource project seems to be MIT licensed: https://github.com/Microsoft/referencesource/blob/master/LICENSE.txt https://github.com/Microsoft/referencesource/blob/master/LIC...
- pauldbau 12y agoI for one am extremely excited about having MS supported ASP.Net on Linux. Mono is a great community effort, but the server side has always lagged Windows pretty heavily. Having the same level of API and implementation support at a core level on Linux will be awesome. Shall be interesting to see how this affects IIS market share in 5-10 years time.
- taspeotis 12y ago> Shall be interesting to see how this affects IIS market share in 5-10 years time. Well OWIN supports self-hosting so perhaps this will not bode well for IIS outside of enterprise environments.
- danabramov 12y agoI wonder whether or not this was difficult due to internal politics. I doubt IIS team is too happy about this.
- jameshart 12y agoI guess IIS and Windows Server have an important role providing high performance HTTP service hosting nodes in Azure. If this effort from the .NET team can revive the future of .NET server-side development, the server team can capitalize on the integration of the managed stack on top of the kernel-mode http.sys web tier, to provide a first class hosting environment for ASP.NET applications on the Azure cloud. Microsoft is the one hosting provider in the world who can scale out Windows servers without having to worry about license costs.
- Mandatum 12y agoIs there any anti-competitive laws they'd have to adhere to to take away that "advantage"?
- ensignavenger 12y ago
- icantthinkofone 12y agoWhen Firefox was version 0.9 (2003?), I said it would take a large chunk out of IE's 95% market share and IE would become an also ran browser. I also said, later, that iPhones and iPads would take over mobile and dominate the internet and Google would be more important than Microsoft on a day-to-day basis. In both cases I was made fun of and downvoted into oblivion. So listen to what I'm saying now. In three to five years, none of you will be using .NET anything. Well, some of you will be maintaining legacy stuff but, new things? No. Especially in five years, no one will think of doing any new project in .NET anything. As I said back in 2003, write it down. Check back with me. I'll see you then.
- radmuzom 12y agoWell, it appears that in both cases you were wrong. IE still has higher market share than Firefox, with Chrome being the clear leader it seems (though some usage stats may show otherwise). Even today, Microsoft is far far more important than Google for their users - not necessarily developers. If Google disappeared tomorrow, yes it would make it a bit difficult to work in the short term, but people will manage. If Windows / Offce were to say, vanish tomorrow, then millions of businesses will just collapse and cannot function at all.
- icantthinkofone 12y agoI didn't say Firefox would be the leader. The internet is bigger than Microsoft and, on the internet, no one cares about Microsoft. Rather than edit what I said, I'll add here. I guarantee what I said about .NET.
- nbevans 12y agoLoyalties are cheap on the internet. You can say "no one cares about X". Just look at all the companies that switch between AWS and Azure these days whenever one or the other has an outage. Microsoft is making aggressive moves now. .NET is a technically superior platform to almost anything else out there. True developers tend to gravitate towards what is the best. To see where .NET is heading you really need to look at Xamarin. You act like you are the only one to have made those original predictions (re: IE declining market share, and iPhone being a big shake up to the status quo of the time). You weren't. Nobody else apart from you seems to be acting so blasé about predicting the death of .NET. To the contrary, most are thinking on the opposite end of the spectrum. F# is gaining a large amount of traction now (just look at its advance on the TIOBE index). As is Xamarin. As is Azure. Java is dying a slow death at the hands of Oracle. None of the recent "improvements" to its core language were done correctly . Just look at their type erasure of generics. And their bastardised implementation of lambda expressions. .NET will serve as a natural destination for all those increasingly alienated developers and companies using the Java stack.
- blinkingled 12y agoThe ASP.NET part is what has me excited - it wasn't clear from the article (it may be due to my limited knowledge of the ASP.NET stack) but if I could write a full fledged ASP.NET app on Linux using the often needed features like ORM, LINQ, whatever the equivalent of JSF is - that would be a great development. Right now on *NIX platforms nothing matches the maturity of Java/J2EE. It still remains to be seen how much the of the tooling - debuggers, profilers, deployment tools etc. will be available on non-Windows platforms. May be that will become available as more and more people start using it in Production.
- aespinoza 12y agoMy understanding is that .NET core will not include tooling. This project's focused on delivering a framework only, the Open Source Community (Mono Developers in this case) will take care of the rest. Now, Xamarin has been doing a good job of creating beautiful and powerful tools, so I assume the tooling will be really good. Hopefully one day we will see Visual Studio supported by Microsoft on Linux and Mac. But I also hope other providers, like Jetbrains step up to make .Net amazing on Linux and Mac. So either way this is amazing.
- michaelsbradley 12y agoAlthough it's focused only on C# at the moment, OmniSharp seems to be taking cross-platform .NET tooling in a good direction: http://www.omnisharp.net/ http://www.omnisharp.net/
- blinkingled 12y ago
- dominotw 12y agoI am betting on F# taking off big time. None of the existing functional languages on linux could deliver on functional programming hype. Clojure is too ugly, Scala is too complicated, Haskell too arcane.
- hga 12y agoDoesn't Linux have a relatively close relative to F# in OCaml? Which has had some successes, like on top of Xen and at Jane Street, but as far as I can tell has taken the world less by storm than your other mentioned options.
- cheepin 12y agoF# is very close to OCaml (each language has a few features the other doesn't have). I love OCaml, but Visual Studio's F# integration is why I use F# now. The tooling for other functional langauges has seemed lacking to me, but having a legitimate debugger and intellisense and error highlighting as I type has been a delight.
- arjunnarayan 12y agoHaving access to the .NET libraries is huge. Despite Jane Streets efforts with Core, the OCaml standard libraries just don't cut it.
- notduncansmith 12y agoIs "ugliness" the main point of contention with Clojure? It's a Lisp, so sure people will love it or hate it, but I hadn't heard this criticism directed specifically at Clojure until now.
- cheepin 12y agoNot usually. I usually hear that it's either confusing or that people prefer functional languages with static typing over the dynamic flavor.
- 12y ago
- sytelus 12y agoI know lots of people don't care about Windwos Forms anymore but it would been GREAT if they were also included in the Core, may be re-labeled as just "Forms" with as many platform independent goodies as possible. Native desktop apps are no longer for consumer at large but I keep finding myself developing new desktop app every now and then for development tasks. For example, right now I'm working on desktop app that allows you to quickly browse, slice and dice very large data files of order of 100s of GBs. It would be nice if I can release this kind of apps for all platforms using .net. PS: I don't want WPF in Core. It's over-engineered uglyness I care lease about.
- Pxtl 12y agoWinforms has a lot of really counterintuitive and cumbersome widgets. It's well-known and traditional and straightforward, but there's too much MFC baggage in the various widgets' behavior. The data-binding system is a mess, the DataGridView is utterly dire... so many simple things are just such a pain. Unless you just want to throw some textboxes and buttons on a screen, it's just not good. I mean, ever do some dynamic forms and run out of window handles? Really?
- seanmcdirmid 12y agoI started working at Microsoft in 2007, and so have never been exposed to Winforms. It seems archaic to WPF, which can do almost anything. I don't bother with high level WPF widgets however, and mostly just roll my own because it is so easy to do (plus my interests usually require custom widgets).
- tonyedgecombe 12y agoI've been finding WPF development very slow going, I know this is partly due to inexperience but I suspect mostly because WPF and its tooling is not polished enough. In particular I find myself diving into the XAML all the time, whereas I hardly look at the generated code in my WinForms application.
- pnathan 12y ago
- Xdes 12y agoThe day has come when I can deploy my .NET apps in docker containers.
- shanselman 12y agoYes, and we have and will continue to update a docker for aspnet-core.
- S_A_P 12y agoI have to say I'm very impressed with how ms is keeping .net a relevant platform. A few years ago, I started to worry that I was going to have a skill with a rapidly declining market value. While I still believe that being a polyglot is the best way to mitigate this risk(as well as just general professional development), I do feel like MS is taking great strides in keeping.NET developers employed.
- ravi_thakare 12y agoI have my doubts. MS is clutching at straws. They should have fired Steve Ballmer a long time ago and this should have happened in 2006 - 2008. Python/Ruby(and Rails) and node are probably deeply entrenched in developers minds by now. It seems company managements never learn. Developer mindshare is probably lost by now, my bet is, this is not going to save .net
- frowaway001 12y ago> Python/Ruby(and Rails) and node I think every professional developer is happy when all the hipster kids moved to those platforms.
- pmontra 12y agoI don't want to sound conflictual but many Java/C* professionals use tools written in Python and Ruby daily. I'm thinking about Bitbucket (Django) and GitHub (Rails). They seem to work well enough.
- S_A_P 12y agoI think that is the difference- I personally have never even seen a ROR site in any of the enterprise settings I've worked. I personally have written some tooling in Python, but its FAR from a standard or common language in my experience. (I have consulted at probably 40 different companies from Houston to Buffalo NY and many places in between.) For the type of work I do, its .NET or possibly some Java. Web dev is using some flavor of ASP.net or maybe some mostly static php. Working in Etrm, you are going to use C#, java, or possibly C++ when the situation calls for it.(And a few enterprising companies want Obj-C for their BYOD iOS devices) Granted, this is my personal experience, and this is something that every developer can get myopic about. Development has an enormous breadth to it. Sure the Bay Area/startup scene may be all about ROR, but from what I have seen, its not something that gets used in medium to large businesses...
- jayvanguard 12y agoI think this will be about as revolutionary as Silverlight was.
- nwah1 12y agoSilverlight, from a development standpoint, was actually pretty great. You could write code in .NET with an infinitely customizable vector-based user interface, defined in a clean and consistent XML-based markup language. It could run in a browser, and even on a Mac. You could develop using all the powerful Visual Studio tooling. It didn't crash all the time like Flash. Using Silverlight and XAML was sort of like what I imagine web programming will be like in about 10 years. Except that you could do it back in 2007. You have a high level language (C#) with reusable components (UserControls) and fantastic debugging, profiling, static analysis, and automatic refactoring. Incidentally, that is where the web is just now heading. Higher level and strongly-typed languages (AtScript, Typescript, Flow, ES6+) with reusable components (Web Components) and better tooling (Firefox and Chrome dev tools)
- jayvanguard 12y agoIt would have been great but they didn't follow through on their cross platform commitment. They never have in the history of their company so I'm not sure why people believe this time they will. Open sourcing the core guarantees nothing if they move the Microsoft support at a faster pace and don't commit to keeping the other platforms at par.
- jmnicolas 12y agoThe complexity of the .NET ecosystem as revealed in this article is baffling me. And I don't even have the excuse of being in foreign territory here, I'm a C# dev since 2009. The language itself is easy to learn, but understanding everything behind is quite a challenge (at least for me). I guess it's a feature of enterprise products. Sometimes I wish I could leave work at work and not have to stay on top of my domain of expertise in my spare time.
- V-2 12y agoDoes anybody know it all? It's almost as vast as the Java world. A friend of mine is a C# web dev, they didn't know what I was talking about when I did WPF. I used Xamarin, but I don't know a hoot about Sharepoint.
- pm90 12y agoI feel like most good Software Engineers realize this, sooner or later. I honestly don't know what the answer is. Some move into management, others just leave the field for something else. But I do know that this itself probably justifies the salaries that they're paid.
- sandGorgon 12y agoI really hope somebody starts a kickstarter for Rails 4.2 on IronRuby (based on .NET Core). I'm really keen to see how that will compare with JRuby (which is already quite good). The biggest problem which I see with the .NET ecosystem is the lack of appliction servers like JBoss, Tomcat, Wildfly.. even Jetty. Am I wrong or is IIS pretty much the only .NET application server ?
- pionar 12y agoYou're half-right. With OWIN[0], you can use any application server you want that supports it, there seems to be 5 as of now, including IIS and Kestrel (a dev server that runs under Mono) which aren't mentioned on the OWIN page. IIS, though, right now is the de facto server for ASP.NET sites. [0]http://owin.org/ http://owin.org/
- sandGorgon 12y agohey thanks for that info - never knew about this part of .NET. Could you describe what non-Windows OS stack works with .NET. Can I use MySQL/Postgres with it ?
- guiomie 12y agoAm I the only one not being a fan of nugget? I constantly have issues with "Package Restore", where I need to restart visual studio or clean packages and reinstall them. Sometimes, my package.config will end up with multiple same package with different versions. I get a lot of those problems with MVC. I like C# and static typing, but I prefer nodejs and npm when it comes to packaging.
- leke 12y agoI think C# will be the new Java for the next 20 years.
- sdkaufman78 12y ago> ...is available as open source, and is supported by Microsoft on Windows, Linux and Mac OSX. Somehow, the words Microsoft, support and Linux still don't seem to sound right in the same sentence. I'd been your stereotypical Linux fanboy and MS hater since a teenager. But today I'm totally awed by how radically Microsoft has managed to change itself. I can't even imagine how hard the people inside Microsoft must have fought to make this happen. Well done, guys. I think I'll pick up a C# book for Christmas.