Asp.Net Core + Angularjs2, together or separately?

By : Dwits
Source: Stackoverflow.com
Question!

I will start to develop a new Project and i want use Asp .NET core and angular.js but i have a question what is the better way, use asp.net and angular together or separately?

I defined my architecture in this form

Cliente1(Angular)->RestApi->BussinessLogic->DataAccess->DB

yes, i see that my architecture says me that i need manage asp .NET and angular js separately, but I'd like to hear any suggestions.

UPDATE:

thank you for your answers, in the end both they have their pros and cons, i would like to share with you this articles:

Together: http://proudmonkey.azurewebsites.net/asp-net-core-getting-started-with-angularjs-2/

separately: Part one: https://chsakell.com/2016/06/23/rest-apis-using-asp-net-core-and-entity-framework-core/

Part two: chsakell.com/2016/06/27/angular-2-crud-modals-animations-pagination-datetimepicker/

By : Dwits


Answers

Keep them separate, your MVC Part will be mainly REST APIs which has nothing to do with the JavaScript, HTML and CSS in the Angular Project, besides, if you want to build another client, EX: Mobile, then it will have its own project as well, this way you will have a clean structure for your solution.

So, you should have the following:

  1. YourProject.REST
  2. YourProject.Angular
  3. YourProject.MobileClient

Also, the separation will make it easier for the teams working on the project, the one who will work on the front end doesn't have to worry about any other code not related to his tasks, the same for the developer working on the APIs, and each project can be structured as per the best practices for its technology.



You question is opinion based more than facts, so here is my opinion.

I have done few projects with ASP.Net MVC, Web API and AngularJS. They all stay in a single Web Application Project. Note: I have few class libraries for strongly typed Angular Helpers, Business Logic and Data Access.

Here are the advantages

I authenticate user using Owin Middleware, then redirect to Angular. The main advantage is I do not have to maintain Bearer Token or Authentication Cookie explicit inside Angular.

Second, I use csthml as strongly typed Angular view rather than plain html. It is the best of both world.

Last but not least, you can debug it easily rather than starting two projects at the same time, so that I can save resources on development machine. Everyone know Visual Studio is a memory hungry IDE.

By : Win


In general in programming you should separate your logic the most you can.

You will want to separate both projects for so many reasons :

  • You have a web app right now (angular) but maybe in a near futur you will need to have a mobile app (hybrid or native)
  • You can be more than one person working on the project, for example you will maybe need some designer/integrator to work on the app, and you dont want to share with him your back end, same applies if you have a back end guy.
  • two projects means maybe two source control repositories, means more control on branches, versions, rolling back ...
  • etc ...

I hope this can help.

If I see other benefits, ill update this answer.



This video can help you solving your question :)
By: admin