ASP.NET codebehind i słowa eksperta Microsoftu

ASP.NET codebehind i słowa eksperta Microsoftu
Adamos19
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:293
0

Witam wszystkich.

Mam pytanie w związku z technologią ASP.NET wykonywania stron internetowych.
Otóż stworzyłem plik .aspx w którym odwołuję się do pliku .aspx.cs wskazanego przez "Codebehind".

W chwili gdy klient łączy się po raz pierwszy z serwerem, środowisko uruchomieniowe serwera tworzy całkiem nowy pakiet .dll w którym umieszcza stronę wraz z logiką zaprojektowaną w pliku .aspx.cs i wysyła protokołem HTTP do kleinta w odpowiedzi.

Środowisko framework klienta analizuje ten pakiet i wyświetla stronę wraz z jej dynamicznie utworzoną zawartością.

Jak to się ma do tego co pisze ekspert microsoftu:

CodeBehind: Needs to be compiled (ASP.NET 1.1 model). The compiled binary is placed in the bin folder of the website. You need to do a compile in Visual Studio before you deploy. It's a good model when you don't want the source code to be viewable as plain text. For example when delivering to a customer to whom you don't have an obligation to provide code.

??

dodanie znacznika <quote> - @furious programming

edytowany 1x, ostatnio: flowCRANE
0

klientowi wysyłasz tylko ten .dll

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:Wrocław
2

Są jakby dwa typy projektów ASP.NET: Web Site i Web Application.
Web Site polega na tym, że na serwerze masz pliki aspx, a w katalogu AppCode masz pliki *.cs, które są kompilowane gdy są pierwszy raz potrzebne. Kod możesz edytować na serwerze i zmiany od razu działają.
Web Application jest normalnie kompilowane, wiec na serwerze masz pliki aspx oraz pliki *.dll w katalogu bin. W tym wypadku każda zmiana w kodzie wynika ponownej kompilacji i skopiowania plików na serwer.

Ktos
Warto dodać, że vNext wszystko działa podobnie jak WebSite - na dysku nie ma plików .dll, one są kompilowane tylko w pamięci. Rekompilacja może następować nawet po każdym zapisie projektu i odświeżeniu w przeglądarce.
N0
Warto dodać, że podczas tworzenia kodu vNext nie będziesz musiał zatrzymywać visuala studio...wszystko w locie
somekind
Normalnie jak w PHP.
Adamos19
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:293
0

Dzięki za odpowiedzi.

OK. Mamy dwa typy projektów : WebApplication i WebSite. Różnią się tym kiedy kod ujęty w dyrektywie "CodeBehind" będzie kompilowany, dla WebApplication musi być skompilowany przed publikacją strony na serwerze, dla WebSite środowisko sobie skompiluje pliki w chwili gdy wystąpi taka konieczność (np. żądanie pokazania danej strony wykorzystującej logikę zawartą właśnie w tych plikach .cs). To jest jasne.

Przejdźmy teraz do dyrektyw "Codebehind" Vs "CodeFile". Ekspert pisze:

CodeBehind: Needs to be compiled (ASP.NET 1.1 model). The compiled binary is placed in the bin folder of the website. You need to do a compile in Visual Studio before you deploy. It's a good model when you don't want the source code to be viewable as plain text. For example when delivering to a customer to whom you don't have an obligation to provide code.

CodeFile: You provide the source file with the solution for deployment. ASP.NET 2.0 runtime compiles the code when needed. The compiled files are at Microsoft.NET[.NET version]\Temporary ASP.NET Files

Czy mam rozumieć że stosowanie zapisów CodeFile lub Codebehind w dyrektywie @Page zależy właśnie od tego czy pracujemy w projekcie WebSite czy też WebApplication ? Czy też może to w ogóle nie ma związku z rodzajem projektu w którym pracujemy.
Proszę jakiś ekspertów o wyjaśnienie. :)

dodanie znacznika <quote> - @furious programming

edytowany 1x, ostatnio: flowCRANE
flowCRANE
Jak cytujesz czyjeś słowa to wstawiaj je w znaczniki &lt;quote&gt;
flowCRANE
@Adamos19 - nie śmieć sobie w wątku - możesz przecież odpowiadać na komentarze w komentarzach ;)
flowCRANE
PS: Przecież nic nie wspomniałem o "blokowaniu"; Po prostu formatuj treść swoich postów - ułatwisz użytkownikom ich analizę;
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:Wrocław
1
Adamos19 napisał(a):

Czy mam rozumieć że stosowanie zapisów CodeFile lub Codebehind w dyrektywie @Page zależy właśnie od tego czy pracujemy w projekcie WebSite czy też WebApplication ?

Tak, dobrze rozumiesz.

fourfour
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:627
1
somekind napisał(a):

Są jakby dwa typy projektów ASP.NET: Web Site i Web Application.

Pozwolę sobie tylko dodać jeszcze stosownego linka http://msdn.microsoft.com/en-us/library/dd547590(v=vs.110).aspx , gdyby autor wątku chciał poczytać.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.