5 ms·
> Myth 1: .NET is for Windows I kinda had the opposite myth, that .NET core is cross platform, in my head. Then one day someone handed us something to actually
by zmmmmm 5y ago
> Myth 1: .NET is for Windows
I kinda had the opposite myth, that .NET core is cross platform, in my head. Then one day someone handed us something to actually run on Linux so off I went to try and install .NET on our linux box and run it. That's when I found it was anything but trivial and in fact, nearly impossible to install it without root permissions on the server we were using (HPC compute cluster where admin access is forbidden). Then we ran into all sorts of problems with having the wrong version so about 3 or 4 random attempts at different versions later and after emulating the install in a VirtualBox clone of the OS so we could manually fetch out dependencies, we finally got a version of it that ran.
So yeah, maybe it's technically cross platform but it's a far cry from the portability and deployment story that other languages like Java or even Python offer.
- pbiggar 5y agoI don't know what this is about. There's binaries to install, packages for debian, pre-built containers, everything. I've been doing .Net for about 18 months, entirely on Mac and Linux, and everything just works.
- frank_nitti 5y agoMust have been some lack of research or expertise on that person’s team, or some obscure linux distro. You can compile with the platform/arch specific flags to get a regular linux exe that doesn’t require the .NET runtime to even be installed on the system, and that’s advertised on page 1 of the docs
- kumarvvr 5y agoLooks like a bit of beginner stumble, rather than an issue with .NET.
- Beltiras 5y agoIf x-platform is your thing then you better make deployment easy for beginners. Otherwise ppl tend to just stick to the tooling they are used to.
- zmmmmm 5y agoAbsolutely total beginner. But I was just super surprised after years of "download JVM, unzip, run, don't care about what linux you are running on" with Java that when I tried to do that with .NET core it was so different. Java is so easy I often embed a JVM for each app I am running. Meanwhile for .NET I could only find operating system specific packages, they all required root to deploy and installed it system-wide rather than locally. Could not find any easy way other than docker to make a self contained deployment. I see people below telling me this is not so but if that's the case it certainly wasn't obvious when I was doing it (2 years ago).
- victor106 5y agoThis was exactly my experience too. It took an experienced .net developer two weeks to deploy a .net app to ec2. You had to install .net framework (the versions are so messed up) and then configure IIS to serve the app which due to some weird reason was not picking up the app due to some app pool issue. It was a nightmare. With Java everything all configurations are in one file and I am done. No tinkering with myriad hidden registry values.
- rendall 5y agoSuch a terrible experience, worth stating twice!
- victor106 5y agoThis was exactly my experience too. It took an experienced .net developer two weeks to deploy a .net app to ec2. You had to install .net framework (the versions are so messed up) and then configure IIS to serve the app which due to some weird reason was not picking up the app due to some app pool issue. It was a nightmare. With Java everything all configurationst are in one file and I am done. No tinkering with myriad hidden registry values.
- kcartlidge 5y ago> It took an experienced .net developer two weeks to deploy a .net app to ec2. Either they weren't what they claimed to be or, it was so long ago they were using the old Windows-specific Framework versions not Core, or there were some really esoteric requirements, or there was a need to get automatic sign-in using a local Windows account. For virtually every type of app out there (which doesn't need automatic local Windows account recognition) there is no need to install the .Net Framework at all, and certainly no need for IIS.
- frank_nitti 5y agoThe commenter you’re responding to is specifically referring to “.NET Core” which has nothing to do with IIS or “.NET framework”, the latter are components of The older Windows Server stack whereas the former is a genuinely cross-platform development stack. Unfortunately, the commenters who actually read the docs and understand the tech are being buried in preference of people who are either deliberately trying to ignore the official documentation (literally just ‘dotnet publish’ and run the exe ‘./myApp’), or are just that green in using a compiled language that isn’t handled by a nice GUI tool in their cloud vendor of choice.
- kcartlidge 5y agoI can only assume you searched online for help and got sent down a rabbit hole by some random misinformation. Either that or whoever handed you the stuff to deploy did not know what they were doing. A deployable Linux build of a .Net app (if produced with the proper [and simple] commands) can usually even be deployed onto a bare-bones default server using `scp` and `systemd` for example. I would struggle to think of inventive ways to break an app's codebase in such a way as to make it require what you've described.