Delphi Can

Orjinalini görmek için tıklayınız: Delphi & C# & Java
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2 3
(25-09-2019, Saat: 15:31)sddk Adlı Kullanıcıdan Alıntı: [ -> ]
(25-09-2019, Saat: 12:55)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: [ -> ].Net Core'u, tek cümleyle açıklayayım;  "Microsoft'un Linux ile imtihanı!"   Big Grin

Cross olarak tabir ettikleri bu mimaride geliştirilen bir web servisi, Linux sunucu üzerinde çalıştırmak için tabiri caiz ise kırk takla attırılıyor.

Bunun sebepleri;
1- Linux sunucu üzerinde bir çok bağımlılığının (ek servis ve paket ihtiyacı) olması,
2- "Temel Web uygulamasını başlatmak ve izlemek için systemd ve hizmet dosyası oluşturmayı kullanın." diyor msdn.
Detayına bakalım;
aşağıdaki komutu çalıştırın diyor.
 sudo nano /etc/systemd/system/kestrel-helloapp.service
Yani sistem altında, service uzantılı bir dosya oluşturun diyor.  (kestrel-helloapp.service)
Bu dosya içeriğine bakalım.
[Unit]
Description=Example .NET Web API App running on CentOS 7

[Service]
WorkingDirectory=/var/www/helloapp
ExecStart=/usr/local/bin/dotnet /var/www/helloapp/helloapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=apache
Environment=ASPNETCORE_ENVIRONMENT=Production 

[Install]
WantedBy=multi-user.target

3- Linux konfigürasyon dosyalarından farklı bir (Ini dosya yapısında) dosya olduğunu görüyoruz.
Şu satır umarım dikkatinizden kaçmamıştır.
ExecStart=/usr/local/bin/dotnet /var/www/helloapp/helloapp.dll

Çalıştırılan ve servis denen uygulama bildiğimiz dll dosyası.  Confused
Çalıştığı platform Linux.
O zaman exe için de böyle bir eklenti yapsınlar. Böylece tüm dosyalarımızı Linux üzerinde çalıştırmış olalım! Bunun adına cross platform diyor msdn.

4- Dakika bir, gol bir; servis başlamadan kendimi nasıl kapatabilirim in yollarını arıyor.  Big Grin

Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10

Yani diyor ki "Dotnet servisi kilitlenirse servisi 10 saniye sonra yeniden başlatın". Türkçesi; bana güven olmaz, ara sıra donabilirim. Sen beni ısıt. Smile
(Linux webModule olarak geliştirdiğim bir servis 6 aydır hiç resetlemedim. Çünkü .so uzantılı doğal Linux kütüphanesi)

KillSignal=SIGINT
Satırında bir emniyet kemeri kullanıyor (teşbihte hata olmaz: eşeği sağlam kazığa bağlıyor); eğer uygulama yeniden başlatılamaz ise, harici bir servisle ben seni sonlandırabileyim diyor. yani harici bir etki ile beni sonlandırabilir veya yeniden başlatabilirsiniz, diyor.

5- msdn'den devam edelim. Sonrasında aşağıdaki komutu çalıştırın diyor. 
sudo systemctl enable kestrel-helloapp.service
Yani uygulamayı web servis olarak çalıştırmak için Linux üzerinde çalışan bir servis oluşturun ve bunu çalıştırın. Bir servisin çalışması bu ana servisin çalışmasına bağlı. (İlk maddede bahsetmiş olduğum bağımlılık.)

6- Linux file sistem yapısına aykırı bir dosya (dll), kestrel denilen farklı bir uygulamayla yayınlanıyor. Tabi bunun için bir de  kestrel servisinin çalışması gerekiyor. Bunu nereden biliyorum? msdn de işlemin devamında bu servisin loglarını aşağıdaki servis üzerinden takip edebilirsiniz diyor.
sudo journalctl -fu kestrel-helloapp.service

Kaynaklardocs.microsoft.com - Apache ile Linux üzerinde ASP.NET Core barındırma  

"ASP.NET Core ile geliştirilen web uygulamalarını çalışmak için Kestrel’i kullanılıyor" - Kaynak:https://www.minepla.net/2018/02/linux-uzerinde-aspnet-core-servis-olarak-calistirmak/


C#'çılar hiçbir zaman kral çıplak diyemedi. 
Emin olun kısa bir süre sonra "eureka-buldum" diye haykırıp, "bu mimariden daha iyi bir teknoloji ürettik", deyip halihazırdaki bu sitemin yanlış bir sistem olduğunu yine söylemeyecekler.

Peki Rad Studio veya Delphi ile geliştirilen web servisin bu mimariden farkı ne? derseniz;
1- Delphi ile geliştirdiğimiz uygulamayı compile ettiğimizde .so uzantılı native Linux kütüphane dosyası oluşuyor.
2- Bu dosyayı Apache modul dizinine ( /usr/lib/apache2/modules/) taşıyoruz.
3- Linux modül dosyalarının yüklenmesi için gerekli olan modül yükleme konfigürasyon dosyasını oluşturup, modülü yükle diyoruz. (LoadModule algitsin_module /usr/lib/apache2/modules/libmod_algitsin.so ) Bu konfigürasyon her modül için zorunludur.
4- Son olarak bu modül dosyasını şu URL'e istekte bulunduğunda çalıştır diyoruz.
(       <Location /algitsin>
             SetHandler libmod_algitsin-handler
      </Location>
)
PHP ile de bir servisi yayınlasanız yukarıda bahsetmiş olduğum son üç adımı gerçekleştirmeniz gerekiyor.
Yani Delphi, Linux hedef platform native bileşenleri ile web servisini çalıştırıyor. Herhangi bir servis veya paket bağımlılığı yok. Restart ihtiyacı yok. Çünkü sistemde bulunan tüm modül dosyaları, sistem tarafından yönetiliyor.

Önemli Not: Delphi ile bir Web Servisin nasıl yazılacağını 28 Eylül 2019 - Cumartesi günü sabah saat 11:00 de başlayacak eğitim seminerimizde daha detaylı olarak öğrenebilirsiniz.

Maalesef yazdıklarınızın çoğu hatalı.

Zaten bu hatalarımızı düzeltmek için buradayız. 
Bu hataları düzeltebilir misiniz?
@sddk size zahmet olmazsa doğruları yazabilirmisiniz. Böylece doğruları öğrenmiş oluruz.
C# konusunda, benim de söyleyeceğim birkaç şey var.

C#'da kullanımı kolaylaştıran yanlar,
1-Garbage Collector : C#'da bir nesneyi yarattıktan sonra akıbetine bakmanıza gerek kalmıyor. O nesne instance'sine referans kalmadığı anda nesneyi GAC otomatik olarak yok ediyor. Delphi tarafında bu iş Interface vasıtasıyla kotarılabiliyor. Interface'den türetilen nesnelerde Free metodu bulunmadığı için yazım sırasında da kolay oluyor.
C#'da bu nedenle çoğu zaman try-catch kullanmanıza gerek kalmıyor.

2-Namespace : C#'da name space kavramı var, Delphi'de de var deniliyor ama ikisi farklı. C# kendisi bir klasörün altında oluşturduğunuz unit'lere klasörün adını namespace olarak veriyor. Bu da ciddi kolaylık sağlıyor ve using kısmı ciddi ölçüde kısalıyor, denetlenebilir oluyor. Delphi'de ise her Unit bir NameSpace olarak ele alınıyor. Haliyle sadece FireDAC kullanacaksanız bile uses'de onlarca unit'in adını yazmanız gerekiyor.

3-Proje yönetimi : C#'ın sağ tarafındaki Proje penceresinde, windows explorer'e başvurmadan pek çok işlemi yapabiliyorsunuz. Projeye klasör ekleyebiliyorsunuz. Klasörün üzerine gidip "Add new xxx" diyebiliyorsunuz. Delphi'de projenin üzerine gelip 'Add new xxx' deyip bunu daha sonra istenen kaydettiğinizde o klasör Proje penceresinde görülüyor. Klasör boşsa göstermiyor.

4-C#'da her class için ayrı bir unit açıyorsunuz. Yani IDE sizi buna yönlendiriyor. Bunu iyi ya da kötü olarak söylemiyorum. Delphi'de bunu yaptınız mı proje bir süre sonra kontrol edilemez oluyor. Yani mecburen birbiriyle ilgili class'ları aynı unit içinde toplamanız gerekiyor.

5-VS IDE'si gerçekten çok kullanışlı (ben VS 2015 kullanıyorum). Özellikle CSS ve HTML dosyalarını yazarken (config dosyalarında da...) "xxx" içindeki ifadeleri yazarken context sensitive yardım gerçekten çok yardımcı oluyor. Resharper yüklediyseniz CSS dosyalarında renklerin sadece RGB değerlerini değil kendisini de görsel olarak gösteriyor.

6-Dile ilişkin fazla bir fark yok, ancak istenen değişkeni istediğiniz yerde deklare edip kullanmak oldukça pratik. Interface-Implementation olmaması sanırım biraz kolaylık sağlıyor. Yukarıda bir arkadaş yazmıştı, takip edemiyoruz diye, ancak C#'da uzun kodlar yok! Her unit kısacık kodlardan oluşuyor. İşin enteresan yanı, uzuuun uzun kod yazmaya ihtiyacınız da olmuyor açıkçası. Aslında en güzel yanı bu. Kendi içinde birbiriyle tutarlı bir sistem. IDE, Delphi'deki gibi, metotları katlamanıza da imkan veriyor. Bu sayede metotların kodlarını saklayıp sadece isimlerini gösteriyor.

7-Dildeki en önemli fark Lambda fonksiyonları. Bir taraftan bakıldığında gerçekten de listeler üzerinde pek çok işi, sanki veritabanı tablosuymuş gibi kolayca yapabiliyorsunuz.

8-En önemli fark, bir konuda kaynak aradığınızda buluyorsunuz. Delphi'de ise özellikle FMX kısmında kaynak yetersiz.

9-Delphi'nin en önemli eksisi, kendi standart kütüphanelerinin yazılım için çok yetersiz olması, ille 3. parti yazılımlara ihtiyaç göstermesi ve eğer birbirleriyle çalışacaksa birbirleriyle uyum sorunları olması. İyi yanı ise iyi kütüphaneler bulursanız herşeyi kolayca yapabiliyor olmanız! Smile

Şimdilik toparlayabildiğim şeyler bunlar. Yeni konular buldukça buraya eklerim!
(25-09-2019, Saat: 16:07)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: [ -> ]
(25-09-2019, Saat: 15:31)sddk Adlı Kullanıcıdan Alıntı: [ -> ]Maalesef yazdıklarınızın çoğu hatalı.

Zaten bu hatalarımızı düzeltmek için buradayız. 
Bu hataları düzeltebilir misiniz?

Bildiğimce düzeltmeye çalışayım;

Alıntı:3- Linux konfigürasyon dosyalarından farklı bir (Ini dosya yapısında) dosya olduğunu görüyoruz. 

İlgili dosya Linux servislerini ayağa kaldırmak için kullanılan konfigürasyon dosyası. .Net Core ile alakalı değil. Aşağıda iki tane örnek link paylaştım. Mesela Delphi web uygulamanızı yayınlamak için kullandığınız Apache server'in konfigürasyon dosyasına bir göz atın.

Alıntı:Çalıştırılan ve servis denen uygulama bildiğimiz dll dosyası.

Çalıştırılan şey doğrudan dll dosyası değil, çalıştırılan .Net Core Runtime'ı. .Net Core Runtime, dll'in içerisindeki MSIL'i koşturuyor. Java'daki JRE'nin Bytecode taşıyan JAR ve WAR dosyalarını koşturmasına benzer bir yapı. (Farklılıkları var, detaylı bir konu)

Alıntı:O zaman exe için de böyle bir eklenti yapsınlar. Böylece tüm dosyalarımızı Linux üzerinde çalıştırmış olalım!

https://appdb.winehq.org (bir düzeltme değil, bilgi amaçlı)

Alıntı:4- Dakika bir, gol bir; servis başlamadan kendimi nasıl kapatabilirim in yollarını arıyor.  Big Grin 

Restart=always
# Restart service after 10 seconds if the dotnet service crashes: 
RestartSec=10

Yani diyor ki "Dotnet servisi kilitlenirse servisi 10 saniye sonra yeniden başlatın". Türkçesi; bana güven olmaz, ara sıra donabilirim. Sen beni ısıt. Smile

Yeniden başlatılacak olan şey .Net Core Runtime'ı değil, sizin yazdığınız servis. Yani Türkçesi "Size/geliştiriciye güven olmaz, yazdığın servis kırılırsa Linux bunu yeniden başlatsın ister misin?". Mesela aşağıdaki linkte MySql systemd dosyası örneği var, Restart satırını bu dosyada da görebilirsiniz.

https://github.com/charliesome/mysql-5.5...ld.service

Alıntı:KillSignal=SIGINT

Satırında bir emniyet kemeri kullanıyor (teşbihte hata olmaz: eşeği sağlam kazığa bağlıyor); eğer uygulama yeniden başlatılamaz ise, harici bir servisle ben seni sonlandırabileyim diyor. yani harici bir etki ile beni sonlandırabilir veya yeniden başlatabilirsiniz, diyor.

Kill signal Linux üzerinde kernel'in veya bir prosesin veya kullanıcının bir prosese kill sinyali göndermesi ile alakalı. Sistemin bir şekilde servisinizi durdurması gerekir ise KillSignal ile belirttiğiniz sinyali size gönderir, sizde servisinizde bu sinyali yakalayıp servisinizi doğru şekilde sonlandırmaya çalışırsınız. (aslen bayağı detaylı bir konu) Aşağıda bir mariadb servisinin konfigürasyon dosyası var, KillSignal=SIGTERM satırını görebilirsiniz.
https://github.com/Dlackware/gnome/blob/...db.service

Alıntı:5- msdn'den devam edelim. Sonrasında aşağıdaki komutu çalıştırın diyor. 
sudo systemctl enable kestrel-helloapp.service
Yani uygulamayı web servis olarak çalıştırmak için Linux üzerinde çalışan bir servis oluşturun ve bunu çalıştırın. Bir servisin çalışması bu ana servisin çalışmasına bağlı. (İlk maddede bahsetmiş olduğum bağımlılık.) 

6- Linux file sistem yapısına aykırı bir dosya (dll), kestrel denilen farklı bir uygulamayla yayınlanıyor. Tabi bunun için bir de  kestrel servisinin çalışması gerekiyor. Bunu nereden biliyorum? msdn de işlemin devamında bu servisin loglarını aşağıdaki servis üzerinden takip edebilirsiniz diyor.
sudo journalctl -fu kestrel-helloapp.service

Kestrel bir web sunucusu. Apache'yi durdursak, sizin Delphi ile geliştirdiğiniz so dosyası çalışmaya devam edebilir mi? (CGI olarak derlerseniz evet çalışır ama bunun da dezavantajları var)

.Net Core sizin bahsettiğiniz kadar kötü bir platform olsa stackoverflow .Net'ten .Net Core'a taşınır mıydı? Veya çiçeksepeti?

Aslen sayın @Tuğrul HELVACInın sorusunu cevaplamak mümkün değil; ilk mesajında dillerden giriş yapsa da ikinci mesajında framework'e ve dolayısı ile runtime'a atıf yapmış.
Delphi(Object Pascal) ve C# dil yetenekleri açısından (OOP vs.) karşılaştırılabilir. Delphi mobil uygulamalar ile Xamarin karşılaştırılabilir. Delphi VCL (veya FM) ile .Net Core Windows Forms (veya WPF) karşılaştırılabilir, yani detaya inmek lazım. Yanlış anlaşılmasın Tuğrul bey bunları bilmediğinden karşılaştırılmasını istemiş gibi bir iddiam yok Smile zannımca O da bu konuya vakıf biri.  

Kişisel olarak 3-4 aydır, oğlum müsaade ettikçe .Net Core çalışıyorum. Delphi ile kıyaslayamam çünkü .Net Core'un masaüstü tarafına (zaten 2 gün önce 3.0 versiyonu ile Windows Forms desteği geldi) hiç bakmıyorum zira ne benim nede şirketin masaüstü program geliştirmeye devam etmek gibi bir niyeti yok. 

Akşam müsait olunca yazım hatalarıma ve var ise cevaplarınıza bakarım, o zamana kadar yazım hatalarına takılmayın lütfen.
(25-09-2019, Saat: 09:11)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba arkadaşlar, konu başlığında belirttiğim dillerden en az ikisinde uygulamalar geliştirmiş arkadaşlarımın bu diller için; yapabildikleri/yapamadıkları, güçlü/zayıf oldukları yanlar, yaşadığınız zorluklar, beğenmediğiniz hususlar, diğerinde olduğu halde kullandığınızda olmayan özellikler vb. kıyas, görüş ve tecrübelerinizi paylaşmanızı rica edeceğim.

Ancak; slogan (X candır, gerisi heyecandır gibi) paylaşmayalım lütfen Shy

Delphi bir AOT derleyici ürünüdür. C# ve java ise JIT derleyici ürünüdür.Okuduğum kaynaklar ve tecrübeler AOT mimarinin daha hızlı olduğunu gösterdi.Tabi bu doğrudan Delphi ile alakalı değil, mimari ile alakalı.

Delphi ve C#'da "Operator overloading" kavramı var.Fakat Java da bildiğim kadarı ile yok.Bu ne demek ?
Yeni türler, tipler geliştirme imkanının olmaması demek, yani Delphi'deki TValue sınıfına benzer bir sınıf java ile geliştirilemeyeceği anlamına gelir. Örneğin bir implicit, explicit operator java sınıfına ekleme imkanı yok.

Delphi, İşletim sistemi api'lerini çağırmaya izin verir.Bunların pek çoğu delphinin standart unit'lerinde tanımlıdır.
C#, İşletim sistemi api'lerini çağırmaya izin verir.Bu çağırım işine P/Invoke adı verilir.Fakat hali hazırda "standart" olarak tanımlı dışa açık, böyle tanımlı bir namespace, class görmedim.Java'da ise dil seviyesinde İşletim sistemi api'lerini çağırmaya bir bir olanak yok.

Delphi ve C# Pointer kullanımına izin verir.Fakat Java'da pointer kullanımına izin yoktur.

Delphi, C# ve Java'da Reflection desteği vardır.
Delphi, C# ve Java'da Generics desteği vardır.

Not : uzun zamandır delphi kullanmıyorum.
Arkadaşlar, herbirinizin ellerine sağlık. Burası genel anlamda bir Delphi programlama sitesi olduğuna göre; buradaki arkadaşların Delphi'yi bildiğini varsayarak, bahse konu diğer iki dil ile ilgili yaşadığınız tecrübeleri aktarmanızı istemiştim esasen.

  Yoksa; diller, yapabildikleri, yapamadıkları hakkında az çok bilgi sahibiyim. Ancak bilgiden daha kıymetli bir başka şey var. Tecrübe. O yüzden gerçek yaşam hikayelerinizi dinlemek istemiştim.

 Örneğin; Java ile masaüstü bir uygulama yazıyordum; şu gibi zorluklara tesadüf ettim. Bu işler C#'da ve Delphi'de inanılmaz kolay. C# 'da şunu yapıyordum, bu kısmını hiç beğenmedim; gördüğüm kadarı ile bu Java'da daha güzel.

Kısaca tecrübelerden istifade etmeyi bilen birisi olarak; sizlerden tecrübelerinizi paylaşmanızı rica ediyorum. Öğrenme aşamasında yaşadıklarınız, geliştirme aşamasında yaşadıklarınız. Tecrübe herkes için kıymetlidir; ancak aktarılması bir o kadar da zordur.
@sddk bey,
Yaptığınız alıntılardan vermiş olduğunuz cevaplara bakarak, ilk yorumunuzda söylemiş olduğunuz "Maalesef yazdıklarınızın çoğu hatalı." cümlenizi bir daha gözden geçirmenizi tavsiye ediyorum.
Yazdıklarımı tekrar tekrar okudum.
Sonra sizin alıntılara vermiş olduğunuz cevapları da tekrar okudum, fakat bir hata göremedim.
"Ya ben anlatamadum ya sen anlayamadun!"
Üretilen bir dll.
sunulan veya lanse edilen şey bir cross platform. Hybrid dense söylecek lafım olmaz. Çünkü hibrid te her yol mübah. Smile

Siz müşteri olarak bir ürün istiyorsunuz. Bu bir araba olsun.
Bu ürün yalnızca İki fabrikada üretiliyor.
A fabrikası diyor ki; bunun gitmesi için benzine ihtiyacı var. Şoföre ihtiyacı var. aynı zamanda, akaryakıt tükettiği için periyodik bakımlarını da sık sık yapmanız gerekiyor.
B fabrikası diyor ki; bunun gitmesi için benzine ihtiyacı yok güneş veya ay ışı bile yeterli, üzerindeki akıllı sensörlerle kendi kendine gidebilir. Akaryakıt olmadığı için sık bakıma ihtiyacı da yok.

Hangi ürün size daha cazip gelir?

İki servis var.
A, birkaç servise ve harici konfigürasyon dosyalarına ihtiyaç duyuyor ve servis sürekliliği konusunda tereddütleri var.
B, OS'nin doğal kaynaklarını kullanır, harici bir servise ihtiyacı yok. Yayın yaptığı platformun konfigürasyon dosyalarını kullanıyor. Sürekli çalışabilirliği konusunda, kendisini tamamen OS'e bırakmış.    

@Fesih ARSLAN := Linux konfigürasyon dosyalarından farklı bir (Ini dosya yapısında) dosya olduğunu görüyoruz. 
@sddk := İlgili dosya Linux servislerini ayağa kaldırmak için kullanılan konfigürasyon dosyası. .Net Core ile alakalı değil. Aşağıda iki tane örnek link paylaştım. Mesela Delphi web uygulamanızı yayınlamak için kullandığınız Apache server'in konfigürasyon dosyasına bir göz atın.
@Fesih ARSLAN := Neden .Net Core ile alakalı değil? 
Delphi ile yazdığımız uygulamada, Linux sunucu uygulamasını ayağa kaldırmak için bu veya benzeri harici bir konfigürasyonu kullanmıyoruz. Servisin ayağa kalkması için webmodul dosyasının modüller dizinine taşınması ve bunu os'ye bildirmesi yetiyor.
"Mesela Delphi web uygulamanızı yayınlamak için kullandığınız Apache server'in konfigürasyon dosyasına bir göz atın." demişsiniz.
Microsoft bu dosyaya (Apache server'in konfigürasyon) neden göz atmıyor da harici bir yapı kullanıyor.  
Ben zaten sunucu uygulamamı yayınlamak için bu dosyayı (Apache server'in konfigürasyon) kullanıyorum.
Bu hatalı bilgi ise hatalıyım.

@Fesih ARSLAN := Çalıştırılan ve servis denen uygulama bildiğimiz dll dosyası.
@sddk := Çalıştırılan şey doğrudan dll dosyası değil, çalıştırılan .Net Core Runtime'ı. .Net Core Runtime, dll'in içerisindeki MSIL'i koşturuyor. Java'daki JRE'nin Bytecode taşıyan JAR ve WAR dosyalarını koşturmasına benzer bir yapı. (Farklılıkları var, detaylı bir konu)
@Fesih ARSLAN := Nasıl yani?
.Net Core ile compile ettiğiniz dosyayı bana iletebilir misiniz? Dll olup olmadığına bakayım.
Dll değilse nedir?
Linux üzerinde yüksek bir bağımlılığı olan ek bir framework (.Net Core Runtime) üzerinde çalışması onun bir dll olmadığını mı ispatlıyor?
"Java'daki JRE'nin Bytecode taşıyan JAR ve WAR dosyalarını koşturmasına benzer bir yapı. "  demişsiniz. java'nın yakalamış olduğu bu mimariyi başarabiliyorsa (ki hiç inanmıyorum; ne demişler adam olacak çocuk küçüklükten belli olurmuş.) ne ala. Fakat java'cılar biz JAR WAR üretmiyoruz demiyor.
Bu çalışma mantığı ile derlenmiş dosyanın farklı bir sanal platform üzerinde çalışması onun bir dll olmadığını mı ispatlıyor?
Eğer öyleyse yine ben hatalıyım.

@Fesih ARSLAN := O zaman exe için de böyle bir eklenti yapsınlar. Böylece tüm dosyalarımızı Linux üzerinde çalıştırmış olalım!
@sddk := url] (bir düzeltme değil, bilgi amaçlı)
@Fesih ARSLAN :=Bilgilendirme için teşekkür ederim.
Burada benim vurgulamak istediğimi halen anlamamışsınız.
Native platform api'lerinin arada herhangi bir katman olmadan kullanılması gerektiğini söylüyorum.
Geleceğin tek OS'si, bulut OS olacak. bir monitör, dünyanın herhangi bir yerinden bize tahsis edilmiş bulut os'ye ulaşabileceğiz.
Bu OS üzerinde Linux, Mac OS X Windows, iOS ve Android uygulamaları çalışabilecek.
Bunu bizim nesil yakalar mı bilmem, fakat elinin kulağında olduğunu düşünüyorum.

@Fesih ARSLAN := Dakika bir, gol bir; servis başlamadan kendimi nasıl kapatabilirim in yollarını arıyor.  Big Grin  
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
Yani diyor ki "Dotnet servisi kilitlenirse servisi 10 saniye sonra yeniden başlatın". Türkçesi; bana güven olmaz, ara sıra donabilirim. Sen beni ısıt. Smile
@sddk :=Yeniden başlatılacak olan şey .Net Core Runtime'ı değil, sizin yazdığınız servis. Yani Türkçesi "Size/geliştiriciye güven olmaz, yazdığın servis kırılırsa Linux bunu yeniden başlatsın ister misin?". Mesela aşağıdaki linkte MySql systemd dosyası örneği var, Restart satırını bu dosyada da görebilirsiniz. https://github.com/charliesome/mysql-5.5...ld.service
@Fesih ARSLAN := MySql systemd'nin de restart ihtiyacı olması, yazacağımız servisin restart ihtiyacı mutlaka olacak manasına gelmez. Biz servisi yazarken en stabil durumu değerlendiriyoruz.
Olsun fakat, olmadan da olduğunu görüyoruz.
Ayrıca servis neden yeniden başlanma ihtiyacı duyar?
İlk mesajımda yazmıştım. Delphi ile yazdığımız servislerde şu ana kadar buna ihtiyaç duymadım.
.Net ve Windows'un klasikleşmiş yada kanayan yarası mı demeliyim; kapat-aç düzelir.
Delphi ile yazdığımız uygulamalar Apache üzerinden yayınlanıyor ve işletim sisteminin başlaması ile load ediliyor. İşletim sistemi ayakta durduğu sürece de çalışması devam ediyor.
Bunun sebebi sanırım arka planda kullanmış olduğu native metodlar olsa gerek.
Bu bilginin neresi hatalı sizce?
Servisin kendi kendini restart etmemesi gerektiği mi?

@Fesih ARSLAN :=KillSignal=SIGINT
Satırında bir emniyet kemeri kullanıyor (teşbihte hata olmaz: eşeği sağlam kazığa bağlıyor); eğer uygulama yeniden başlatılamaz ise, harici bir servisle ben seni sonlandırabileyim diyor. yani harici bir etki ile beni sonlandırabilir veya yeniden başlatabilirsiniz, diyor.
@sddk :=Kill signal Linux üzerinde kernel'in veya bir prosesin veya kullanıcının bir prosese kill sinyali göndermesi ile alakalı. Sistemin bir şekilde servisinizi durdurması gerekir ise KillSignal ile belirttiğiniz sinyali size gönderir, sizde servisinizde bu sinyali yakalayıp servisinizi doğru şekilde sonlandırmaya çalışırsınız. (aslen bayağı detaylı bir konu) Aşağıda bir mariadb servisinin konfigürasyon dosyası var, KillSignal=SIGTERM satırını görebilirsiniz.
https://github.com/Dlackware/gnome/blob/...db.service
@Fesih ARSLAN :=Son kullanıcı neden bir servisi kill etsin?
Ha bu bir geliştirici ise zaten istediği gibi kill edebiliyor yada çalışıp çalışmadığını status parametresi ile öğrenebiliyor.

@Fesih ARSLAN :=
5- msdn'den devam edelim. Sonrasında aşağıdaki komutu çalıştırın diyor.
sudo systemctl enable kestrel-helloapp.service
Yani uygulamayı web servis olarak çalıştırmak için Linux üzerinde çalışan bir servis oluşturun ve bunu çalıştırın. Bir servisin çalışması bu ana servisin çalışmasına bağlı. (İlk maddede bahsetmiş olduğum bağımlılık.)
6- Linux file sistem yapısına aykırı bir dosya (dll), kestrel denilen farklı bir uygulamayla yayınlanıyor. Tabi bunun için bir de  kestrel servisinin çalışması gerekiyor. Bunu nereden biliyorum? msdn de işlemin devamında bu servisin loglarını aşağıdaki servis üzerinden takip edebilirsiniz diyor.
sudo journalctl -fu kestrel-helloapp.service
@sddk := Kestrel bir web sunucusu. Apache'yi durdursak, sizin Delphi ile geliştirdiğiniz so dosyası çalışmaya devam edebilir mi? (CGI olarak derlerseniz evet çalışır ama bunun da dezavantajları var)
@Fesih ARSLAN :=

Alıntı:NET çerçevesinde https destekler ve .NET Core için geliştirilmiştir.
...
Kestrel, herhangi bir platformda ASP.NET uygulamalarını barındırmak için kullanılan açık kaynaklı kodlu, olaya dayalı ve  eşzamansız,  I / O tabanlı bir sunucudur. 
...
Kestrel’in önerilen kullanımı aşağıda göreceğiniz gibi ön tarafında IIS Nginx,Apache vb. bir sunucu şeklindedir.
....
Kaynak: Nedir Bu Kestrel Web Sunucusu ? Artısı – Eksisi Ve Daha Fazlası

Apache'yi durdurursanız o sunucu üzerindeki tüm web servisleri de durdurmuş olursunuz. Çünkü Linux üzerinde web yayını yapan uygulamaların tümü Apache kullanıyor. 
Mikrosoft neden Apache kullanmıyor? Dll'i tanımıyor olmasından olabilir mi acaba? 
Yada neden kestrel kullanıyorsanız;  "ön tarafında IIS Nginx, Apache vb. bir sunucu kullanın" önerilerinde bulunuyorlar? Bundan hangi sonucu çıkarmalıyız?
Yukarıdaki kaynakta kestrel için; ".NET Core için geliştirilmiştir." deniyor. Yani sizin ürettiğiniz platforma yabancı bir dosyayı "bak bu yabancı değil, buda sizden" gazlarını verecek bir ara katman. OS üzerinden gelecek http handle'larını yakalayacak, sizin servisi ayakta tutmaya çalışacak ve gelen istekler .Net ile ilgili ise ve bu bizim servise istekte bulunuyor ise, isteği bizim servise yönlendir. Sonra o da değerlendirsin, kestrel'e bildirsin o da istemciye aynı kanaldan göndersin. 
İşin en ilginç tarafı da açık kaynak kodlu ve MS tarafından geliştirilmeye devam ediliyor olmasıdır. 
Tamamen bir MS ürünü.

@sddk := .Net Core sizin bahsettiğiniz kadar kötü bir platform olsa stackoverflow .Net'ten .Net Core'a taşınır mıydı? Veya çiçeksepeti?
@Fesih ARSLAN := .Net Core kötü demedim. Kulağı tersten tuttuğunu söylüyorum.  Stackoverflow gibi tecrübeye sahip bir form bunu yaptıysa, yarın da başka bir platforma taşınmayı emin olun ki masaya yatırmıştır.
Çiçek sepeti'nin taşınma nedeni belli; Dünyanın önde gelen e-ticaret sitelerinden Amazon Çiçeksepeti’ne (Ciceksepeti.com) ortak oldu.   Smile
Başkasının ne kullandığından ziyade bir teknolojiyi birlikte irdeleyelim.
Yıllardır yazılım teknolojilerinin içinde olan, full üstü full stack developer'lar olarak Smile bizler (siz, biz ve Delphican'lar), bir teknolojiye bodoslama atlamadan önce araştıralım. Öğrenelim ve öğretelim.
Değerlendirelim.
Artı ve eksilerine bakalım.

Yazdıklarımın özünü anlayamadığınızı düşünüyorum. 
Özetle; MS ile geliştirdiğimiz web service .so uzantılı olsun. 
Bu dosyayı Linux servisler dizinine taşıyalım ve OS'nin bunu load etmesini sağlayalım
Apache konfigürasyonunu yapalım.
Yayınlanmış olsun. 
Servisin yaşam döngüsü tamamen native ve OS bağımlı olsun. Yani OS'nin gücünü kullansın. 
Dünya devi bir yazılım şirketi, yıl olmuş 2020, Unix tabanlı OS'ler bu firma varolduğundan beri var. Peki ne oldu da kafaya yeni dank etti. Sebebini bulmak çok zor olmasa gerek; o OS'nin çalışma prensibi, performansı ve yüksek donanım uyumluluğu. 
Peki siz bu OS üzerine sanal bir OS inşa ederseniz bunu gücünden ne kadar fayda göreceksiniz?
Bu teknolojinin akıbeti; başta windows phone olmak üzere, Link-To-SQL, compactFramework, microFramework, SilverLight, wcf, wpf, Windows Forms, Web Forms ölmekte olan Xamarin gibi olacak. (Kaynak: https://www.youtube.com/watch?v=oyb27_HZb_4 ve https://www.bayramucuncu.com/microsoftun...olojileri/)


@Fesih ARSLAN := Zaten bu hatalarımızı düzeltmek için buradayız. 
Bu hataları düzeltebilir misiniz?
@sddk := Bildiğimce düzeltmeye çalışayım;
@Fesih ARSLAN :="Ya siz anlatamadınız ya ben anlayamadım!"
Uzun süredir Delphi ile uygulama geliştirmiyorum.(Nasıl bir sevgiyse Delphi ile ilgili bir forumu düzenli takip ediyorum Smile )

Geçmişte Sağlık sektöründe çalışırken özellikle sağlık bakanlığı web servislerini import ederken ciddi sıkıntılar yaşamıştım. İlgili web servisler C# ve Java da sorunsuz import edilip kullanılabiliyordu ama Delphi'de import edemiyorduk yada bazı metotlar gelmiyordu. Hala bu sıkıntı devam ediyor mu? Konuya vakıf olanlar bilgi verirse sevinirim.
(26-09-2019, Saat: 10:27)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: [ -> ]@sddk bey,
Yaptığınız alıntılardan vermiş olduğunuz cevaplara bakarak, ilk yorumunuzda söylemiş olduğunuz "Maalesef yazdıklarınızın çoğu hatalı." cümlenizi bir daha gözden geçirmenizi tavsiye ediyorum.
Yazdıklarımı tekrar tekrar okudum.
Sonra sizin alıntılara vermiş olduğunuz cevapları da tekrar okudum, fakat bir hata göremedim.
"Ya ben anlatamadum ya sen anlayamadun!"
Üretilen bir dll.
sunulan veya lanse edilen şey bir cross platform. Hybrid dense söylecek lafım olmaz. Çünkü hibrid te her yol mübah. Smile

Siz müşteri olarak bir ürün istiyorsunuz. Bu bir araba olsun.
Bu ürün yalnızca İki fabrikada üretiliyor.
A fabrikası diyor ki; bunun gitmesi için benzine ihtiyacı var. Şoföre ihtiyacı var. aynı zamanda, akaryakıt tükettiği için periyodik bakımlarını da sık sık yapmanız gerekiyor.
B fabrikası diyor ki; bunun gitmesi için benzine ihtiyacı yok güneş veya ay ışı bile yeterli, üzerindeki akıllı sensörlerle kendi kendine gidebilir. Akaryakıt olmadığı için sık bakıma ihtiyacı da yok.

Hangi ürün size daha cazip gelir?

İki servis var.
A, birkaç servise ve harici konfigürasyon dosyalarına ihtiyaç duyuyor ve servis sürekliliği konusunda tereddütleri var.
B, OS'nin doğal kaynaklarını kullanır, harici bir servise ihtiyacı yok. Yayın yaptığı platformun konfigürasyon dosyalarını kullanıyor. Sürekli çalışabilirliği konusunda, kendisini tamamen OS'e bırakmış.    

@Fesih ARSLAN := Linux konfigürasyon dosyalarından farklı bir (Ini dosya yapısında) dosya olduğunu görüyoruz. 
@sddk := İlgili dosya Linux servislerini ayağa kaldırmak için kullanılan konfigürasyon dosyası. .Net Core ile alakalı değil. Aşağıda iki tane örnek link paylaştım. Mesela Delphi web uygulamanızı yayınlamak için kullandığınız Apache server'in konfigürasyon dosyasına bir göz atın.
@Fesih ARSLAN := Neden .Net Core ile alakalı değil? 
Delphi ile yazdığımız uygulamada, Linux sunucu uygulamasını ayağa kaldırmak için bu veya benzeri harici bir konfigürasyonu kullanmıyoruz. Servisin ayağa kalkması için webmodul dosyasının modüller dizinine taşınması ve bunu os'ye bildirmesi yetiyor.
"Mesela Delphi web uygulamanızı yayınlamak için kullandığınız Apache server'in konfigürasyon dosyasına bir göz atın." demişsiniz.
Microsoft bu dosyaya (Apache server'in konfigürasyon) neden göz atmıyor da harici bir yapı kullanıyor.  
Ben zaten sunucu uygulamamı yayınlamak için bu dosyayı (Apache server'in konfigürasyon) kullanıyorum.
Bu hatalı bilgi ise hatalıyım.

@Fesih ARSLAN := Çalıştırılan ve servis denen uygulama bildiğimiz dll dosyası.
@sddk := Çalıştırılan şey doğrudan dll dosyası değil, çalıştırılan .Net Core Runtime'ı. .Net Core Runtime, dll'in içerisindeki MSIL'i koşturuyor. Java'daki JRE'nin Bytecode taşıyan JAR ve WAR dosyalarını koşturmasına benzer bir yapı. (Farklılıkları var, detaylı bir konu)
@Fesih ARSLAN := Nasıl yani?
.Net Core ile compile ettiğiniz dosyayı bana iletebilir misiniz? Dll olup olmadığına bakayım.
Dll değilse nedir?
Linux üzerinde yüksek bir bağımlılığı olan ek bir framework (.Net Core Runtime) üzerinde çalışması onun bir dll olmadığını mı ispatlıyor?
"Java'daki JRE'nin Bytecode taşıyan JAR ve WAR dosyalarını koşturmasına benzer bir yapı. "  demişsiniz. java'nın yakalamış olduğu bu mimariyi başarabiliyorsa (ki hiç inanmıyorum; ne demişler adam olacak çocuk küçüklükten belli olurmuş.) ne ala. Fakat java'cılar biz JAR WAR üretmiyoruz demiyor.
Bu çalışma mantığı ile derlenmiş dosyanın farklı bir sanal platform üzerinde çalışması onun bir dll olmadığını mı ispatlıyor?
Eğer öyleyse yine ben hatalıyım.

@Fesih ARSLAN := O zaman exe için de böyle bir eklenti yapsınlar. Böylece tüm dosyalarımızı Linux üzerinde çalıştırmış olalım!
@sddk := url] (bir düzeltme değil, bilgi amaçlı)
@Fesih ARSLAN :=Bilgilendirme için teşekkür ederim.
Burada benim vurgulamak istediğimi halen anlamamışsınız.
Native platform api'lerinin arada herhangi bir katman olmadan kullanılması gerektiğini söylüyorum.
Geleceğin tek OS'si, bulut OS olacak. bir monitör, dünyanın herhangi bir yerinden bize tahsis edilmiş bulut os'ye ulaşabileceğiz.
Bu OS üzerinde Linux, Mac OS X Windows, iOS ve Android uygulamaları çalışabilecek.
Bunu bizim nesil yakalar mı bilmem, fakat elinin kulağında olduğunu düşünüyorum.

@Fesih ARSLAN := Dakika bir, gol bir; servis başlamadan kendimi nasıl kapatabilirim in yollarını arıyor.  Big Grin  
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
Yani diyor ki "Dotnet servisi kilitlenirse servisi 10 saniye sonra yeniden başlatın". Türkçesi; bana güven olmaz, ara sıra donabilirim. Sen beni ısıt. Smile
@sddk :=Yeniden başlatılacak olan şey .Net Core Runtime'ı değil, sizin yazdığınız servis. Yani Türkçesi "Size/geliştiriciye güven olmaz, yazdığın servis kırılırsa Linux bunu yeniden başlatsın ister misin?". Mesela aşağıdaki linkte MySql systemd dosyası örneği var, Restart satırını bu dosyada da görebilirsiniz. https://github.com/charliesome/mysql-5.5...ld.service
@Fesih ARSLAN := MySql systemd'nin de restart ihtiyacı olması, yazacağımız servisin restart ihtiyacı mutlaka olacak manasına gelmez. Biz servisi yazarken en stabil durumu değerlendiriyoruz.
Olsun fakat, olmadan da olduğunu görüyoruz.
Ayrıca servis neden yeniden başlanma ihtiyacı duyar?
İlk mesajımda yazmıştım. Delphi ile yazdığımız servislerde şu ana kadar buna ihtiyaç duymadım.
.Net ve Windows'un klasikleşmiş yada kanayan yarası mı demeliyim; kapat-aç düzelir.
Delphi ile yazdığımız uygulamalar Apache üzerinden yayınlanıyor ve işletim sisteminin başlaması ile load ediliyor. İşletim sistemi ayakta durduğu sürece de çalışması devam ediyor.
Bunun sebebi sanırım arka planda kullanmış olduğu native metodlar olsa gerek.
Bu bilginin neresi hatalı sizce?
Servisin kendi kendini restart etmemesi gerektiği mi?

@Fesih ARSLAN :=KillSignal=SIGINT
Satırında bir emniyet kemeri kullanıyor (teşbihte hata olmaz: eşeği sağlam kazığa bağlıyor); eğer uygulama yeniden başlatılamaz ise, harici bir servisle ben seni sonlandırabileyim diyor. yani harici bir etki ile beni sonlandırabilir veya yeniden başlatabilirsiniz, diyor.
@sddk :=Kill signal Linux üzerinde kernel'in veya bir prosesin veya kullanıcının bir prosese kill sinyali göndermesi ile alakalı. Sistemin bir şekilde servisinizi durdurması gerekir ise KillSignal ile belirttiğiniz sinyali size gönderir, sizde servisinizde bu sinyali yakalayıp servisinizi doğru şekilde sonlandırmaya çalışırsınız. (aslen bayağı detaylı bir konu) Aşağıda bir mariadb servisinin konfigürasyon dosyası var, KillSignal=SIGTERM satırını görebilirsiniz.
https://github.com/Dlackware/gnome/blob/...db.service
@Fesih ARSLAN :=Son kullanıcı neden bir servisi kill etsin?
Ha bu bir geliştirici ise zaten istediği gibi kill edebiliyor yada çalışıp çalışmadığını status parametresi ile öğrenebiliyor.

@Fesih ARSLAN :=
5- msdn'den devam edelim. Sonrasında aşağıdaki komutu çalıştırın diyor.
sudo systemctl enable kestrel-helloapp.service
Yani uygulamayı web servis olarak çalıştırmak için Linux üzerinde çalışan bir servis oluşturun ve bunu çalıştırın. Bir servisin çalışması bu ana servisin çalışmasına bağlı. (İlk maddede bahsetmiş olduğum bağımlılık.)
6- Linux file sistem yapısına aykırı bir dosya (dll), kestrel denilen farklı bir uygulamayla yayınlanıyor. Tabi bunun için bir de  kestrel servisinin çalışması gerekiyor. Bunu nereden biliyorum? msdn de işlemin devamında bu servisin loglarını aşağıdaki servis üzerinden takip edebilirsiniz diyor.
sudo journalctl -fu kestrel-helloapp.service
@sddk := Kestrel bir web sunucusu. Apache'yi durdursak, sizin Delphi ile geliştirdiğiniz so dosyası çalışmaya devam edebilir mi? (CGI olarak derlerseniz evet çalışır ama bunun da dezavantajları var)
@Fesih ARSLAN :=

Alıntı:NET çerçevesinde https destekler ve .NET Core için geliştirilmiştir.
...
Kestrel, herhangi bir platformda ASP.NET uygulamalarını barındırmak için kullanılan açık kaynaklı kodlu, olaya dayalı ve  eşzamansız,  I / O tabanlı bir sunucudur. 
...
Kestrel’in önerilen kullanımı aşağıda göreceğiniz gibi ön tarafında IIS Nginx,Apache vb. bir sunucu şeklindedir.
....
Kaynak: Nedir Bu Kestrel Web Sunucusu ? Artısı – Eksisi Ve Daha Fazlası

Apache'yi durdurursanız o sunucu üzerindeki tüm web servisleri de durdurmuş olursunuz. Çünkü Linux üzerinde web yayını yapan uygulamaların tümü Apache kullanıyor. 
Mikrosoft neden Apache kullanmıyor? Dll'i tanımıyor olmasından olabilir mi acaba? 
Yada neden kestrel kullanıyorsanız;  "ön tarafında IIS Nginx, Apache vb. bir sunucu kullanın" önerilerinde bulunuyorlar? Bundan hangi sonucu çıkarmalıyız?
Yukarıdaki kaynakta kestrel için; ".NET Core için geliştirilmiştir." deniyor. Yani sizin ürettiğiniz platforma yabancı bir dosyayı "bak bu yabancı değil, buda sizden" gazlarını verecek bir ara katman. OS üzerinden gelecek http handle'larını yakalayacak, sizin servisi ayakta tutmaya çalışacak ve gelen istekler .Net ile ilgili ise ve bu bizim servise istekte bulunuyor ise, isteği bizim servise yönlendir. Sonra o da değerlendirsin, kestrel'e bildirsin o da istemciye aynı kanaldan göndersin. 
İşin en ilginç tarafı da açık kaynak kodlu ve MS tarafından geliştirilmeye devam ediliyor olmasıdır. 
Tamamen bir MS ürünü.

@sddk := .Net Core sizin bahsettiğiniz kadar kötü bir platform olsa stackoverflow .Net'ten .Net Core'a taşınır mıydı? Veya çiçeksepeti?
@Fesih ARSLAN := .Net Core kötü demedim. Kulağı tersten tuttuğunu söylüyorum.  Stackoverflow gibi tecrübeye sahip bir form bunu yaptıysa, yarın da başka bir platforma taşınmayı emin olun ki masaya yatırmıştır.
Çiçek sepeti'nin taşınma nedeni belli; Dünyanın önde gelen e-ticaret sitelerinden Amazon Çiçeksepeti’ne (Ciceksepeti.com) ortak oldu.   Smile
Başkasının ne kullandığından ziyade bir teknolojiyi birlikte irdeleyelim.
Yıllardır yazılım teknolojilerinin içinde olan, full üstü full stack developer'lar olarak Smile bizler (siz, biz ve Delphican'lar), bir teknolojiye bodoslama atlamadan önce araştıralım. Öğrenelim ve öğretelim.
Değerlendirelim.
Artı ve eksilerine bakalım.

Yazdıklarımın özünü anlayamadığınızı düşünüyorum. 
Özetle; MS ile geliştirdiğimiz web service .so uzantılı olsun. 
Bu dosyayı Linux servisler dizinine taşıyalım ve OS'nin bunu load etmesini sağlayalım
Apache konfigürasyonunu yapalım.
Yayınlanmış olsun. 
Servisin yaşam döngüsü tamamen native ve OS bağımlı olsun. Yani OS'nin gücünü kullansın. 
Dünya devi bir yazılım şirketi, yıl olmuş 2020, Unix tabanlı OS'ler bu firma varolduğundan beri var. Peki ne oldu da kafaya yeni dank etti. Sebebini bulmak çok zor olmasa gerek; o OS'nin çalışma prensibi, performansı ve yüksek donanım uyumluluğu. 
Peki siz bu OS üzerine sanal bir OS inşa ederseniz bunu gücünden ne kadar fayda göreceksiniz?
Bu teknolojinin akıbeti; başta windows phone olmak üzere, Link-To-SQL, compactFramework, microFramework, SilverLight, wcf, wpf, Windows Forms, Web Forms ölmekte olan Xamarin gibi olacak. (Kaynak: https://www.youtube.com/watch?v=oyb27_HZb_4 ve https://www.bayramucuncu.com/microsoftun...olojileri/)


@Fesih ARSLAN := Zaten bu hatalarımızı düzeltmek için buradayız. 
Bu hataları düzeltebilir misiniz?
@sddk := Bildiğimce düzeltmeye çalışayım;
@Fesih ARSLAN :="Ya siz anlatamadınız ya ben anlayamadım!"

Zannımca bu konunun sonu yok, takdiri mesajlarımızı okuyan arkadaşlara bırakalım. 

Lakin şu cümleniz oldukça doğru ve oldukça önemli: "Stackoverflow gibi tecrübeye sahip bir form bunu yaptıysa, yarın da başka bir platforma taşınmayı emin olun ki masaya yatırmıştır"
Yeterli tecrübeye sahip firmalar/kişiler günün iyi teknolojisini seçip taşınıyor.
(26-09-2019, Saat: 11:41)mustafasivlin Adlı Kullanıcıdan Alıntı: [ -> ]Uzun süredir Delphi ile uygulama geliştirmiyorum.(Nasıl bir sevgiyse Delphi ile ilgili bir forumu düzenli takip ediyorum Smile )

Geçmişte Sağlık sektöründe çalışırken özellikle sağlık bakanlığı web servislerini import ederken ciddi sıkıntılar yaşamıştım. İlgili web servisler C# ve Java da sorunsuz import edilip kullanılabiliyordu ama Delphi'de import edemiyorduk yada bazı metotlar gelmiyordu. Hala bu sıkıntı devam ediyor mu? Konuya vakıf olanlar bilgi verirse sevinirim.

Sağlığı bilmem ama http://www.delphican.com/showthread.php?...&pid=29042 tartışmasından anladığımız gibi Delphi ile NVİ KPS (Kimlik Paylaşım Sistemi) web servislerine bağlanabilen olmamış.
Sayfalar: 1 2 3