ASP.NET Web Formları - ASP.NET Web Forms

ASP.NET Web Formları
Orijinal yazar (lar)Microsoft
İlk sürüm2002; 18 yıl önce (2002)
İşletim sistemipencereler, Linux, Mac os işletim sistemi
Platform.NET Framework
TürWeb uygulama çerçevesi
İnternet sitesidotnet.microsoft.com/ apps/ aspnet/ web-formları

ASP.NET Web Formları bir web uygulama çerçevesi ve tarafından desteklenen birkaç programlama modelinden biri Microsoft ASP.NET teknoloji. Web Formları uygulamaları herhangi bir şekilde yazılabilir Programlama dili destekleyen Ortak dil çalışması, gibi C # veya Visual Basic. Web Formları sayfalarının ana yapı taşları şunlardır: sunucu kontrollerioluşturmadan sorumlu yeniden kullanılabilir bileşenler olan HTML biçimlendirme ve olaylara yanıt verme.[1] Denen bir teknik Durumu görüntüle ısrar etmek için kullanılır durum Normalde arasındaki sunucu kontrollerinin vatansız HTTP istekleri.[2]

Web Formları orijinal belgeye dahil edildi .NET Framework 2002'de 1.0 sürümü (bkz. .NET Framework sürüm geçmişi ve ASP.NET sürüm geçmişi ), ASP.NET'te bulunan ilk programlama modeli olarak. Daha yeni ASP.NET bileşenlerinden farklı olarak, Web Forms, ASP.NET Core.[3]

Özellikler

Resmi olarak Web Formları olarak bilinen ASP.NET web sayfaları,[4] MVC'nin tanıtılmasından önce ASP.NET'te uygulama geliştirme için ana yapı taşlarıydı.[5] Web Formları için iki temel yöntem vardır: bir web uygulama formatı ve bir web sitesi formatı.[6] Web uygulamalarının dağıtımdan önce derlenmesi gerekirken, web siteleri kullanıcının dosyaları önceden derleme yapmadan doğrudan sunucuya kopyalamasına izin verir. Web formları ".aspx" uzantılı dosyalarda bulunur; bu dosyalar tipik olarak statik (X )HTML biçimlendirme veya bileşen biçimlendirme. Bileşen işaretlemesi, çerçevede veya web sayfasında tanımlanan sunucu tarafı Web Kontrollerini ve Kullanıcı Kontrollerini içerebilir. Örneğin, bir metin kutusu bileşeni bir sayfada şu şekilde tanımlanabilir: <asp:textbox id='myid' runat='server'>, bir html giriş kutusuna dönüştürülür. Ek olarak, sunucuda çalışan dinamik kod, bir blok içindeki bir sayfaya yerleştirilebilir. <% -- dynamic code -- %>gibi diğer Web geliştirme teknolojilerine benzer PHP, JSP, ve ASP. İle ASP.NET Framework 2.0 Microsoft yeni bir arka plan kod Dinamik kod bir .aspx.vb veya .aspx.cs veya .aspx.fs dosyasına girerken (kullanılan programlama diline bağlı olarak) statik metnin .aspx sayfasında kalmasına izin veren model.[7]

Arka planda kodlama modeli

Microsoft bu kodu ayrı bir dosyaya veya özel olarak belirlenmiş bir komut dosyası etiketine yerleştiren arka plan kod modelini kullanarak dinamik program koduyla uğraşmanızı önerir. Arka planda kodlama dosyaları genellikle "MyPage.aspx.cs " veya "Sayfam.aspx.vb " sayfa dosyası ise Sayfam.aspx (sayfa dosyasıyla (ASPX) aynı dosya adı, ancak son uzantı sayfa dilini belirtir). Bu uygulama otomatiktir Görsel stüdyo ve diğeri IDE'ler ancak kullanıcı arka plan kod sayfası adını değiştirebilir. Ayrıca, web uygulaması biçiminde, pagename.aspx.cs, pagename.designer.cs dosyasına bağlı kısmi bir sınıftır. Tasarımcı dosyası, ASPX sayfasından otomatik olarak oluşturulan bir dosyadır ve programcının ASPX sayfasındaki bileşenlere, sürüm 2'den önceki ASP.NET sürümlerinde gerekli olduğu gibi bunları manuel olarak bildirmek zorunda kalmadan arka plan kod sayfasından başvurmasına olanak tanır.[8] Bu programlama stilini kullanırken, geliştirici kodu, belgenin yordamsal bir izlenimi yerine, yüklenen sayfa veya tıklanan bir kontrol gibi farklı olaylara yanıt verecek şekilde yazar.

ASP.NET'in arka planda kodlama modeli, geliştiricileri kullanarak uygulamalar geliştirmeye teşvik etmesi açısından Klasik ASP'den ayrılışı işaretler. sunum ve içeriğin ayrılması akılda. Teorik olarak, bu, örneğin bir Web tasarımcısının tasarım biçimlendirmesine odaklanmasına ve onu yönlendiren programlama kodunu bozma potansiyeli daha düşük olmasına izin verir. Bu, kontrolörün görünümden ayrılmasına benzer. model görünüm denetleyici (MVC) çerçeveleri.

Direktifler

Bir direktif ASP.NET'in sayfayı nasıl işlemesi gerektiğine dair özel bir talimattır.[9] En yaygın yönerge <%@ Page %>, ASP.NET sayfa ayrıştırıcısı ve derleyicisi tarafından kullanılan birçok özniteliği belirtebilir.

Kullanıcı kontrolleri

Kullanıcı kontrolleri ASP.NET'te kaydedilen ve denetimler olarak kullanılan sayfa bölümlerinin bölümlerinin kapsüllenmesidir.

Özel kontroller

Programcılar ayrıca özel kontroller ASP.NET uygulamaları için. Kullanıcı kontrollerinden farklı olarak, bu kontrollerin bir ASCX biçimlendirme dosyası yoktur ve tüm kodları bir dinamik bağlantı kitaplığı (DLL) dosya. Bu tür özel kontroller, birden çok Web uygulaması arasında kullanılabilir ve Visual Studio 2013 projeler.

Rendering tekniği

.NET, "ziyaret edilen bileşikler" oluşturma tekniği kullanır. Derleme sırasında, şablon (.aspx) dosyası, orijinal şablonu temsil eden bir kontrol ağacı (bileşik) oluşturan başlatma koduna derlenir. Değişmez metin, Değişmez denetim sınıfının örneklerine gider ve sunucu denetimleri, belirli bir denetim sınıfının örnekleriyle temsil edilir. Başlatma kodu, kullanıcı tarafından yazılan kodla birleştirilir (genellikle birden çok kısmi sınıfın birleştirilmesiyle) ve sayfaya özgü bir sınıfla sonuçlanır. Sayfa, kontrol ağacının kökü olarak ikiye katlanır.

Sayfa için gerçek istekler birkaç adımda işlenir. İlk olarak, başlatma adımları sırasında, sayfa sınıfının bir örneği yaratılır ve başlatma kodu yürütülür. Bu, artık tipik olarak aşağıdaki adımlarda sayfanın yöntemleri tarafından işlenen ilk kontrol ağacını üretir. Ağaçtaki her düğüm, bir sınıfın bir örneği olarak temsil edilen bir denetim olduğundan, kod, ağaç yapısını değiştirmenin yanı sıra, tek tek düğümlerin özelliklerini / yöntemlerini de değiştirebilir. Son olarak, oluşturma adımı sırasında bir ziyaretçi ağaçtaki her düğümü ziyaret etmek için kullanılır ve her düğümden ziyaretçinin yöntemlerini kullanarak kendisini oluşturmasını ister. Ortaya çıkan HTML çıktısı istemciye gönderilir.

Talep işlendikten sonra, sayfa sınıfının örneği ve bununla birlikte tüm kontrol ağacı atılır. Bu, her sayfa isteği / yanıt döngüsünde kaybolan sınıf örneği üyelerine güvenen acemi ASP.NET programcıları arasında bir kafa karışıklığı kaynağıdır.

Durum Yönetimi

ASP.NET uygulamaları bir Web sunucusu ve kullanılarak erişilir vatansız HTTP protokol. Bu nedenle, bir uygulama durum bilgisi olan etkileşim kullanıyorsa, durum Yönetimi kendi başına. ASP.NET, durum yönetimi için çeşitli işlevler sağlar. Microsoft, kavramsal olarak "durumu" GUI durum. Bir uygulamanın "veri durumunu" izlemesi gerekiyorsa sorunlar ortaya çıkabilir; örneğin, a sonlu durum makinesi bu, istekler arasında geçici bir durumda olabilir (tembel değerlendirme ) veya başlaması uzun zaman alıyor. Kimlik doğrulamalı ASP.NET sayfalarında durum yönetimi yapabilir Web kazıma zor ya da imkansız.

Uygulama

Uygulama durumu, paylaşılan kullanıcı tanımlı değişkenler tarafından tutulur. Bunlar ayarlanır ve başlatılır. Application_OnStart olay, uygulamanın ilk örneğinin yüklenmesi sırasında tetiklenir ve son örnek çıkana kadar kullanılabilir. Uygulama durumu değişkenlerine, Başvurular koleksiyon, uygulama durumu için bir sarmalayıcı sağlar. Uygulama durumu değişkenleri adıyla tanımlanır.[10] Uygulama devlet yönetimidir.

Oturum durumu

Sunucu tarafı oturum durumu, bir kullanıcı oturumu sırasında kalıcı olan kullanıcı tanımlı oturum değişkenlerinin bir koleksiyonu tarafından tutulur. Bu değişkenlere, Oturum, toplantı, celse koleksiyonu, her oturum örneği için benzersizdir. Değişkenler, belirli bir hareketsizlik süresinden sonra oturum sona ermese bile otomatik olarak yok edilecek şekilde ayarlanabilir. İstemci tarafı kullanıcı oturumu, bir kurabiye veya oturum kimliğini URL'nin kendisinde kodlayarak.[10]

ASP.NET, sunucu tarafı oturum değişkenleri için üç kalıcılık modunu destekler:[10]

İşlem içi mod
Oturum değişkenleri ASP.NET içinde tutulur süreç. Bu en hızlı yoldur; ancak, bu modda değişkenler ASP.NET işlemi geri dönüştürüldüğünde veya kapatıldığında yok edilir.
Durum sunucusu modu
ASP.NET ayrı bir Windows hizmeti durum değişkenlerini koruyan. Durum yönetimi ASP.NET işleminin dışında gerçekleştiğinden ve ASP.NET motoru verilere .NET Uzaktan Erişim kullanarak eriştiğinden, ASPState In-Process'ten daha yavaştır. Bu mod, bir ASP.NET uygulamasının birden çok sunucu arasında yük dengelemesine ve ölçeklenmesine olanak tanır. Durum yönetimi hizmeti ASP.NET'ten bağımsız olarak çalıştığı için, oturum değişkenleri ASP.NET işlem kapatmalarında kalıcı olabilir. Ancak, oturum durumu sunucusu tek bir örnek olarak çalıştığından, oturum durumu için yine de bir başarısızlık noktasıdır. Oturum durumu hizmeti yük dengeli olamaz ve bir oturum değişkeninde depolanabilecek türlerde kısıtlamalar vardır.
SQL Server modu
Durum değişkenleri bir veri tabanı, oturum değişkenlerinin ASP.NET işlem kapatmalarında kalıcı olmasına izin verir. Bu modun ana avantajı, uygulamanın bir sunucu kümesindeki yükü dengelemesine ve oturumları sunucular arasında paylaşmasına izin vermesidir. Bu, ASP.NET'te oturum durumu yönetiminin en yavaş yöntemidir.

ASP.NET oturum durumu, kullanıcı bir Web uygulamasında ASP.NET sayfalarında gezinirken bir kullanıcı için değerleri depolamanıza ve almanıza olanak tanır. HTTP, durum bilgisiz bir protokoldür. Bu, bir Web sunucusunun bir sayfaya yönelik her HTTP isteğini bağımsız bir istek olarak ele aldığı anlamına gelir. Sunucu, önceki istekler sırasında kullanılan değişken değerleri hakkında hiçbir bilgi sahibi değildir. ASP.NET oturum durumu, sınırlı bir zaman aralığı boyunca aynı tarayıcıdan gelen istekleri bir oturum olarak tanımlar ve bu oturum süresince değişken değerleri sürdürmek için bir yol sağlar. Varsayılan olarak, ASP.NET oturum durumu tüm ASP.NET uygulamaları için etkindir.

Oturum durumuna alternatifler şunları içerir:

  • Bir ASP.NET uygulamasının tüm kullanıcıları tarafından erişilebilen değişkenleri depolayan uygulama durumu.
  • Bir veri deposundaki kullanıcı değerlerini sürelerini dolmadan koruyan profil özellikleri.
  • Tüm ASP.NET uygulamalarında kullanılabilen değerleri bellekte depolayan ASP.NET önbelleğe alma.
  • Bir sayfada değerleri devam ettiren görünüm durumu.
  • Kurabiye.
  • Bir HTTP isteğinden kullanılabilen bir HTML formundaki sorgu dizesi ve alanlar.

Durumu görüntüle

Görünüm durumu, Web formu denetimlerinin durumunu korumak için ASP.NET uygulamaları tarafından yayılan HTML sayfaları tarafından kullanılan sayfa düzeyinde durum yönetimi mekanizmasını ifade eder ve aletler. Kontrollerin durumu kodlanır ve her form sunumunda sunucuya gönderilir, gizli bir alanda __DURUMU GÖRÜNTÜLE. Sunucu değişkeni geri gönderir, böylece sayfa yeniden oluşturulduğunda kontroller son durumlarında oluşturulur. Sunucu tarafında, işlemin herhangi bir kontrol durumunun değiştirilmesini gerektirmesi durumunda uygulama görünüm durumunu değiştirebilir. Bağımsız denetimlerin durumları sunucuda çözülür ve ASP.NET sayfalarında Durumu görüntüle Toplamak.[11]

Bunun ana kullanımı, geri göndermelerde form bilgilerini korumaktır. Görünüm durumu varsayılan olarak ve normal olarak etkindir serileştirir Geri gönderme sırasında gerçekten kullanılıp kullanılmadığına bakılmaksızın sayfadaki her denetimdeki veriler. Bununla birlikte, Görünüm durumu denetim başına, sayfa başına veya sunucu genelinde devre dışı bırakılabileceğinden, bu davranış değiştirilebilir (ve değiştirilmelidir).

Geliştiricilerin hassas veya özel bilgileri bir sayfanın veya denetimin Görünüm durumunda saklamaya karşı dikkatli olması gerekir. Base64 görünüm durumu verilerini içeren dizge kolayca serileştirilebilir. Varsayılan olarak, Görünüm durumu, __DURUMU GÖRÜNTÜLE değer. Şifreleme, sunucu çapında (ve sunucuya özgü) bir temelde etkinleştirilerek, belirli bir güvenlik düzeyinin korunmasına olanak tanır.[12]

Sunucu tarafında önbelleğe alma

ASP.NET, uygulama genelinde paylaşılan bir "Önbellek" nesnesi sunar ve çeşitli nesneleri depolamak için de kullanılabilir. "Önbellek" nesnesi, verileri yalnızca belirli bir süre tutar.

Diğer

Tarafından desteklenen diğer devlet yönetimi araçları ASP.NET vardır kurabiye, Önbelleğe almak, ve sorgu dizesi.

Şablon motoru

İlk yayınlandığında, ASP.NET bir şablon motoru. Çünkü .NET Framework dır-dir nesne odaklı ve izin verir miras birçok geliştirici, "System.Web.UI.Page", yazmak yöntemler orada HTML oluşturur ve ardından uygulamalarındaki sayfaları bu yeni sınıftan devralır. Bu, ortak öğelerin bir sitede yeniden kullanılmasına izin verirken, karmaşıklık ve karışımlar ekler kaynak kodu ile biçimlendirme. Ayrıca, bu yöntem tasarım sırasında değil, yalnızca uygulama çalıştırılarak görsel olarak test edilebilir. Diğer geliştiriciler kullandı dosyaları dahil et ve her sayfada aynı gezinme ve diğer öğeleri uygulamak zorunda kalmamak için başka püf noktaları.

ASP.NET 2.0, ana sayfalarizin veren şablon tabanlı sayfa geliştirme. Bir Web uygulamasında, ASP.NET 2.0 ile başlayan bir veya daha fazla ana sayfa olabilir.[13] Ana şablonların yer tutucu denetimleri vardır. ContentPlaceHolders dinamik içeriğin nereye gittiğini belirtmek için HTML ve JavaScript alt sayfalarda paylaşılır.

Alt sayfalar, içerik sayfasının doldurduğu ana sayfanın yer tutucusuna eşlenmesi gereken ContentPlaceHolder denetimlerini kullanır. Sayfanın geri kalanı, ana sayfanın paylaşılan bölümleriyle tanımlanır. posta birleştirme içinde kelime işlemci. Tüm işaretleme ve sunucu içerik sayfasındaki kontroller ContentPlaceHolder kontrolüne yerleştirilmelidir.

Bir içerik sayfası için bir istek yapıldığında, ASP.NET, içerik sayfasının çıktısını ana sayfanın çıktısıyla birleştirir ve çıktıyı kullanıcıya gönderir.

Ana sayfa, içerik sayfası için tamamen erişilebilir durumda kalır. Bu, içerik sayfasının hala başlıkları değiştirebileceği, başlığı değiştirebileceği, önbelleği yapılandırabileceği vb. Anlamına gelir. Ana sayfa genel özellikleri veya yöntemleri gösterirse (örneğin, telif hakkı bildirimlerini ayarlamak için) içerik sayfası bunları da kullanabilir.

Diğer dosyalar

Diğer Dosya uzantıları ASP.NET'in farklı sürümleriyle ilişkili şunları içerir:

UzantıVersiyonda tanıtıldıAçıklama
asax1.0Bu global uygulama dosyasıdır. Bu dosyayı global değişkenleri tanımlamak için kullanabilirsiniz (Web uygulamasındaki herhangi bir Web sayfasından erişilebilen değişken.) Çoğunlukla uygulama ve oturum nesnesiyle ilgili genel uygulama olayını tanımlamak için kullanılır.Global.asax, uygulama düzeyinde mantık için kullanılır[14]
ascx1.0Kullanıcı Kontrolü dosyaları mantığı için kullanılan Kullanıcı Kontrolü[15]
Ashx1.0Özel HTTP işleyicileri kullanıcı arayüzüne sahip değil.
asmx1.0internet servisi sayfalar. 2.0 sürümünden itibaren bir asmx dosyasının arkasındaki Kod sayfası app_code klasörüne yerleştirilir.
aspx1.0Web denetimleri ile sunum ve iş mantığını içerebilen bir ASP.NET Web Formları sayfası. http://msdn.microsoft.com/en-us/library/2wawkw1c.aspx
axd1.0İçinde etkinleştirildiğinde web.config trace.axd isteği uygulama düzeyinde çıktılar izleme. Ayrıca, kontrol / bileşen geliştiricilerinin tek bir dosyada (bir 'montaj') dağıtım için görüntüler, komut dosyası, css vb.
tarayıcı2.0Tarayıcı yetenekleri dosyalarının saklandığı XML biçim; 2.0 sürümünde tanıtıldı. ASP.NET 2, yaygın Web tarayıcılarını desteklemek için bunların çoğunu varsayılan olarak içerir. Bunlar, ASP.NET 2'nin çıktılarını buna göre otomatik olarak özelleştirip optimize edebilmesi için hangi tarayıcıların hangi yeteneklere sahip olduğunu belirtir. Özel .browser dosyaları, örneğin W3C Doğrulayıcısını kullanmak üzere ücretsiz olarak indirilebilir, böylece standartlara uygun sayfaları standartlara uygun olarak düzgün bir şekilde gösterir. Machine.config dosyasında bulunan ve içinde geçersiz kılınabilen, kullanımı zor BrowserCaps bölümünü değiştirir web.config ASP.NET 1.x'te.
yapılandırma1.0web.config belirli bir Web uygulamasında bu uzantıyı varsayılan olarak kullanan tek dosyadır (machine.config benzer şekilde tüm Web sunucusunu ve üzerindeki tüm uygulamaları etkiler), ancak ASP.NET diğer yapılandırma dosyalarını oluşturmak ve kullanmak için olanaklar sağlar. Bunlar şurada saklanır XML biçim.
cs / vb / fs1.0Kod dosyaları (cs C # belirtir, vb Visual Basic, fs F # belirtir). Dosyaların arkasındaki kod (yukarıya bakın) ağırlıklı olarak ".aspx.cs"veya".aspx.vb"en yaygın iki dil için". Diğer kod dosyaları (genellikle ortak "kitaplık" sınıflarını içerir) cs / vb uzantısına sahip Web klasörlerinde de bulunabilir. ASP.NET 2'de bunlar, bulundukları App_Code klasörünün içine yerleştirilmelidir. dinamik olarak derlenir ve tüm uygulama tarafından kullanılabilir.
cshtml4.1Görünümler (karışık C # ve HTML kullanılarak Ustura sözdizimi)
dbml3.5LINQ to SQL veri sınıfları dosyası
edmx3.5ADO.NET Entity Framework model
usta2.0Ana sayfa dosyası. Varsayılan dosya adı Master1.master'dır.
resx1.0İçin kaynak dosyaları uluslararasılaşma ve yerelleştirme. Kaynak dosyaları olabilir küresel (ör. mesajlar) veya yerel, bu, bir aspx veya ascx dosyasına özgü anlamına gelir.
site haritası2.0Site haritası yapılandırma dosyaları. Varsayılan dosya adı web.sitemap'dir
cilt2.0Tema dış görünümü dosyaları.
svc3.0Windows Communication Foundation servis dosyası
vbhtml4.1Görünümler (kullanarak karışık VB ve HTML Ustura sözdizimi)

Dizin yapısı

Genel olarak, ASP.NET dizin yapısı geliştiricinin tercihlerine göre belirlenebilir. Birkaç ayrılmış dizin adından ayrı olarak, site herhangi bir sayıda dizini kapsayabilir. Yapı genellikle doğrudan URL'lerde yansıtılır. ASP.NET, işleme sırasında herhangi bir noktada isteği yakalamak için araçlar sağlasa da, geliştirici istekleri merkezi bir uygulama veya ön denetleyici aracılığıyla yönlendirmeye zorlanmaz.

Özel dizin adları (ASP.NET 2.0'dan itibaren) şunlardır:[16]

App_Code
Bu "ham kod" dizinidir. ASP.NET sunucusu, bu klasördeki dosyaları (ve alt dizinleri) sitenin her sayfasının kodunda erişilebilen bir derlemede otomatik olarak derler. App_Code tipik olarak veri erişim soyutlama kodu, model kodu ve iş kodu için kullanılır. Ayrıca, siteye özgü tüm http işleyicileri ve modülleri ve Web hizmeti uygulaması bu dizine gider. App_Code'u kullanmaya alternatif olarak geliştirici, önceden derlenmiş kodla ayrı bir derleme sağlamayı seçebilir.
Uygulama verisi
App_Data ASP.NET Dizini, herhangi bir veri tabanı ASP.NET Web Sitesi tarafından kullanılır. Bu veritabanları Access (mdb) dosyalarını içerebilir veya SQL Server (mdf) dosyaları. App_Data, ASP.NET web uygulaması için Yazma Erişimi etkinleştirilmiş tek dizindir.[17]
App_GlobalResources
Sitenin her sayfasında bulunan yerelleştirilmiş kaynaklara sahip resx dosyalarını tutar. Burası, ASP.NET geliştiricisinin genellikle birden fazla sayfada kullanılan yerelleştirilmiş iletileri vb. Depoladığı yerdir.
App_LocalResources
Örneğin, CheckOut.aspx.fr-FR.resx adlı bir dosya, CheckOut.aspx sayfasının Fransızca sürümü için yerelleştirilmiş kaynakları içerir. Kullanıcı arabirimi kültürü Fransızca olarak ayarlandığında, ASP.NET bu dosyayı yerelleştirme için otomatik olarak bulur ve kullanır.
App_Offline.htm
Herhangi bir uygulama isteği için dosyanın içeriğini döndürerek uygulamayı devre dışı bırakan bir dosya (dizin değil).
App_Themes
Web sitesinde tutarlı bir görünüm sağlamaya yardımcı olan ve gerektiğinde Web sitesinin görünümünü değiştirmeyi kolaylaştıran yeni bir ASP.NET özelliği olan temalarla ilgili dosyaları tutan bir klasör ekler.
App_WebReferences
keşif dosyalarını ve WSDL referanslar için dosyalar Ağ hizmetleri sitede tüketilecek.
Çöp Kutusu
Derlenmiş kod içerir (.dll dosyalar), uygulamanızda başvurmak istediğiniz kontroller, bileşenler veya diğer kodlar için. Bin klasöründeki kodla temsil edilen tüm sınıflar, uygulamanızda otomatik olarak referans alınır.

Verim

ASP.NET, sunucu tarafı kodunu bir veya daha fazla için ilk kez kullanıldığında derleyerek diğer komut dosyası tabanlı teknolojilere (Klasik ASP dahil) göre performans avantajları sağlamayı amaçlamaktadır. DLL Dosyalar üzerinde Web sunucusu. Bu dll dosyaları veya derlemeleri, içinde çalıştırmak için Microsoft Ara Dilini (MSIL) içerir. Ortak dil çalışması; Bu, saf betik dillere göre bir performans artışı sağlar ve Python tarafından kullanılan yaklaşıma benzer ve farklı değildir. JavaServer Sayfaları.[18] Bu derleme, bir sayfa ilk istendiğinde otomatik olarak gerçekleşir (bu, geliştiricinin sayfalar için ayrı bir derleme adımı gerçekleştirmesine gerek olmadığı anlamına gelir).

Bu özellik, komut dosyası dillerinin sunduğu geliştirme kolaylığı ile derlenmiş bir ikilinin performans avantajlarını sağlar. Bununla birlikte, derleme, yeni düzenlenen sayfa Web sunucusundan ilk istendiğinde kullanıcı için fark edilir ancak kısa bir gecikmeye neden olabilir, ancak istenen sayfa daha fazla güncellenmedikçe yeniden değil.

ASPX ve diğer kaynak dosyaları, bir sanal konağa yerleştirilir. internet bilgi servisi sunucu (veya diğer uyumlu ASP.NET sunucuları; aşağıdaki Diğer uygulamalar bölümüne bakın). Bir istemci ilk kez bir sayfa talep ettiğinde, .NET Framework dosyaları ayrıştırır ve bir .NET derlemesinde derler ve yanıtı gönderir; sonraki istekler DLL dosyalarından sunulur. Varsayılan olarak ASP.NET, ilk istek üzerine tüm siteyi 1000 dosyalık gruplar halinde derler. Derleme gecikmesi sorunlara neden oluyorsa, toplu iş boyutu veya derleme stratejisi ince ayar yapılabilir.

Geliştiriciler ayrıca Microsoft Visual Studio'yu kullanarak dağıtımdan önce "codebehind" dosyalarını önceden derlemeyi seçebilir ve tam zamanında derleme üretim ortamında.[19] Bu aynı zamanda Web sunucusunda kaynak koduna sahip olma ihtiyacını da ortadan kaldırır. Ayrıca önceden derlenmiş metni de destekler.

Klasik ASP ile karşılaştırılan ASP.NET

ASP.NET WebForms, geliştiricilerin pencereler Aşağıdakilerden oluşan sayfalar oluşturma olanağı sunarak Web geliştirmeye uygulama geliştirme kontroller Windows'a benzer Kullanıcı arayüzü. Gibi bir Web denetimi buton veya etiket, Windows muadilleri ile hemen hemen aynı şekilde çalışır: kod, özelliklerini atayabilir ve olaylarına yanıt verebilir. Kontroller kendilerini nasıl oluşturacaklarını bilirler: Windows kontrolleri kendilerini ekrana çekerken, web kontrolleri HTML ve JavaScript bu, son kullanıcının tarayıcısına gönderilen sonuçtaki sayfanın bölümlerini oluşturur.

ASP.NET WebForms, programcıyı bir olay odaklı GUI geleneksel Web'den ziyade modelikomut dosyası oluşturma ASP gibi ortamlar ve PHP. Çerçeve, JavaScript gibi mevcut teknolojileri "Durumu görüntüle "kalıcı (talepler arası) durumu doğal olarak vatansız Web ortamı.

İle karşılaştırıldığında diğer farklılıklar Klasik ASP şunlardır:

  • Derlenmiş kod, uygulamaların geliştirme aşamasında daha fazla tasarım zamanı hatasıyla daha hızlı çalışması anlamına gelir.
  • Önemli ölçüde geliştirilmiş çalışma zamanı hata işleme, istisna işleme try-catch blokları kullanarak.
  • Kontroller ve olaylar gibi Microsoft Windows uygulamalarına benzer metaforlar.
  • Kapsamlı bir dizi kontrol ve sınıf kitaplığı ile kullanıcı tanımlı kontroller, uygulamaların hızlı bir şekilde oluşturulmasına izin verir. Bu kontrollerin bir sayfada yerleşimi daha kolaydır çünkü çoğu editörde görsel olarak yapılabilir.
  • ASP.NET, .NET'in çoklu dil yeteneklerini kullanır Ortak dil çalışması, Web sayfalarının VB.NET, C #, J #, Delphi.NET, vb. ile kodlanmasına izin verir.
  • Performansı artırmak için tüm sayfayı veya yalnızca bir kısmını önbelleğe alma yeteneği.
  • Kullanma yeteneği arka plan kod iş mantığını sunumdan ayırmak için geliştirme modeli.
  • True kullanma yeteneği nesne odaklı sayfaları ve kontrolleri programlamak için tasarım
  • Bir ASP.NET uygulaması bellek sızıntısı, ASP.NET çalışma zamanı hatalı uygulamayı barındıran AppDomain'i kaldırır ve uygulamayı yeni bir AppDomain'e yeniden yükler.
  • Oturum durumu ASP.NET'te bir Microsoft SQL Sunucusu veritabanı veya Web sunucusuyla aynı makinede veya farklı bir makinede çalışan ayrı bir işlemde. Bu şekilde, Web sunucusu sıfırlandığında veya ASP.NET çalışan işlemi geri dönüştürüldüğünde oturum değerleri kaybolmaz.
  • ASP.NET'in 2.0'dan önceki sürümleri, standartlara uyum eksikliğinden dolayı eleştiriliyordu. İstemci tarayıcısına gönderilen oluşturulan HTML ve JavaScript, her zaman W3C /ECMA standartları. Ek olarak, çerçevenin tarayıcı algılama özelliği bazen Microsoft'un kendi tarayıcısı dışındaki Web tarayıcılarını yanlış tanımlamıştır. Internet Explorer "alt seviye" olarak ve bu istemcilere bazı özellikleri kaldırılmış veya bazen sakatlanmış veya bozuk HTML / JavaScript döndürdü. Ancak sürüm 2.0'da, tüm kontroller site yapılandırmasına bağlı olarak geçerli HTML 4.0, XHTML 1.0 (varsayılan) veya XHTML 1.1 çıktısı üretir. Standartlarla uyumlu Web tarayıcılarının tespiti daha sağlamdır ve aşağıdakileri destekler: Basamaklı Stil Şablonu daha kapsamlıdır.
  • Web Sunucusu Denetimleri: Bunlar, Web formu için UI sağlamak için ASP.NET WebForms tarafından tanıtılan denetimlerdir. Bu kontroller, devlet tarafından yönetilen kontrollerdir ve WYSIWYG kontroller.

Referanslar

Alıntılar

  1. ^ "Web Formları nedir". docs.microsoft.com.
  2. ^ "ASP.NET Görünüm Durumuna Genel Bakış". msdn.microsoft.com.
  3. ^ "ASP.NET ve ASP.NET Core arasında seçim yapın". docs.microsoft.com.
  4. ^ Personel (Kasım 2001). "ASP.NET ve Web Formlarına Genel Bakış". Microsoft. Alındı 2011-06-05.
  5. ^ (MacDonald ve Szpuszta 2005, s. 63)
  6. ^ "Visual Studio'da Web Uygulama Projeleri ile Web Sitesi Projeleri".
  7. ^ "Kod Sıralı ve Kod Satır İçi". Microsoft ağ çerçevesi. Microsoft. Arşivlendi 11 Kasım 2010'daki orjinalinden. Alındı 2010-11-22.
  8. ^ "aspx.designer.cs nasıl çalışır?". StackOverflow. 10 Eylül 2015.
  9. ^ "ASP.NET Web Sayfası Sözdizimine Genel Bakış". Microsoft ağ çerçevesi. Microsoft. Alındı 2010-11-22.
  10. ^ a b c "BİLGİ: ASP.NET Durum Yönetimine Genel Bakış". Alındı 2007-10-23.
  11. ^ "ASP.NET'te ViewState". Arşivlenen orijinal 14 Ekim 2007'de. Alındı 2007-10-23.
  12. ^ "ASP.NET'te Görünüm Durumunu Şifreleme". Alındı 2009-07-19.
  13. ^ "ASP.NET Ana Sayfaları". microsoft.com. Microsoft.
  14. ^ "Global.asax Sözdizimi". microsoft.com. Microsoft.
  15. ^ ".Ascx Kullanıcı Kontrolünü Yeniden Dağıtılabilir Özel Kontrole Dönüştürme". microsoft.com. Microsoft.
  16. ^ "ASP.NET Web Projesi Klasör Yapısı". microsoft.com. Microsoft.
  17. ^ "ASP.NET Dizin Yapısı". aspnet4.com.
  18. ^ (MacDonald ve Szpuszta 2005, s. 7-8)
  19. ^ "ASP.NET Web Sitesi Projesi Ön Derlemeye Genel Bakış: Ön Derleme Gerçekleştirme". Microsoft Geliştirici Ağı. Alındı 13 Ocak 2016.

Kaynaklar

Dış bağlantılar