CodeFile против CodeBehind - программирование

CodeFile против CodeBehind

В чем разница между CodeFile= "file.ascx.cs" и CodeBehind= "file.ascx.cs" в объявлении пользователя ASP.NET контроль?

Является ли он более новым или рекомендуемым? Или они имеют конкретное использование?

4b9b3361

Ответ 1

CodeBehind: необходимо скомпилировать (модель ASP.NET 1.1). Скомпилированный двоичный файл помещается в папку bin на веб-сайте. Перед развертыванием необходимо выполнить компиляцию в Visual Studio. Это хорошая модель, когда вы не хотите, чтобы исходный код был доступен для просмотра в виде обычного текста. Например, при доставке клиенту, которому вы не обязаны предоставлять код.

CodeFile. Вы предоставляете исходный файл для решения для развертывания. Время выполнения ASP.NET 2.0 компилирует код при необходимости. Скомпилированные файлы находятся в Microsoft.NET [.NET version]\Temporary ASP.NET Files.

Ответ 2

Файл Codebehind необходимо скомпилировать перед запуском, но в src нам не нужно компилировать, а затем запускать. Просто сохраните файл.

Ответ 3

Я работаю с проектом приложения в Visual Studio Express 2012 для Интернета и с использованием .NET 4.0. В коде за файлами для моего входа и изменения страниц пароля я нашел ситуацию, в которой мне нужно было как CodeBehind, так и CodeFile в объявлении.

Если я не добавляю ссылку на файл кода, например

CodeFile=login.aspx.cs

Веб-страница не анализируется, и в браузере отображается ошибка парсера. Неважно, компилирую проект или нет.

Если я не добавляю код за ссылкой, например

CodeBehind=login.aspx.cs

Ссылки на классы безопасности, такие как MemberhipUser, не работают во время компиляции и при попытке использовать intellisense с ошибкой типа "Тип или пространство имен MemberhipUser не могут быть найдены". Я добавил ссылку на System.Web.ApplicationServices, как того требует инфраструктура .NET 4.0.

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