Introduction
Why ASP.NET Core?
It's difficult to adequately address this question without some level of bias, where many of the key factors are highly opinionated depending on your own technology preference, area of interest, existing knowledge, familiarity with the technology, personal view about the marketplace and competition.
In addition, answering this question as an individual developer without business consideration can be very different from answering this question with business consideration.
In general, all software frameworks each has certain benefits, created to help improve development efficiency, minimize repetitive codes and simplify code-complexity. Comparing with some other disciplines, such as music, mathematic and medical-science which have been around for thousands of years, the software development domain is very young, only been around for less than 80 years with lots of room for new innovation and improvement. And, some of the newer software development disciplines, such as artificial intelligence, data-science and machine-learning are even younger, evolved within the last 10 to 20 years or so.
Over the past half-centry, the software development environment has been through multiple evolutions, changed from using mainframe computers on the back-end with terminal-clients on the front-end, to PC-based client-server model. Then, within the last 20 years, as the result from the explosive growth in the Internet, mobile-device and cloud-computing marketplaces, mobile and web-based application became important development focus areas that impacted just about every software technology company in the world.
In the foreseeable future, computing-hardware, information-technology-infrastructure, cybersecurity, privacy-concerns, legal-mandates and market-expectations that impact software development are expected to go through dramatic changes. A software framework rated as the best this year by some organization, may be forgotten or abandoned in just a few years.
The software development environment is humongous, and you don't have to work with the most popular ones to be successful. In fact, focusing on certain specialty can yield higher pay and rewarding career path.
When selecting a software or application development framework, for an enterprise application project with long life-cycle and serious financial impact, it's prudent to include the following considerations:
-
Framework/Technology maturity
-
Cybersecurity and legal concerns
-
Community and support
-
Development environment and tools
-
Deployment and maintenance environment and tools
-
Licensing
-
Available pool of talents
-
Technical debt associate with the project's life-cycle
Pros and Cons
Talking about a technology platform's Pros and Cons is highly opinionated. A pros for one developer can become a cons for another developer, and vise versa. Instead of talking about specific technical specification, let's look the the pros and cons based on general common sense consideration.
Pros
- Mature with highly active and continuous improvement since 2002
- Open-source, support and maintain by well established technology company with strong financial and technical resources
- Actively supported by large number of global community spanning across the world
- Lots of technical contents and learning resources available (books, articles, blog-posts, videos, usergroup, in-person)
- Cross platform deployment (production codes can be deployed onto Windows, Linux and Max operating system)
- Cross platform professional grade development tools available at no cost. Visual Studio (supports Windows and Max) and Visual Studio Code (supports Windows, Mac and Linux)
- Large pool of extension and support resources
Cons
- It's an opinionated framework
- Fairly large and complex code base, which requires quite a bit of times and efforts to learn and understand