Pages

Windows Servisleri.

.net ortamında windows servisi yapmanın en basit şeklini inceleyelim.
Windows Servisi Nedir?

Windows servisleri, işletim sisteminde arka planda çalışan, kullanıcı ile etkilişimde bulunduğu herhangibir arayüze sahip olmayan nesnelerdir. Örnek verecek olursak; Sistem loglarının tutulması,Kaynakların takip edilmesi,Performans bilgilerinin tutulması,network erişimlerinin izlenmesi, Sistem hatalarının izlenmesi gibi işletim sistemini açtığımızda arka planda çalışan işler.
Şimdi basit bir vindows servisi oluşturalım.

image Şimdi önce Projemizi açalım.Görüldüğü gibi windows service projesi açıyoruz.
hemen arkasından Projemize toolbox dan bir eventlog objesi atalım ve ayarlarını yapalım.

 

image Hemen Arkasından bu Ayarları  yaptıktan sonra . Log tutacak kodumuzu yazmaya başlayalım . Kodumuzda dikkat etmemiz gereken kısımlar: mutlaka Onstart() ve OnStop() metodları override edilmelidir. İstersek OnPause() ve OnContinue() metodlarını da override edebiliriz.
Kodumuz Deneme isimli Log da kaynak isimli bir giriş varmı diye bakıyor yoksa yeni birtane yaratıyor.
Denetimmasası>yönetimselAraçlar>olaygörüntüleyicisi nin altında Gözükecek log ismidir deneme.

image

Dikkat etmemiz gereken diğer nokta Classımız ServiceBase clasından kalıtım alıyor olmasıdır.
Hemen Arkasından Referanslardan System.EnterpriseServices i dosyamıza ekliyoruz.
ve Sağ tuş ile İnstaller ekliyoruz dosyamıza ve serviceınstaller imizin özelliklerini ayarlıyoruz.
Displayname kısmında yazdığımız isim bizim servisimizin DenetimMasası>YönetimsalAraçlar>Hizmetler de görüneceği adıdır.StartType ise servisimizin otomatik mi yoksa manuel mi çalışacağını belirlediğimiz yerdir. Sıradaki İşlem ServiceProcessInstaller imizi ayarlamak.Burda Önemli Nokta İse LocalSystem, NetworkService…
gibi servisimizin nerede çalışacağını belirlememiz.

imageimageimage
Sonraki adım ise .net framework içinde bulunan insatllUtill.exe ile programımızı derlemek.

  image image

Şimdi bakalım Servisimiz Hizmetlere eklenmişmi?
Gördüğünüz Gibi Eklenmiş ve otomatik olarak çalışıyor.Hemen Arkasından Servisimizi Birkez başlatıp durdurduktan sonra Log umuza bakıyoruz.Ordada işler yolunda gözüküyor. Önce Deneme isimli log alanımız yaratılmış arkasından 2 tane log tutulmuş. Bunlardan Birini açıyoruz ve özelliklerine bakıyoruz.Log adı açıklaması vb. şeyleri görüyoruz.

image
image

İpucu: Tuş takımından herhangi birini almak.

private void Page_Load(object sender, KeyPressEventArgs e)
{
//Keys. den sonra tüm tuş takımındaki tuşlar çıkar istediğinizi seçebilirsiniz.
if (e.KeyChar==(char)Keys.Back)
}

Mail Gönderme.

Programlama yaparken en çok ihtiyaç duyduğumuz şeylerden biride mail atmadır.
özellikle web sitelerinde vazgeçilmez bir bölümdür. Şimdi mail atma yı basit bir örnekle inceleyelim

image

Bir kaç noktaya değinmek istiyorum.

IsBodyHtml=true; Bu satır ile Mail gövdesinde html tagları kullanmayı etkin kılmış oluyoruz.
UseDefaultCredential= false;  Satırı ise Kendi mail adresimiz ve şifremizi kullanacağımız için yine gerekli bir satır.
EnableSsl=true; bu satırda ise mailimizi ssl ile şifrelememizi sağlıyor. Böylece veri güvenliği sağlamış oluyoruz.
Sonrada mailimizi Gönderiyoruz.

Not : Eğer bir kişiye değilde birden fazla kişiye mail atmak isteseydik kodumuzun şu satırında oynamamız yeterli

mail.To.Add(“ibrhm11@gmail.com,ibrhm_ozbey@hotmail.com”); 
bu satıra istediğimiz kadar mail adresi yazabiliriz.

.Net şifremele algoritmaları -3

Asimetrik Şifreleme :

Asimetrik şifremele algoritmalarında veriyi şifreleyen algoritma farklı çözen algoritma farklıdır. Yani bir anahtar çifti kullanılır.
.NET platformunun desteklediği asimetrik algoritmalar:

  • DSA-DSA - Dijital İmza Algoritması(Digital Signature Algorithm - Birleşik Devletler Hükümetinin Dijital Doğrulama Standartı). DSACryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • RSA - Bu Algoritma, RSACryptoServiceProvider sınfı tarafından uygulanmaktadır.

Her iki metot da benzer özellikler içerir.Genel ve Özel anahtarlar otomatik olarak üretilir.
Bu anahtarlara ToXmlString veya ExportParameters metodu ile erişilebilir.

image

 image yukarıda gördüğümüz üzere önce şifreliyoruz sonra çözüyoruz.Burda bu şifreleme ve çözme işlemleri sırasında iki farklı anahtar kullanılıyor.

Şimdi otomatik olarak oluşturulan anahtarları görelim. Söylediğimiz gibi ToXmlString() metodunu kullanalım ToXmlString(true)= özel anahtar ToXmlString (false ) = genel anahtar için kullanılır.
image

image

.Net Şifreleme Algoritmaları -2

Simetrik Şifreleme Algoritmaları :
Simetrik şifreleme demek bir veriyi şifrelediğimizde gönderici ve alıcının aynı şifre çözücü anahtara sahip olması gerekir.
.net platformunun desteklediği simetrik şifreleme algoritmaları:
Des,TripleDes ,Rc2 , Rijndael dir.

  • DES:Birleşik Devletler Veri Şifreleme Standartı (Data Encryption Standart)DESCryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • Triple DES - DES algoritması sıralı şekilde üç farklı şifreleme anahtarı ile uygulanır. TripleDESCryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • RC2 - RC2 Blok Şifresi. RC2CryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • Rijndael - İleri Düzey Şifreleme. RijndaelManaged sınıfı tarafından uygulanmaktadır.

image

 

image

simetrik şifreleme algoritması kullanarak veri şifreleyip bir txt dosyasına yazdık sonra bu şifrelenmiş veriyi txt dosyasından geri aldık ve şifreyi çözdük.
Dikkat: Burda Anahtar ve ilk değer vermek için bir vektör kullandık. Bu anahtar ve vektörü yine çözerken kullandık yani şifreleyen ve çözen aynı ortak anahtara sahip. İşte simetrik şifreleme.

MCTS-.Net Framework Aplication Development Foundation

Bu gün İlk MCTS sertifika sınavımı geçtim.
70-536 .net framework 2.0 Sırada artık MCTS: .NET Framework 3.5, ASP.NET Applications sınavı var.Sertifikalar ile ilgili detaylı bilgiyi http://www.microsoft.com/learning/mcp/mcpd/vstudio/2008/default.mspx adresten alabilirsiniz.

.net Şifreleme algoritmaları -1

veri transferinin olduğu her yerde güvenliğe ihtiyaç duyulur. Transfer sırasında veri akışından veri çalışsada ne olduğunun öğrenilememesi için günümüzde çeşitli şifreleme algoritmaları kullanılır. .NET framework ise bu gibi durumlar için bize bazı şifreleme algoritmaları sunar.

  • Hash tabanlı
  • Simetrik
  • Asimetrik Şifreleme algoritmaları.

Hast tabanlı şifreleme algoritmaları.
Hash algoritmaları uzunluğu belli olmayan benzersiz bir değer üretir dosyamız için.

  • MD5 - 128-bit hash değeri üretmektedir. MD5CryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • SAH1 - 160-bit hash değeri üretmektedir. SHA1CryptoServiceProvider ve SHA1Managed sınıfları tarafından uygulanmaktadır.
  • SHA256 - 256-bit hash değeri üretmektedir. SHA256CryptoServiceProvider ve SHA256Managed sınıfları tarafından uygulanmaktadır
  • SHA384 - 384-bit hash değeri üretmektedir. SHA384CryptoServiceProvider ve SHA384Managed sınıfları tarafından uygulanmaktadır.
  • SHA512 - 512-bit hash değeri üretmektedir. SHA512CryptoServiceProvider ve SHA512Managed sınıfları tarafından uygulanmaktadır.

Dikkat :Hast tabanlı şifreleme algoritmalar arasında en hızlı olanıdır. Fakat güvenliği en az olanıdır.

image

image  Tabi uygulamamızın koduna

using System.Security.Cryptography; satırını eklemeyi unutmuyoruz.
yukarıfa önce textboxda yazdığımız stringi byte a çevirdik.sonra md5 algoritması ve kullanarak bu alforitmaya özgü computehash() metoduyla girdiğimiz yazıyı hash kodu ile şifreledik.
Dikkat : ComputeHash(); metodu byte veri alıyor.

Md5 in geri dönüşü yoktur. Kullanım amacı ise bir dosya ya bir hash değeri üretilir. ve daha sonra bu dosya üzerinde herhangi bir değişiklik yapılmışmı anlamak için tekrar üretilen hash algoritması kullanılarak yeniden hash kodu üretilir ve karşılaştırılır.

nedirtv?com - Şubat Ayı Webinerleri

nedirtv?com ve Ineta Türkiye aylık webinerlere devam ediyor. Ocak ayında gerçekleştirdiğimiz 8 webinerin ardından bu ayda 7 farklı konuda düzenleyeceğimiz webinerlerle sizlerle beraber olacağız. Aşağıdaki listede Şubat ayı içerisinde gerçekleştireceğimiz webinerleri görebilirsiniz. Webinerlere katılmak için etkinlik zamanında belirtilen sayfaya giriş yapmanız yeterlidir. Eğer bilgisayarınızdan Windows Live Meeting'i kullanarak ilk defa bir webinere katılacaksanız, etkinlik vaktinden 10 dakika kadar önce sayfaya giriş yapmanız ve bilgisayarınıza küçük bir kurulum yapmanız gerekecektir.

Benimde editörü olduğum Nedir Tv’ nin şubat ayı webinerleri aşağıdaki gibi olucak. Benimde bir oturumum bulunuyor.

Konu: ASP.NET 3.5 AJAX
Zaman: 4 Şubat 2009 Çarşamba 21:00-22:00
Konuşmacı: Fatih COŞKUN
Katılım Adresi: https://www.livemeeting.com/cc/usergroups/join?id=ZQ2B6R&role=attend
Konu: Expression Blend 2
Zaman: 6 Şubat 2009 Cuma 21:00-22:00
Konuşmacı: Daron YÖNDEM
Katılım Adresi: https://www.livemeeting.com/cc/usergroups/join?id=P8W6DC&role=attend
Konu: Ado.Net Data Services - Güvenlik
Zaman: 11 Şubat 2009 Çarşamba 21:00-22:00
Konuşmacı: Burak Selim ŞENYURT
Katılım Adresi: https://www.livemeeting.com/cc/usergroups/join?id=M587JZ&role=attend
Konu: ASP.NET Uygulamalarında Performans İpuçları
Zaman: 13 Şubat 2009 Cuma 21:00-22:00
Konuşmacı: Uğur UMUTLUOĞLU
Katılım Adresi: https://www.livemeeting.com/cc/usergroups/join?id=ZJ5CG4&role=attend
Konu: Workflow Foundation
Zaman: 23 Şubat 2009 Pazartesi 21:00-22:00
Konuşmacı: Burak Selim ŞENYURT
Katılım Adresi: https://www.livemeeting.com/cc/usergroups/join?id=7TQS69&role=attend
Konu: MOSS 2007: InfoPath Form Services
Zaman: 24 Şubat 2009 Salı 21:00-22:00
Konuşmacı: Burak BATUR
Katılım Adresi: https://www.livemeeting.com/cc/usergroups/join?id=52T7RP&role=attend
Konu: Expression Web 2
Zaman: 25 Şubat 2009 Çarşamba 21:00-22:00
Konuşmacı: Cemil UZUN

Tüm yazılım geliştiricileri ve teknolojistleri nedirtv?com webinerlerine bekliyoruz!

CultureInfo Ufak bir ipucu !

 

Kültür'ler sadece dil kıyaslaması ile ifade edilir. Mesela Türkçe kültürü için yalnızca tr yazılabilir. Bu tip kültür kodlamasına neutral culture deniyor. Hem dil, hemde alan kodu bulunan kültür kodlarına specific culture deniyor. Eğer hem dil, hem alan adı boş ise bu kültür koduna invariant culture denir ve kültür değeri İngilizce olarak alınır. Yazılabilecek tüm değerler msdn'de CultureInfo sınıfının tanıtımında yazmaktadır. Ordan tüm kültür değerlerine bakabilirisniz . (ASP.NET sayfaları sadece specific culture değerlerini kabul etmektedir. Diğer değerler girildiğinde hata vermektedir)