8 ms·
Why is .net core not taking the world by storm ? Because most 'real .net devs' still work on .NET 4.x legacy windows apps.
by tkubacki 7y ago
Why is .net core not taking the world by storm ? Because most 'real .net devs' still work on .NET 4.x legacy windows apps.
- esistgut 7y agoI don't know, this is only my personal experience but every time I check .NET related stuff some Windows or Visual Studio related thing pops out and I think "nah, it's not worth it". Not to sound negative but I can't really understand why they can't make their documentation platform agnostic like every other project on the planet.
- cypressious 7y agoComing from a Java background, I'm currently a big fan of .NET Core. The C# language has a bunch of nice features, the ASP.NET Core stack is nice to work with and I have JetBrains Rider so I don't ever need to touch Visual Studio.
- snypox 7y agoThe recent Visual Studios are actually pretty great, so far ahead of Rider.
- solarkraft 7y agoI completely understand this perspective. It is, however, completely possible to use .Net without Visual Studio once you understand a bit about and solutions. Especially .Net Core's dotnet command is a wonderful tool that allows you to do basically everything with it - it can run, compile, even run tests - completely on the command line. .Net documentation is however VERY crusty in my experience - all the fragmentation and outdatedness can very well lead to you accidentally reading and trying documentation that is 3 major changes behind, for a library version that has long been replaced. Nowhere will you find any warnings. That is hugely frustrating. Visual Studio itself also makes a very broken impression to me, although admittedly it appears to improve. Not sure whether that's going to be enough to keep Windows or .Net alive in the long term, since even Microsoft is moving to embedded Web apps now, abandoning their own 3 different UI solutions they have been pushing in the last 20 years (completely ignoring the 3rd party efforts like platform.uno, which they could probably acquire quite easily - seriously: Xamarin, but not this?!).
- Mountain_Skies 7y agoIt will be interesting to see what happens next year when .NET 4.x becomes a dead end and Core (renamed Net 5) becomes the only version.
- pjmlp 7y agoIt would hardly be any different from those servers running Red-Hat Enterprise 5 in production. Yep I know of a few places doing it.
- AndrewDucker 7y ago.Net 4 is a Windows component and is supported as long as the operating system is. https://support.microsoft.com/en-gb/help/17455/lifecycle-faq-net-framework https://support.microsoft.com/en-gb/help/17455/lifecycle-faq...
- dodyg 7y agoThat would be weird. My company migrated to .NET Core 2 years ago.
- dustinmoris 7y agoBecause .NET Core only attracts .NET developers and not developers from other languages. Why? Because Microsoft created a herd of sheep instead of open minded engineers. Every .NET Company only looks for people who are interested in Azure, SQL Server, CosmosDb, Azure DevOps, whatever latest frontend framework gets shipped in Visual Studio, etc. etc. This has the effect that developers who don't want to lock themselves into an extremely dissatisfying and inferior Microsoft stack are completely turned off by using .NET (Core). If there were more companies who would just use .NET Core for what it is and stay open minded to use other non Microsoft technologies for other things as they fit, then it would do the .NET platform a bigger favour, but this is not happening at all or at such a slow rate that it's almost unnoticeable at the moment.
- kuzehanka 7y agoThis matches my experience at a large org. We have engineers, and we have .net developers who are a completely separate and herd which is useless if the project doesn't involve a stack entirely composed of MS products. When engineers see a new project/problem, they start picking best tools for the job. When .net developers see one, they start picking items off the azure architecture templates. I love C# and F#, C# was the first language that I truly enjoyed using. But I don't lock myself into tools or languages. Meanwhile .net shops actively train .net developers to only learn the MS stack and ignore all else. I think if one takes a second to look at the amount of downvoting on both sides of this discussion, it's pretty clear that there's a distinction and polarisation between .net developers and modern full stack software engineers.
- UglyToad 7y agoIt's hard for blanket statements not to raise hackles, I think you highlight a real trend but it feels a little broad of a statement to me (the joys of distilling opinions into text). The first language I learned was Python and then I got a job in a .NET shop and I've been .NET since, to declare my bias. But I'm not dyed-in-the-wool Microsoft stack, I think Postgres is better than SQL Server for almost every use case (though SQL Server is superior to Oracle or MySQL for most others), that something like Rust is better for embedded or systems programming, that if you need cross-platform UI you're better off using something outside the Microsoft stack and that it makes a lot more sense to host a .NET web app on a Linux server and I have no interest in Azure, or indeed any cloud vendor's properitary tools. I think there exists a trend, as in Oracle shops or IBM shops, for some large/corporate companies to tie in to a tech stack and consider, for example, Sharepoint or CRM or SAP, to be the solution to everything. I think this has less to do with individual developers and more to do with sales pressure. A lot of developers just code for a job, they have no interest in it outside of it being a tool to work with and since .NET is (in the studies I've seen) within the top 3 techs by number of jobs in most of the Anglosphere it tends to be overrepresented in corporate environments where development is 'just a job'. But there are also many companies using whatever tool is best for the job, within the constraints of what their team knows, or cost, or whatever those might be and to tar every primarily .NET developer with the same brush is going to annoy people. I still regard .NET and particularly .NET Core to be one of the best environments I've used to build Web Apps in. You get great performance [0], type safety, memory safety, in my view the best IDE available, an excellent quality standard library, access to F# as you mention, etc. I think stereotyping a ".NET crowd" is unhelpful, as is a stereotype about front-end developers all being boot-camp trained developers with little experience or C++ developers all being cranks who refuse to work with modern technology. [0]: https://www.ageofascent.com/2019/02/04/asp-net-core-saturating-10gbe-at-7-million-requests-per-second/ https://www.ageofascent.com/2019/02/04/asp-net-core-saturati...
- pjc50 7y agoMy personal opinion is that Microsoft's absolutely terrible naming scheme fails to sell anyone on why it's different or important. Edit: can anyone give me the one-paragraph rational for why Net Core should take the world by storm? C# is a nice language and I'm a mostly happy VS user (except when I have to fiddle with MSBuild), but why should I go in and change the dropdown from ".Net Framework 4.5.2" to ".Net Core"? Let alone why any user of, say, Python or Node should drop everything and come over to C#.
- pjmlp 7y agoAs someone that has been on and off .NET since the pre-release days (thanks to working at a MSFT partner back in the day), the constant reboots from the last couple of years, and breaking changes across .NET Framework and .NET Core (e.g. WCF, EF 6 tooling), inspire a wait-and-see attitude among a large majority of us.
- kogir 7y agoAbsolutely this. They changed names, project format, build tooling, etc faster than the ecosystem could keep up. You couldn’t even be sure there existed a set of compatible ASP.NET Core, EF, and standard library packages in nuget without endless trial, error, and binding redirects. I tried 2-3 times up to and including .NET Standard 2.0 to switch and got burned by busted tooling and package conflicts every time. I’m starting a new project now and am still wary.
- LandR 7y agoNuget conflicts is still a big issue IMO. One of the major pains of my life as a .NET dev who does .NET core right now is Nuget and binding redirects!
- manigandham 7y agoIf you stick to the LTS releases, especially v2.0 and above, everything is very solid. It always best to wait for version 2 anyway with MS projects.
- cm2187 7y agoIn all fairness, .net core 3 is the first version of .net core that is really useful and will feel other than some sort of public beta. It will be interesting to see how .net core 3 succeeds.
- LandR 7y agoThat's been my opinion for a while too. Some of the .NET core stuff is pretty neat for basic demos to show off the tech. But for actual enterprise stuff I've so far found it really frustrating to work with.
- Mountain_Skies 7y agoDouglas Coupland's mid 1990s novel Microserfs makes mention of a popular belief at the time that one should always wait until the 3.0 release of any Microsoft product before making serious use of it. Guess somethings don't change. I haven't given net core 3 a trial yet but will use serial ports as my initial tests. In the 1.x and 2.x versions the serial port support was not up to the same level as the net framework.
- EnderMB 7y agoHaving worked as a .NET dev for the better part of a decade, it's a mixture of things: 1. The cost of moving a standard .NET application to .NET Core. If the benefit is there, it'll happen, but for established code bases I don't see why they'd bother when standard .NET works fine. 2. On the web side of things, many of the big content management systems aren't on .NET Core yet. Umbraco is the king of CMS's on .NET, and once they pull their finger out and focus on .NET Core I think we'll see a wave of developers moving to Core. 3. For general web stuff, there isn't a solid reason for people to move from the likes of Ruby, PHP, and Python to C#/.NET Core. 4. There's still a perception that .NET Core is a WIP. That's understandable, considering .NET has been battle-tested for decades, and .NET Core is still (relatively) new to the party. There was also the csproj issues from a while back, and that set off a few people from fully switching. 5. The naming has confused everyone, so the safe option is to wait for everything to sort itself out. .NET isn't going anywhere just yet, and the switch to .NET Core won't be a huge one for those that have had to adapt to new C# and .NET libraries over the years anyway.
- thefz 7y ago6. Having to be the one to explain to the boss that .NET Core exists in the first place
- EnderMB 7y agoIn all fairness, it's no different to any other major iteration of a framework. I imagine that a lot of Ruby developers will be telling their bosses about Rails 6, and trying to push towards it for multi-db support for large applications. The big difference for me is that many .NET shops rely heavily on certain libraries and tools, and many of them are very slow to adapt. Umbraco, as a prime example, recently upgraded to Angular 2 for its admin section, and is probably a year or two away from an initial move to .NET Core.
- elorant 7y agoBecause we don't trust it. They keep changing the framework, the naming, the tooling, and whatnot. I have no time for this shit. .NET as we know it is rock solid and I have no intention of moving on in the foreseeable future.
- UK-Al05 7y agoI work for a large company that uses .net. we are slowly moving .net core in little bits. These things take time.
- crispyambulance 7y ago> Because most 'real .net devs' still work on .NET 4.x legacy That may be true, but .net core is definitely aiming to increase adoption and it makes a compelling case. The new stuff is a pleasure to use. I almost wish Microsoft would stop putting much effort into dead ends, however. It's going to be possible to use WPF and even Windows Forms after .net 5 transition (they'll be windows-only libraries). VB .NET is still kicking (just let it die already). I wish they would have folded all those person-hours into .net core stuff instead.
- opencl 7y agoWhat's the not-dead end way of making GUIs in .net core supposed to be?
- stetrain 7y agoFor Windows, .Net Core 3 lets you create Windows GUI apps using the standard Windows frameworks (UWP/WPF/WinForms) https://devblogs.microsoft.com/dotnet/net-core-3-and-support-for-windows-desktop-applications/ https://devblogs.microsoft.com/dotnet/net-core-3-and-support... For cross platform there isn't an official solution, the closest would be deploying as an Electron app.
- WorldMaker 7y agoThe official cross platform solution for GUI apps is Xamarin / Xamarin.Forms, though they are mostly focused on mobile. There are desktop renderers for those, but they are currently in some weird Schrodinger's Cat state between "officially supported" and "community supported". There are other entirely community-supported/third-party efforts like Avalonia and Uno around as well.
- pknopf 7y agoAnd Qml.Net https://github.com/qmlnet/qmlnet https://github.com/qmlnet/qmlnet
- 7y ago
- caseymarquis 7y agoIn my case, I'm waiting for EntityFramework to catch up before switching most legacy applications over. I've been using standard 2.0 for new projects since it became available and building for dual deployment, either with Heroku or as a Windows service. There's definitely a crowd of .net devs that doesn't care. They're probably not the ones on HN though. I've been holding my breathe waiting for all the libraries to catch up. We're so close! I actually moved to .NET by choice for the Nemerle language a long time ago (C# mostly caught up, so I switched over). I might not be representative of everyone, but there's at least a subset of developers eagerly waiting on some small thing which will let them make the jump.
- WorldMaker 7y agoEF Core has caught up a lot in 3.x. It's LINQ support is now possibly better than EF ever was, especially with the move to the new "throw an error if the query provider can't do it" model where "downgrades" from SQL to in memory operations must be explicit now (such AsEnumerable() calls). EF (not-Core) 6.3 has also been finally ported to .NET Core (though I think it is still considered "Preview" quality) which should be directly plug and play for some types of legacy applications (Microsoft seems hopeful it will mean more WinForms and WPF apps will just run on .NET Core now).
- caseymarquis 7y agoI'm waiting for EF6 on .NET Core, just as you said. Once that's successfully working, and I've got all the web stuff updated to latest, then I'll look at moving EF to its latest version as well. That part scares me a bit more however, as we have hundreds of databases being managed via EF6 migrations, all at different versions (based on customer maintenance payments). We'll need to keep EF6 as a dependency as long as we want to keep updates simple and have older versions in the wild.
- krageon 7y agoCurrently it is just another language - for me one of the real compelling cases of working with .NET was the absolutely god-tier integration of tooling for creation UI kits (that is aside from the very good case that C# is a language that is superior to anything else I've professionally worked with, that's not an argument that will sway anyone). Such an argument doesn't exist for .NET core, because it suffers from the same problem as every other contender: Creating a cross-platform GUI is an absolute cancer and is by far the biggest problem you'll have writing code. That being the case, why switch?
- metadata 7y agoActually, they are not making a cross platform GUI. They're simply supporting in NET Core what they have done so far in NET Framework - but only if you build for Windows.
- manigandham 7y ago.NET has already taken the world by storm if you consider actual usage. It powers software for the Fortune 500 and millions of small businesses. It lets you build desktop apps, websites, frontend SPAs (Blazor), mobile apps (Xamarin), backend services, and games (Unity). There's no need to rewrite working .NET Framework apps, but .NET Core has seen massive uptake with cross-platform development and runtime, incredible performance, and interoperability with just about every other common open source languages and projects.
- macca321 7y ago'the world' is not people already using another flavour of c#. Why isn't .NET taking over from python/node-with-typescript projects?
- rraghur 7y agoProbably because the crowd that mostly was on. Net is the one in enterprises and they're not going to migrate legacy apps anytime soon. Seriously, other than stack overflow and maybe Ms owned properties, does anyone remember any other large scale site that was on. Net? IMO, that means that. Net was never targeting the early adopter market. Ergo, their new platform, which is just different enough, isn't probably having many adopters. Secondly, having to wait for libraries to catch up is probably a real reason initially (till.net standard 2.0?) But that just meant when slower adoption. Add to this, to maintain cross platform tooling, they're now have cli first tooling and flux around fileformats. That imo, made a lot of the traditional .net shops uncomfortable. I've jumped b/w .net and Java and very comfy with Linux. Last few years have been. Net and .net core in prod. after 2.0+, it's been absolutely wonderful. Great language ergonomics and I can finally ditch vs for vs code. 3.0 is only going to make it better But then, I'm probably far from the representative .net dev here.