2008-08-07 13 views
8

Bu yüzden şirketim bir foxpro veritabanında çok sayıda veri saklıyor ve doğrudan dokunma performansının etrafından dolanmaya çalışıyor. Bir anlık kullanıcı deneyimi için eşzamansız bir şekilde yapılabilecek herhangi bir şeyi mesajlaşmayı düşünüyordum. ActiveMQ'a bakmaya başladım ama C# 'nin ne kadar iyi eğlendiğini bilmiyorum. Hepinizin ne düşündüğünü duymak istiyorum.C# ile mesajlaşma için ne kullanmalı? #

düzenleme: Web uygulaması olacak. Bu foxpro'ya dokunmak her şey çok yavaştır (muhtemelen 10 yıl önce onu kuran kişi, her şeyi cehenneme çevirmiştir, bazı masa dosyaları inanılmaz derecede büyüktür). Foxpro'yu her gece sql'e çoğaltırız ve veri okumalarımızın çoğunun bir günlük olması iyi olur, bu yüzden yazılara odaklanırız. artı yazma, kullanıcı deneyiminin (satın alma) kritik bir bölümünü etkiler, biz onu sql olarak saklar ve sonra sadece geldiğinde foxpro'ya koyması için mesaj göndeririz. Keşke foxpro'yu kurtarabilseydik, maalesef şirket satın aldığı çok eski bir yazılım parçasından kurtulmak istemez.

cevap

6

ActiveMQ, Spring.NET tümleştirmelerini ve NMS'yi kullanarak C# ile iyi çalışır. is here yönünde başlamanız için bazı bağlantılar içeren bir gönderi. Ayrıca, some options here ile MSMQ (System.Messaging ad alanı) veya .NET tabanlı bir zaman uyumsuz mesajlaşma çözümü kullanmayı düşünün.

+1

Bu blog artık mevcut değil. –

0

Üzgünüz bu soruyu sormuyorsanız ... Winsock kullanarak c/C++ 'da eşzamansız soketleri kullanırken "kova sistemi" gibi davranan sahnelerin arkasında bir çeşit önbellek düşündünüz mü? Temel olarak, istekleri kabul ederek çalışır ve web uygulamasına hemen bir yanıt gönderir ve nihayet kayıtlarınızı bulmak için etrafta dolanırken, AJAX veya seçtiğiniz herhangi bir başka teknoloji ile uygulamayı günceller. C# programcısı olmadığımdan, belirli bir örnek veremem. Bu yardımcı olur umarım!

0

Fox uygulaması .CDX dizinlerini kullanıyor mu? Eğer öyleyse, herhangi bir program kodunu değiştirmek zorunda kalmadan indeks ekleyerek performansı artırabilirsiniz. Ancak .IDX dizinlerini kullanırsa, değişiklik gerçek uygulamada yapılmalıdır.

0

Sorun, yazımlarla olduğu için, daha fazla> < tablodaki tüm gereksiz dizinleri kaldırmaya bakacağım. RDBMS'de sıkça görüldüğü gibi, bir FoxPro tablosundaki her dizin, dizinlerin güncellenmesi gerektiğinden bir yazma işlemini yavaşlatır ve doğrudan tablodan (veya muhtemelen doğrudan sorgulama) okumadığınız için çok fazla dizine gerek duymazsınız. . Ayrıca, yazma işlemini yavaşlatıyor olabileceğinden, tablolardaki herhangi bir tetikleyici veya alan kuralına bakmak isteyebilirsiniz. Başvurusal bütünlüğünüzün hala korunduğundan emin olun, ancak ..

4

MSMQ (Microsoft Message Queuing) mükemmel bir seçim olabilir. İşletim Sisteminin bir parçasıdır ve isteğe bağlı bir bileşen olarak sunulur (Program Ekle/Kaldır/Windows Bileşenleri aracılığıyla yüklenebilir), yani ücretsiz (Windows için zaten ödediğiniz sürece). MSMQ, Win32/COM ve System.Messaging API'leri sağlar. Daha modern Windows Communication Foundation (aka Indigo) queued channels da MSMQ kullanmaktadır. Windows Home SKU'larında MSMQ'nin desteklenmediğini unutmayın (XP Home ve Vista Home)

1

MSMQ'ye bakmak isteyebilirsiniz. .NET ve VFP tarafından kullanılabilir, ancak bunları kullanmak için yeniden yazmanız gerekir. İşte size, MSMQ’yu VFP’den nasıl kullanacağınızı gösteren bir makale. http://msdn.microsoft.com/en-us/library/ms917361.aspx

İlgili konular