Odpowiedzi:
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.
but in src- masz na myśli but 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
CodeFile=login.aspx.cs
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
CodeBehind=login.aspx.cs
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.