Web service?

Başlatan mir_as82, 24 Ağustos 2017, 22:17:27

mir_as82

Web servis talebi http protokolü ile web servera gönderiliyor. Buraya kadar sorun yok.
Talep aspx sayfası talebi gibi mi yapılır?
Asp.net uygulaması çalışan bir server da, IIS  e get request ile a.asmx dosyası talebi geliyor ve bu sayfa asp.net motoru tarafından işletiliyor ve sonda çıktısı Web servise request yapan client a mi gönderilir ?
Kısaca akış aspx sayfalarının akışı gibi midir?

tunayk

Sistem olarak dediğiniz şekilde işliyor.  Eğer sonuç döndüren bir servis ise sonuçlar XML formunda dönüyor.  Siz servisi bir nesne olarak kullanmış iseniz xml tarafı sistem tarafından ayıklayıp size temiz veri gelir.

mir_as82

Peki hocam ASP.NET (web UI)-C#(Controller) ikilisi olarak çalışıyorsa sistem.
A tarafı:A uygulaması B den talep ediyor: request-->IIS--ASP.NET--C#--Database
B tarafı:B uygulaması A ya response atıyor-->DB--C#--ASP.NET--IIS

Yani sorumu kısa sorayım. İki taraftaki uygulamada da ASP.NET,C#, Database üçlüsü varsa, bu request ve responselar hep:DB-->C#-->ASP.NET-->IIS olacak şekilde mi gönderilir?

tunayk

Hocam Asp.net başlığı altında servis olsun, sayfa olsun. NET Famework tarafından yorumlanır ve sonuç döndürülür.  IIS burada acente görevi görüyor. Asp.net sistemi IIS vb. Tarafından host edilmek zorundadır.
Eğer gelen requesti doğrudan ben yorumlayayım dersen bu başka. Bu durumda senin uygulama portu dinler, web requesti alırsa gerekli işlemleri yapar sonrada response nesnesi ile geri gönderir.
Bu yapı basit http parser olarak yapılır ancak güvenlik, bağlantı yönetimi vb. Detayı çoktur ve dikkat edilmez ise sıkıntı doğurur.

mir_as82

Peki asp.net ile C# kodu nasıl haberleşiyor?

tunayk

Merhaba @mir_as82 ,
Sorun biraz garip kaldı, cevaplamaya çalışalım.
Şimdi Asp.Net ve C# kodunun haberleşmesi diye bir ifade hatalı olur. Konuyu daha kolay anlama konusunda uygulama katmanlarını biraz incelemeni tavsiye ederim.
Senin C# dediğin kodlar genel olarak uygulama olarak tanımlanır.  Windows tabanlı veya web tabanlı olabilir.  her iki durumda da yazdığınız kodlar. Net framework sistemi tarafından yorumlanır ve gereği yerine getirilir.
Aslında Asp.net dediğimiz şey http formundaki web sayfasına kod gömmekten ibaret kısaca.  Asp.net ile ilgili kontrol veya sayfa olsun yazdığın kodlar framework tarafından doğrudan yorumlanır, işlenir.
Arada bilinen manada senin araya girebileceğin bir haberleşme yok. Ancak farklı exe dosylarından ve dll lerden oluşan framework dahilinde dahili olarak çeşitli yöntemler (Named Pipe, Ram objeleri vb.) var elbette.
Sen Asp.net sayfasından kod yazdığında bu üst katmanda yer alır. Bir DB bağlantısı yapılacak ise, sen Connect dediğinde,  ilgili kütüphane den ilgili fonksiyon sistem tarafindan çağrılır, sana temiz sonuç gelir.  Sen de kendi kodun içinde bunları işler ve sonucu kullanıcıya döndürürsün.
Eğer amaç Sql Server ile doğrudan konuşmak ise, durum değişir.  O zaman TCP /IP ile servera bağlanırsın.  Sonra onun anlayacağı protokol ile sorgu gönderirsin. Sonra da ondan gelen cevabı çözümleyip işlemlerini yaparsın.
Windows ve web sisteminin işleyişi konusunda biraz daha araştırma yaparsanız  daha kolay anlaşılır.
Selamlar

mir_as82

Hocam doğru söylüyorsunuz ben soruyu biraz hatalı sordum.
ASP.NET projesi ile onun arkasında uygulama olarak çalışan C# uygulama yazılımın nasıl haberleştiğini sordum aslında.
Yani asp.net sadece görsel olarak, onun arkasında asıl uygulama olarak C# uygulaması. Ve işin içinde Web servis ve database de var. Uygulama desktop uygulama değil.