Bir çok uygulamada, web veya windows fark etmeksizin, bazı iş gereksinimlerinden dolayı belli bir rutinde bazı işlemler yapmak gerekir. Hatta olmazsa olmaz gereksinimlerden biridir. Peki bu rutinleri oluşturmak,yönetmek nasıl oluyor ya da olacak?
Windows Service yazarak bu tip işleri yapmak sanırım ilk akla gelen ve sıklıkla yapılan şey. Doğruluğunu bir kenara atarsak, bu tarz işlerin önceden böyle yapılıyor olması ve bir şekilde düzgün işliyor olması geliştiricileri de windows servisi yazmaya yönlendiriyor.Tabi ki gereksinim ve tasarımlara göre başka yollarda düşünülmüyor değil ama belli bir rutin içerisinde yapılacak bir iş gereksinimi geldiği zaman, doğruya doğru ilk akla gelen windows servis yazmak oluyor. En azından benim gözlemlediğim.
Bir senaryo üzerinden gidelim. Basit bir iş uygulamamız var diyelim. Kullanıcı etkili ya da kendi çapında bir şeyler yapıyor işte. Yapılan işlemlerin sonucunda belli zamanlarda rapor almak istiyoruz; dosya ya yazma,grafik oluşturma .vs gibi.Gayet standart bilindik bir senaryo.
İlk akla gelen yöntem bir windows servis yazmak olur sanırım. %80’lik bir kısımın ilk düşüneceği şeyin bu olduğuna eminim, ki benim de ilk aklıma bu gelirdi. Doğru da aslında, bir windows servis ile bu olay istenilen şekilde çözülebilir.Timer,DateTime ya da user-desinged object’ler ile bir şekilde yapılır.Ama sistem performansını etkileyen,arka planda sürekli çalışan,bir şeyler sayan,yapan,kontolü zor olan bir olay olacaktır bu.Operasyonel maliyeti diğer alternatifleri ile karşılaştırıldığında da mantıklı bir değer mi olur bilemem ama bu senaryo için bence olmaz.