Jaka jest różnica między CodeFile = "file.ascx.cs" i kodzie = "file.ascx.cs" w deklaracji formantu użytkownika ASP.NET?CodeFile vs kodzie
Czy jest jeden nowszy czy zalecany? Czy też mają określone zastosowanie?
Jaka jest różnica między CodeFile = "file.ascx.cs" i kodzie = "file.ascx.cs" w deklaracji formantu użytkownika ASP.NET?CodeFile vs kodzie
Czy jest jeden nowszy czy zalecany? Czy też mają określone zastosowanie?
CodeBehind: Wymaga kompilacji (model ASP.NET 1.1). Skompilowany plik binarny jest umieszczany w folderze bin witryny. Przed wdrożeniem należy wykonać kompilację w programie Visual Studio. Jest to dobry model, gdy nie chcesz, aby kod źródłowy był widoczny jako zwykły tekst. Na przykład podczas dostarczania do klienta, któremu nie trzeba podawać kodu.
CodeFile: Dostarczasz plik źródłowy z rozwiązaniem do wdrożenia. Środowisko wykonawcze ASP.NET 2.0 kompiluje kod w razie potrzeby. Skompilowane pliki są w Microsoft.NET [.NET version] \ Tymczasowe pliki ASP.NET.
Plik Codebehind należy skompilować przed uruchomieniem, ale w src nie musimy kompilować, a następnie uruchomić .. po prostu zapisz plik.
'ale w src' - masz na myśli' ale w CodeFile'? – mmcrae
Pracuję z projektem aplikacji w Visual Studio Express 2012 dla WWW i przy użyciu .NET 4.0. W kodzie znajdującym się za plikami na moje strony logowania i zmiany hasła znalazłem sytuację, w której potrzebowałem zarówno CodeBehind, jak i CodeFile w deklaracji.
Gdybym nie dodać odwołanie pliku kod jak
CodeFile=login.aspx.cs
Strona internetowa nie analizuje i przeglądarka wyświetla błąd parsera. Nie ma znaczenia, czy skompiluję projekt, czy nie.
Gdybym nie dodawaj kodu za odniesienie jak
CodeBehind=login.aspx.cs
Odniesienia do klas bezpieczeństwa, takich jak MembershipUser zawieść zarówno w czasie kompilacji i gdy próbuje użyć intellisense z błędem jak „typu lub obszaru MembershipUser nie może być znalezionym". Dodałem odwołanie do System.Web.ApplicationServices zgodnie z wymaganiami środowiska .Net 4.0.
Należy dodać, że te kłopotliwe pliki działają w aplikacji na stronie internetowej utworzonej przy użyciu narzędzia aplikacji IIS. Kiedy otwieram stronę z Visual Studio, nie mam problemów z błędami parsera lub błędami referencyjnymi. To zamieszanie występuje tylko wtedy, gdy otwieram aplikację jako projekt w Visual Studio.
-1: interesujące, może, ale nie odpowiada na pytanie –
Wiem, co masz na myśli John. I może zasługuje na pochwałę, ale naprawdę walczę z tym problemem w tej chwili. Może moje trudności nie wynikają z tej różnicy, ale z czegoś innego. Jednak chociaż przyjęta odpowiedź jest odpowiedzią na pytanie, to nie pomaga w praktycznym problemie, z którym się borykam. Może powinienem otworzyć nowe pytanie. – DavidHyogo
Czy to oznacza, że programista musi ręcznie zmienić atrybut dyrektywy Page czy też istnieje sposób na stworzenie projektu WWW, który domyślnie wybiera kodbeve lub codefile za każdym razem, gdy dodawana jest nowa strona internetowa? –
Sposób, w jaki widzę to CodeFile, ma być użyty do "WebSite", a "Codebehind" jest przeznaczony do "projektu aplikacji sieci Web", ponieważ musi zostać skompilowany. Przekształcając "Witrynę" w "Projekt aplikacji WWW" możemy potrzebować ręcznie zmienić wszystkie wystąpienia CodeFile na Codebehind! – renegadeMind
CodeFiles są ładne podczas programowania, ponieważ możesz przetestować zmiany po prostu zapisując i odświeżając stronę bez konieczności budowania projektu. Możesz nadal "Opublikuj" pliki modeli kompilacji .Net 2+ CodeFile jako biblioteki DLL, jeśli nie chcesz umieszczać plików .cs i .vb na serwerze produkcyjnym. Podczas publikowania projektu można opcjonalnie wybrać opcję "Prekompilacja", aby przekształcić jeden lub oba pliki .aspx i .cs/.vb w biblioteki DLL, na przykład CodeBehind. – scradam