Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
DataSnap Çalışma Mantığı
#1
Merhaba arkadaşlar, 

DataSnap'ın çalışma mantığı ve form yapıları hakkında yerli makale varmı? Birde mobil olmasına gerek yok client server mantığını tane tane anlatan bir video veya kaynak varmı?
 
Mantığını çözmeye çalışıyorum ama tam başaramadım.

Yardımlarınız için teşekkürler
Cevapla
#2
Ben en güzel açıklamayı ve örneği ayşen hanımın yazısında görmüştüm.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Topluluk mopluluk yok :/
Cevapla
#3
(28-08-2017, Saat: 17:53)boreas Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Ben en güzel açıklamayı ve örneği ayşen hanımın yazısında görmüştüm.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Teşekkür ederim.
Cevapla
#4
(28-08-2017, Saat: 15:54)burakb44 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba arkadaşlar, 

DataSnap'ın çalışma mantığı ve form yapıları hakkında yerli makale varmı? Birde mobil olmasına gerek yok client server mantığını tane tane anlatan bir video veya kaynak varmı?
 
Mantığını çözmeye çalışıyorum ama tam başaramadım.

Yardımlarınız için teşekkürler


DataSnap (eski adıyla Midas) Delphi'nin bize sunduğu orta katman teknolojisidir. DataSnap ile bir taraftan Sunucu uygulamaları yazıp diğer taraftan Client ile bu sunucu uygulamalarına bağlanıp bir takım işlemler yaptırabiliriz. Böylece Client tarafında yapmamız gereken bazı işleri Sunucu tarafına yığabiliriz. Buna Distrubuted Computing, (dağıtık bilgi işlem) de denir. DataSnap'i bir veritabanına bağlanmak için kullanabiliriz veya tamamen özel bir fonksiyon yazarak bunu client tarafından çağırabiliriz.

Diyelim ki bir veritabanına bağlanmak için bir DataSnap sunucusu yazdık ve Client programıyla bu veritabanına bağlandık. Doğrudan veritabanına bağlanmaya göre ne gibi avantajlarımız olabilir?

1. Öncelikle güvenlik avantajımız olur. Veritabanı sunucusunun tamamına bağlanmak yerine sadece bize izin verilen objelere bağlanırız. Böyle bir ayarlamayı elbette SQL Server gibi bir veritabanında da yapabiliriz. Ama bu sefer değişik bir uzmanlık türüne ihtiyacımız olur.

2. İş kurallarını Server tarafına yığabiliriz. Örneğin bir fatura kaydettiğimiz zaman bunun cari hesap ve stok entegrasyon kısmını ve diğer veri geçerlilik kodlarını Datasnap Server tarafında yazabiliriz. Böylece elimizde gayet hafif bir client kalır. Aynısını SQL Server trigger ve stored procedure (sp) leri ile de yapabiliriz. Ama o zaman yine sadece Pascal/Delphi kodlama yerine ayrı bir uzmanlığa ihtiyacımız olur. Bu kodların bakımı da (değişiklik, debug vb.) Delphi kodlarına göre daha zordur. Ayrıca trigger/sp kullanımında SQL Server için yazdığımız kodlar sadece SQL Server için geçerli olur. Başka bir veritabanı sunucusu türü kullanmak istediğimizde kodlarımız geçersiz olur.

3. Bant genişliği avantajımız olur. SQL Server a doğrudan bağlandığımızda 1000 kaydı çekmek için kullandığınız network trafiği aynı kaydı Datasnap yoluyla çekerken kullandığımızdan çok daha fazla olacaktır. (Bu konuda rakam veremiyorum.)

4. Briefcase model sayesinde offline çalışabilirsiniz. Yaptığınız değişiklikler client tarafında biriktirilir. Bağlantı kurulduğu zaman değişiklikler yansıtılır. Bu özellik mobil cihazların yaygınlaştığı bu zamanda önem kazanmıştır.

5. SQL Server lisans avantajı sağlayabilirsiniz. Datasnap kullanırsanız her bağlandığınız cihaz için ayrı bir SQL Server CAL lisansı almanıza gerek kalmaz.

Veritabanı bağlantısı haricinde tamamen bağımsız fonksiyonlar yazıp server tarafında bazı işlerin yaptırılmasını sağlayabiliriz. Delphi içerisinde hazır örnek olarak ReverseString fonksiyonu verilmiştir. Bu fonksiyon parametre olarak gönderilen bir stringi ters çevirip sonuç olarak geri döndermektedir. Bu örnekte dikkat etmeniz gereken şey bir stringi tersine çevirmek için kullanılan CPU gücü tamamen server tarafında kullanılmıştır. Bu şekilde daha kapsamlı fonksiyonlar yazıp bazı işlerinizi Server tarafına yığabilirsiniz. Bu özellik mobil cihazların yaygınlaştığı bu zamanda önem kazanmıştır.

Delphi'nin son sürümünde (10.2/Tokyo) yazdığımız sucunu programlarını Linux için derleme ve Linux üzerinde çalıştırma olanağı getirilmiştir. Böylece sunucu tarafına sadece Windows değil Linux kullanmak mümkün hale gelmiştir. Bu da müşterilemize performans ve lisans ücreti anlamında avantajlı çözümler sunmamızı sağlamıştır.
WWW
Cevapla
#5
(29-08-2017, Saat: 18:11)csunguray Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(28-08-2017, Saat: 15:54)burakb44 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba arkadaşlar, 

DataSnap'ın çalışma mantığı ve form yapıları hakkında yerli makale varmı? Birde mobil olmasına gerek yok client server mantığını tane tane anlatan bir video veya kaynak varmı?
 
Mantığını çözmeye çalışıyorum ama tam başaramadım.

Yardımlarınız için teşekkürler


DataSnap (eski adıyla Midas) Delphi'nin bize sunduğu orta katman teknolojisidir. DataSnap ile bir taraftan Sunucu uygulamaları yazıp diğer taraftan Client ile bu sunucu uygulamalarına bağlanıp bir takım işlemler yaptırabiliriz. Böylece Client tarafında yapmamız gereken bazı işleri Sunucu tarafına yığabiliriz. Buna Distrubuted Computing, (dağıtık bilgi işlem) de denir. DataSnap'i bir veritabanına bağlanmak için kullanabiliriz veya tamamen özel bir fonksiyon yazarak bunu client tarafından çağırabiliriz.

Diyelim ki bir veritabanına bağlanmak için bir DataSnap sunucusu yazdık ve Client programıyla bu veritabanına bağlandık. Doğrudan veritabanına bağlanmaya göre ne gibi avantajlarımız olabilir?

1. Öncelikle güvenlik avantajımız olur. Veritabanı sunucusunun tamamına bağlanmak yerine sadece bize izin verilen objelere bağlanırız. Böyle bir ayarlamayı elbette SQL Server gibi bir veritabanında da yapabiliriz. Ama bu sefer değişik bir uzmanlık türüne ihtiyacımız olur.

2. İş kurallarını Server tarafına yığabiliriz. Örneğin bir fatura kaydettiğimiz zaman bunun cari hesap ve stok entegrasyon kısmını ve diğer veri geçerlilik kodlarını Datasnap Server tarafında yazabiliriz. Böylece elimizde gayet hafif bir client kalır. Aynısını SQL Server trigger ve stored procedure (sp) leri ile de yapabiliriz. Ama o zaman yine sadece Pascal/Delphi kodlama yerine ayrı bir uzmanlığa ihtiyacımız olur. Bu kodların bakımı da (değişiklik, debug vb.) Delphi kodlarına göre daha zordur. Ayrıca trigger/sp kullanımında SQL Server için yazdığımız kodlar sadece SQL Server için geçerli olur. Başka bir veritabanı sunucusu türü kullanmak istediğimizde kodlarımız geçersiz olur.

3. Bant genişliği avantajımız olur. SQL Server a doğrudan bağlandığımızda 1000 kaydı çekmek için kullandığınız network trafiği aynı kaydı Datasnap yoluyla çekerken kullandığımızdan çok daha fazla olacaktır. (Bu konuda rakam veremiyorum.)

4. Briefcase model sayesinde offline çalışabilirsiniz. Yaptığınız değişiklikler client tarafında biriktirilir. Bağlantı kurulduğu zaman değişiklikler yansıtılır. Bu özellik mobil cihazların yaygınlaştığı bu zamanda önem kazanmıştır.

5. SQL Server lisans avantajı sağlayabilirsiniz. Datasnap kullanırsanız her bağlandığınız cihaz için ayrı bir SQL Server CAL lisansı almanıza gerek kalmaz.

Veritabanı bağlantısı haricinde tamamen bağımsız fonksiyonlar yazıp server tarafında bazı işlerin yaptırılmasını sağlayabiliriz. Delphi içerisinde hazır örnek olarak ReverseString fonksiyonu verilmiştir. Bu fonksiyon parametre olarak gönderilen bir stringi ters çevirip sonuç olarak geri döndermektedir. Bu örnekte dikkat etmeniz gereken şey bir stringi tersine çevirmek için kullanılan CPU gücü tamamen server tarafında kullanılmıştır. Bu şekilde daha kapsamlı fonksiyonlar yazıp bazı işlerinizi Server tarafına yığabilirsiniz. Bu özellik mobil cihazların yaygınlaştığı bu zamanda önem kazanmıştır.

Delphi'nin son sürümünde (10.2/Tokyo) yazdığımız sucunu programlarını Linux için derleme ve Linux üzerinde çalıştırma olanağı getirilmiştir. Böylece sunucu tarafına sadece Windows değil Linux kullanmak mümkün hale gelmiştir. Bu da müşterilemize performans ve lisans ücreti anlamında avantajlı çözümler sunmamızı sağlamıştır.

Verdiğiniz bu detaylı bilgiler için teşekkür ederim.


O zaman sizin tecrübelerinizden istifade edelim. 
Şöyle bir senaryo olsa; 
Bir tarafta merkez ana ofis, 
ofis içinde 1-5 arası client, 
en az 15 şehirde uzak client ve 
mobil desteği olan bir program için nasıl bir yapı önerirsiniz?

Ben mobil hariç diğer client db bağlantılarını direk componentler ile yapıp mobil kısmı için datasnap düşünüyordum
Cevapla
#6
Oncelikle butun arama, kayit vb islemleri databasede prosedur olarak yap. Delphide yazdigin program sadece arayuz gb olsun bunlara dikkat et
Topluluk mopluluk yok :/
Cevapla
#7
Tam benim konum güzel bir makale yazayım demiştim ki c.sunguray ın makalesini gördüm. ben bu kadar detaylı ve açıklayıcı yazamadım. elinize sağlık..
Cevapla
#8
aslında çalışma mantığı olarak bir nevi webservisdir.. Kullanıcının db ye direk erişim istenmediği zamanlarda kullanılır.. Client <-> DatasnapServer <-> DB sunucusu..

en kısa ve öz bu şekilde anlatılır sanırım..
Cevapla
#9
Merhaba;

@boreas dediği gibi; Çoklu platformlarda hızlı uygulama geliştirmek için işin tüm yükünü database tarafında halletmeniz yararınıza olacaktır database tarafında kayıt ekleme silme dahil her şeyi Stored Procedure yazarak program tarafında sadece parametre göndermiş olursunuz böylelikle; Win, Web, Mobil tarafında çok hızlı çözümleri benzer zamanlarda çıkarabilirsiniz.

İyi çalışmalar.
Cevapla
#10
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Linkteki sıkıştırılmış dosyada aşağıdaki konu başlıklarında Türkçe kaynaklar mevcut:

DataSnap XE in Action
Delphi 2010 DataSnap
The New DataSnap in Delphi 2009

Yanlış hatırlamıyorsam bir zamanlar Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. paylaşmıştı. Tekrar O'na ve emeği geçenlere teşekkür ederim.
There's no place like 127.0.0.1
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Child formlarda create yordamının çalışma sırası LastCoder 16 414 20-10-2019, Saat: 18:39
Son Yorum: LastCoder
  Çalışma Anında Çoklu Bileşen Türetme pro_imaj 10 538 19-09-2019, Saat: 16:16
Son Yorum: pro_imaj
  XML Json dosyaları ile Çalışma masteryoda 9 1.891 02-08-2019, Saat: 11:20
Son Yorum: TheEAK
  Çözüldü. Fastreport ta çalışma anında dataset atama cinarbil 2 301 11-07-2019, Saat: 17:55
Son Yorum: cinarbil
  Datasnap server üzerinden client bağlantısı sonlandırma seci20 13 1.406 15-03-2019, Saat: 09:10
Son Yorum: Tuğrul HELVACI



Konuyu Okuyanlar: 1 Ziyaretçi