25 Mayıs 2010 Salı

Nasıl Yazılımcı Olunur?

Türkay ÜRKMEZ'in süper bir makalesi :) 

Yazılıma başlayacak tüm arkadaşlara bu makaleyi okumasını öneririm.

http://www.turkayurkmez.com/post/2010/05/21/Nasil-Yazilimci-Olunur.aspx

20 Mayıs 2010 Perşembe

BilgeAdam Yazilim Seminerleri - C# ile Facebook Uygulaması Geliştimek

Haziran ayı içerisinde "C# ile Facebook Uygulaması Geliştimek" konulu seminerler vereceğim. Seminerler BilgeAdam B.T.A. TownCenter Şube 7. Kat Seminer Salonunda yapılacaktır.

Seminerler,
  • 03.06.2010 tarihinde 14:00 - 16:00 saatleri arasında
  • 05.06.2010 tarihinde 15:00 - 17:00 saatleri arasında  
yapılacaktır.

Diğer yazılım seminerleri aşağıdaki gibidir.


12 Mayıs 2010 Çarşamba

Object Oriented Programming (18) - Class Diagram Aracını Kullanarak Class Oluşturmak

Class Diagram Aracını Kullanarak Class Oluşturmak

Class Diagram, Object Oriented(nesne tabanlı) uygulamalarda, Classlar arasındaki ilişkilerin şema halinde gösterilmesini sağlayan bir araçtır. Bu araç içerisinde aynı zamanda Class öğelerini de(Field, Property, Method, Event) gösterebiliriz.

Class Diagram, Class ve öğeleri oluşturabildiği, bu Class ve öğeleri ilişkisel bir şema halinde gösterebildiği için, biz yazılım geliştiriciler için önemli bir araçtır.

Aşağıdaki şekilde; Inheritance, Class ve öğelerinin birlikte gösterildiği bir Class Diagram şeması gösterilmektedir.
Şimdi daha önce yazdığımız Sifre Class’ını Class Diagram ile oluşturalım. Öncelikle projemize yeni bir Class Diagram ekleyelim.


Projeye Class Diagram eklemek için, Solution Explorer penceresi içerisinde proje adı üzerinde sağ tıklayıp, çıkan kısayol menüsünden Add --> New Item komutu seçilir. Açılan Add New Item diyalog penceresinden, Class Diagram seçilir.

Açılan Class Diagram item’ına, Toolbox üzerindeki Class Designer sekmesinden, Class kontrolunu sürükleyerek Class ekleyebiliriz. Class kontrolunu Class Diagram üzerine sürükleyip bıraktığımızda karşımıza aşağıdaki pencere çıkacaktır.

Ayrıca Class Diagram item’ına, Class Designer sekmesinden Enum, Interface, Struct ve Delegate gibi diğer OOP nesnelerinide ekleyebiliriz.



Bu ekran üzerinde ki 3 alan bizim için önemlidir. Bunlar sırasıyla Class’ın adı, Access Modifier’ı ve Class’ın yeni bir dosyada mı yoksa varalan bir dosya üzerinde oluşturulacağıdır.

Class name alanına class ismini yazdıktan sonra, OK butonunu tıklayarak, Sifre Class’ımızı oluşturabiliriz.

Class’ımızın görüntüşü aşağıdaki gibi olacaktır.




Artık Class’ımızı oluşturduktan sonra sıra Class öğelerini(Property, Method) oluşturmaya geldi. Class öğelerini oluşturmak için Class Details penceresini kullanabiliriz. Eğer Class Details penceresi ekranda gözükmüyorsa View --> Other Windows --> Class Details menüsünden görüntüleyebiliriz.

Property eklemek için, Class Details penceresindeki Property sekmesini kullanabiliriz. Aşağıdaki resimde Sifre Class’ına Uzunluk Property’sinin eklenmesi gösterilmektedir.



Method eklemek için, Class Details penceresindeki Method sekmesini kullanabiliriz. Aşağıdaki resimde Sifre Class’ına SifreUret Method’unun eklenmesi gösterilmektedir.

Şimdi Karakter tipi Enum’u ve bu enum türünden olacak SifreKaraterTipi Property’sini tanımlayalım.


Önce Class Designer sekmesinden Enum kontrolunu Class Diagram üzerine sürükleyelim. Açılan penceredeki alanları aşağıdaki gibi değiştirin.

Ok butonunu tıklayarak Enum’ı oluşturduktan sonra, Enum değerlerini Class Details penceresinden girebiliriz. KarakterTipi Enum’ına Basit,Kompleks ve Ozel değerlerini ekliyoruz. Enum’un son hali aşağıdaki gibidir.
  
 
Artık KarakterTipi Enum’un türünden olacak SifreKarakterTipi Property’sini tanımlayabiliriz. Propery’nin tanımlanmış hali aşağıdaki resimde gösterilmektedir.

 
Son olarak Sifre Class’ımıza daha önce eklemiş (kod ile) olduğumuz 3 Constructor’ı Class Diagram üzerinden oluşturalım. Constructor’lar da method olduğuna göre Class Details penceresindeki Method sekmesinden tanımlanabililer. Fakat burada Class ismi ile Constructor isminin aynı olmasına dikkat edilmesi gerekir. Constructor’ların tanımlanmış hali aşağıdaki resimde gösterilmektedir. 

 
Class Diagram ile oluşturduğumuz Sifre Class’ın son hali aşağıdaki gibidir. Artık öğelerin (Property,Method) içerisine kod yazarak Sifre Class’ımızı tamamlayabilirsiniz.

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

namespace Class_Designer_ile_Calismak
{

public class Sifre
{

public Sifre()
{
throw new System.NotImplementedException();
}


public Sifre(int UzunlukDegeri)
{
throw new System.NotImplementedException();
}


public Sifre(int UzunlukDegeri, KarakterTipi SifreTipiDegeri)
{
throw new System.NotImplementedException();
}


public int Uzunluk
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}


public KarakterTipi SifreKarakterTipi
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}


public string SifreUret()
{
throw new System.NotImplementedException();
}

}


public enum KarakterTipi
{
Basit,
Kompleks,
Ozel,
}


}

Object Oriented Programming (17) - Class'dan Object Türetmek

Class'dan Object Türetmek


Yukarıda Class'a taslak ,object’e ise somut ürün demiştik. Artık Class'dan Object(nesne) türetebiliriz. Class'dan Object türetmek için new deyimini kullanırız.

Aşağıda örnekte, Sifre Class'ına ait objSifre1 nesnenin türetimi gösterilmektedir. Örnekte iki farklı yöntem gösterilmektedir. İki yöntem arasındaki fark değişken alanı(scope) ile ilgilidir.

//Yöntem1
Sifre objSifre1
objSifre1 = new Sifre();


//Yöntem2
Sifre objSifre1 = new Sifre();

Yukarıdaki örnekte asıl önemli nokta "()" ifadesidir. Bu ifade nesne türetilirken Default Constructor'ın(Varsayılan Yapıcı Metod) çalıştırılmasını sağlar. Bunun dışında nesne türetilirken isteğe göre parametrik constructor'larda kullanılabilir.

Aşağıdaki örnekte Sifre Class'ına ait objSifre1 nesnenin türetimi, Property ve Method'larının kullanımı gösterilmektedir.

Sifre objSifre1 = new Sifre();
//Uzunluk Property'sinin değerini 10 olarak belirledik.
objSifre1.Uzunluk = 10;
//SifreTipi Property'sinin değerini Kompleks olarak belirledik.
//SifreTipi Property'si Enum türünden bir property dir.
objSifre1.SifreTipi = SifreKarakterTipi.Kompleks;
//SifreUret Method'unu kullanarak sifreyi ürettik.
string sonuc=objSifre1.SifreUret();

Aşağıdaki örnekte Uzunluk ve SifreTipi Property'lerinin değerlerini parametrik constructor yardımıyla verdik. Böylece Property'leri kullanmadan, Field'lara değer gönderebildik.

//Uzunluk ve SifreTipi Property'lerinin değerlerini
//Parametrik Constructor yardımıyla belirledik
Sifre objSifre1 = new Sifre(10, SifreKarakterTipi.Kompleks);
//SifreUret Method'unu kullanarak sifreti ürettik.
string sonuc = objSifre1.SifreUret();

11 Mayıs 2010 Salı

Işık Üniversitesi Seminer

29 Nisan 2010 tarihinde Işık Üniversitesi Şile Kampüsünde "Web'in Geleceği ve E-Ticaret" konulu bir seminer gerçekleştirdik.

Emeği geçen herkese teşekkür ederim.

Resimler :)


Bilgi Üniversitesi Seminer

28 Nisan 2010 tarihinde Bilgi Üniversitesi Dolapdere Kampüsünde "Web'in Geleceği ve E-Ticaret" konulu bir seminer gerçekleştirdik.

Emeği geçen herkese teşekkür ederim.

Resimler :)

Yıldız Teknik Üniversitesi Seminer

18 Mart 2010 tarihinde Yıldız Teknik Üniversitesi Davutpaşa Kampüsünde "Blogla Pazarlama ve Kendi Bloğunuzu Oluşturmak" konulu bir seminer gerçekleştirdik.
Emeği geçen herkese teşekkür ederim.

Resimler :)




Arel Üniversitesi Seminer

17 Mart 2010 tarihinde Arel Üniversitesi Sefaköy Kampüsünde "Blogla Pazarlama ve Kendi Bloğunuzu Oluşturmak" konulu bir seminer gerçekleştirdik.

Emeği geçen herkese teşekkür ederim.

Resimler :)

İstanbul Üniversitesi Seminer

11 Mart 2010 tarihinde İstanbul Üniversitesi Beyazıt Kampüsünde "Web'in Geleceği ve E-Ticaret" konulu bir seminer gerçekleştirdik.

Emeği geçen herkese teşekkür ederim.

Resimler :)

Kültür Üniversitesi Seminer

03 Mart 2010 tarihinde Kültür Üniversitesi Bahçelievler Kampüsünde "Web'in Geleceği ve E-Ticaret" , "C# ile Web Uygulamaları" konulu seminerleri gerçekleştirdik.

Bu başarılı iki seminer organizasyonu için, emeği geçen herkese teşekkür ederim.

Resimler :)


Gebze Yüksek Teknolojileri Enstitüsü Seminer

23 Şubat 2010 tarihinde Gebze Yüksek Teknolojileri Enstitüsü Gebze Kampüsünde "Yazılımda Kariyer" konulu bir seminer gerçekleştirdik.

Emeği geçen herkese teşekkür ederim.

Resimler :)

Maçka Anadolu Teknik Lisesi Seminer

04 Ocak 2010 tarihinde Maçka Anadolu Teknik  Lisesinde "Web'in Geleceği ve E-Ticaret" konulu bir seminer gerçekleştirdik.

Emeği geçen herkese teşekkür ederim.

Resimler :)

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Avcılar Anadolu Meslek Lisesi Seminer

12 Ocak 2010 tarihinde Avcılar Anadolu Meslek  Lisesinde "Web'in Geleceği ve E-Ticaret" konulu bir seminer gerçekleştirdik.

Emeği geçen herkese teşekkür ederim.

Resimler :)


Ümraniye Anadolu Meslek Lisesi Seminer

30 Aralık 2009 tarihinde Ümraniye Anadolu Meslek Lisesinde "Web'in Geleceği ve E-Ticaret" konulu bir seminer gerçekleştirdik.

Emeği geçen herkese teşekkür ederim.

Resimler :)