Moduler Programlama?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Demitri

Moduler Programlama?

Mesaj gönderen Demitri »

Veritabanı olarak firebird kullanıyorum.
kütüfphane yada ayrı ayrı exe dosyaları kullanarak modul modul çalışan bir paket program hazırlamak istiyorım.
tüm özellikler tek bir exe de olmayacak
ayrı exe veya dll (tercihimdir) dosyalarında yapmayı düşünüyorum.
ancak veritabanına her exe den ayrı ayrı ulaşmak kanaatimce problem olur.
aranızda bu tip bir uygulama yazılmak istendiğinde izlenmesi gerkn yolu kısaca açıklayacak birisi var mı?
yardımlarınız için şimdiden teşekkürler. iyi çalışmalar.
En son Demitri tarafından 24 Nis 2006 06:35 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Demitri

Mesaj gönderen Demitri »

sadece bi kaç anahtar kelime verseniz de olur :) :roll:
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Re: Moduler Programlama? (YARDIM PLS)

Mesaj gönderen lazio »

Demitri yazdı: ancak veritabanına her exe den ayrı ayrı ulaşmak kanaatimce problem olur.
Sizce nasıl bir sorun olabilir :?:
Çok kullanıcılı sistemlerde tek veritabanı üzerinden çalışabiliyor. Örneğin Müşteri, Rapor, Stok gibi modullere ayırabilirsiniz :idea:
DeveloperToolKit

..::|YeşilMavi|::..
Demitri

Mesaj gönderen Demitri »

tek bilgisayarda her exe dosyasında veri tabanını ayrı ayrı açmak bilgisayar için performansda gereksiz bir kayıp olmaz mı?
ama exe dosyalar arasında bağ kuarark tek exe den veri tabanını açıp diğer exe lerden sadece fonksiyonlarını kullanmak daha iyi olmaz mı?
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

n-tier bir mimari isteğini karşılayabilir.

Bir Sunucu yazılımı yap. Bu yazılım VT'ye bağlansın ve sorguları çalıştırsın, bilgiyi insert etsin vs. Ayrıca kendisine bağlanan uygulamalara bu hizmeti versin.

Senin n tane modulün bu yaptığın sunucu ile konuşacak, DB ile doğrudan değil. DB ile sadece sunucun konuşacak.

Sen fonksiyonlar ile bu sunucu uygulamandan bilgi çekeceksin veya veri göndereceksin.
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

selam modüler programa ile ilgili benimde proje planlarım var.Aslında fazla düşünmeye gerek yok.En ilkel yolu veritabanını tüm modüllerin kullanıldığını varsayarak tasarlayacaksın.programın kısayola çift tıklanarak açıldığında menü formun gelecek.menüden örneğin stok butonuna tıklayınca winexec ile stokprj yi açacaksın,cari ye tıklayınca cariprj yi açacaksın burada 2 püf noktası var.1 kullanıcı programın dizininden direk modüllerin exe sini açmaya çalıştığında anamenü programı çalışmıyorsa bunu kontrol edip kullanıcıya uyarı veya hata verdirmelisin.2 eğer şirket mantığı kullanacaksan anamenüden kullanıcı hangi şirketi seçerse modüllerin exe leri açıldığında seçilen şirketi algılayıp ona bağlanmalı.bunun gibi bir yapı iyi hesaplanarak dizayn edilirse güzel bir modüler programın olur.
Demitri

Mesaj gönderen Demitri »

coderlord yazdı:n-tier bir mimari isteğini karşılayabilir.

Bir Sunucu yazılımı yap. Bu yazılım VT'ye bağlansın ve sorguları çalıştırsın, bilgiyi insert etsin vs. Ayrıca kendisine bağlanan uygulamalara bu hizmeti versin.

Senin n tane modulün bu yaptığın sunucu ile konuşacak, DB ile doğrudan değil. DB ile sadece sunucun konuşacak.

Sen fonksiyonlar ile bu sunucu uygulamandan bilgi çekeceksin veya veri göndereceksin.
demek istediğin anlıyorum. aslında bunu ben de düşünmüştüm
fakat daha az uğraştıran bi yolu vardır diye sormuştum.
ama haklısın sanırım gene en hızlı yol bu.
teşekkürler. iyi çalışmalar.
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

Merhabalar,

işin içinde veritabanı olduğunda bir kaç yöntem var. hemen en basiti olarak mySQL derim.

bu bir networkte olduğunda tüm kullanıcılar kullanabilir anlamına gelir.

Ama ben bunu istemiyorum, veri tabanını ayrıca dağıtmak zorunda kalmıyayım diyorsan, access yada paradox (ve hatta diğer tüm VT'ler) için RemoteDataModule olayını tavsiye ederim. Başlı başına kitap konusu olacak bir yöntemdir. Ki bu RDM (remote data module) ister DCOM ile ister socket ile bağlanabilirsin. RDM ile sadece veritabanı işlemleri değil, uzak fonksiyon çağırma (benim tabirimdir) işlemleride yapaiblirsin. Nasıl? mesela basitçe 2+2 gibi bir işlemi RDM içinde hesaplatıp geri döndürebilirsin. vs. vs.

ben eskiden paradox kullanırdım çok kullanıcı sistemler için ki süperde hızlı çalışırdı, iddada ederim mysql ile bile yarışır. ama BDE gibi bi de çok çok nadirde olsa çok kullanıcı olmasındsan ötürü dataların boulması beni soğuttu. 250 kullanıcıya kadar paradox ile VT kurabilirsin.

Ama sonra gördüm ki RDM ile herşey çok güzel. ve gördüm ki, XP ve sonrasında ADO için (.MDB) access veritabanı için gerekli bileşenler sistem içinde geliyor. Bir anlamda windowsun yerel veritabanı özelliğini aşıyor. RDM ile ACCESS veritabanını aynı anda kullanıyorum. çokta iyi neticeler aldığımı söylüyebilirim. Tabi çok ciddi sistemler için mysql yada muadil şeyleri kullanmak iyi olacaktır.

Modüler yapı için tek söyleyeceğim BPL. DLL halt etmiş. başkada bişi söylemeye gerek yok. Normalde DLL içine bir form gömebilirsiniz, ama bu form için kullanılan tüm bileşenlerde DLL içine yüklenir.

BPL'de ise, herşey dışarıdadır. hatta run-time'da bile bir BPL'i yükler ve kaldırırsınız. Öyleki çalıştırdığınız bir EXE'de falanca bir BPL'i yükler "aa şurası olmamış" dersiniz ve kaldırıp, delphide düzeltir derler ve EXE'den tekrar yükleyebilirsiniz.

http://www.musonya.com/setup/jfs_setup.exe

bu ticari uygulamamı incelemenizi tavsiye derim. Hemde benim için test etmiş olursunuz. Şuan için BETA kabul edin lütfen.

Bu JustFilter diye adlandırdığım uygulamada tamamen modüler bir yapı vardır. Zaten yıllardır BPL teknolojisini kullanırım.

Bu BPL teknolojisi sayeesinde modüllerim 30KB, 100Kb gibi komik boyutlardadır. En baba modülün 250KB civarındadır ki buda içindeki resim yada iconlar yüzünden şişmektedir.

JustFilter uygulamasındada göreceğiniz üzere, kendi kendini güncelelyen uygulamalar için BPL 'in bir kez daha ne faydalı birşey olduğunu anlıyacaksınız.

Vaktim olursa sizlere BPL teknolojisi ile yazılmış bir kaç örnek hazırlarım.

Sizleri özellikle modüler programlamayla ilgilenenleri itahlandırmak maksadıyla küçük örnekler vereyim. Anlatımsal olarak.

Benim bir ana formum var. sol tarafında bir menü var. sağ tarafında ise alClient olmuş bir PANEL var.

soldaki menüden STOK'u seçtiğimi varayın. bu menü kodunda sadece şunlar olacaktır.

Kod: Tümünü seç

LoadPackage('stok.bpl';
Evet bu kod ana exe'ye stok.bpl'i yükleyecektir. ama nereye yükleyecek. istediğimiz yere. isterseniz popup şeklinde isterseniz PANEL'in içine.

stok.bpl'in daha doğrusu her bpl'de olacağı gibi bir initialization şeysi vardır.

bu kısımda loadpackage olduğunda yapılacak işlemleri yaparsınız. ve bu kısımda STOKFORM2u create edebilirsiniz.

ve bu formu ana form üstündeki PANEL'in içine gömeblirsiniz.

nasıl?

Kod: Tümünü seç

initialization
   frmStok := TfrmAStok.Create(Application);
   frmStok.Parent := TPanel(Application.MainForm.FindComponent('PANEL1'));
   frmStok.Visible := True;
finalization
   if frmStok <> nil then frmStok.Destroy;
işte bu kod stok formunu ana form üstündeki Panel12in içine gömecektir.

Tabi stok formunuz border=none olmalıdır. yoksa aynen göründüğü gibi içine gömülür. birde alClient olsun.

İlk başlarda BPL teknolojisine alışmak zor gelecektir. zaten ilk önce artık bir proje dosyası ile çalışmayı öğreniyorsunuz.

Proje dosyanızda yapacağınız uygulamaya göre onlarca BPL (paket) olacaktır.

Bir BPL içinde kullanılan bileşenler ana EXe içine gömülemez. ana EXE'yide paketler ile beraber derlemeniz gerekir. Bunun için ana EXe'nin özelliklerinden paketler bölümünde "build with runtime packages" işaretleyiniz.

Biliyorum bu çok yeterli değil ama bir çoklarınız için kafalarda şimşekler çaktıracak bilgiler içermktedir.

Dediğim gibi vakit bulursam sizlere bu konuyla ilgili örnekler verceğim. Aslında tek bir örnek bile sizin için yeter.

Saygılar
Demitri

Mesaj gönderen Demitri »

Bayaa emek sarfetmişsin ilgin için teşekkürler.
Şu an programın indiriyorum.
Kontrol edeceğim.
Bu arada BPL için özet babında bi döküman için bildiğin link var mı?
Aslında bu sabah ya Bismillah deyip DDSERver ve DLL Library ile başlamayı planlıyordum.
Teşekkürler v ekolay gelsin.
Demitri

Mesaj gönderen Demitri »

bi kaç link buldum ama. du bakem aranaya devam ediyorum
http://bdn.borland.com/article/0,1410,27178,00.html
http://delphi.about.com/od/objectpascal ... 10901c.htm
http://delphi.about.com/od/objectpascal ... 10901a.htm
http://www.obsof.com/delphi_tips/DL613.html
bu aradaprogramın inernetten dosyalar yüklerken kilitlendi.
belki benim pc de sorun olabilir. bi ara tekrar denerim.
arayüzü çok güzel olmuş.
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

Bir örnek uygulama yazdım sizler için.
aşağıdaki linkten indirebilirsiniz.

http://www.musonya.com/delphisamples/mesajtest.zip

http://www.musonya.com/delphisamples/mesajtest.zip

Şuan fazla vaktim yok o nedenle burdan uygulama hakkında bilgi vermeyeyeceğim. program içinde gerekli açıklamaları yaptım..

Ama uygulama bu konu başlığıyla alakalı ve ayrıca Windows Messaging ile ilgili teknolojiyide içeriyor. Bir taşla iki kuş muhabbeti..

Zaten modül olayına girince mesaj olayınıda bilmeniz gerekiyor. Çok lazım oluyor...

Saygılar..
Demitri

Mesaj gönderen Demitri »

teşşekürler şimdi bakıyyorm dosyaya.
Cevapla