7 ms·
Open Source .NET – 2 years later
- deleted 10y ago[deleted]
- platz 10y agoThe community has begun contributing to microsoft-sactioned projects (notice those projects listed are all ms initiatives). There is still weakness in community initiaited/run projects, 2 years later http://www.aaronstannard.com/the-profound-weakness-of-the-net-oss-ecosystem/ http://www.aaronstannard.com/the-profound-weakness-of-the-ne...
- enricosada 10y agoIn the blog post that's an breakdown of ms project, yes. Used to show how ms is doing with open source? yes. because .net framework (and implementation of runtime,compiler/blc) was owned by ms (mono is another implementation of the runtime/compiler/bcl). But for some components is ok to contribute there: - mono(xamarin) was already migrating to use open source components like the bcl (corefx) after the initial open source of code by ms. It's like dont write two times the same stuff. - coreclr: the .net core runtime - corefx: the standard library (base class library like io etc), used by .net fw (win) and .net core and partially by mono - roslyn: that's the c#/vb compiler, also mono is trying to reuse that - cli: it's the sdk for building projects. Can the project system changed? yes, but not needed now (.net core it's boostrapping another xplat runtime so need tools). as a personal note, the cli team doesn an awesome job to make it easy to contribute and some notes: - asp.net is a web framework, it's used a lot, nice ppl contribute. who like servicestack/nancy/suave, use that instead. - fsharp (http://fsharp.org/ http://fsharp.org/) was and is already driven by community, and lang decision are in repo https://github.com/fsharp/fslang-design https://github.com/fsharp/fslang-design by community and lead by @dsyme And you should also check dotnet foundation pulse and community projects (like Nancy/Nunit/Akka.net/mbrace). Lots of the work done by ms can be useful for others, see Kestrel server (damn fast) who can be used by other web projects like Suave (https://github.com/SuaveIO/suave https://github.com/SuaveIO/suave is a lib, not a framework :D) - dnx was the predecessor of cli, and replaced by it (good job by aspnet team to boostrap xplat on netcore)
- merb 10y agoa lot of this post is around akka. I mean akka is also relativly new... It was released in 2006 so .NET still is in his early stage for such things. I mean Java actually only has akka because of scala. NIO in java is still bad and hard, netty makes that somewhat easier and also the big maintainer of Akka is not Oracle it's actually Lightbend. For me the post makes no sense since Scala didn't had much code out there at the beginnings as well, I took some years to have a various amount of useful projects. (more than two years...)
- bad_user 10y agoNot sure what the comment about NIO in Java was for, there are surely rough parts to it even in NIO2, however compared to the status quo, Java's NIO is like a breath of fresh air. Simply because it is hard to abstract over poll, select, epoll, kqueue, AIO, Windows' async sockets, etc and provide consistent behavior over all those supported platforms. Because of this the async I/O implementation in Mono has been broken for years ;-) As for Akka, well Akka is really not about abstracting over I/O or a replacement for Netty, even though projects like akka-http exist. At this point Netty is so good, well tested and so widely deployed that nobody sane would even dream of replacing it, even though there are some people trying. And on the .NET ecosystem, I really love what Microsoft is doing with it and how .NET Core is turning out, however open-source is definitely a big weakness of the ecosystem. In the Java world, Oracle is not driving anything other than Java the language and the runtime (i.e. the core). Not the IDE, not the frameworks or the tools being used. Everything else is provided by the community. And when I click to view the source of some class or method in my IDE, I have my IDE automatically download the original source, instead of getting a decompiled one, because proprietary libraries are almost unheard of.
- embiggen 10y agoHas it really been 2 years already? I'm still waiting for a decent build system for .NET projects for Linux or macOS. Last time I tried (~6 months ago), it was a tire fire.
- flukus 10y agoMake?
- electricEmu 10y agoEither FAKE (F# Make) or CAKE (C# Make) work perfectly on NIX/BSD systems. The new build system FOR .NET Core works great too with `dotnet build`.
- FlorianRappl 10y agoYes, Cake is wonderful, however, I had great problems bringing it to work due to a lot of issues with NuGet v3 (UTC positive offset bug, looking for msbuild.exe to restore packages, ...). Luckily, I could switch to NuGet v2. Bottom line is: CAKE is great, but if the project depends on things that are not covered by dotnet core one is still screwed.
- ungzd 10y ago> The new build system FOR .NET Core works great too with `dotnet build` They've deprecated it: https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-to-project-json/ https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-t...
- matthewwarren 10y ago`dotnet build` still works, they've just changed the underlying implementation from the 'project.json' based one to instead use MBBuild
- enricosada 10y agojust `dotnet migrate` if you have an old project.json, or create a new one with `dotnet new`. after that as usual - dotnet restore - dotnet build - dotnet run - dotnet pack - dotnet publish - dotnet test the cli is the same, the dotnet/cli team added other commands too (dotnet msbuild, dotnet clean, and more in development using an extensibility to install global commands)
- dblooman 10y agoThe future of .NET is on Linux, not windows. If the community and Microsoft both do everything they can to make that a reality, it could all pay off. As long as you see visual studio only tutorials, windows only build scripts and windows only deployment stories, it won't happen.
- enricosada 10y agothere is not much windows only, check github status of dotnet/cli (the sdk), https://github.com/dotnet/cli#build-status https://github.com/dotnet/cli#build-status, lots of os supported, just clone + build
- issaria 10y agoAs a linux user, I tried: 1) Visual studio only works on windows 2) It runs on mono 3) I don't like .exe and .dll stuff
- jafingi 10y agoJetbrains Rider is coming soon. It's pretty great!
- caleblloyd 10y agoJetBrains Rider Public EAP is out. I've been using the private EAP on Linux for 6 months and it just keeps getting better. I contribute to a couple open source .NET projects working with developers that use Visual Studio on Windows and don't run into many cross platform issues. I commonly see open source .NET Core projects run Windows CI with Appveyor and Linux CI with Travis so catching cross platform build issues is not hard.
- hobarrera 10y agoJetbrains' stuff only works properly on Oracle's proprietary JDK, and not on the reference JDK (OpenJDK), which kinda sucks, doubly so since the former is not re-distributable, making it even more alien in the linux world.
- mmgutz 10y agoIs anybody using this new .NET stuff on Linux for production daemons? My experience in using Mono/XSP for backend services wasn't joyful. Willing to try .NET Core (?) on small projects if it is approaching JVM stability.
- insulanian 10y agoI have a service running in production for more than a year. No significant issues so far.
- oakesm9 10y agoI'd be interested to hear from anyone who has experience with both .net and Swift communities about the differences and similarities in how the projects are run.
- nikon 10y agoMy team has been running .NET core for the last few months and it's been great. Most of us develop on Windows, however I have chosen to use Project Rider as my daily IDE because I run macOS. The latest public build is actually pretty stable compared to the earlier builds. We're building backend services in ASP.NET Core which is very easy to get started with and quite well thought out. Autofac works too. You'll find most (imho) popular libraries are either fully supported or have a beta NuGet that supports .NET Core now. Honestly the thread below about Linux being the future is true for server-side .NET. I'm able to develop on macOS, dockerize my service, build on Jenkins with Linux agents and then deploy to Linux docker hosts. I'm not sure where Windows will fit in this space? And why would I need it?