17
Masaüstü Uygulamasından ASP.NET Sayfalarıyla Etkileşim Fatih Boy Microsoft MVP (Visual C#) Birim Bilgi Teknolojileri http://fatihboy.com http://enterprisecoding.com

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

Embed Size (px)

DESCRIPTION

Bir masaüstü uygulamasından asp.net, php, jsp gibi dinamik bir web sitesiyle yada html içerikli sabit bir web sitesiyle nasıl etkileşimde bulunabileceğimizi paylaştğım webiner'e ait powerpoint sunusu

Citation preview

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