Технические различия между ASP.NET и Java Servlets/JSP

Мое понимание JSP заключается в том, что каждая страница JSP при первой загрузке компилируется в Java Servlet. Это то же самое для ASPX-страниц (разумеется, не в сервлет, а вне зависимости от того, что такое ASP.NET)?

Какие еще технические различия следует знать с JSP и ASP.NET(MVC 2)?

Ответ 1

Страницы JSP переведены в исходный код Java, а затем скомпилированы в файлы классов (содержащие байт-код Java) для будущего исполнения. После этого они на самом деле JIT (Just In Time), скомпилированные JVM, когда они необходимы для выполнения (поэтому они довольно быстрые).

Я полагаю, что подобный процесс для .NET-приложений похож на то, что они скомпилированы в сборках .NET. Это похоже на файлы классов Java, за исключением того, что они являются IL (промежуточным языком) для запуска в среде CLR. Во время выполнения IL также транслируется на собственные машинные инструкции для выполнения.

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

ИЗМЕНИТЬ

Ниже приведены некоторые сведения об ASP.NET: http://msdn.microsoft.com/en-us/library/ms366723.aspx

Кроме того, при использовании веб-приложений на основе Java контейнеры, которые их запускают, могут быть настроены на предварительную компиляцию JSP при развертывании приложения. Затем JVM загружает файлы классов в память и обрабатывает компиляцию/кеширование JIT с этой точки вперед.

Ответ 2

ASP может смутно сравнивать JSP/Servlet. ASP.NET может смутно сравнивать с JSF (строить поверх Servlet/JSP).

ASP.NET и JSF являются компонентами, тогда как JSP и ASP - это в основном технологии просмотра.

Сделано правильно, JSP/Servlet можно использовать для основанного на действии подхода, когда контроллер обрабатывает команду и пересылает представление для рендеринга (MVC), которое отделяет просмотр рендеринга от бизнеса логика.

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

Компонентная модель ближе к модели программирования для настольных приложений, но абстрактно от веб-природы приложения. Это хорошо и плохо в то же время. Это плохо, когда вы хотите optmize веб-связанных вещей, таких как дружественный URL и т.д. Я думаю, почему Microsoft представила позже на базе MVC на основе действий рядом с ASP.NET.