C# Class'lar ile Çalışmak

C# Class'lar ile Çalışmak

Bu derste Void ve Class nasıl hazırlanır ve nasıl kullanılır onları göreceğiz.

Selam Arkadaşlar.

Arkadaşlar bu derste yazdığımız kodları nasıl kısaltabiliriz, bir kere yazıp her yerde nasıl kullanabiliriz ona bakacağız. Kendimde yola çıkarak aşama aşama yaşadıklarımı anlatmaya çalışacağım.

Senaryomuz;

Bir sql insert yada update işleminden sonra ilgili kişilere bildiri maili gitmesini istiyoruz.

1. Aşama 

Görelim;

// SQL işlemlerini yaptık. 

// Maili gönderiyoruz.
 System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
              
 System.Net.NetworkCredential cred = new System.Net.NetworkCredential("mail@mail.com", "Şifre");
 mail.To.Add("ilgilikisinimaili@mail.com");
 mail.Subject = "SQL e kayıt eklendi";
 mail.From = new System.Net.Mail.MailAddress("mail@mail.com", "adınız");
 mail.IsBodyHtml = true;
 mail.Body = ".... kaydı eklendi";
              
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.mail.com", 587);
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = true;
smtp.Credentials = cred;
smtp.Send(mail);

İlk kullandığım yöntem buydu.  Her mail göndermek istediğim yere bu kadar kodu tekrar tekrar yazıyordum. Bir değişiklik yapmam gerektiğinde bu kodu her nereye yazdıysam tek tek bulup değiştiriyordum. Ayı form içerisinde bile  zaman zaman 4 5 kere kullanmam gerekebiliyordu. Hepsini bulup düzenlemek günlerce sürebiliyordu. Artık canımdan bezmiştim.

2. Aşama

// Kaydet butonu Click eventi
{
// SQL işlemlerini yaptık. 
   MailGonder("ilgilikisinimaili@mail.com", "SQL e kayıt eklendi","SQL kayıt eklendi haberiniz olsun.", "sistem maili", "sistemmaili@mail.com","sistem mail şifresi");
}


void MailGonder(string ToMail, string Subject , string Body , string Adınız, string FromMail, string Sifre )
{
                System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
              
                System.Net.NetworkCredential cred = new System.Net.NetworkCredential(FromMail, Sifre );
                mail.To.Add(ToMail);
                mail.Subject = Subject ;
                mail.From = new System.Net.Mail.MailAddress(FromMail, Adınız);
                mail.IsBodyHtml = true;
                mail.Body = Body ;
              
                System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.mail.com", 587);
                smtp.UseDefaultCredentials = false;
                smtp.EnableSsl = true;
                smtp.Credentials = cred;
                smtp.Send(mail);
}

Bu örnekte gördüğünüz gibi mail gönderme kodları bir void içerisinde. Bunu void kullanmayı öğrendikten sonra hazırlamıştım. ama yine de sorunlu çünkü yine lazım olan her forma yazmak zorundaydım. Değişiklik yapmam gerektiğinde her formu tek tek geziyordum. 1. aşamadaki kadar uzun sürmesede çok uğraştırıyordu. Arada bir tanesini unutsanız.... Sıkıntı....

3. Aşama

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Text;

namespace ProjenizinAdi
{
    class SendMail
    {
        public static bool SendMail(string ToMail, string Subject , string Body , string Adınız, string FromMail, string Sifre )
        {          
             try
            {
                System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();              
                System.Net.NetworkCredential cred = new System.Net.NetworkCredential(FromMail, Sifre );
                mail.To.Add(ToMail);
                mail.Subject = Subject ;
                mail.From = new System.Net.Mail.MailAddress(FromMail, Adınız);
                mail.IsBodyHtml = true;
                mail.Body = Body ;
              
                System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.mail.com", 587);
                smtp.UseDefaultCredentials = false;
                smtp.EnableSsl = true;
                smtp.Credentials = cred;
                smtp.Send(mail);
            }
             catch
            {
                   return false;
            }
           return true;
        }
    }
}

3. aşamada da class kullanmasını öğrendikten sonra direk yeni class açarak mail göndeme işleminı hazırladım. Artık tüm kodlar tek yerde oldu. Proje genelinde nerde kullanmak istersem tek satır kod ile işlemleri halledebiliyorum. Değişiklik yapmam gerektiğinde sadece class'ı değiştirip bırakıyorum ve tüm projede değişmiş oluyor. 

Kullanımı;

// Kaydet butonun click eventi içerisine....
{
   //SQL işlemlerini yaptık.

   SendMail.MailGonder("ilgilikisinimaili@mail.com", "SQL e kayıt eklendi","SQL kayıt eklendi haberiniz olsun.", "sistem maili", "sistemmaili@mail.com","sistem mail şifresi");
}

Şuan bu şekilde bir çok class mevcut projemde. GlobalSystem, SQLConnectionClass, SendMail, ConvertSystem,PrintingSystem vs. vs.  bir sürü class ım var ve gün geçtikçe çoğalıyorlar. Bunun en güzel yanı class'ları geliştirmek istediğinizde gözünüz korkmuyor. Kolayca istediğiniz değişikliği yapabiliyorsunuz. Saatlerce hata yada değiştirilecek kod var kaldı mı diye projeyi aramıyorsunuz.

Hem kodlarımız kısalmış oluyor, hem daha anlaşılır oluyor, hem değişiklik yapmak kolay oluyor, hem merkezi bir sistem kurmuş oluyorsunuz, hem yeni projeye başladığınızda class'larınızı hemen aktarabiliyorsunuz hemde arkanızdan sövdürmemiş oluyorsunuz .

Sizde biliyorsunuz ki kafasına göre kod yazanların, kod hammalığı yaparak proje hazırlayanların arkasından genelde sövülür :). Ben çok sövdüm... Ve öyle bir duruma düşmek istemediğim için yazdığım kodlara özen göstermeye çalışıyorum..

Bu ders bu kadar sevgili arkadaşlar umarım faydalı olur.

Yorumlarınızı eksik etmeyin arkadaşlar. Artılarımı ve eksilerimi söylemekten çekinmeyin.

http://mustafabukulmez.com/

Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git