Daha önce bazı Android uygulamalarım oldu. Bunlarda Emb'nin tavsiye ettiği üzere FireDAC + DataSnap iklisi ile bağlandım. Bazı sorunlarım olsa de işimi gördü. UniDAC bileşenlerinin doğrudan SQL Server'a bağlanma yeteneği var. Bunu kullanan arakadaş var mı? Bir sorun yaşamış mı? Internetten bağlanıldığında performans tatmin edici mi?
Merhaba,
FMX mimarisini çıktığı ilk günden beri sıkı takip ediyorum.
Mobil işletim sistemleri üzerindeki, uygulamaların yaşam biçimi maalesef ki; bildiğimiz manadaki veri tabanı programcılığına ters düşüyor. Yani doğrudan DB'ye bağlanıp, sorgu yapmak veya diğer veri tabanı işlemlerini yapmak mobil uygulama prensiplerine aykırı geliyor. Connection sürekli bağlantı ihtiyacı duyuyor. Ara ara bağlantıda kopmalar meydana geliyor. Sorgu sırasında anlık bir kopma oluyor ve connection bileşeni tekrar bağlanmaya çalışıyor veya bağlanıyor. Bu durumda veri kayıpları, uygulamanın kırılması gibi durumlarla karşılaşıyoruz.
Bu durum FMX mimarisine özgü değil diğer yazılım geliştirme ortamları için de aynıdır (uygulama yaşam döngüsü ile ilgilidir).
Bu nedenle; test amaçlı uygulamalar harici, şu ana kadar hiç kimseye doğrudan bağlantı önermedim, size de önermiyorum. Bu bileşen ister FireDac (ki şu an için mobil platformda doğrudan bağlantı özelliği yok. Muhtemelen dediğim sebepten ötürüdür) olsun, ister UniDac olsun tavsiye etmiyorum.
DataSnap bildiğiniz gibi önceden yalnızca SOAP desteği mevcuttu, şu an (Delphi 10.2 Tokyo sürümü ile birlikte) REST mimari desteği de mevcut.
DataSnap+REST iyi bir tercih olacaktır.
Fakat benim tavsiyem;
Linux sunucu üzerinde Web Module + REST olacak.
Merhabalar arkadaşlar,
Acaba unidac ile datasnap bağlantısı mümkünmüdür?
Mobile için RESTful veya SOAP web servis ile işlemlerinizi yapmanız doğru olanıdır. Ayrıca hız bakımından da çok daha hızlı olacaktır.
Restful Server uygulamasını Delphi ile yapacağım derseniz.
https://github.com/danieleteti/delphimvcframework burayı inlemenizi tavsiye ederim. Oldukça popüler kullanımı ve örnekleri var.
Bunun haricinde bu işleri kolaylaştıran seçeneklerde var. Php için
Laravel öneririm. Ayrıca Java için
Spring Boot ile çok kısa zamanda basit yapıyı kurabiliyorsun. Bir sürü seçenek mevcut fakat bunlar popüler olanlar.
Ayrıca RESTful Server kısmını Delphi tarafında kendiniz de yazabilirsiniz. Fakat epey yorucu olacaktır. Bir tane Web Server Application oluşturup. WebModule üzerinde Actions ları yani istek urlsini ve HTTP metod tiplerini girmelisiniz ve buna göre cevap döneceğiniz eventi yazmalısınız. Dönen sonucu da JSON olarak dönmelisiniz. Ayrıca genel bir istek veya hatalı istekleri karşılamak için de AfterDispatch veya BeforeDispatch kullanarak gerekli kombinasyonu yapmış olursunuz.
UniDAC bileşenini aktif olarak hem android hemde ios işletim sisteminde kullanmaktayım. SQL ile bağlantı konusunda sıkıntı olmuyor ama veri çekme işlemi yapacağınız tablolarda kayıtlar 1.000 den fazla ise sıkıntı yaşamaya başlıyorsunuz. Ben bu sorunu sql tarafından paging ile çözmüştüm. Şuanda hız konusunda da sıkıntı yaşamıyorum.
mysql ya da sql bağlantısını kesinlikle doğrudan yapmanızı ben de önermiyorum. Datasnap kullanmanızı tavsiye ederim. Hiç bir harici component kullanmadan Kolaylıkla server üzerinde çalışacak bir server program ve client hazırlayabiliyorsunuz. (Firedac). Bu sitede datasanp ile bağlantı örnekleri çok var
(16-12-2021, Saat: 15:25)glagher Adlı Kullanıcıdan Alıntı: [ -> ]UniDAC bileşenini aktif olarak hem android hemde ios işletim sisteminde kullanmaktayım. SQL ile bağlantı konusunda sıkıntı olmuyor ama veri çekme işlemi yapacağınız tablolarda kayıtlar 1.000 den fazla ise sıkıntı yaşamaya başlıyorsunuz. Ben bu sorunu sql tarafından paging ile çözmüştüm. Şuanda hız konusunda da sıkıntı yaşamıyorum.
SQL connection string i koruma şansınız yok. Umarım ciddi bir projede bu şekilde hem kendinizi hemde kullanıcılarınızı riske atmıyorsunuzdur!
Not: Tersine mühendislik nedir? Neler yapılabilir? Araştırmanızı tavsiye ederim;
https://www.delphican.com/showthread.php?tid=5384