2010-01-25 6 views
2

В ASP.NET, если код и разметка asp.net находятся в одном файле ascx, например, для пользовательского элемента управления, будет ли он работать плохо по сравнению с пользовательским элементом управления с кодом позади, используя cs-файл и файл designer.cs?Inline (Single File) vs. CodeBehind

ответ

2

Разница заключается в первоначальном времени компиляции; когда ваше приложение сначала запускается.

С файлом кода вы можете предварительно скомпилировать вещи и доставить DLL на сервер, готовый к работе. С встроенным кодом, рамки будет должны скомпилировать ваш код в сборку при запуске приложения. Но после этой точки скомпилированный код является скомпилированным кодом, и это просто не имеет значения.

+0

Но это не займет * этот * длинный. И, как преимущество, вы получаете возможность обновлять код страницы, не вызывая 'iisreset', для чего потребуется несколько часов. – naivists

2

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

+0

Я пытаюсь разработать некоторые пользовательские элементы управления, которые я хочу развернуть динамически, используя загрузку файлов на веб-сайт, и обнаружил, что код, стоящий за ними, не загружался, а те, в котором встроен код, работали нормально и, следовательно, хотели знать последствия, если любой – chugh97

2

Интересный факт - Microsoft sometimes suggests вы создаете сборки кода для страниц ASP.net для отделки отделки.

Однако, когда вы посмотрите, как создается SharePoint, его страницы (например, /_layouts/workflow.aspx) полны встроенного кода.
Они на самом деле показывают, что скорость встроенного кода the same as code-behind:

Еще один миф, что отделенный код является быстрее, чем инлайн, что абсолютно неверно. Не имеет значения , где ваш код для вашего приложения ASP.NET живет, будь то в файле codebehind или inline с страницей ASP.NET .

Это заставляет меня думать, что производительность и ремонтопригодность не всегда являются основной причиной, по которой вы выбираете встроенный код позади кода.

+0

Sharepoint делается именно так, потому что они * имеют *, чтобы сделать это таким образом. В противном случае вам придется развернуть сборки, iisreset, весь этот мусор, каждый раз, когда вы хотите обновить страницу. «Миф», который вы описываете, охватывает производительность во время выполнения. В первый раз, когда вы нажмете на страницу, все еще будет небольшая задержка, в то время как встроенный код скомпилирован, но с этого момента он ведет себя точно так же, как прекомпилированный код. – GalacticCowboy