Результат компиляции ASP.NET - PullRequest
0 голосов
/ 11 января 2012

Я сейчас читаю Professional Asp.net от wrox, и одна вещь привлекла мое внимание. Авторы говорят, что после каждого запроса к сайту, если конкретный сайт еще не скомпилирован, механизм asp.net запускает компиляцию. После этого этот конкретный сайт в нашем приложении не перекомпилируется с каждым следующим запросом - только во время первого. Но это на самом деле не имеет смысла для меня, потому что после того, как мы скомпилируем наш сайт с помощью aspnet_compiler, вывод содержит только одну dll для всех страниц в нашем приложении. Поэтому мой вопрос - есть ли различия в структуре скомпилированных файлов между приложением, предварительно скомпилированным с aspnet_compiler, и приложением, которое компилируется на лету во время первых запросов к определенным страницам в приложении.

Ответы [ 2 ]

1 голос
/ 11 января 2012

Насколько я понимаю, когда вы создаете свой веб-сайт в визуальных студиях, создаваемые dll создаются из ваших файлов .cs (или .vb в зависимости от того, какой язык вы используете).Любые файлы, которые могут содержать серверный код и html (например, .aspx или .ascx), не компилируются в это время, а, скорее, при первом обращении к ним пользователя, а не какого-либо из файлов .cs.См. здесь , прочитайте раздел динамической компиляции.

Хотя файлы кода в проекте предварительно скомпилированы в одну сборку с использованием MSBuild, веб-страниц ASP.NET (.aspx) и пользователяэлементы управления (.ascx) проекта веб-приложения динамически компилируются на сервере компилятором ASP.NET 1

0 голосов
/ 11 января 2012

Ваш вопрос немного расплывчатый. Есть ли разница? Какую разницу вы имеете в виду? Состав? Что вы подразумеваете под структурой?

aspnet_compiler делает то, что происходит во время выполнения в типичной конфигурации, но делает это во время компиляции, а не во время выполнения. Код, который он генерирует, в основном такой же, как и тот, который в итоге будет выполняться.

Однако есть еще сборник, который должен иметь место. aspnet_compiler, как и компиляторы cs или vb, компилируется только в байтовый код. Байт-код все еще должен быть скомпилирован с собственным кодом во время выполнения, если только вы не создадите его при установке.

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