Is.net core ready

I have a potential client who wants to create a Windows web app and is not sure if .net framework or .net core should be used. I am not sure which one to use for the project, any helpful suggestions are greatly appreciated.

Windows.net framework is fully mature, and rumors have it that version 8 will be the last version of.net framework.

Windows.net core is open source, works on different server types, but is relatively new.

The project can have forced upgrading by creating it in.net framework first, and then a few years later converting it to Net core. Since I don’t want to duplicate my work, is it best to just start with.net core to begin with, and create workarounds for lower functionality?

Has anyone else run into this situation?

Edit: fixed grammar

The .NET Framework final version was 4.8, released IIRC sometime around late 2019.

.NET Core was out alongside the old framework for several years now and is on an annual release schedule:

.NET 5, Nov 2020, STS, 18 months support
.NET 6, Nov 2021, LTS, 3 years support
.NET 7, Nov 2022, STS, 18 months support
.NET 8, Nov 2023, LTS, 3 years support – in preview currently

This pattern is planned to repeat annually, so next long term service release would be .NET 10 in about Nov 2025, etc.

.NET Core is the generic name for the “new” runtime, which existed some years prior to .NET 5, so it is quite mature. The main purpose to rewrite the .NET runtime was a focus on performance and retiring technical debt. Prior to .NET 5 it was referred to as .NET Core 3.x I believe.

.NET Core is quite compatible with .NET Framework; the biggest departure is that the web framework has changed enough to break existing code. Under .NET framework 4.8 and earlier it was known as ASP.NET MVC 5, it is now known as ASP.NET MVC Core. Frankly I think they pulled a bit of a Perlman and renamed namespaces just to break things, but just a BIT of a Perlman. According to a colleague who would know better than I because he maintained the web site side of things at my old gig, it is not that bad once you figure it out.

Apart from that, I notice that the caching API has changed, and a couple of other small things, and there are a LOT of new functionality, such as [ReadOnly]Span, [ReadOnly]Memory classes, etc. Most people are claiming a 20% performance increase just for switching from 4.8/prior to .NET 7. My subjective experience bears this out (I’m unable to do formal comparison benchmarks as I no longer have access to the old system).

Another big change is that the VB.NET compiler has been sent to Microsoft India, where MSFT technologies go to slowly die, and they are investing everything into the C# compiler and toolchain, stating that the VB compiler will get no new features or other love to keep it on parity with C#. JetBrains and I think another smaller vendor have promised to retain a commitment to the VB world but you’d have to switch from Visual Studio to Ryder to get the benefit of that.

SO to your question – do you start the project on the old framework and convert down the road, or start with Core and “create workarounds for lower functionality”. I don’t understand the last phrase, the current runtime has the better functionality, it’s just that in a couple of areas it’s also different enough to break things but it is not a question of “duplicating” your work.

In my case I am rewriting in a cleanroom environment, entirely in C#, so there’s no real advantage to staying with the old framework, particularly since ASP.NET isn’t in the mix. It’s just a headless API, needing only a few administration tools which I can bang out in WinForms, which BTW seems to have a new lease on life as WPF seems to be getting the slow-motion heave-ho also.

The ONLY use case I would consider staying with the old framework is if you have an extensive finished / polished ASP.NET MVC 5 or earlier front-end that you want to just hit the ground running with for v1 (or something else deprecated like WPF or a sizable VB.NET code base). But I would build in a port to ASP.NET Core into my roadmap even then. It’s just a question of calculated technical debt.

Thank you Bob,

What a fantastic reply - Thank you!!!

My apologies, I thought that .NET Core was quite different from .NET Framework, and it seems like they are only ‘slightly’ different. I’ll attempt to convince them to use .NET core so that there is no future changes. I really like the possible 20% performance increase :slight_smile:

Back in the old Visual Basic 6 days, I felt that VB.NET wouldn’t retain the same number of programmers switching from VB6. The tombstone for VB.NET will eventually happen. C# seems to be fully featured, and developed, with more code being added. C# does seem to be the preferred way to create a .NET app in a Windows shop.

A unique option that I see with .NET Core is that it can be setup on Windows, macOS, or Linux with a Kestrel server. There may be a little learning with the Kestrel server, I am sure it will be fun. :slight_smile:

Your insight is greatly appreciated. Thanks for your helpful comments.

1 Like

A windows web app? There is so much wrong in this. Firstly you never ever put Windows Servers online to the web. That’s a basic rule of thumb esp. when the server is integrated and member of any AD. Even Microsoft is advising this. Secondly a windows web app will always need the bloatware “Windows” as middleware. Nobody wants this and this hinders you to swap it quickly from on server to another. Hence, most Servers in the web are Linux, even those in Microsoft’s Azure. And Lastly I’ve once worked with .NET and stopped it. Cause like Xojo and due to the fact, that both missing a grand strategy where to go, change comes rather quickly when compared with the life-cycle of business apps (approx 7-10 years).

1 Like

Dotnet may be ready but the Gut is not and the GUI platforms you can get from the net are not that what I would want to have. I tried now 6 frameworks for Windows, Linux, MacOS and Web. That was not really working. Fast fail. While it makes Headache and it depends on which OS Platform you develop…man. That is not Cross Platform. That is simply not ready for shipment. Made for Windows Development and barely for MacOS and Linux. It is like all time: the full power of a microsoft product you will get on…Microsoft.

I can understand the enthusiasts but I have to get Jobs done and not to research how I should do something with which framework to get the simplest thing running: a gui. That is for me not acceptable and not usable. Maybe for others. But it is too complex to get that on when developing for all platforms. And MAUI is not production ready without Plugins. Like many things on MS Dotnet Core you will need something. The best is - and it is working - Telerik for minimum 899 Bucks you get it with light Support.

So I can’t see in Dotnet Core at the moment a real cross platform alternative except I would change my Development from MacOS/Linux to Windows. That will not be happened while I don’t want to be stuck on Windows and also while I even know that the produced Software has problems. It is no alternative.

The other side is: building Software with Dotnet Maui for Mobile and Desktop is more complicated than building the same Software with JavaFX for Mobile, Desktop and Web. That sounds weird but it is so.

To say it is ready is a big wording looking on all the Parts which are not even a bit ready. Ready would mean: all needed components are there and release ready. That is not the Case, instead of it I have to pay to complete that. With CodenameOne, Java Swing and vaadin it is not. With JavaFX also not. While everything is there and running. So my Answer to that question would be: no. Not yet. Not until today.

I can’t speak to this because I’m not a front end guy, but I can only say that we had a very demanding (from a performance perspective) web app atop the old system for years under the old framework running on the IIS web server and it was fast and passed all the security standards we had to attain for our acquisition due diligence by the 20K-employee company that bought us out. It is still running as I speak.

Would it be even better or less maintenance under Linux? IDK. Prior to this I was with a predecessor company that had a similar system running under classic ASP (VBScript) on a Windows server. It made wheelbarrows of money for years that way. Never a security breach on either of those systems, though we repelled a handful of DOS attacks.

To be honest, I think all this fear and loathing outside the MSFT world about MSFT technology is mostly campfire stories.

That said, we will be looking at the pros and cons of deploying Sql Server on Linux and using Apache to serve up the API. In the mix will be our company fund of experience and knowledge with Windows though.

hmm, not sure it is purely campfire :wink: - performance, security were the main triggers among others.

Source: February 2023 Web Server Survey | Netcraft News

sorry but it seems to me, you’ve missed almost 20 years of internet and web developement. If linux needs less maintenance? This question alone marks you as Windows-only-Dev. Well if you want to stick to Microsoft and Windows, go ahead. It#s up to you and your customer. But when speaking seriously about Web Apps, you should quickly switch and learn the linux way…

By the way did you know that 2/3 of all Microsoft Azure VMs are Linux Boxes, need I say more?

If you search for keywords " Defense in depth – the Microsoft way" on seclists.org you will find Stefan Kanthak’s CVEs and findings. More than 80 arguments and spectacular fails which will give you an impression, how rotten Windows became over the years. Just one example: File/Foldernames are basically broken since introduction of UTF8 in Windows (in fact they already were limited broken to 255 chars before but well read yourself):

Bottomline: Never mention Business Web Services and Windows in one sentence, others might laugh at you.

I agree that there are other ways of doing this, which are much less expensive. However, the business will only work with Windows, and they are paying the cheques. :slight_smile:

Agreed, there are definitely people who don’t agree with MSFT’s policies, and at times I think MSFT can be too greedy. Is MSFT the best, no. Is MSFT ok for most things, yes. Is MSFT best at all things, definitely not. There are other technologies which are less expensive, and I personally like the general way in which MSFT does things. MSFT tries things (VB.NET, C#), sometimes they fail, sometimes they succeed. At least they are trying. :slight_smile: The best thing I like about the technology is that there is a consistent theme of maintaining backwards compatibility. Heck, I just installed Xojo 2005 and VB6, compiled an old program and it works on Windows 11. Not sure how many other OS"s can do that? This allows me to convert older algorithms to newer languages and standards that were used almost 20 years ago - very helpful.

I am not exactly sure how to interpret this graph. Yes performance and security are a concern for almost all clients. There are MANY companies being hacked. Within Canada, Sobeys (a large grocery store) with 134,000 employees was hacked and hit with Black Basta ransomeware for Windows servers.

I personally know of many large corporations (more than $100 million in annual revenue) who do not use a database, and use… are you ready for this???

Excel

How can this be true? The part about Excel is that being hacked will have the company down for literally 1 hour - maximum. VBA is not used, and backups are continuously made and given to the owners. Most businesses can recover the time and costs for being down for 1-hour, but companies have a hard time doing business when their system is down for weeks (Black Basta ransomeware).

Please I am not saying that every business should use, or even consider running their multi-million dollar business on Excel. Businesses and Business owners just want to run their companies with as few issues as possible. Businesses are tired of hackers and this is one solution - simple, effective, it works, but slow. Companies just want their data, and Excel is really simple at data. Managers always want results, and you can get this with small amounts of data in Excel.

The first program I typically start with when I am going to write a large algorithm is Excel. I make sure the algorithm works in Excel and then program it in the language of choice.

I think it is safe-to-say, any computer system can be hacked (Microsoft, Mac, Linux, pick your flavour). The issue is less about the technology and more about the people behind the keyboard.

1 Like

Very true!

Without going into details, I believe one of the main advantages of Linux is that you only install what you need: a web server (Apache2, nginx, caddy, whatever).

And then the minimum you need to run a web server: Firewall, login limiter, SSH only access, at least one open port, your own non-root user and that’s it for a simple website. And if you need databases, workload balancer, logging, you only install exactly what you need.

What is not installed cannot be attacked either :wink:

And before anyone complains, there are many more reasons, e.g. that you can install or clone a Linux server in 5 minutes.

I too love Excel - who can live without Excel BTW? And I also salute Microsoft downwards compatibility. That was impressive 20 years ago and it is even more so now.

1 Like

inspired by this thread and netcraft chart, I’ve written a blog article on some baselines regarding Microsoft, enjoy!

@eugenedakin Yes Excel is the magic glue outside any ERP and business software operation. I can confirm this though I would say, those who are still using Excel will more sooner than later find their grave in the minefield of Digitalization.

2 Likes

like bloggers, I’m allowed to say that, I’m blogging as well :wink: - Thank you for sharing your article though I disagree on Microsoft’s future. Sure IIS is none of there core business any longer. But they made a lot of things right on Azure, M/O365. But that’s all in their hands, not much left for devs at least not for pros.

Good for the stakeholders and perhaps customers, less for devs on a long run. Microsoft is still good to lock people in. Windows, Excel, Active Directory, MS Teams come to my mind. It not about if we like it, it is just that they are great in getting companies and people into a vendor lock-in. Relatively easy to escape from if you are an SMB and(!) committed, almost impossible for big cooperations.

Those boxes are just cheapper. It says nothing about quality.

Or someone who knows that some of the largest international banks and world leading manufacturers in aviation and trains are windows only can feel the need to laugh at you. :rofl: :rofl: :rofl:

The problem is that you are using stats from the public side of the internet. Sure, may blogs, social networks and many cute wix sites. But basing a business decisions on what servers are the public web pages are using is dumb.

Making misleading quotes like “Merely 1.2% of all internet hosts come from the Azure.”… Maybe, but who cares if all wix pages are hosted on other services? for a business decision is more usefull to see that 85% of the of Fortune 500 companies use Microsoft Azure.

“Half of the world’s internet traffic comes from mobile devices, where Microsoft has no relevance.” … If you are talking about servers, clients have nothing to do with the analisis.

“Anyone making long-term technology decisions for their business today would be well advised not to gamble on Microsoft.” :rofl: :rofl: :rofl: :rofl:

Azure is so bad that the last year they “only” generated a revenue of about $75.3 billion, the number of Azure users worldwide is approaching the 1 billion mark and Azure’s market share was 21% in the cloud computing industry.

Yeah,

1 Like

You have no idea how most of the biggest companies in the world run with excel as their back end.

You can do that in windows server

Same, you can install a windows Server Core.

A windows server image can be installed or cloned in 5 minutes or less.

Yes but you forget that some much bigger ones are based on Linux servers and on Android and IOS Clients and even Web Clients and multi platform clients. They are laughing also. Look on all SAP users. Linux servers on all edges. The world is not Windows even if you believe it. An it is in my eyes a bit overriding how you react but that can be possibly only my feeling.

There are many Windows servers but even more Linux servers. Normal. And I guess it is too hard to believe. But it is in reality so. Not all are based on technologies which are in the need of any windows server. And experience of the last three and a half decades tells me: many companies don’t like Windows. because it is shitty expensive and it is also tied to a technology stack which is shitty expensive.

What do you believe why Amazon, Facebook, Google to name only three not so small companies are definitely not using Windows servers? And why this companies are relying their entire back office like the most banking applications worldwide on java technology and really the most of this installations also on linux servers?

It is not like you want to suggest. There is not only a bit linux in the real server world. There is much more. Not everybody relies on ASP.net and similar technologies and not anybody wants even to use that technologies. There is much more inside.

Also - and that you should look on - simple web servers. I was just asking my friend Andrew, he is Assistant of the CTO of 1&1 a big German internet provider. They have 2% Windows. Rest ist LINUX. So, please, stop telling that windows is the biggest and linux is nothing. And the largest international banks are not working on windows. Sorry for that. But they are working with Linux Servers in the most cases. And with java and NO Microsoft Programming Languages.

That is an interesting Idea. but you are not analyzing correctly. First: they use Excel to show a few Numbers. But to run ERP, CRM and all the other stuffs there is no Excel needed at all. Even if you think it is true: it is not. ay be you believe that. Sorry, NO. I know bis companies but I don’t know one where the backend is Excel. When and if they need something special the are developing a tool for it. not Excel. There are tons of evidences that this is even best practice. But okay, possibly not for you.

Granted, if licensing cost don’t matter.

Eh. I clearly stated I’ve worked for 3 MSFT shops now running large and heavily-used public-facing database-driven websites successfully from the 90’s to the present day, with extremely high uptime. But that runs counter to some people’s religious devotion / investment in the notion that MSFT technology stinks. It’s okay; I’ll just go on making wheelbarrows of money with it, lol.

Oh, and I had a side gig in 2021 with a mortgage firm running loan origination software based on original ASP.NET, deployed on IIS, horribly written and architected and it STILL worked. My role was to find a way around a hideous plugin architecture so they could organize custom code properly instead of having tens of thousands of lines of code in one source file. I succeeded where others failed. Still, even for all that – it still worked just fine. Despite being MSFT technology with the extra burden of being designed, apparently, by crazed raccoons high on meth.

I would still probably stand up the public API product I was working on using Linux / Apache, despite that I’m not a sysadmin and what little experience I have in that realm is with IIS – for exactly the reason you state, plus, it’s fully supported by MSFT, IOW, they would not blame everything that goes wrong on Linux. They’ve been fine with Linux ever since they showed Ballmer the door. They ported Sql Server to it. They embraced (and then purchased) the open-source Mono port of the .NET runtime to Linux and Linux deployments are now routine. They’ve built shims to run Windows apps on Linux and Linux apps on Windows. Today’s MSFT is not 1990s Microsoft or even 2010 Microsoft.

But right now I have a client that’s a MSFT shop telling me, do this project on Windows Server via Azure because it’s what we’re already deployed on. We’ll buy anything you need. We’ll pay you all the hours you can work to get us a basic product launched by fall. I am not going to choose THAT hill to die on when I already know it can be / has been done with this tech stack already.

1 Like

THERE IS NO PROBLEM. When ever a Customer wants it exactly so you have no choice to do something different. And I believe that is not what Jeannot wanted to say. By the way running a project on Azure means not that only .net core can run on it, even Java can run on it following to Microsoft they even provide us with an SDK for Azure. So at least you have two chances. That you can’t write such Apps with Xojo is clear but there are many choices.

Now it depends what you need to deploy, is it a Desktop Application or a Web Application and so on. I realized an Azure SDK App with Java and Vaadin without any problems. That is today possible without real limitations.

I already published why I think that the dotnet core framework isn’t mature. But what ever: needed is the information for what it shall be mature. If we speak about Windows Servers and Windows Clients: it is. Even with Linux Clients and Mac Clients it is. Clients as Cross Platform for Desktop Apps it is not. Why ever they didn’t took care about it. Nobody knows. We can’t change that. That is the case for Java while you have no problems on all platforms.

If that is even not needed or ou need to deploy a web app: you can do it with a simple Dotnet Web Application. Choose a UI for it and run. That is mature, no question.

But asking for a Desktop Application - and you spoke about mono - there is a problem if this Application shall deployed to all platforms. Something you did not mention here. But even with C# it can be done but it is much more work and many codeines more to write for it.

At the end: Microsoft opened its world. Also for Java and especially for Linux.

Only to be complete I am providing here the link to the informations about the SDK, search on Github and at MSFT website to get more informations.

https://azure.github.io/azure-sdk-for-java/