|
Visual Studio 2005 ile Gelen Yenilikler -1 |
|
Gönderiliyor lütfen bekleyin... |
|
|
Birkaç bölümden oluşacak bu yazımda Visual Studio
2005 ile gelen yeni bazı özellikleri anlatacağım. İnceleyeceğim konular arasında
benim de merakle beklediğim yeni C# editörü, yeni ASP.Net kontrolleri ve C# dilinin
yeni versiyonu yer alacak.
İlk olarak C# editörünü inceliyoruz...
Şekil 1
C# editörüne gelişmiş formatlama seçenekleri de eklenmiş
durumda. “{“ sembollerinin yeni satıra mı, aynı satırda mı yazılacağından,
metod isimleri ile metod parantezleri arasında boşluk koyulup koyulmayacağına
kadar birçok formatlama özelliğini ayarlamamız mümkün (Şekil 2).
Şekil 2
Refactoring
Refactoring özelliğini, yazıp bitirdiğimiz kodların üzerinde
değişiklikler yapmak için kullanıyoruz. Sözünü ettiğimiz değişiklikleri;
değişkenleri, sınıfları, isimuzaylarını yeniden isimlendirmek, metodların
imzalarını (parametre listesi, parametre veritipleri, parametre isim ve sırası)
değiştirmek, mevcut kodlardan yeni metodlar oluşturmak, sınıfların kodlarına
dayalı olarak arayüz tanımları oluşturmak ve sınıf değişkenlerini özelliklere (property)
dönüştürmek olarak gruplandırabiliriz.
Kısaca refactoring özelliğini örneklerle inceleyelim...
Refactoring – Rename
Refactoring içinde gelen Rename yeteneği ile değişkenlerin,
metodların, sınıfların, isimuzaylarının isimlerini kolayca değiştirebiliyoruz.
Örneğin Musteriler adında bir sınıf yazdık, fakat daha sonra sınıfımızın adını
Musteri olarak değiştirmek istedik, bunu standart bul ve değiştir yoluyla da
gerçekleştirebiliriz şüphesiz, ancak rename özelliği ile herşey çok daha kolay.
Rename özelliği arama ve değiştirme özelliği gibi, isimlendirme işlemini bir
metin editörü mantığında gerçekleştirmiyor. İsmini değiştirmek istediğimiz
yapının ne olduğunu biliyor ve bütün proje(ler) içinde, ismi değiştirilecek
uygun veritiplerini bulup bize gösteriyor. Arama ve değiştirme sırasında
yapabileceğimiz olası hatalar minimuma inmiş oluyor. Şekil 3’te yazdığım iki
sınıfın kodunu görüyorsunuz. Birincisi Musteriler adını verdiğim sınıf,
SqlBileseni adındaki sınıf ise belirtilen müşteri numarasına göre bir MusteriSinifi
nesnesi oluşturup döndüren bir metod içeriyor.
Şekil 3
Diyelim ki MusteriSinifi nesnesini daha sonra yeniden
adlandırmam gerekti. Yapılacak şey MusteriSinifi sınıf tanımında sınıf adına
sağ tıklamak ve Refactoring menüsünden Rename’i seçmek (Şekil 4).
Şekil 4
Bir sonraki adımda MusteriSinifi adındaki sınıfa hangi ismi
vermek istediğimi belirtiyorum (Şekil 5).
Şekil 5
Sınıfın yeni ismini Musteri olarak belirledim. Ayrıca
yapılacak değişiklikleri görebilmek için “Preview reference changes” özelliğini
aktif bırakıyorum. Bir sonraki adımda yapılacak değişklikleri VStudio bana
gösteriyor (Şekil 6).
Şekil 6
Yukarıdaki pencerede MusteriSinifi’na nerelerde referans
gösterildiğini görebiliyorum. Rename tuşu ile isim değiştirme işini tamamlamış
oluyorum. Sonuç ise Şekil 7’de...
Şekil 7
Refactoring – Extract Method
Extract method seçeneği, mevcut kod parçalarından yeni
metodlar üretmemizi sağlıyor. Şekil 8 ve 9’da Extract Method’un nasıl
çalıştığını görebilirsiniz.
Şekil 8
SqlBileseni sınıfında şekilde gördüğünüz değişikliği yaptım.
MusteriGetir metodu bir Musteri nesnesi oluşturup döndürüyor. Diyelim ki daha
sonra belli bir musteri numarasına göre Musteri nesnesi oluşturup bana
döndürecek ayrı bir metoda ihtiyacım olduğuna karar veriyorum. Şekilde
gördüğünüz gibi kod bloğunu seçip Refactoring menüsünden Extract Method öğesini
seçiyorum.
Şekil 9
Bir sonraki adımda oluşturulacak metoda isim veriyorum
(Şekil 10).
Şekil 10
Metod ismini de belirttikten sonra VStudio metodu
oluşturuyor (Şekil 11).
Şekil 11
Refactoring – Encapsulate Field
Encapsulate Field ile mevcut sınıf değişkenlerini
özelliklere dönüştürebiliyoruz. Yine şekillerle olan biteni görelim...
Şekil 12
Musteri sınıfına yeni bir değişken ekledim. _Isim adındaki
bu değişkeni daha sonra bir özelliğe dönüştürmek istediğimde yapacağım şey
değişkeni seçmek ve Refactor menüsünden Encapsule Field’ı seçmek. Bundan sonra
aşağıda gördüğünüz pencere karşıma geliyor (Şekil 13).
Şekil 13
Yeni oluşturmak istediğim özelliğe Isim adını verdim. OK
tuşunu tıkladıktan sonra yeni bir pencerede _Isim değişkeninin proje içinde
kullanıldığı yerleri görüp istediğim değişiklikleri yapabiliyorum (Şekil 14).
Şekil 14
“Apply” tuşunu tıkladıktan sonra Musteri sınıfının kodu
değiştiriliyor ve daha önce _Isim değişkenini kullandığım kod parçaları da yeni
eklenen Isim adındaki özelliği kullanacak şekilde değiştiriliyor (Şekil 15).
Şekil 15
Refactoring – Extract Interface
Extract Interface Refactor özelliği ile mevcut sınıflardan
arayüz kodları üretmeyi hızlı bir şekilde gerçekleştiriyoruz. Örneğin
SqlBileseni sınıfının bir de Access veritabanı üzerinde çalışan bir versiyonunu
yazmak istiyorum. Fakat ikisinin de ortak bir arayüz sağlamasını garantilemek
istiyorum. Ancak arayüz tanımlamayı SqlBileseni’ni yazdıktan sonra
gerçekleştirmek istediğimi varsayalım. Yapılacak şey SqlBileseni’ni seçip
Refactor menüsünden Extract Interface’i seçmek. Aşağıda SqlBileseni sınıfının
kodunu görüyorsunuz. İçinde iki adet public metod ve bir de ConnectionString
adında bir özellik var.
#region
Using directives
using
System;
using
System.Collections.Generic;
using
System.Text;
#endregion
class
SqlBileseni {
public SqlBileseni() {
}
private string _ConnectionString = string.Empty;
public string ConnectionString {
get
{
return
_ConnectionString;
}
set
{
_ConnectionString = value;
}
}
public Musteri MusteriGetir(int
musteriNo, string kriter) {
/*
..
..
*/
return
MusteriOlustur(musteriNo);
}
public void MusteriSil(int
musteriNo) {
/* Veritabanında
müşteriyi bul ve sil
..
..
*/
}
private static Musteri
MusteriOlustur(int musteriNo) {
Musteri
mus = new Musteri();
mus.MusteriID = musteriNo;
mus.Isim = "Yeni
Müþteri";
return
mus;
}
}
|
Şimdi yukarıdaki tanımlara uygun bir arayüz oluşturacağım.
Extract Interface’i seçiyorum ve şekildeki pencere ile karşılaşıyorum. Bu
pencerede arayüz içinde hangi metod ve özelliklerin yer alacağını belirliyorum
(Şekil 16).
Şekil 16
SqlBileseni içindeki iki metodu ve bir de özelliği seçip
“OK” tuşuna tıkladıktan sonra VStudio yeni bir dosya oluşturup, dosyanın içine
interface tanımını ekliyor. (Şekil 17).
Şekil 17
VStudio ile gelen yeniliklerden sadece bir tanesi
Refactoring... Devam eden yazılarımda yine kod yazmayı gerçekten hızlandıran
Expansion’lar, ASP.Net 2.0, C# 2.0 konularında (Generics, Iterators, Anonymous
Methods) bilgi vereceğim.
Makale:
Visual Studio 2005 ile Gelen Yenilikler -1 C#, Visual C# ve .NET Önsel Akın
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|