Delphi ile DataSnap Server oluşturmak

Anlatıma başlamadan önce sizleri hem selamlıyor hem de özür dileyerek affınıza sığınıyorum. Çünkü yaklaşık 1,5-2 yıldır hiç yazı yazmadım-yazamadım. Çok yoğun iş temposunun sonucunda şu an eli boş işsiz olarak vakit buldum yazı yazmaya. Tabi yazılarım birilerine yarıyorsa ne mutlu bana. Şu an yazdığım yazıyı 1-1,5 sene önce yazmayı planlamıştım. Şimdi ise o zamanlardan yaptığım yazı planım üzerinden yazmaya devam edeceğim. Sözü fazla uzatmadan yazıya başlayacağım.

Öncelikle “File>New>Other” menüsünü izleyerek aşağıda görünen “New Items” penceresini açıyoruz. Burada “Delphi Projects>DataSnap Server>DataSnap Server” seçimini yapıp OK diyoruz.

1

Sonra aşağıdaki ekran gelecek.

2

Burada 3 seçeneğimiz var.

  • VCL Forms Application: Bunu seçersek server uygulamamız bir VCL uygulaması olur.
  • Console Application: Bunu seçersek server uygulamamız bir konsol uygulaması olur.
  • Service Application: Bunu seçersek server uygulamamız bir servis olur. (Eğer server uygulamanızın server işlevi dışında başka görevi olamayacaksa tavsiyem bu ancak ilk öğrenirken sizi biraz zorlayabilir, o yüzden bu anlatımımda “VCL Forms Application” seçeneğini seçeceğim)

Seçimi yaptıktan sonra Next diyoruz ve aşağıdaki ekran karşımıza gelecek.

3

Burada bazı seçenekler bizi karşılıyor. İlk denememizde seçimleri varsayılan haliyle bırakacağız (resimdeki gibi). Bu seçeneklerin ne olduğunu özetleyeyim.

  • Protocols: Buradan server ve client uygulamamızın kendi arasında kullanacağı iletişim yöntemlerini seçiyoruz 2 seçeneğimiz var biri TCP/IP diğeri HTTP
  • Authentication: Bu seçenek bize kimlik doğrulama imkanı sağlayacak ve bu seçeneğin altında bulunan Authorization seçeneği ise bize yetkilendirme imkanı sağlayacak.
  • Server Methods Class: Bu seçenek bize biraz kolaylık sağlayıp Sunucu fonksiyonlarının olacağı sınıfı bize hazır getirecek. Bu seçeneğin altında bir de Sample Methods var bu seçim de bize 2 tane örnek fonksiyon getiriyor, öğrenirken işimize yarayacak.

Seçimlerimizi tamamlayıp Next diyoruz ve aşağıdaki ekran karşımıza gelecek.

4

Burada seçtiğimiz iletişim yöntemleri için port seçimi yapıyoruz. Örnek uygulama için sadece TCP/IP seçtiğim için sadece o var, eğer HTTP seçimini de yaparsak hemen altında da o yer alıyor. Burada varsayılan port TCP/IP için 211 HTTP için 8080. Test Port butonu yazılan Port’u deniyor, Find Open Port ise açık, kullanıma müsait bir Port seçip getiriyor size. Burada yapılacak çok bir şey yok, Test Port butonuna basıp Port’u deniyoruz. Alacağımız 2 cevap var:

  • Test port succeeded: Port müsait ve kullanılabilir.
  • Could not bind socket. Address and port are already in use.: Port kullanımda yani müsait değil.

Burada da işimizi bitirip Next diyoruz ve aşağıdaki ekran karşımıza geliyor.

5

Öncelikle 2. adımda Server Methods Class seçimini yapmasaydık bu ekran karşımıza gelmeyecekti. Burada 3 seçeneğimiz var ki bunlar bize Server Methods Class’ın atasını yani cinsini seçmemizi sağlıyor. Yukarıdan aşağı doğru kapsam artarak gidiyor ilk örneğimizde bi önemi yok. Bunların bize neler sağlayacağını kısaca özetliyorum.

  • TComponent: Ek olarak bir şey sağlamıyor sadece prosedür-fonksiyon yazabiliyoruz.
  • TDataModule: Görsel olmayan bileşenleri Server Methods’a ekleyebiliyoruz.
  • TDSServerModule: Burada ise eklediğimiz Datasetleri client de görüyor.

Burada da seçimimizi tamamladıktan sonra Finish diyerek uygulamayı oluşturuyoruz. Gelin şimdi uygulamanın üstünde gelenleri biraz tanıyalım.

ServerMethodsUnit

Burası clientin gördüğü kısım. Client bileşenleri hangi durumlarda görür yukarıdan biliyoruz. Kod kısmına bakarsak, Bir fonksiyon veya prosedürü clientin görmesi için “Public” altında tanımlamalısınız. Burada 2 tane örnek fonksiyon var, Uygulamayı oluştururken seçmiştik hatırlarsanız. EchoString ve ReverseString. Bunları client örneğimizde kullanacağız.

ServerContainerUnit

Burası ise kısaca uygulamamızı server yapıyor. Buradaki bileşenleri tanıyalım.

  • TDSServer: Bu server’ı yürütme işini üstleniyor. Her durumda bu gelecektir.
  • TDSServerClass: Bu ise client’e Server Methods birimini taşıma görevini üstleniyor. Server Methods Class seçimini yaparsak gelecektir.
  • TDSTCPServerTransport: TCP/IP üzerinden iletişim için. TCP/IP iletişimini seçersek gelecektir.
  • TDSHTTPService: HTTP üzerinden iletişim için. HTTP iletişimini seçersek gelecektir.
  • TDSAuthenticationManager: Kimlik doğrulama ve yetkilendirme işlemleri için. Authentication seçimini yaparsak gelecektir.

Yazımı okuduğunuz için teşekkürler. Yeni yazılarda görüşmek üzere!

Client anlatımım için: http://akcakir.net/delphi-ile-datasnap-client-olusturmak/

Tags: , , , , , , , , , ,

2 Responses to “Delphi ile DataSnap Server oluşturmak”

  1. sinan 02 Eylül 2016 at 09:17 #

    s.a
    hocam aynısını yapıyorum
    ClientDataSet1 ‘ in Active sini True Yaparken

    AS_GetRecords method not found in the server method list.
    Hatasını veriyor
    neden olablir
    IDE Version : XE7 c++ Builder

    • Ahmet Kürşat ÇAKIR 04 Eylül 2016 at 23:06 #

      Hatayla birebir karşılaşmadım hiç. Ancak muhtemelen sunucu uygulamadan kaynaklı. Server tarafını da siz yazmışsanız, oradaki Class TDSServerModule mü? Değilse dönüştürüp bir dener misiniz?

Leave a Reply

*