C# Ve Android Arasındaki İletişim
-
Selam arkadaşlar,
Şimdi bir arkadaşımla ortak proje geliştiriyoruz. O android tarafını yapacak ben de masaüstü tarafını.
Şimdi ortada bir veritabanı var (server tarafında), android bildiğim kadarıyla sqlite harici kullanamıyordu (yeni sürümlerinde destekleyebilir
ama çok önemli değil bu) o yüzden kafamda bu işi WCF ile yapmak var. WCF ile daha önce profesyonel işler yapmadım, sadece temel düzey
öğrenme amaçlı kullandım sonra da bıraktım gitti çünkü çok sık kullanılacak işler geliştirmedim.
Düşüncem şöyle; bir tane WCF servisi olacak, android client (aynı zamanda bazı programlar da olacak) bu servisten istekte bulunacak ve
servis veritabanına bağlanıp (mongodb,couchdb gibi bir şey düşünüyorum veritabanı olarak) geri dönüş yapacak. Buraya kadar problem yok.
Ancak WCF de çift taraflı iletişim gerekli. Bazı değişimlerde servis bunu clientlara haber vermesi gerek ( bir tane listener olacak yani
clientlarda). WCF de çift yönlü iletişimde bulunabiliyor ancak tecrübem olmadı..
Tüm sistemler local çalışacak, şimdi WCF için bir proje oluşturup bunu localhostta attığımızda, server olan kişi buradaki kodlara
erişebilecek. O yüzden masaüstü uygulaması gibi çalışabilecek şekilde düzenlemem gerek (bir windows servisi gibi ama bunun WCF de
yeri nedir bilmiyorum?)
Daha önce cometD nin localinde çalıştım, server kısmıyla ilgili bilgim yok ama clientda çok güzeldi. Serverdan veri tüm clientlara geliyor (bir
event var ortada) bu eventten müşteri kodu ayrıştırılıyor ve eğer o kod o client ile ilgiliyse o zaman işlem yaptırıyorduk...
Bu tarz api sistemi olarak ne kullanabilirm başka? Direk clientların veritabanına istekte bulunmasını istemiyoru (güvenlik amaçlı diyelim)
arada bir tane servis olacak ve bu servise gelen istekler değerlendirilp geri gidecek ve servis gerektiği zaman eventini tetikleyecek.
Android ve .net taraflı en stabil çalışan sistem ne olabilir sizce? Kafamdaki sistemi yaparım ancak ben en iyi ve en sıkıntısız şekilde
halletmek istemiyorum. Global olarak yapmak istemiyorum çünkü bazı yerlerde internet erişimi olmayabilir o yüzden local bir ağ kurup
bunu halledebilirim en kötü ihtimal
Teşekkürler
-
Restful yeterli değil mi?
-
maximum 50 tane client olur hocam, çok da yoğun bir trafik olmayacak ama ben bahsettiğim tarz sistemlerle çözmek istiyorum :)
-
wcf in bazı bindingleri duplex bağlantıyı destekliyor meslam bunun gibin(http://www.codeproject.com/Articles/17704/WCF-Duplex-Operations-and-UI-Threads) fakat senin ona bi proxy generate etmen için xamarin kullanman lazım, yoksa proxy'i kendin yazabilirsen bununla git derim.
bide signalr kullanabilrisn, burda(https://github.com/erizet/SignalA) android clientininide yazmış herifler.
nessaj tarafından 14/May/13 22:02 tarihinde düzenlenmiştir -
bu xamarin mono nundu galiba. anlamadığım şey neden .net ve android arası kendi proxymi yazmak zorundayım? internette direk bağlantı
sağlayan örnekler mevcut (çift taraf için bunu dediysen bilmiyorum
şöyle bir şey buldum, gayet basit ve hoş göründü gözüme
http://eneter.blogspot.com/2012/03/android-how-to-communicate-with-net.html
-
unbalanced bunu yazdı
bu xamarin mono nundu galiba. anlamadığım şey neden .net ve android arası kendi proxymi yazmak zorundayım? internette direk bağlantı
sağlayan örnekler mevcut (çift taraf için bunu dediysen bilmiyorum
şöyle bir şey buldum, gayet basit ve hoş göründü gözüme
http://eneter.blogspot.com/2012/03/android-how-to-communicate-with-net.html
bu çok kralmış bak, proxyden kastım bu zaten. bunu çıkarabilirsan gerisi gelir zaten.
-
nessaj bunu yazdı
bu çok kralmış bak, proxyden kastım bu zaten. bunu çıkarabilirsan gerisi gelir zaten.
bu eneter baya kapsamlıymış hocam, şimdi baktım da baya kullanılıyor bunu kütüphanesi... bu işimizi görür gibi ama yine de alternatife bakmak
lazım :) comet kullanmak istiyorum aslında ama client biraz zorladı beni, server muhtemelen daha karışıktır ve android-.net arasını bulmak sıkıntılı
(salt comet java destekli ama .net e uyarlanmış hali cometD) neyse alternatiflere de bakayım.. mümkün olan en iyi sistem neyse onu istiyorum.
arada çok veri gidip gelmeyeck ve giden veriler de max 10 kb falan olur.. bir de resim yollamayı düşünüyorum (120x120px şeklinde) bitmapini byte
dizisi şeklinde yollasam acaba android de bunu androidde tekrar bitmap yapabilir miyim bilmiyorum :))
-
-
ilk verdiğin linkteki çok kompleks ama bir o kadar da profesyonel görünüyor hocam. ama önce şu "eneter" in kütüphanesini bi deneyeyim duruma göre verdiğine de bakayım.
teşekkürler tüm cevaplar için
unbalanced tarafından 14/May/13 23:34 tarihinde düzenlenmiştir
