Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# для профСссионалов. Π’ΠΎΠΌ IIΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 34

Автор Π‘ΠΈΠΌΠΎΠ½ Робинсон

</script>

Атрибут runat="server" здСсь являСтся критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌ (ΠΈ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π² этой Π³Π»Π°Π²Π΅), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π΄Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ IIS Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄ Π½Π° сСрвСрС, Π° Π½Π΅ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ, прСдоставляя, Ρ‚Π΅ΠΌ самым, доступ ΠΊ Π±ΠΎΠ³Π°Ρ‚ΠΎΠΌΡƒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ, рассмотрСнному Ρ€Π°Π½Π΅Π΅. МоТно ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ наши Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠΈ Ρ‚.Π΄. Π² сСрвСрныС Π±Π»ΠΎΠΊΠΈ сцСнариСв.

Если ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ runat="server", ΠΌΡ‹, ΠΏΠΎ сути, прСдоставим клиСнтский ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ°ΠΆΠ΅Ρ‚, Ссли ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² сСрвСрном стилС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π² этой Π³Π»Π°Π²Π΅. Однако ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ клиСнтский ΠΊΠΎΠ΄ (Π½Π° самом Π΄Π΅Π»Π΅ ASP.NET сам ΠΈΠ½ΠΎΠ³Π΄Π° создаСт Π½Π΅ΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π² зависимости ΠΎΡ‚ возмоТностСй Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ„ΠΎΡ€ΠΌΡ‹ Web). К соТалСнию, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ здСсь C#, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .NET Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ всСгда ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, поэтому JScript являСтся, вСроятно, Π»ΡƒΡ‡ΡˆΠ΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ поддСрТиваСтся Π½Π° большом мноТСствС клиСнтских Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ²). Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ язык, ΠΌΡ‹ просто измСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° language ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

<script language="jscript">

 // ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ располоТСн здСсь, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ vbscript.

</script>

Π’ Ρ€Π°Π²Π½ΠΎΠΉ стСпСни ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ASP.NET Π² Visual Studio, Ρ‡Ρ‚ΠΎ прСкрасно для нас ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с этой срСдой для программирования C#. Однако примСняСмая ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ настройка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Web Π² этой срСдС прСдоставляСт Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ структуру, Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» .aspx. Но это Π½Π΅ являСтся для нас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π΅Ρ‚ Π²Π΅Ρ‰ΠΈ Π±ΠΎΠ»Π΅Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ (Π±ΠΎΠ»Π΅Π΅ подходящими для программиста ΠΈ ΠΌΠ΅Π½Π΅Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Web). На основС этого Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Visual Studio.NET для программирования ASP.NET.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° C# Type Web Application, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ VS Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ FrontPage для настройки прилоТСния Web Π² Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΌ мСстС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ, Ссли сСрвСр Web находится Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ машинС. Но ΠΈ для этого сущСствуСт Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ (ΠΈ Π±ΠΎΠ»Π΅Π΅ быстрый) ΠΌΠ΅Ρ‚ΠΎΠ΄, использованиС Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Ρ‡Π΅Ρ€Π΅Π· LAN (Ρ‡Ρ‚ΠΎ являСтся, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ, Ссли ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр Web находится Π½Π΅ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ LAN, Ρ‡Ρ‚ΠΎ ΠΈ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ). Если ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‚ΠΎ VS Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

НСзависимо ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, VS ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ кэш всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π² синхронизации с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π½Π° сСрвСрС Web.

Π§Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя Visual Studio Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

β–‘ ΠΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, PCSWebAppl, содСрТащСС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Web Π½Π° C# с ΠΈΠΌΠ΅Π½Π΅ΠΌ PCSWebAppl

β–‘ AssemblyInfo.cs β€” стандартный ΠΊΠΎΠ΄ для описания сборки

β–‘ Global.asax β€” глобальная информация ΠΈ события прилоТСния (Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π² этой Π³Π»Π°Π²Π΅)

β–‘ PCSWebAppl.disco β€” Ρ„Π°ΠΉΠ», ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ всС слуТбы Web Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π΄Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ динамичСского обнаруТСния (подробности Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅)

β–‘ Web.config β€” конфигурационная информация для прилоТСния (Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π² этой Π³Π»Π°Π²Π΅)

β–‘ WebForm1.aspx β€” пСрвая страница ASP NET Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Web

ΠœΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ всС сгСнСрированныС Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ…ΠΎΠ΄Π΅ излоТСния этой ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… Π³Π»Π°Π², Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° сСрдцСвинС прилоТСния β€” созданном Ρ„Π°ΠΉΠ»Π΅ .aspx.

Π€Π°ΠΉΠ»Ρ‹ .aspx ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ двумя способами: Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„ΠΎΡ€ΠΌ Windows, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ Π² этой ΠΊΠ½ΠΈΠ³Π΅. ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС Π² VS являСтся ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ прСдставлСниСм:

ВСкст, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ здСсь ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π΅ являСтся тСкстом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, это просто ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎΡ‚ VS, ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‰Π΅Π΅, ΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π²Ρ‹Π±Ρ€Π°Π½. Π—Π΄Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌ GridLayout, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ допускаСт Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° FlowLayout, Ссли трСбуСтся Π±ΠΎΠ»Π΅Π΅ традиционная схСма позиционирования Ρ‚ΠΈΠΏΠ° HTML. ΠœΡ‹ рассмотрим это Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅.

Если Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ прСдставлСниС HTML с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²Π½ΠΈΠ·Ρƒ ΠΎΠΊΠ½Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ΄, созданный Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° .aspx:

<%@ Page language="#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="PCSWebAppl.WebForm1" %>

<html>

 <head>

  <meta name=vs_targetSchema content="Internet Explorer 5.0">

  <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">

  <meta name="CODE_LANGUAGE" Content="C#">

 </head>

 <body MS_POSITIONING="GridLayout">

  <form method="post" runat="server">

  </form>

 </body>

</html>

Π—Π΄Π΅ΡΡŒ элСмСнт <html> Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ нСсколькими ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нас Π½Π΅ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ, ΠΈ элСмСнтом <form> для размСщСния ΠΊΠΎΠ΄Π° ASP.NET. НаиболСС Π²Π°ΠΆΠ½ΠΎΠΉ Π²Π΅Ρ‰ΡŒΡŽ Π² этом элСмСнтС являСтся Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ runat. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² Π±Π»ΠΎΠΊΠ°Ρ… сСрвСрного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΎΠ½ Π·Π°Π΄Π°Π½ ΠΊΠ°ΠΊ server, ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„ΠΎΡ€ΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ мСсто Π½Π° сСрвСрС. Если Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ этот Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ сСрвСрной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΈ Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Другая интСрСсная Π²Π΅Ρ‰ΡŒ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ этого ΠΊΠΎΠ΄Π° состоит Π² Ρ‚Π΅Π³Π΅ <@% Page %> Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎΡ‚ Ρ‚Π΅Π³ опрСдСляСт характСристики страницы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹ для нас ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² прилоТСния Web Π½Π° C#. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго здСсь сущСствуСт Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ language, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт, Ρ‡Ρ‚ΠΎ Π½Π° этой страницС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ C#, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ Π² Π±Π»ΠΎΠΊΠ°Ρ… <script> (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для прилоТСния Web являСтся VB.NET, хотя это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ IIS). Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ страницСй, Π±Ρ‹Π» Π·Π°Π΄Π°Π½ VS для размСщСния Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ WebForm1.aspx.cs. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ сСйчас рассмотрим, содСрТит ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ класса, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² качСствС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ для страницы Ρ„ΠΎΡ€ΠΌ Web. (Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ASP.NET соСдиняСтся с насыщСнной ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ модСлью). Π’ этом Ρ„Π°ΠΉΠ»Π΅ для создания HTML Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² соСдинСнии с ΠΊΠΎΠ΄ΠΎΠΌ.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС Ρ„Π°ΠΉΠ»Ρ‹ .aspx Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ многослойной ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ просто класс Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ Web Π² .NET Π² качСствС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса для страницы, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ этом случаС Ρ„Π°ΠΉΠ» .aspx Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ вСсь ΠΊΠΎΠ΄ C# Π² Π±Π»ΠΎΠΊΠ°Ρ… <script>, ΠΊΠ°ΠΊ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ прСдоставляСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс для страницы, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ события. Π§Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ IIS Π·Π½Π°Π΅Ρ‚ ΠΎΠ± этом, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ AutoEventWireup, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий Page_Load(), Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы, связываСтся автоматичСски с событиСм OnPageLoad. Задавая этот Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΊΠ°ΠΊ false, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ссли потрСбуСтся, свой собствСнный ΠΊΠΎΠ΄ для выполнСния этого, Ρ‡Ρ‚ΠΎ даст Π½Π°ΠΌ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ свободу дСйствий.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Π½Π° "ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π°Π΄ΠΈ" ΠΊΠΎΠ΄Π°, сгСнСрированного для этого Ρ„Π°ΠΉΠ»Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Ρ‰Π΅Π»ΠΊΠ½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° WebForm1.aspx Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (solution explorer) ΠΈ Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ View Code. Код WebForm1.aspx.cs Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ Π² тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ объявлСниС пространств ΠΈΠΌΠ΅Π½ для прилоТСния Web, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ мноТСство ссылок, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ использования:

namespace PCSWebAppl {

 using System;

 using System.Collections;

 using System.ComponentModel;

 using System.Data;

 using System.Drawing;

 using System.Web;

 using System.Web.SessionState;

 using System.Web.UI;

 using System.Web.UI.WebControls;

 using System.Web.UI.HtmlCotrols;

Π”Π²ΠΈΠ³Π°ΡΡΡŒ дальшС, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ WebForm1 β€” Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для страницы .aspx. Π­Ρ‚ΠΎΡ‚ класс наслСдуСт ΠΈΠ· System.Web.UI.Page, Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Ρ„ΠΎΡ€ΠΌ Web:

 /// <summary>

 /// ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС WebForm1

 /// </summary>

 public class WebForm1 : System.Web.UI.Page {

ΠžΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π² этой Ρ„ΠΎΡ€ΠΌΠ΅ выполняСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ΄, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ для создания Ρ„ΠΎΡ€ΠΌ Web Π² VS. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ рСгистрируСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий Page_Init(), Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π²ΠΎ врСмя Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ страницы ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ VS для ΠΊΠΎΠ΄Π°, связанного с созданиСм Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΉ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ (Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² InitializeComponent(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся этим ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ). БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий Page_Load(), ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π²ΡˆΠΈΠΉΡΡ Ρ€Π°Π½Π΅Π΅:

  public WebForm1() {

   Page.Init += new System.EventHandler(Page_Init)

  }


  protected void Page_Load(object sender, System.EventArgs e) {

   // ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ здСсь ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ страницы

  }


  protected void Page_Init(object sender, EventArgs e) {

   //

   // CODEGEN: Π­Ρ‚ΠΎΡ‚ Π²Ρ‹Π·ΠΎΠ² трСбуСтся для ASP.NET Windows

   // Form Designer.

   //

   InitializeComponent();

  }