I have been developing in .Net MVC 5 and now the last 6 months in .Net Core 2.1. Core is pretty awesome, I would say the learning curve is pretty high, but I'm very satisfied. Previously, I used Java in school. The .Net stack offers a lot of jobs in enterprise companies, if you are someone that dislikes SV mindset.<p>Also, Visual Studio is an insane IDE. Although, I recently did have some nasty bugs but updates are coming out pretty quickly.<p>Edit: Microsoft has also added many new videos to help beginners, these cover various topics <a href="https://dotnet.microsoft.com/learn/videos" rel="nofollow">https://dotnet.microsoft.com/learn/videos</a>.
What's crazy is that this is what C# should have always been. I was into Mono way back because I thought niavely it was going to be more successful, but I think if C# had gone this route earlier -> the whole python / go etc popularity boom might have been softer and MS would have had a first class player that would have increase # of folks easily able to build in windows.<p>That and I never got to develop successfully beyond Forms - which I wish was not in preview from designer standpoint. I know old tech, but frankly for older programmers I find it easier and quicker to get stuff up with.
There are a few related announcements, here are some links:<p>- <a href="https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0/" rel="nofollow">https://devblogs.microsoft.com/dotnet/announcing-net-core-3-...</a><p>- <a href="https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0/" rel="nofollow">https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazo...</a><p>- <a href="https://devblogs.microsoft.com/dotnet/announcing-f-4-7/" rel="nofollow">https://devblogs.microsoft.com/dotnet/announcing-f-4-7/</a><p>- <a href="https://devblogs.microsoft.com/dotnet/announcing-ef-core-3-0-and-ef-6-3-general-availability/" rel="nofollow">https://devblogs.microsoft.com/dotnet/announcing-ef-core-3-0...</a><p>- <a href="https://dotnet.microsoft.com/download/dotnet-core" rel="nofollow">https://dotnet.microsoft.com/download/dotnet-core</a> (if you're on 2.2 you have until the end of the year to update to 3.1, which will be LTS)<p>- <a href="https://www.dotnetconf.net/" rel="nofollow">https://www.dotnetconf.net/</a> live now<p>Shame about the bad timing with the UN summit: <a href="http://webtv.un.org/" rel="nofollow">http://webtv.un.org/</a>
Now you can easily write the following state machine in C#:<p><pre><code> static State ChangeState(State current, Transition transition, bool hasKey) =>
(current, transition) switch
{
(Opened, Close) => Closed,
(Closed, Open) => Opened,
(Closed, Lock) when hasKey => Locked,
(Locked, Unlock) when hasKey => Closed,
_ => throw new InvalidOperationException($"Invalid transition")
};</code></pre>
List of performance improvements is mind-boggling:<p><a href="https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/" rel="nofollow">https://devblogs.microsoft.com/dotnet/performance-improvemen...</a><p>How could a mature standard library / frameworks have so much performance gains to be had?
Non nullable reference types are so awesome! I'd love for the C# team to publish some posts on the creation of this feature. Most of the non nullable type systems exist in functional, or pseudo functional languages (Rust has rather functional semantics). It's very neat to see a honest to god mutable object oriented language implement non nullability. They probably had some interesting implementation challenges.<p>Also, is Java working on this too? I heard that they have Maybe, but that's pointless without non nullability.
When I was in University people loathed .NET and idolized Java. Back then I choose C# instead of Java for my main language/toolset; People thought I was crazy. That was 10 years ago. So happy to see how much C# ecosystem has improved and keeps improving; Only thing missing for me is an official full featured C# to C++ transpiler; Only way, right now, of reaching game console platforms is by converting from C# to C++ unfortunately;
It's nice to see Alpine on the list of supported operating systems. The image mcr.microsoft.com/dotnet/core/runtime:3.0.0-alpine3.9 is 86.7MB.
I recently did a live coding tutorial on using SIMD intrinsics which is one of the big new features in .NET Core 3.0. It covers the basics of what is SIMD, what are intrinsics, and I do some live coding/benchmark examples in C# where I cover how to lay out data and use SIMD effectively:<p><a href="https://www.twitch.tv/videos/482930779?t=00h09m01s" rel="nofollow">https://www.twitch.tv/videos/482930779?t=00h09m01s</a>
Is anybody using Blazor for anything that isn't a toy? I'm interested in using it at work but because it appears that the payload is relatively large I wouldn't want to use it for anything that wasn't internal facing.
<i>.NET Core 3.0 will be available with RHEL 8 in the Red Hat Application Streams, after several years of collaboration with Red Hat.</i><p>That's a big deal! Nice.
If you dont know already:<p>Azure has started investing heavily in offloading the task from CPU to GPU and FPGA. There are really good framework on .NET to achieve the same.<p>NVIDIA CUDA GPU - <a href="https://devblogs.nvidia.com/hybridizer-csharp/" rel="nofollow">https://devblogs.nvidia.com/hybridizer-csharp/</a><p>GPU scripting and CUDA - <a href="http://www.aleagpu.com/release/3_0_4/doc/" rel="nofollow">http://www.aleagpu.com/release/3_0_4/doc/</a><p>FPGA - <a href="https://hastlayer.com/project" rel="nofollow">https://hastlayer.com/project</a>, <a href="https://netfpga.org/site/#/" rel="nofollow">https://netfpga.org/site/#/</a>
> Nullable enables you to directly target the flaws in code that lead to NullReferenceException. The lowest layer of the framework libraries has been annotated, so that you know when to expect null.<p>I hope Java gets this one day.. would be a cool feature
The only way to get C# 8 is to move to .NET Core, I can't really avoid this anymore. And for me it means moving to ASP.NET Core...<p>Anyone recently migrated projects from ASP.NET MVC to ASP.NET Core? I hope there is a gradual way, like this: <a href="https://www.hackernoon.com/how-to-migrate-project-from-aspnet-mvc-to-aspnet-core-qt1ks31zn" rel="nofollow">https://www.hackernoon.com/how-to-migrate-project-from-aspne...</a>
For anybody interested, here for a short video on how to containerize an ASP.NET Core 3.0 Web API: <a href="https://youtu.be/Po9jQS7WBDQ" rel="nofollow">https://youtu.be/Po9jQS7WBDQ</a>
C# (the default .Net lang) has so much ceremony, boilerplate/scaffolding and IDE dependence (IDE programmers) and OOP overhead that it requires 5x more lines of code than the same app in Python or Go. Every time my interest peaks, I take a look leave with the same feeling that it's a dated/bloated OOP relic and would take all the joy out of programming. I've also noticed that most C# programmers don't usually know another language (other than a little JS) and seem totally dependent on Visual Studio; if all they had was a text editor they'd be lost. That's not a good place to be.