|
Visual Studio.NET Whidbey'in Refactoring Özellikleri |
|
Gönderiliyor lütfen bekleyin... |
|
|
Microsoft Whidbey kod adı ile çıkartmış olduğu Visual Studio yeni sürümünde bir çok
yeniliğe imza atmış durumda. .NET teknolojisi ile yazılım dünyasında bir
çığır açan Microsoft firması Visual Studio editöründe yapmış olduğu
değişikliklerle programcılara hızlı yazılım geliştirme için gerekli tüm
imkanı sağlamıştır. Gelecek makalelerimizde Whidbey ile beraber gelen
yenilikleri sizlere tanıtmaya çalışacağız. Bu gün editöre eklenmiş olan yeni
bir seçenekten bahsedeceğiz. Bu seçenek REFACTOR olarak
adlandırılmıştır.
Şekil 1 : Refractor Menüsü
Refactor yazılım geliştirme sürecinde kod yazımı gerçekleştirildikten
sonra kod üzerinde hızlı ve verimli değişiklik yapılabilmesi için
geliştirilmiş bir işlemler bütününün genel adıdır. Refactor aşağıdaki
bölümlerden oluşmaktadır. Şimdi bu bölümleri sırayla inceleyelim.
-
Extract
Metot
-
Encapsulate Field
-
Extract Interface
-
Surround With
-
Insert Expansion
-
Rename
-
Change
Metot
Signature
|
Extract Metot :
Extract Metot uzun ve okunurluğunda ve kullanımında zorluklar olan kodları
metotlar vasıtası ile parçalara bölmek için çok iyi bir yöntem ortaya
koymaktadır. Visual Studio editörü kodu izlemekte ve en uygun alt metodu
üretmektedir. Bu üretilen alt yordamlar sayesinde şematik açıdan kodumuz
açık bir hal almaktadır.
Bu yöntemi kullanmak için alt yordamlara bölecek olduğumuz kodu seçmemiz ve
sağ tuş menüsü ile Refactor -> Extract Metot veya CTRL+ALT+M tuş
kombinasyonu ve ardından M tuşuna yeniden basarak Extract Metot
iletişim penceresine ulaşılarak (Şekil 2) alt yordamın adı seçilir ve işleme
konur.
sealed class MyClass
{
public int x, y;
}
class MainClass
{
public static void Main()
{
MyClass mC =
new MyClass();
mC.x = 110;
mC.y = 150;
Console.WriteLine("x
= {0}", mC.x);
Console.WriteLine("y
= {0}", mC.y);
}
} |
Şekil 2: Extract Metot İletişim Penceresi
Kodumuz içerisinde bir alt yordam olabileceğine inandığınız kod alanını
fare yardımı ile seçtikten sonra Extract
Metot seçeneğini devreye
koyduğumuzda aşağıdaki koda ulaşmış oluruz. Bu koda ulaşmak için yukarıda ki
kodumuzu 2 parçaya bölerek işleme tabi tuttuk. Bunlardan 1.si mC nesnesinin
tanımlanması ve değer aktarımları 2.si bu bilgilerin ekrana yazılması.
public static void Main ()
{
MyClass mC = define_mC ();
display_mC (mC);
}
private static void display_mC (MyClass mC)
{
Console.WriteLine ("x = {0}", mC.x);
Console.WriteLine ("y = {0}", mC.y);
}
private static MyClass define_mC ()
{
MyClass mC = new MyClass ();
mC.x = 110;
mC.y = 150;
return mC;
} |
Encapsulate Field :
Encapsulate Field özelliği kod yazımı gerçekleştirildikten sonra programımız
üzerinde Public
olarak bulunan Alanları
OOP için temel
şartlardan olan
Encapsulate ( Hiç bir
genele açık değişkene direkt ulaşıma izin verme) kuralına uygun bir
hale getirmek için kolay bir yol sunmaktadır. Tüm OOP programcılarının
bildiği gibi public bir değişkene doğrudan ulaşmak bir çok yönden
sakıncalara yol açmaktadır. Bu sakıncaları ortadan kaldırmak için C# dili
içerisinde Property kullanılarak bilgi girişi ve çıkışı fonksiyonlar vasıtası
ile kontrol altına alınmıştır. Aşağıdaki kodu incelediğimizde public
string mystrfield encapsulate açısından sakıncalı olduğu açıktır. Bu
satırda mystrfield alanı üzerinde sağ tuş refactor menüsü üzerinden
Refactor-> Encapsulate Field veya CTRL+ALT+M;E tuş kombinasyonu ile şekil 3
deki pencereye ulaşılır.
using System;
namespace Refactor
{
class
MainClass
{
public string mystrfield;
[STAThread]
static void Main(string[] args)
{
}
}
} |
Şekil 3: Encapsulate Field İletişim Penceresi
Bu pencere üzerinde Property Name ve erişim seçenekleri gerçekleştirildikten
sonra karşımıza preview changes seçeneği seçili ise Preview Changes iletişim
kutusu gelir ve kodumuz üzerinde yapılacak değişiklikleri görmemize izin
vermektedir. Encapsulate Field işlemi gerçekleştirildikten sonra kodumuz
aşağıdaki hali almaktadır.
using System;
namespace Refactor
{
class MainClass
{
private
string mystrfield;
public
string Mystrfield
{
get
{
return mystrfield;
}
set
{
mystrfield = value;
}
}
[STAThread]
static void
Main(string[] args)
{
}
}
} |
Extract Interface :
Normal şartlarda
arayüzlerimizi nesnelerimizden önce oluştururuz ve
nesnelerimizi arayüzlerden türeterek bir standart oluşturmaya çalışırız.
OOP standartları içinde arayüzler çalışmamızı geliştirmek için çok önemli
bir yer tutar. Peki olduya nesnemizi oluşturduk ve arayüz oluşturmayı
unuttuk ve daha sonra bunu farkına vardık ve ihtiyacımızı hissettik ne
yapacağız. nesnemizi baştan sona inceleyip arayüzümüzü oluşturmamız
gerekir. Extract Arayüz seçeneği bizlere bu işi bir kaç tıklama ile
yapabileceğimiz imkanı sunmaktadır. Bir sınıftan Arayüz üretebilmemiz
için en önemli şart bu sınıf içerisinde public metotların bulunması
gereğidir.
class myclass
{
public void mymetot()
{
}
} |
Yukarıdaki
örneğimizde basit bir sınıf bulunmaktadır. Burada myclass üzerinde
sağ tuş Refactor->Extract Interface veya CTRL+ALT+M;I tuş
kombinasyonu ile iletişim penceremize ulaşabiliriz. Bu pencere üzerinde
(Şekil 4) oluşturulacak olan arayüzün adı, bulunacağı dosya adı ve
arayüzde bulunacak olan metotların seçimi gerçekleştirilebilir.
Şekil 4 : Extract Interface iletişim penceresi
İşlem gerçekleştirildikten sonra Imycalss.cs dosyası içerisinde
Arayüzümüzü Imyclass adı ile oluşturulur ve myclass
üzerinde şu değişiklik otomatik olarak meydana gelir.
class myclass :
Imyclass
{
public void mymetot()
{
}
} |
Surround With :
Yazılım geliştirme sürecinde kodları yazdıktan sonra bazen bu kodların bir
bölümünü döngü içerisinde veya bir hata kontrol mekanizması içerisine
almamız gerekir. Bu aşamada normal şartlarda araya satır ekleyerek
işlemimizi gerçekleştiririz. Whidbey ile beraber gelen Refactor seçenekleri
bünyesinde bulunan Surround With özelliği sayesinde bir ifade içine
almak istediğimiz kodu mouse ve klavye yardımı ile seçtikten sonra
Refactor-> Surround With->(Seçilecek İfade) menüsü üzerinden işlemimizi
gerçekleştirebiliriz. Whidbey editörü bize kullanabilecek olduğumuz
ifadeleri otomatik olarak sunmaktadır.
Insert Expansion:
Programcılar olarak yazıma ait ifadeleri yazmaktan hep sıkıntı duymuşuzdur.
Bir sınıf oluşturmak istediğimizde birisi genel tanımlamaları bizim yerimize
yapsa ne kadar güzel olurdu değil mi?
Hızlı yazılım geliştirmede en önemli şey tekrar eden ve angarya kodlardan
kaçınmaktır. Bu amaçla Whidbey editöründe yazmaktan üşendiğimiz genel
ifadeleri bir hamlede eklememize izin verecek Insert Expansion seçeneği
bulunmaktadır. Bu seçenek sayesinde if,for,class,interface,checked vb..
bir çok ifadeye bir tuş ile ulaşabiliriz. Bu işlemi gerçekleştirebilmek için
Refactor->Insert Expansion veya CTRL+ALT+M;X yapmamız yeterlidir.
Rename:
Visual Studio üzerinde yazılım geliştirirken en çok problem yaşamış olduğum
konu bir nesnenin veya alanın adını belli bir noktadan sonra değiştirmek
olmuştur. Belli bir kod yazdıktan sonra bir isimde yapmış olduğum değişiklik
bana bir çok hata olarak hep geri dönmüştür. Bu hata mesajlarını izleyerek
programındaki isim değişikliğini uzun bir süreçte gerçekleştirirdim.
Microsoft Whidbey ile programcılara bu konuda da büyük bir kolaylık
sağlayarak bir isim değişikliğini en kısa sürede ve en esnek şekilde
yapmamızı sağlamıştır. Bu isim değişikliği bir namespace,class,interface,field,property
vb.. olabilir. Rename işlemini gerçekleştirebilmek için isim değişikliği
yapacak olduğumuz alan üzerinde sağ tuş vasıtası ile Refactor->Rename
veya CTRL+ALT+M;R tuş kombinasyonu ile Rename iletişim kutusuna
ulaşmamız mümkündür. Bu iletişim kutusunda yeni ismi girdikten sonra
karşımıza (Şekil 5) hangi değişiklikleri uygulayacağımızı ve bunların
nerelerde olduğunu bize gösteren bir doğrulama penceresi ile
karşılaşırız.
Şekil 5 : Rename Ön Görünüş İletişim Penceresi
Örneğin yukarda
mystrfield değişkeni mystrfield1 ismiyle değiştirilecektir.
Penceremizde bu değişikliklerin nerelerde hangi dosya içinde ve hangi
satırda olduğunu gösteren bilgiler bulunmaktadır. Değişmesini istediğimiz
noktalara işaret bıraktıktan sonra Çalıştır iconu ile değişikliği
çalıştırabilirsiniz. Bu isim değişikliği projemize bağlı tüm dosyalarda
gerçekleştirilebilmektedir.
Change Metot Signature:
Yazılım geliştirme sürecinde bazen tanımlamış olduğumuz
metotlar içerisinde
ihtiyaca bağlı olarak bazı parametre değişikliklerine gitmemiz gerekebilir.
Bu değişiklikleri de gerçekleştirmek büyük zaman kayıplarına neden
olmaktadır. Whidbey ile birlikte Refactor menüsü altında Change Metot
Signature seçeneği ile artık bu işlemde çok kısa bir sürede
gerçekleştirilebilmektedir. Metotumuzun tanımlandığı referans noktası
üzerinde sağ tuş Refactor->Change Metot Signature veya CTRL+ALT+M;S
tuş kombinasyonu ile Change Metot iletişim penceresine ulaşabiliriz. Bu
pencere üzerinden Parametre Ekleme,Parametre Çıkarma ve Parametre
Düzenleme işlemlerimizi gerçekleştirebiliriz. Bu noktada unutmamamız
gereken konu şu ki arayüzlerden türetilen sınıflar içerisindeki
metotlarda yaptığımız değişiklikler kökteki arayüz etkilememektedir.
Tüm bu anlattıklarımızdan da anlaşılabileceği gibi Microsoft firması Whidbey
kod adlı yeni Visual Studio yazılım geliştirme aracında editörlük açısından
programcılara büyük kolaylıklar sağlamaktadır. Gelecek Makalelerimizde bu
yenilikleri tanıtmaya devam edeceğiz.
Resul ÇAVUŞOĞLU
[email protected]
Makale:
Visual Studio.NET Whidbey'in Refactoring Özellikleri C#, Visual C# ve .NET Resul Çavuşoğlu
|
|
|
-
-
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
|
|