none
Çözüm bulamıyorum biri bana fikir yada yol gösterebilirmi ? RRS feed

  • Soru

  • Merhaba,

    3-4 gündür veritabanındaki anlık değişimi fark edip ona göre olay yaptırmaya çalışıyorum.

    Senaryo şöyle

    2 bilgisayar var birinde mssql server kurulu ana bilgisayar diğeri laptop ikiside aynı programı çalıştırıyor. Biri masa açarsa diğer bilgisayarda'da açılmış olarak gözükmesi gerekiyor.

    Forumdaki tavsiyeler göre SqlDependency ile yapmaya çalıştım fakat o sadece mssql serverın olduğu yerde çalışıyor yerel ağdaki diğer bilgisayarda hata verip kapanıyor değişikliği algılamıyor. Bunun üzerine daha detaylı araştırdım aşağıdaki linki buldum

    https://github.com/dyatchenko/ServiceBrokerListener

    fakat yukardakinde de ne yaptıysam olmadı veritabanına kullanıcı tanımlıyorum olmuyor schema veriyorum olmuyor. Bir türlü iki bilgisayar ne yapmış ne etmiş haberleştiremedim.

    Daha farklı bi çözüm yolu bilen var mı illa veritabanındaki değişikliği algılamak zorunda değil. A bilgisayarındaki kişi bi tuşa basınca B bilgisayarında'da o tuşa bassın mesela ? kısaca A bilgisayarı masa methodunu çağırdıysa arkasından B bilgisayarına masa methodu çalıştırıldı git veritabınından masaları çek, gibi bir şey lazım.

    1 Hafta olacak şu işi çözümleyemedim öncesinde her saniyede bir veritabanından veriyi çekiyordum timeout expired oluyordu bu yüzden farklı yöntemlere başvurdum.

    Yardımlarınızı bekliyorum teşekkürler.

    3 Aralık 2018 Pazartesi 21:58

Tüm Yanıtlar

  • Aynı soruyu farklı cümlelerle kurdunuz ben aynı öneride bulunacağım. Sunucu bilgisayara bir servis uygulaması koyun bu arkadaşta da signalR veya başka bir şey ile istemcilerle haberleşsin. Zaten ana makine dışındaki makinelerin veritabanı ile haberleşmesi de hoş bir pattern değil.

    www.cihanyakar.com

    4 Aralık 2018 Salı 07:50
  • Aynı soruyu farklı cümlelerle kurdunuz ben aynı öneride bulunacağım. Sunucu bilgisayara bir servis uygulaması koyun bu arkadaşta da signalR veya başka bir şey ile istemcilerle haberleşsin. Zaten ana makine dışındaki makinelerin veritabanı ile haberleşmesi de hoş bir pattern değil.

    www.cihanyakar.com

    Şimdi doğru anlamışmıyım diye 2 sorum olucak

    ilk sorum signalR winforms application'da yapılır mı ? çünkü internette asp.net üzerine çıkıyor.

    ikinci sorum,

    sunucu bilgisayar yani mssql serverın kurulu olduğu bilgisayar aynı zamanda kasa işlevini görüyor yani program orada da kurulu. Ben CRUD işlemleri için yerel ağ bağlantısından servise ulaşıp servis üzerinden mi CRUD işlemlerini yapacağım ? Eğer öyle olursa bir bilgisayarda yapılan değişiklik diğerinde nasıl fark edilecek ve ona göre verileri baştan çek diyebileceğim ?

    Teşekkürler.

    4 Aralık 2018 Salı 10:07
  • SQL SERVER ---> WEB SERVICE + SIGNALR ---> CLIENT UYGULAMALAR

    İlk ikisi aynı makinede olacak, web service sql den dependency ile değişiklikleri dinleyebilir veya iş katmanından hiç sql i bulaştırmadan halledebilir.

    Clientlar web service aracılığı ile crud işlemlerini yaparlar.

    Clientler SignalR ile servise ayrıca bağlanırlar ve değişiklik olduğunda tek bir yerden bu değişiklik bilgisi dağılmış olur.

    Bu örnek kuş görüşü bir mimari. Uygulamanın kendisini bilmediğim için bu kadar yazabiliyorum. Kolaylıklar diliyorum.


    www.cihanyakar.com

    4 Aralık 2018 Salı 10:14
  • SQL SERVER ---> WEB SERVICE + SIGNALR ---> CLIENT UYGULAMALAR

    İlk ikisi aynı makinede olacak, web service sql den dependency ile değişiklikleri dinleyebilir veya iş katmanından hiç sql i bulaştırmadan halledebilir.

    Clientlar web service aracılığı ile crud işlemlerini yaparlar.

    Clientler SignalR ile servise ayrıca bağlanırlar ve değişiklik olduğunda tek bir yerden bu değişiklik bilgisi dağılmış olur.

    Bu örnek kuş görüşü bir mimari. Uygulamanın kendisini bilmediğim için bu kadar yazabiliyorum. Kolaylıklar diliyorum.


    www.cihanyakar.com

    Cevabınız ve yönlendirmeniz için teşekkür ederim, kısaca belki kafanızda canlanması açısından basit bi örnekle uygulamam şu, adisyon programı yazıyorum yerel ağda iki bilgisayar var ikisinde aynı program kurulu birisi masa açarsa diğeri bu değişikliği algılayıp açık olduğu bilgisini ekrana gösterecek tek yapamadığım kısım bura kaldı biri masa açtığında diğeri algılamıyor gidip yukardan tuşa basıp tekrar listele dediğimde veritabanından çekip listeletiyorum ancak öyle çalışıyor. İşte burda aykırı senaryo ortaya çıkıyo biri masa açtığında diğeri algılamadığı için aynı masayı açarsa bu sefer hata vericek.
    4 Aralık 2018 Salı 10:22
  • Tekrar Merhaba, iki gündür yaptığım araşatırmalar neticesinde SignalR web tabanlı uygulamalar için kullanılıyor fakat benim yapmak istediğim şey,

    Yerel ağ bağlantısından aynı programın haberleşmesi (windows form application)

    SignalR için console application'da Hub server kuruyorum Clientler bağlanıyor localhost:8080 üzerindent test ediyorum. Ama yapmak istediğim şey clientlerin servera mesaj göndermesi değil, serverın clientlere mesaj göndermesi lazım sqldependency ile değişikliği algıladığımızda connect olan tüm clientlere bunu dağıtması lazım ?

    5 Aralık 2018 Çarşamba 22:58
  • SignalR her tür istemci tipinde kullanılabilir! Web, desktop, mobil....

    SignalR da iletişim duplexdir yani sunucu istemcilere, istemci sunucuya istediği zaman gönderide bulabilir.


    www.cihanyakar.com


    6 Aralık 2018 Perşembe 06:54