2017-02-16 11 views
4

Я немного новичок и хотел бы, чтобы кто-то помог мне понять, как Angular 2 связывается с .net Core при создании веб-приложения.Угловой 2 с .NET Core

Я только что прочитал книгу Pro MVC Core от Адама Фримена, где он строит спортивный магазин, используя структуру сущности и генерируя виды бритвы, чтобы отобразить всю информацию. Теперь я пытаюсь изучить Angular 2, чтобы лучше изучить передний конец, и кажется, что все, что я узнал, используя MVC Core Razor, теперь является отходами. Каково общее использование этих технологий вместе? Если я построю SPA, используя Angular 2, могу ли я получить доступ к базе данных с помощью веб-api, построенного из ядра .net? Это обычное использование? Или существует способ создания приложения .net с использованием сущности, используя обычные контроллеры, которые генерируют угловые взгляды, а не все в визуальной студии? Думаю, они не будут cshtml-файлами? Пожалуйста, помогите мне понять это.

Наконец, я использую код .net с угловым, должен ли я использовать визуальную студию вместо этого, если я хочу использовать .net на задней панели? Спасибо.

+0

«Если я построю SPA, используя Angular2, могу ли я получить доступ к базе данных с помощью веб-api, построенного из ядра .net?» - ДА ... - Это обычное употребление? - ОЧЕНЬ ДА ... Единственное различие между приложениями Angular2 SPA и Razor заключается в том, что у первого нет просмотров. Вот и все, остальное остается прежним. – FailedUnitTest

+0

Спасибо всем за ваши ответы. Таким образом, в основном у меня было бы приложение angular2 и я получил бы доступ к web-серверу .net, который имеет (api) контроллер, ТОЛЬКО манипулируя данными, а не визуализируя любые виды бритвы вообще? –

+0

Это самый распространенный подход. Мне не нравится смешивать бритву и углы, хотя это возможно. – FailedUnitTest

ответ

3

Общий способ объединения этих двух технологий заключается в том, чтобы приложение .NET MVC служило API-интерфейсом, а затем передним концом, написанным как Angular SPA. SPA будет использовать задний конец для интеграции базы данных или любую бизнес-логику на стороне сервера.

Я не знаю какого-либо значимого способа комбинировать виды Razor с Angular, но я могу ошибаться.

В любом случае есть Pluralsight beginner course, на который вы можете взглянуть.

Дополнительно LinkedIn имеет нечто, называемое «Обучение» с различными курсами по различным темам программирования. Есть курс there, который может вам помочь.

У обоих сайтов есть 1 месяц бесплатной пробной версии.

Here is a link к подобному вопросу.

+0

Не думаю, что есть какой-либо * осмысленный способ объединить Угловую и бритву. Угловая может, конечно, подключаться к любому бэкэнд-апи и .NET MVC делает очень хороший бэкэнд. – jleach

+0

Вы можете запустить Angular code на сервере и отправить полученный HTML-код клиенту, чтобы улучшить время первого запроса и оптимизировать SEO. Последующие запросы будут выполняться с помощью функции «Угловая» на клиенте. Скотт Гензельман недавно рассказал об этом [в своем блоге] (https://www.hanselman.com/blog/dotnetNewAngularAndDotnetNewReact.aspx). Поэтому я бы не сказал, что есть * нет * значимого пути. Или я сам использовал MVC Views для доставки «первой» страницы SPA. – mason

+0

@ jdl134679 Я специально говорю Razor не .NET MVC. Можете ли вы использовать представление MVC Razor, связанное как с MVC-моделью, так и с угловым? – Marko

5

Да, ASP.NET Core и Angular2 могут использоваться вместе. Архитектура может быть следующим:

  1. слоя данных - SQL Server. SQL Server Express хорош (бесплатно) способ начать

  2. слоя Application - ASP.NET ядро, которое обращается к данным из SQL Server и обнажает RESTful API, с помощью Web API. Учебник можно найти here. Вы можете использовать Visual Studio 2015 Community, который является бесплатным для большинства компаний.

  3. Клиентское приложение - Angular2 может использоваться для создания клиентских приложений. Его архитектура описана here.

Бритва может быть использована для динамического создания первоначальных мнений (например, некоторый фиксированный мастером макет, который выглядит по-другому, основанный на зарегистрированном пользователе).

Angular2 имеет очень хорошие учебные пособия, которые также имеет дело с передовой практикой:

1

Когда вы сравнить Angular и MVC/Razor, то, что вы действительно сравниваете, - это «рендеринг на стороне клиента» и «рендеринг на стороне сервера». Их можно использовать как в клиент-серверном приложении.

Файл «cshtml», отправляемый на сервер, становится только файлом html. Часть «cs» - это код для рендеринга на стороне сервера. Вы также можете использовать другие механизмы рендеринга с MVC, если вы выберете.

Отверстие на стороне сервера также является горячей темой в Angular community, используя Angular на сервере для рендеринга. Но ASP.NET MVC предлагает много в этом отношении. Существует огромная существующая экосистема компонентов .NET, из которой вы можете воспользоваться. Существует много существующего кода, который вы можете сразу использовать.

Например, вы можете просто проверить флажок «Аутентификация» при создании проекта ASP.NET и немедленно получить надежный набор представлений и контроллеров для обработки обычной, двухфакторной и сторонней аутентификации.

Когда вы спрашиваете о веб-api, вы говорите о второй важной части ASP.NET. WebApi и MVC были когда-то отдельными технологиями, но недавно слились с одной и той же базой данных Microsoft. Вы можете позвонить в ASP.NET WebApi прямо из своего приложения Angular2. Угловой маршрутизатор распознает его как внешний маршрут и отправит запрос на сервер.

Что касается доступа к базе данных, вы можете использовать это как внутри ваших MVC-контроллеров, так и из вызовов WebApi, которые вы обрабатываете на сервере.

0

JavaScript Services показывает, как начать работу, с хорошими scaffolded шаблонов: https://github.com/aspnet/JavaScriptServices

В вашем случае, обратите внимание на https://github.com/aspnet/JavaScriptServices/tree/dev/templates/AngularSpa для того, чтобы увидеть, как они строят угловой/.NET Core, SPA.

Вы можете клонировать их хранилище или использовать их генератор шаблона следующим образом:

npm install -g yo generator-aspnetcore-spa 
cd some-empty-directory 
yo aspnetcore-spa 
dotnet run 

Практически угловые/.NET Ядро состоит из серверной части части (.NET ядро) и на стороне клиента часть (угловая). Для тех, кто новичок в ASP.NET Core (не в вашем случае), я бы рекомендовал прочитать Learn ASP.NET Core MVC, чтобы узнать о стороне сервера.