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

Diğer Kategoriler

C#'da Windows Hizmetlerine Giriş

[[academy-video-youtube({"vid": "y64L-3HKuP0", "start_time": "0", "title": "C# ile Windows Hizmetlerine Giriş - Bir hizmet oluşturma, yükleme ve Topshelf kullanımı nasıl", "creator": "Tim Corey", "length": "31m 20s"})]]

Windows hizmetleri, kullanıcı etkileşimi olmadan arka plan görevlerini gerçekleştirme kapasitesine sahip, .NET ekosisteminde güçlü araçlardır. C#'ta bir Windows hizmeti oluşturmak karmaşık gelebilir, ancak "C# İçinde Windows Hizmetleri Tanıtımı - Topshelf kullanarak bir hizmet oluşturma, yükleme ve kullanma" adlı videosunda, Tim Corey, adım adım süreci sadeleştirir.

Bu makalede, o videoyu adım adım inceleyeceğiz ve her konuyu açıklık ve süreklilik kazandırarak ele alacağız.

Windows Hizmetlerine Giriş

Tim, Windows hizmetlerini, otomasyon için güçlü, genellikle göz ardı edilen araçlar olarak tanıtır. Bu uygulamalar, bir kullanıcı arayüzüne ihtiyaç duymadan görevleri yerine getirerek arka planda çalışmak üzere tasarlanmışlardır. Yaygın örnekler arasında SQL Server Agent veya Hyper-V servisleri bulunur.

Tim, C#'ı ustalıkla öğrenmek için pratik yapmanın önemini vurgular. Ellerle öğrenme için video açıklamasında paylaşılan kaynak kodunu indirmenizi önerir.

Bir Konsol Demo Uygulaması Oluşturma

Visual Studio kullanarak, Tim yeni bir konsol uygulama projesi oluşturur ve buna SimpleHeartbeatService adını verir. Windows Servis proje şablonunu kullanabilmenize rağmen, Tim hata ayıklama kolaylığı adına konsol yaklaşımını tercih eder.

"Buradaki fikir, buraya koyduğum kodla ilgili değil, servisi nasıl oluşturacağımla ilgili," diye belirtir Tim.

Windows Servisi Nedir?

Tim, Windows'ta Başlat menüsü aramasını kullanarak Hizmetler sekmesini açar (sadece "services" yazın ve Enter tuşuna basın). Arka planda çalışan hizmetlerin uzak masaüstü veya MySQL sunucusu gibi işletim sistemi için hayati fonksiyonları yerine getirdiğini açıklar.

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

Visual Studio Proje Türleri: Konsol Uygulaması vs. Windows Servisi

Visual Studio'da Windows Servis projesini seçme eğiliminde olabilirsiniz, ancak Tim bunun hata ayıklamanın daha zor olduğunu açıklar. Bunun yerine, bir konsol uygulaması yerel olarak çalıştırmanıza ve test etmenize olanak tanır, canlı bir servise hata ayıklayıcısı ekleme gereksinimini azaltır.

"Yerleşik servis türü proje hata ayıklamayı daha zor hale getirir çünkü önce yüklemeniz, ardından hata ayıklayıcısı eklemeniz gerekir."

NuGet ile Topshelf Ekleme

Servis uygulamasını basitleştirmek için, Tim NuGet üzerinden açık kaynaklı bir çerçeve olan Topshelf'i ekler. Milyonlarca indirme ile popüler olan bu kütüphane, gereksiz kod olmadan Windows servisleri oluşturmanıza yardımcı olur.

Adımlar:

  1. Başvurulara sağ tıklayın

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

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

Servis Mantığını Yazma

Tim, iki public yöntemi olan Start() ve Stop() ile bir Heartbeat sınıfı oluşturur. Kurucu içinde, her saniyede bir çalışacak şekilde bir System.Timers.Timer kurar.

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

"Bu zamanlayıcı her saniye bir metin dosyasına yazacak, bu da servisin canlı olduğunu gösterecek."

Bu, uzun süreli işlemlerin gerçek hizmetlerde nasıl çalıştığını simüle eder, örneğin klasör tarama veya belgeleri yazdırma gibi.

Topshelf ile Servisi Bağlama

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

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

  • Start() ve Stop() yöntemlerini eşler

  • Servisin gerekli izinleri vererek LocalSystem olarak çalışmasını yapılandırır

Ayrıca servis için meta veriler ayarlar:

  • Servis adı: HeartbeatService

  • Görünen adı: Heartbeat Service

  • Açıklama: YouTube videosu amacıyla gösterim için kullanılır

Konsol Uygulaması Olarak Servisi Çalıştırma

Yüklemeden önce, Tim uygulamayı çalıştırarak test eder. Zamanlayıcı, heartbeat.txt'ye zaman damgalarını doğru şekilde ekler. Notepad++'ın İzleme özelliğini kullanarak, gerçek zamanlı güncellemeleri gösterir.

Servisi Yükleme ve Doğrulama

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

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

Bu, servisi Servis Kontrol Yöneticisine ekler. Hizmetler sekmesini tekrar açarak ve Yenile'ye tıklayarak, servis artık görünür ve çalışıyor.

"Bir servisi yüklemek gerçekten kolay ve bir servisle yapabileceğiniz birçok şey var."

Kaldırmak için:

SimpleHeartbeatService.exe uninstall
SimpleHeartbeatService.exe uninstall

Özet: Avantajlar ve Dikkat Edilmesi Gerekenler

Tim, Topshelf kullanarak bir servis oluşturmanın ve yüklemenin basit olduğunu özetler. Ancak, dosya yazmayı sonsuz hale getirmenin depolama sorunlarına yol açabileceğini, bunun da uygun günlük yönetimi için iyi bir hatırlatma olduğunu uyarır.

Gerçek Dünya Servis Fikirleri

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

  • Klasör temizleme: İndirilenler'den eski dosyaları silme

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

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

  • E-posta otomasyonu: bir yardım masası tablosunu izleyin ve bildirim gönderin

Bu örnekler, SQL Server, OneDrive ve görev planlayıcıları gibi araçlarla entegre olarak arka planda görevleri otomatikleştirmek için servisleri nasıl kullanabileceğinizi gösterir.

Son Düşünceler

Tim, geliştiricileri denemeler yapmaya teşvik ederek sonuçlandırır. Sadece bellek, depolama ve olay kaydı ile dikkatli olun. Otomatik güncelleme, güvenlik ayarları veya daha sağlam dağıtım gerekiyorsa, ek yapılandırma gerekecektir.

"Burada çok fazla güç var, ve yapabileceğiniz çok şey var."

Sonuç

Tim Corey'nin videosundaki adım adım gösterimi kullanarak, C#'ta Windows servisi oluşturmak erişilebilir ve pratik hale gelir. Topshelf'i kullanarak, bir konsol uygulaması asgari kurulumla tam işlevli bir Windows servisi haline getirilebilir. Günlük dosyalarını yönetmek, veritabanı olaylarını ele almak veya otomasyon gerçekleştirmek olsun, servisler gerçek zamanlı, arka plan .NET Framework veya .NET Core uygulamaları oluşturmak için güçlü ve ölçeklenebilir bir yol sunar.

Bu eğitimi, servisleri verimli bir şekilde anlamak, oluşturmak ve yüklemek için tam bir yol haritası olarak kullanın. Tam kapsamlı test etmeyi unutmayın ve her zaman yükleyici veya komut istemini yönetici olarak çalıştırı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 ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

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