Ben bir PHP web sunucusu ve bir. NET mobile uygulama var. . NET uygulama php web sunucusu tarafından (şimdilik) sağlanan bir veritabanı, veri ihtiyacı vardır. Ben bu yüzden en iyi uygulamalar nelerdir emin değilim senaryo bu tür için oldukça yeni. Ben sorunların bir çift koştu ve ben bunların üstesinden nasıl emin değilim.
For now, I have the following setup. I run a PHP SOAP server which has a couple of operations which simply retrieve data from the database. For this web service I have created a WSDL file. In Visual Studio I added a web reference to my project using the WSDL file and it generated some classes for it. I simply call something like "MyWebService.GetItems();" and I get an array of items in my .NET application, which come straight from the database. Next I also serialize all these retrieved objects to local (permanent) storage.
Ben düzgün çözmek için nasıl bilmiyorum sorunlar bir kaç yüz.
Mobil istemci çalışmaya başlamadan önce, bir zamanlar (günün başlangıcında) verileri senkronize ve daha sonra gün boyunca yerel depolama kullanmak, ve günün sonunda geri senkronize etmek için bir fikirdir.
Şu anda all veri SOAP yoluyla indirilen, ve (sadece ne tabi) bir alt kümesidir. Nasıl yeni bilgiler müşteriye gönderilmesi gereken bilemez? Sadece sunucu yeni ne olduğunu bilir, ancak istemci zaten sahip olduğu veri emin bilir.
Ben şimdi çift işi gibi görünüyor. SOAP ile aktarılan veriler temelde zaten tefrika nesnelerdir. Ama şu anda ben ilk SABUN aracılığıyla tüm nesneleri almak ve. NET framework otomatik olarak deserializes. Sonra yine kendimi tüm verileri serialize. Bu sadece depolama indirmek ve daha sonra bu serisini daha verimli olacaktır.
Mobil cihaz hafızasında bir sürü yok. Benim test verileri bu gerçekten bir sorun değil, ama hayal edebiliyorum kayıtlarının binlerce potansiyel onda bu bir sorun haline gelecektir. Ben SOAP yöntemini çağırmak Şu anda zaman, (bir dizi olarak) belleğe tüm verileri yükler fakat yukarıda anlatıldığı gibi belki de o doğrudan depoya saklanan olması daha iyi olurdu, ve sadece depolama gerekli nesneleri almak. Ama bu nasıl saklamak istiyorsunuz? Bir dizi büyük bir XML (veya ikili) Ben yüklemek için hangi nesneleri seçemezsiniz hangi dosyaya serialize olacaktır. Ben (binlerce olası onda) ayrı dosyalar yapmak istiyorsunuz? Ayrıca günün sonunda ben sunucuya geri değişiklikleri göndermek istediğiniz zaman, nasıl göndermek hangi nesneleri bilemez ... onlar bellekte değiliz çünkü?
Benim sorunlarım açık olan umut ve ben bana bu en iyi şekilde uygulamak için nasıl anlamaya yardımcı olacağını umuyorum. :)
Bazı şeyler zaten (, mobil cihaz üzerinde. NET kullanarak PHP kullanarak bir MySQL veritabanı sunucusu olması gibi) sabit ama başka şeyler kesinlikle (SOAP kullanarak gibi) değiştirilebilir.