Технические различия между ASP.NET и Java-сервлетами / JSP - PullRequest
11 голосов
/ 30 июля 2010

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

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

Ответы [ 2 ]

9 голосов
/ 30 июля 2010

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

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

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

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

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

5 голосов
/ 30 июля 2010

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

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

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

EDIT

Вот некоторые подробности, касающиеся ASP.NET: http://msdn.microsoft.com/en-us/library/ms366723.aspx

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...