Jaka jest różnica pomiędzy CodeFile = "file.ascx.cs" a CodeBehind = "file.ascx.cs" w deklaracji kontrolki użytkownika ASP.NET?
Czy jest nowszy lub zalecany? Czy mają określone przeznaczenie?
CodeBehind : wymaga kompilacji (model ASP.NET 1.1). Skompilowany plik binarny jest umieszczany w folderze bin witryny. Przed wdrożeniem musisz przeprowadzić kompilację w programie Visual Studio. To dobry model, gdy nie chcesz, aby kod źródłowy był widoczny jako zwykły tekst. Na przykład przy dostawie do klienta, któremu nie masz obowiązku podania kodu.
CodeFile : dostarczasz plik źródłowy z rozwiązaniem do wdrożenia. Środowisko uruchomieniowe ASP.NET 2.0 kompiluje kod w razie potrzeby. Skompilowane pliki znajdują się w Microsoft.NET [wersja .NET] \ Temporary ASP.NET Files.
Plik Codebehind musi się skompilować przed uruchomieniem, ale w src nie musimy kompilować, a następnie uruchamiać ... po prostu zapisz plik.
źródło
but in src
- masz na myślibut in the CodeFile
?Pracuję z projektem aplikacji w Visual Studio Express 2012 dla sieci Web i używam .NET 4.0. W kodzie plików dla moich stron logowania i zmiany hasła znalazłem sytuację, w której potrzebowałem zarówno CodeBehind, jak i CodeFile w deklaracji.
Jeśli nie dodam odwołania do pliku kodu, takiego jak
Strona internetowa nie analizuje, a przeglądarka wyświetla błąd parsera. Nie ma znaczenia, czy skompiluję projekt, czy nie.
Jeśli nie dodam kodu za odwołaniem, takim jak
Odwołania do klas zabezpieczeń, takich jak MembershipUser, kończą się niepowodzeniem zarówno w czasie kompilacji, jak i podczas próby użycia funkcji Intellisense z błędem typu „Nie można znaleźć typu lub przestrzeni nazw MembershipUser”. Dodałem odwołanie do System.Web.ApplicationServices zgodnie z wymaganiami frameworka .Net 4.0.
Dodam, że te kłopotliwe pliki działają w aplikacji w ramach serwisu WWW stworzonej za pomocą narzędzia IIS Application. Kiedy otwieram witrynę z programu Visual Studio, nie mam żadnych problemów z błędami parsera lub błędami odwołań. To zamieszanie występuje tylko wtedy, gdy otwieram aplikację jako projekt w programie Visual Studio.
źródło