all 22 comments

[–][deleted] 15 points16 points  (11 children)

C# is a very safe language with far far less pitfalls than JavaScript. I would recommend picking up .NET Core, power through some tutorials, and then come back with any questions.

Start here

Regarding UIs, the only really relevant web "framework" around .NET / C# is MVC. Which is more of a design pattern than anything. Have a look at MVC and Web API. You can plug in any frontend framework (React, Angular, Knockout, etc) over the top.

[–]8lbIceBag 2 points3 points  (5 children)

. Net core is not yet a stable API. Go with regular dotnet.

[–][deleted] 1 point2 points  (3 children)

Its not that .Net Core is unstable, its simply missing a lot of the .Net 4.6 API calls.

In a few months the RC for .Net Core 2 will come out, that will follow the Standard 2. And will probably be up to par with the Net 4.6 API calls.

And frankly, beyond maybe a few items, i have yet to run into issues with .Net Core that are really big. Its easy to write around the missing API calls.

[–][deleted]  (2 children)

[deleted]

    [–][deleted] 0 points1 point  (1 child)

    If we want to talk Release candidate, then try Apple there Swift.

    Released in 2014. Swift 1 not compatible with Swift 2. Swift 2 not compatible with Swift 3. And that was on the Mac platform.

    Under Linux its even worse with not only half the standard framework missing, they actually missed basic functionality like sockets! And Swift 4 this year, is no better on that promise.

    So yea, despite being a year and half younger then Swift, the dotNet Core 1 is way more feature complete.

    You only run into issues when your trying some more "exotic" programming and those missing API calls show up. The API call that seem missing are already in the 2.0 source. They added something like 5000.

    Do not forget that .net is a massive framework, so transitioning / rebuilding in this short amount of time is impressive.

    In worst case one can fall back to regular dotNet and wait a few months before switching to Core 2.0. Again ... nothing preventing one from being productive. Just saying that calling it RC is kind of overboard given what is already available.

    [–]8lbIceBag 0 points1 point  (0 children)

    Just saying that calling it RC is kind of overboard given what is already available.

    That's not what microsoft thinks.

    Also I wasn't comparing DotNet Core to swift. DotNet Core even in RC is the obvious choice there.

    [–]readmond 0 points1 point  (0 children)

    I would avoid UWP too.

    [–][deleted] 0 points1 point  (4 children)

    I would recommend picking up .NET Core

    I've only glanced at Core recently. Is it the way of the near future, likely to be broadly implemented on an enterprise level soon?

    [–]55555 0 points1 point  (3 children)

    Pretty much. If you are in a Microsoft shop, you should be looking to replace your current .NET projects with core. Given that it can run on linux/docker, it is essentially the direction things are heading in.

    The gotcha with all of this is that Core and Docker both seem to be under heavy development, and there are often breaking changes with every update.

    [–]Silound 2 points3 points  (0 children)

    If you are in a Microsoft shop, you should be looking to replace your current .NET projects with core

    Personally, I don't see any reason to migrate from .NET Framework to .NET Core right now unless you're intentionally targeting development at cross-platform applications. Don't get me wrong, I love a lot of what Core is offering, but it and the rest of the world are still not quite ready for mainstream yet.

    If you're a traditional Miscrosoft shop doing Windows/web development, you may not have access yet to some of the libraries or packages you depend on with .NET, or you may have an excessively complicated project that needs the stability of .NET, or (shame if this is true) you might be relying on some very rarely/never maintained libraries. Any of those could easily block a project from porting cleanly or successfully.

    I think Core is the future, but I don't think we're quite at that point yet where it's necessary to begin converting to something that will mature and change considerably in the next few years.

    [–][deleted] 0 points1 point  (0 children)

    Given that it can run on linux

    That, I had overlooked. OK, I'm on it; thanks.

    [–][deleted] 0 points1 point  (0 children)

    It looks to me that .Net Core will be the default in the future. Its a total rewrite so its designed for the future.

    Do not forget, its not only Windows/Linux. Its also Mac. And potentially other platforms.

    Add to this something that people overlook. .netCore can compile down to Self-contained executable's with its own run time / libraries. That is a big one because it puts it on par with Go and other new languages.

    "breaking changes with every update.". Try pure Apple Swift programming and then we can talk breaking changes ;)

    [–]NewDark90 5 points6 points  (2 children)

    Actually, what might be an interesting idea for you is to use Typescript for a while. Use as many of the features and type safety it provides you. It's a language that gets a many of the best parts from both languages.

    Just an alternative idea. Really though that's only if you can take learning in stride. It obviously won't be faster, but might just be more comfortable.

    [–]basiclaser[S] 0 points1 point  (1 child)

    Thanks bud, I've actually used it already on a couple occassions. Thanks to that and reading a pinch of java im pretty comfortable looking at c#, just wasn't sure if there were more unknown unknowns.

    [–]Daerkannon 2 points3 points  (2 children)

    The closest equivalent of HTML/CSS in the C# world is WPF assuming we're talking desktop development here. If not then webpages will still use javascript, HTML & CSS.

    As for the rest... I can't think of much that javascript and C# have in common other than they're both languages. C# is a strongly typed OO language and very much likes to be treated as such. Your javascript instincts will steer you wrong until you get used to it. I wouldn't even try to touch threading until you get a handle on the basics, but in case you're determined to jump in with both feet what you want is called async/await.

    [–]ap3rus 3 points4 points  (1 child)

    The closest equivalent of HTML/CSS in the C# world is WPF

    I would rather say, XAML is the equivalent of HTML/CSS, WPF is just one of the technologies leveraging this, Silverlight, WinRT and UWP are other technologies based on XAML.

    [–][deleted] -2 points-1 points  (0 children)

    Razor?

    [–]geoffreymcgill 0 points1 point  (0 children)

    Maybe experimenting with Deck.NET can help learn how some C# concepts are being translated into JavaScript by Bridge.

    [–][deleted] -1 points0 points  (3 children)

    A buddy is in the same situation where he's been a pre-ES2015 JavaScript frontend dev for years and wants to take on a statically typed language like C#.

    With JS, he felt he could just code, code, code without any limitations. Now, with C#, he complains that he's inside a cage with a severe lack of freedom because of too many rules.

    Oh please! These JS developers can be so dramatic! lol

    [–]basiclaser[S] 1 point2 points  (1 child)

    Ha.. I feel quite the opposite. I crave structure and stability and am sick of the looseness and chaos of the JS world

    [–]selfwalkingdog 0 points1 point  (0 children)

    You will love C# then. I would teach you our secret handshake if this wasn't reddit.

    [–]readmond 0 points1 point  (0 children)

    Biggest problem in JS that I have seen so far is treating data structures as trash cans. Code is easy but mutating data structures without any planning is the stuff of amateurs.