Patrick Skelton Ответов: 2

Могу ли я использовать MVC без ASP.NET ядро?


Я открываю новый сайт. Это не является и, скорее всего, никогда не будет широко используемым сайтом. Я представляю себе десятки пользователей в лучшем случае. У меня есть большой опыт работы с C#, и я хотел бы остаться в уютном мире Visual Studio для своей разработки.

Я использовал веб-формы в прошлом, но не справлялся с этим. Я обнаружил, что вся идея попытаться абстрагировать реальную механику интернета, чтобы он работал больше как настольное приложение, была помехой, а не помощью.

Меня действительно привлекает HTML5 + CSS3 + MVC Core, но я только что обнаружил, что мой хостинг-провайдер (которого я не хочу покидать) не поддерживает ASP.NET ядро прямо сейчас.

Итак, вот мой вопрос... (И здесь я приношу свои извинения, если это становится немного "нечетким". Я изо всех сил пытаюсь понять, как мириады технологий Microsoft сочетаются друг с другом - или нет.)

Могу ли я сделать что-то вроде Razor pages, что не связано с веб-формами? Могу ли я использовать статический HTML5 + CSS3 для 95% сайта, но каким-то образом получить доступ к серверной части C#, когда мне это нужно? В идеале, я хотел бы сделать это без всех накладных форм отображение заговаривать зубы.

Извините, если я не очень хорошо понимаю. Любые предложения или указания на статьи, которые объясняют все это, будут чрезвычайно приветствоваться. И я был бы не прочь получить хорошую книгу, которая расскажет мне о деталях любого подхода, который я в конечном итоге использую.

Добрые пожелания - Патрик

Что я уже пробовал:

Много читаю в интернете, но я ничего не знаю.

2 Ответов

Рейтинг:
9

Super Lloyd

Полная поддержка .NET Framework 4.6 ASP.NET MVC

Основное различие между ASP.NET MVC и MVC Core - это то, что более поздняя версия является мультиплатформенной и, вероятно, работает в 1000 раз быстрее.
Но API, использование и вывод очень похожи.


Patrick Skelton

@RickZeeland @SuperLloyd

Я определенно мог бы быть более конкретным в своем вопросе. Я понимаю, что MVC-это просто шаблон. Я еще немного почитал и думаю что пришел к трем вопросам на которые все еще пытаюсь ответить:

1. Я могу использовать синтаксис Razor со стандартной ASP.NET?
2. таким образом, могу ли я использовать веб-механизм GET/POST напрямую (возможно, создав RESTful web API, который интуитивно кажется мне хорошим способом работы) и устранить всякую зависимость от элементов управления WebForms и состояния представления?
3. Как вписывается Entity Framework? Является ли это просто хорошим способом реализации модельной части архитектуры?

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

- Патрик

Super Lloyd

Во-первых, полезная ссылка:
https://dotnet.microsoft.com/learn/web

1. (длинный ответ)
Хорошо, я должен повторить свой ответ?
"Главное различие между ASP.NET MVC и MVC Core - это то, что более поздняя версия является мультиплатформенной и, вероятно, работает в 1000 раз быстрее."

Так что да, ASP.NET MVC (который работает на платформе .NET Framework) имеет страницы razor, На самом деле страницы Razor были созданы с первым выпуском ASP.NET MVC.
Контроллер страницы или контроллер WebAPI, оба доступны в ASP.NET MVC и MVC Core (я уже упоминал, что оба API были похожи?) оба могут указать, какой запрос они обрабатывают (GET/POST/PUT/DELETE)
WebAPI "оптимизирован" для полезной нагрузки данных (например, XML/JSON) и имеет несколько причуд. И контроллер страниц оптимизирован для доставки HTML-страницы и нескольких причуд к этому.


Веб-история с .NET: WebForm появилась первой, Microsoft надеялась сделать веб-разработку "такой же простой, как WebForm" (кхм), затем появился MVC, и (в основном) всем это понравилось (через некоторое время). Но это было медленно, потому что он вписывался в конвейер веб-формы, и там было много расточительного кода. Затем они сделали .NET Core и переделали более чистую версию MVC, которая работает лучше (в 1000 раз!) с ним. Его использование было в основном таким же, но они упростили многие мелочи, связанные с API. Но общее употребление очень похоже.

Razor Page Controller предназначен в основном для отображения страницы. WebAPI лучше обрабатывает запрос данных. PageController может делать и то, и другое по-настоящему (HTML, Json,..), но время от времени WebAPI обрабатывает dataquery немного лучше....

2. Да, вы можете указать, чтобы обрабатывать GET/POST/PUT/DELETE

3. Entity Framework каким-то образом ортогональен, то есть для веб-страниц / веб-служб MVC не имеет значения, используете ли вы EntityFramework для доступа к какой-то базе данных или нет.
Но большинство людей обычно так и делают. Где еще можно хранить кучи живых данных?

Patrick Skelton

Мне очень жаль, что я не понял этого с первого раза. Когда вы понимаете что-то так хорошо, как вы, очевидно, делаете, это может быть легко забыть, что это такое, чтобы прийти к этому как Новичок. Поверьте мне, я не чужд (в основном не веб -) разработке, но этот ландшафт wep api, созданный Microsoft, действительно сбивает с толку с моей точки зрения новичка.

Спасибо за Ваш более длинный ответ. Он сделал вещи гораздо яснее. Я думаю, что теперь я могу сделать разумный выбор о пути, которым я должен следовать.

- Патрик

Super Lloyd

Не беспокойтесь.. удачи вам! :)

Рейтинг:
19

RickZeeland

Да, MVC это просто шаблон, который можно применить практически ко всему, некоторые примеры:
Шаблон дизайна MVC - GeeksforGeeks[^]
Шаблоны проектирования MVC Pattern[^]
Шаблон Model-View-Controller(MVC) с C#/WinForms[^]
Понимание Модели-Представления-Контроллера[^]