Transcript
Page 1: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

Masaüstü Uygulamasından ASP.NET Sayfalarıyla Etkileşim Fatih BoyMicrosoft MVP (Visual C#)Birim Bilgi Teknolojileri

http://fatihboy.comhttp://enterprisecoding.com

Page 2: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

Fatih Boy

Microsoft MVP (Visual C#)Proje MüdürüBirim Bilgi Teknolojileri

/Enterprisecodinghttp://fatihboy.com

http://enterprisecoding.com /fatihboy

[email protected]

Page 3: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

Hyper Text Transfer Protocol

Page 4: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

En basit şekliyle bir istek;

GET http://enterprisecoding.com/ HTTP/1.1CR LF

Host: enterprisecoding.comCR LF

HTTP İstek Yapısı

İstek Metodu

İstek Adresi

Protokol

Sunucu Başlığı (Host Header)

Page 5: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

HTTP İstek YapısıBir Başka Örnek;

GET http://enterprisecoding.com/ HTTP/1.1Accept: text/html, application/xhtml+xml, */*Accept-Language: tr-TRUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)Accept-Encoding: gzip, deflateConnection: Keep-AliveHost: enterprisecoding.comCookie: abc=123

Page 6: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

Web sayfalarında en sık kullandıklarınız

İstek Metodları−GET−POST−HEAD−PUT−DELETE−TRACE−OPTIONS−CONNECT−PATCH

Page 7: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

İstek Metodları - POST

−Genellikle «application/x-www-form-urlencoded» içerik türüne sahiptir

−Veri anahtar ve değer ikilisi olarak gönderilir−Gönderilen her bir anahtar-değer ikilisi

birbirinden “&” karakteri ile ayrılmaktadır−Anahtar ve değer arasında ise “=” karakteri

yer almaktadır−Gönderilen veri içerisindeki boşluklar “+”

karakteri ile yer değiştirdikten sonra da kalan diğer karakterlere URL encoding uygulanır

Page 8: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

İstek Metodları - POST

Anahtar Değer

Adi Ali Veli

Soyadi Örnek

Sehir İzmir

Ulke Türkiye

Bu anahtar-değer ikilileri için oluşturulacak olan POST ;

Adi=Ali+Veli&Soyadi=%c3%96rnek&Sehir=%c4%b0zmir&Ulke=T%c3%bcrkiye

Page 9: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

HTTP Yanıt YapısıDurum Bilgisi

HTTP/1.1 200 OKDate: Sun, 26 Feb 2012 20:28:23 GMTServer: Apache/2.2.21 (Unix) FrontPage/5.0.2.2635X-Powered-By: PHP/5.2.17Vary: Cookie,Accept-EncodingX-Pingback: http://www.enterprisecoding.com/blog/xmlrpc.phpExpires: Wed, 11 Jan 1984 05:00:00 GMTCache-Control: no-cache, must-revalidate, max-age=0Pragma: no-cacheLast-Modified: Sun, 26 Feb 2012 20:28:25 GMTSet-Cookie: client=done;path=/;Keep-Alive: timeout=5, max=400Connection: Keep-AliveContent-Type: text/html; charset=UTF-8Content-Length: 87109

Sunucu ve Kaynak Bilgisi

Page 10: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

Çerezler (Cookies)

İlk İstek

− HTTP durumsuz bir protokoldür− Durum bilgisi çerezler yardımıyla tutulabilir− Çerezler sunucuya açık text olarak transfer edilir

İstemci ilk HTTP isteğini yapar

İkinci İstek

Yanıt içerisinde Set-cookie:<çerez>

İstemci

Standart HTTP yanıtı

Sunucu

İstek içerisinde Set-cookie:<çerez>

Page 11: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

DemoFiddler ile istek/yanıt takibi

Page 12: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

DemoPHP sayfasına veri gönderimi

Page 13: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

ASP.Net Sayfaları - Zorluklar• View state (__VIEWSTATE )

Bir ASP.Net web sayfasına ait durum bilgisinin saklandığı form elemanı

• Event validation (__EVENTVALIDATION)

Page 14: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

• En kaba anlatımla sayfada gerçekleşen bir olayın sunucuya bildirilmesidir

• ASP.Net, istemci tarafında oluşan olayları sunucuya bildirebilmek için sayfadaki Form’u bir javascript yardımıyla sunucuya POST yöntemi ile göndermektedir

• Sayfada bu amaçla __doPostBack javascript fonksiyonu kullanılmaktadır

ASP.Net Sayfaları – Olay BildirimiPost back

function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); }}

Postback’e neden olan

kontrol

Olay’a ilişkin argümanlar

Page 15: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

DemoASP.Net sayfasına veri gönderimi

Page 16: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

Faydalı Kaynaklar• Enterprisecoding

http://enterprisecoding.com

• Hypertext Transfer Protocolhttp://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

• Fiddler2http://fiddler2.com

• Chad Sowald's Request-To-Codehttp://www.chadsowald.com/software/fiddler-extension-request-to-code

Page 17: Masaüstü uygulamasından Asp.Net sayfalarıyla etkileşim

Teşekkürler

Fatih BoyMicrosoft MVP (Visual C#)Birim Bilgi Teknolojileri

http://fatihboy.comhttp://enterprisecoding.com


Recommended