kupereal
@kupereal

Каким образом с технологией ASP.NET MVC соотносятся языки программирования С# и VB.NET?

Начинаю изучать программирование под .NET, интересно как создаются сайты на этой платформе. Мало знаком с оконными технологиями программирования в целом и не понимаю, что такое ASP.NET MVC, это фреймворк и полноценный язык веб-программирования, или на нем невозможно создать сайт без знаний C# или VB.NET. Смущают заголовки статей и литературы в стиле - "Создаем сайт на ASP.NET MVC" или "Пишем сайт на VB.NET". Немного запутался в многообразии технологий, а может я просто не могу принять действительность современного программирования. Всегда хотелось познать что-то монументальное, универсальное и востребованное, но в единственном числе. Может мне перейти обратно на NIX с голой консолью и продолжить изучать C и C++, только вот PHP и другие скриптовые языки мне больше не интересны?
  • Вопрос задан
  • 1325 просмотров
Решения вопроса 1
dmitry_pavlov
@dmitry_pavlov
World-class .NET freelance contractor (remotely)
У веб приложения есть две части - клиентская и серверная. Клиентская - это веб страничка, которую пользователь видит в браузере. Серверная - это то, что генерирует на сервере эти странички, которые загружаются у пользователя на клиенте (в браузере).

Клиентская часть - это HTML, CSS и JavaScript - то бишь те технологии, которые используются для создания обычных веб страниц. При этом на сервере могут быть использованы очень разные стеки технологий. В частности для стэка .NET - есть IIS (веб-сервер для хостинг-серверов на базе Windows), на котором работает ASP.NET (это веб фреймворк для генерации веб страниц) с использованием языка программирования С# или VB.NET.

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

Еще один пример: веб-сервер Passenger (на хостинг сервере под управлением операционок семейства Unix), на котором работает веб-фремворк Ruby on Rails, где разработку вы ведете на языке программирования Ruby.

Есть подобные серверные комбинации для других языков программирования - Python, Java и тп.

И если в случае .NET стэка (где один по сути производитель всего - и операционнки и веб сервера и веб фреймворка и языка программирования - это Майкрософт), то другие лптформы позволяют составлять больше комбинаций.

Например, для языка программирования PHP есть много разных веб фреймворков. Для других языков - тоже. Даже для языков С# и VB.NET есть ASP.NET WebForms (раньше его наывали просто ASP.NET) и ASP.NET MVC (сюда же я бы отнес вариацию фреймворка для создания API - Web API). Для многиэ стэков есть много разных веб-серверов, веб-времворков и соответственно можно использовать много вариантов связок ОС - ВС - ВФ - ЯП

На счет "Пишем сайт на VB.NET" это скорей всего значит - пишем на VB.NET веб приложение, которое будет использовать один из веб фремворков (либо ASP.NET WebForms либо ASP.NET MVC).

Надеюсь, мне удалось внести ясность в терминологическую кашу, окружающую нас. К сожалению, даже в википедии я часто вижу эту кашу и кто-то начинает называть ASP.NET языком программирования. Это не так.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Nipheris
@Nipheris Куратор тега C#
Ничего сложного.
C# и VB.NET - языки программирования общего назначения, работающие поверх CLR (т.е., грубо говоря, на платформе .NET).

ASP.NET MVC - веб-фреймворк для платформы .NET. По сути такая же библиотека классов, как и WinForms или WPF. Фишка ASP.NET в том что это поддерживаемый и развиваемый MS инструмент продакшн-уровня. Однако под дотнет есть и другие фреймворки, например Nancy или ServiceStack.

Как уже упомянул Dmitry Pavlov , ASP.NET относится к C# как Rails к Руби, Django к Питону, и Spring к Джаве.
Ответ написан
Комментировать
@dmitryKovalskiy
программист средней руки
ASP.NET MVC это не язык. Это часть .NET Framework для веб разработки в рамках архитектуры MVC( есть еще Web Forms, но он медленно и верно отмирает). Для разработки на ASP.NET MVC нужно использовать .NET совместимый язык(99% - что C#) - в частности для кода контроллеров используется C#. Для View - html/css/js, но и там торчат уши C# или VB.NET. На каком языке написан код модели - немного отдельная песня. В теории ничто не мешает загрузить сборку на каком-нибудь другом языке и использовать рефлексию, но все же лучше и проще использовать .NET проекты.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы