Altbilgi içeriğine atla
Iron Academy Logo
C# Uygulaması
C# Uygulaması

Diğer Kategoriler

C#'da Windows Hizmetlerine Giriş

Tim Corey
31m 20s

Windows hizmetleri, .NET ekosisteminde kullanıcı müdahalesi olmadan arka plan görevleri gerçekleştirerek güçlü araçlar sağlar. C# ile bir Windows hizmeti oluşturmak karmaşık gelebilir; ama Tim Corey, videosunda "C#'ta Windows Hizmetlerine Giriş - Topshelf kullanarak nasıl bir hizmet oluşturulur, yüklenir ve kullanılır" konusunu adım adım açıklıyor.

Bu makalede, o videoyu adım adım inceleyerek her konuyu ele alacak ve netlik ile süreklilik sağlayacağız.

Windows Hizmetlerine Giriş

Tim, Windows hizmetlerini güçlü ama sıklıkla gözden kaçan otomasyon araçları olarak tanıtıyor. Bu uygulamalar, bir kullanıcı arayüzüne ihtiyaç duymadan görevleri yerine getirmek için arka planda çalışacak şekilde tasarlanmıştır. Yaygın örnekler arasında SQL Server Agent veya Hyper-V hizmetleri bulunur.

Tim, C#'ta ustalaşmak için pratik yapmanın önemini vurguluyor. Uygulamalı deneyim kazanmak için video açıklamasında bağlantılı kaynak kodunu indirmeyi öneriyor.

Konsol Demo Uygulaması Oluşturma

Visual Studio kullanarak Tim, SimpleHeartbeatService adlı yeni bir konsol uygulama projesi oluşturur. Bir Windows Hizmet projesi şablonu kullanabilir; ancak Tim, hata ayıklama kolaylığı için konsol yaklaşımını tercih ediyor.

"Buradaki düşünce, buraya ne kod koyduğum değil; bunun yerine hizmetin kendisinin nasıl oluşturulacağıdır." diyor Tim.

Windows Hizmeti Nedir?

Tim, Başlat menüsü araması kullanarak Windows'ta Hizmetler sekmesini açar ("hizmetler" yazıp Enter'a basmanız yeterlidir). Arka planda çalışan hizmetlerin uzak masaüstü veya MySQL sunucusu gibi hayati işletim sistemi işlevlerini gerçekleştirdiğini açıklar.

Amaç, özel kod kullanarak bu listeye yeni bir giriş oluşturmaktır.

Visual Studio Proje Türleri: Konsol Uygulaması ile Windows Hizmeti

Visual Studio'daki Windows Hizmeti projesini seçmek cazip gelebilir; ancak Tim, bu yaklaşımın hata ayıklamayı zorlaştırdığını açıklar. Bunun yerine, konsol uygulaması canlı bir hizmete hata ayıklayıcı ekleme ihtiyacını azaltarak yerel olarak çalıştırmanıza ve test etmenize olanak tanır.

"Yerleşik hizmet türü proje, hata ayıklamayı zorlaştırır; çünkü önce yüklemeniz, ardından hata ayıklayıcı eklemeniz gerekir."

NuGet Üzerinden Topshelf Ekleme

Hizmet uygulamasını kolaylaştırmak için Tim, NuGet aracılığıyla açık kaynaklı bir çerçeve olan Topshelf'i ekler. Milyonlarca indirmeye sahip bu popüler kütüphane, şablon kod olmadan Windows hizmetleri oluşturmanıza yardımcı olur.

Adımlar:

  1. Referanslara sağ tıklayın

  2. NuGet Paketlerini Yönet'i seçin

  3. Topshelf'i arayın ve yükleyin

Hizmet Mantığını Yazma

Tim, Start() ve Stop() olmak üzere iki genel yönteme sahip bir Heartbeat sınıfı oluşturur. Yapıcıda her saniye çalışacak bir System.Timers.Timer kurar.

Bu zamanlayıcının Elapsed olayı, C:\temp\demos\ klasöründe bir .txt dosyasına geçerli zamanı ekler. Bu, sürekli çalışan bir arka plan görevini taklit eder.

"Bu zamanlayıcı her saniyede bir metin dosyasına yazarak hizmetin çalışır durumda olduğunu gösterecektir."

Bu, klasör tarama veya belge yazdırma gibi gerçek hizmetlerde uzun süre çalışan süreçlerin nasıl işlediğini simüle eder.

Topshelf ile Hizmeti Bağlama

HostFactory.Run kullanarak Tim, Topshelf'i uygulamaya entegre eder:

  • Heartbeat sınıfını tanımlar

  • Start() ve Stop() yöntemlerini eşleştirir

  • Gerekli izinleri vermek için hizmeti LocalSystem olarak yapılandırır

Hizmet için meta verileri de ayarlar:

  • Hizmet adı: HeartbeatService

  • Görünen ad: Heartbeat Servisi

  • Açıklama: YouTube videosunda gösteri amacıyla kullanıldı

Hizmeti Konsol Uygulaması Olarak Çalıştırmak

Yükleme öncesi Tim, uygulamayı test etmek için çalıştırır. Zamanlayıcı doğru biçimde heartbeat.txt dosyasına zaman damgası ekler. Notepad++'ın İzleme özelliğini kullanarak gerçek zamanlı güncellemeleri gösterir.

Hizmeti Yüklemek ve Doğrulamak

Tim, .exe ve ilgili dosyaları bin\Debug klasöründen kalıcı bir konuma (örneğin C:\demos\HeartbeatService) kopyalar. Yönetici komut istemini kullanarak şu komutları çalıştırır:

SimpleHeartbeatService.exe install
SimpleHeartbeatService.exe start
SimpleHeartbeatService.exe install
SimpleHeartbeatService.exe start

Bu, hizmeti Hizmet Denetim Yöneticisi'ne ekler. Hizmetler sekmesini tekrar açıp Yenile'ye tıkladığında, hizmet artık görünür ve çalışır durumdadır.

"Bir hizmet yüklemek çok kolaydır ve bir hizmetle işlem yapmak son derece basittir."

Kaldırmak için:

SimpleHeartbeatService.exe uninstall
SimpleHeartbeatService.exe uninstall

Özet: Faydalar ve Dikkat Edilmesi Gerekenler

Tim, Topshelf ile bir hizmet oluşturmanın ve yüklemenin basit olduğunu özetler. Ancak, sonsuz dosya yazımının depolama sorunlarına yol açabileceği konusunda uyarır; bu, doğru günlük yönetimi için önemli bir hatırlatmadır.

Gerçek Hayatta Hizmet Fikirleri

Tim, Windows hizmetleri için pratik fikirler paylaşır:

  • Klasör temizliği: İndirmeler klasöründen eski dosyaları silin

  • Görsel düzenleme: Fotoğrafları tarihe göre klasörlere ayırın

  • CSV işleme: Bir klasörü izleyin ve CSV'leri otomatik olarak veritabanına aktarın

  • E-posta otomasyonu: Yardım masası tablosunu izleyin ve bildirimler gönderin

Bu örnekler, arka plan görevlerini otomatikleştirmek ve SQL Server, OneDrive ile görev zamanlayıcılarla entegrasyon için hizmetlerin nasıl kullanılacağını gösterir.

Son Düşünceler

Tim, geliştiricileri denemeye teşvik ederek bitiriyor. Bellek, depolama ve olay günlüğü konusunda dikkatli olun. Otomatik güncelleme, güvenlik ayarları veya daha dayanıklı kurulum gerekiyorsa daha fazla yapılandırma gerekebilir.

"Burada büyük bir güç var ve yapabileceğiniz çok şey var."

Sonuç

Tim Corey'nin ayrıntılı açıklaması ile birlikte video'sunda C# ile bir Windows hizmeti oluşturmak erişilebilir ve pratiktir. Topshelf kullanarak bir konsol uygulaması, minimum kurulumla tam olarak çalışan bir Windows hizmetine dönüştürülebilir. Günlük dosyalarını yönetiyor, veritabanı olaylarını işliyor veya otomasyon yapıyorsanız, hizmetler gerçek zamanlı arka plan .NET Framework ya da .NET Core uygulamaları oluşturmanız için güçlü ve ölçeklenebilir bir yol sunar.

Bu öğreticiyi hizmetleri verimli biçimde anlamak, oluşturmak ve yüklemek için eksiksiz bir rehber olarak kullanın. Tamamen test etmeyi ve komut istemini her zaman yönetici olarak çalıştırmayı unutmayın.

Hero Worlddot related to C#'da Windows Hizmetlerine Giriş
Hero Affiliate related to C#'da Windows Hizmetlerine Giriş

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js üzerinde çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara