Full-Stack ASP.NET Core with Angular, React or VueJS – Is it still a viable choice in 2017-2018?

It is common knowledge among many seasoned web developers that building a website from scratch 15 years ago was a rather simple task. To begin with, we didn’t have to deal with the insane amount of screen resolutions brought by big-size monitors, ultra-high resolutions, and mobile devices; we could avoid the urge of learning a lot of (back then) “experimental” stuff such as AJAX, JSON, and XMLHttpRequest, as the established DHTML-based techniques we already knew were more than enough to get the job done; our simple, quick ‘n’ dirty JavaScript hacks could easily shine among friends and colleagues without being embarrassed by cross-platform JS libraries such as jQuery (2006); we didn’t have to implement time-consuming and/or knowledge-demanding features such as login with Facebook, Sharing buttons, SEO meta tags, Twitter Cards and RSS feeds because they were either not there yet or not so important. On top of all that, there still weren’t that many fully-featured, great-looking, award-winning CMS solutions such as Drupal (2001), WordPress (2003), and Joomla (2005) to compare our results with.

Sounds pretty reasonable, right? Except it’s not. The Web is always changing, just like the rest of the world: the complexity level of the average website is constantly increasing because the usage is more diversified, widespread and intense, however, such growing excitement was also a great thing for those who wanted to make a living out on building web applications, assuming they had the guts to keep studying, communicating, and living the blowing storm of new technologies behind these winds of change. As seasoned developers, we should be able to cope with such simple, yet inevitable truth, adapting ourselves before and better than our customers instead of being trampled by their increasing demands.

Even nowadays is easily demonstrable (I already wrote a couple books about that) that is still entirely possible to develop great web applications from scratch, providing that we use the proper tools and have the patience to understand how we can blend them together to achieve what we want. Luckily enough, the insane amount of additional work required nowadays can be mitigated by a lot of powerful frameworks that make their way through the development scene: we’re talking of server-side runtime environments like ASP.NET and Node.js and also of many client-side frameworks that quickly made their way, such as AngularJSReact, VueJS and the new Angular reboot, which started with version 2 and is now experiencing its fifth successful installment. For my projects, I ended up chosing the two of them that better fit with my way of thinking: ASP.NET Core to cover the server-side aspects, and the new Angular to deal with the client-side. Not only for their fancy features and elegant design, but also because they happen to have something revolutionary in common: they are both a complete rewrite of their massively-popular previous installments, who played a leading role in their respective field.

If you want to know more about .NET Core and Angular check out the ASP.NET Core 2 and Angular 5 book, available in paperback and/or digital format!

Why a development team should do that? What’s the purpose of reinvent their own widely-acknowledged wheel despite it still rocks? The answer most likely lies in what we said earlier: in an ever-changing world such as the one we’re living in we need to be humble and wise enough to keep moving forward, embracing – sometimes even enforcing – the iterative processes required to forge better tools for building a more complex, yet also more enticing World Wide Web.

The guys behind ASP.NET and Angular were brave enough to accept the challenge: after a few months of unstable releases and breaking interface changes, three major releases and more than 80.000 StackOverflow questions asked in less than 18 months, it definitely seems that their choice was worth the effort: that framework is meant to stay, at least for the time being.

What about us? What about you?

This article is an updated rewriting of the preface that I originally wrote for the ASP.NET Core and Angular 2 book.

 

RELATED POSTS

About Ryan

IT Project Manager, Web Interface Architect and Lead Developer for many high-traffic web sites & services hosted in Italy and Europe. Since 2010 it’s also a lead designer for many App and games for Android, iOS and Windows Phone mobile devices for a number of italian companies.

View all posts by Ryan
  • pi may

    umm, no, .net is a total buggy unfinished mess, after three years it a POS, zero future

    • I definitely disagree but hey, everyone has his opinions. PS .NET has been around since 2002, .NET Core 1 has been released in 2016-06-27, so there is no such thing as “three years”.

      • pi may

        Introducing .NET Core
        ★★★★★★★★★★★★★★★
        December 4, 2014 by Immo Landwerth

        https://blogs.msdn.microsoft.com/dotnet/2014/12/04/introducing-net-core/

        but hey everyone has it’s opinions,

        • I strongly disagree with your rage-review of the whole .NET framework, a single poorly motivated line which you also failed to back-up by referring to a specific scenario (Marcel) which has little or nothing to do with the .NET ecosystem: the issues described there are mostly about EF – no EF6 support in .NET Core, EF Core being unhealthy and so on. Let alone the fact I strongly disagree with EF Core being unusable, as I successfully used it in a number of different scenarios already, you aren’t forced to use it: you can still compile your project using the .NET Framework (like Marcel should’ve done, at least for his specific scenario) and use EF6 / Dapper / Massive or any other SQL (or noSQL) based alternative, just like thousands of devs are actually doing nowadays. Let’s not confuse the experiences of people who are struggling to MIGRATE their existing .NET Framework 4.x code into .NET Core without reading this:

          https://docs.microsoft.com/en-US/dotnet/standard/choosing-core-framework-server

          with those who are actively looking for a modern web development framework.

          Regarding the proselytizing thing, I am not doing that – just talking about my personal experience and overall choices here: please notice that I never trash-talked about any .NET alternative here, as I’m often asked to use them as well. That said, I would be happy to read what you’ve been using rather than having to object to your subjective thoughts regarding .NET.

          • pi may

            it’s revealing and so typical, the failure to address the
            ” no such thing as “three years”.”
            when I give concrete proof ,and not only that example of me testing on release and posting about ultra basic problems on a so called “RC” which it wasn’t it was pre alpha at best , the just ignore criticism and when outright being proven wrong without any response is exactly the type of people MS has on core,
            so I say it again “after three years” , yes three years since the first release so they’ve been working on it much longer than that.

            If you since “rage” in my comment I think It’s that same old “panic” on your part,
            have you been jumping thru all the hoops like a good MS Dev fan boy?
            Metro/Modern/Store/WP7,8,UWP, if so you know that end of the road about to collapse feeling, get ready, it’s deja vu all over again.

            this thing was sold as a replacement for full framework from day zero. it’s not ,
            can you make something work, sure, BFG, people make 1000s of techs work.
            is it anywhere (and I mean within a million miles) of a viable full spectrum framework, hell no , savy dev avoid this tar baby, there are a tiny few of the same old bottom feeding tech dejour blogger and shill and minuscule few that are working directly with MS , but it’s mostly victims and onlookers(growing more skeptical by the day) , believe me as long time full time .Net it would have been nice to have a Linux / iot option, I will still monitor just in case but as of now it’s out of the question as it is missing way to many basics,

            and yes by selling this as “the future” you are most surely proselytizing and that come with a moral debt whether you expect it or not.

          • By saying that “this thing was sold as a replacement for full framework from day zero” you failed to understand the meaning of .NET Core, which is pretty much summarized in the post I linked to you (and you ignored). There is no panic on my side and I’m definitely not a MS fanboy at all, as I also work on CentOS / Phalcon / MariaDB-based stacks for work and hobby and there are other promising non-MS frameworks which I personally root for (though quality doesn’t always win, sadly). You have not proved your point at all, you just threw in some issues you had a year ago and backed them up with some unwise EF transitions made by people who tried to jump in without reading anything. No wonder you symphatize with them 🙂 Learn to separate the good MS stuff (.NET Framework, .NET Core, TypeScript) from the bad/disappointing MS stuff (Web Parts, MetroJS, WP, UWP so far), just like it is for any other complex integrated frameworks out there (remember when Django switched from FBV to CBV?) It’s not that difficult actually, you have to start reading instead of doing the bigmouth though.

          • pi may

            what a daffy response, I’m gonna go ahead and assume you are that slow,
            December 4, 2014 by Immo Landwerth
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            three as in numeral 3 years, tomorrow, and you respond with
            some issues you had a year ago

            for the 3rd , III third time you still haven’t haven’t conceded
            that the “so there is no such thing as “three years”.” was and is wrong.

            it 3 years tomorrow
            I get your emotionally invested, for future reference avoid the fluffing of feathers with the resume, It never makes a point other than you have none.

            after 3 years waiting I think I have every right to call in a POS when it’s supposed to be open sourcing and still lack very basic piece, it’s a mute point anyway it’s in a cascading collapse anyway,
            https://uploads.disquscdn.com/images/f2d9ebc4274e946bb29c1bda145dbc267037bf0689865ca6e3e8d78e7891f5ed.png

          • pi may

            the full stats tell a better picture
            1.0.had 1,056,615 downloads
            going no where on gitbuh, foundation forums a ghosttown

          • I would hardly count that 2014 post (and the incomplete preview code that they published that year to demonstrate they went to open source) as the birthdate of .NET Core framework. However, I did understand your three years point in my first reply – and moved on to the actual topic: sorry for writing “a year ago” instead of “years ago”, I also assumed you were sorry for writing “.net” instead of “.NET Core” or for implying that I’m selling .NET Core as “the future”, which are two blatant false assumptions: looking forward to see you concede on them, considering how much you’re full of yourself I’m pretty much sure I can forget that.

            The facts here are that you’ve hit some bugs in .NET Core three years ago: I understand that, still I’m not surprised as shit like that can happen during pre-releases; I disagree with your opinion on .NET Core three years after your first attempt; I don’t think that what Marcel did was relevant; I’m not a MS fanboy like you tried to depict me; no resume on my part, just trying to show you that you can appreciate .NET Core without working for MS or having a limited spectrum; no sales/proselytism here, just personal opinions – if you can’t accept that to the point you feel the urge to apply the POS sticker to my subjective post then you are the one proselytizing.

          • pi may

            ok, sorry for conflating your post with the behavior of the core team et al, if you’re unaware that on you and , FYI, I didn’t just encounter prob 3 years ago, I’ve been monitoring the progress since that time , If you had you’d might be aware of the actions of the promoters of .core , FYI the fact is unless you are doing vanilla ASP there is not much use for core, which was sold as the open sourcing of .NET not a new limited functionality reimaginering , given where this is at on 3 years today

            is see you’d like to go back to
            1.0.0-rc2-3002702 (current version)1,775,5915/16/2016
            ^^^
            ^
            the rc used to mean Release Candidate not pre aplha

            the so called 20,000 API Microsoft.Windows.Compatibility that Windows head Kevin Gallo touted in Sept an outlined in the
            linked I posted from 11/16/2017 , today 19 days later has 717 nuget downloads or 37 /day

            core has entered a cycle of lack of interest lack of testing with dwidling
            user base, a dis-virtuous cycle, and after Mr gallo also stated on a channel 9 interview that no investment further investment in WPF and laugh with the clown interviewer that this and UWP are the only future yeah . I think I totally justified in saying POS, go take a look at
            https://w3techs.com/technologies/details/pl-aspnet/all/all
            people are drooping asp.net , almost no ones switch to core