Bu site emekli olmuştur. Arşiv amaçlı olarak
BT AKADEMİ
sponsorluğunda yayın hayatına devam etmektedir.
Ana Sayfa
.net TV
Makaleler
Kaynak Kod
Haberler
Serbest Köşe
Canlı Köşe
Forum
C#nedir?
Ekibimiz
RSS
ADO.NET/SQL
C / Sys Prog.
Genel
Mono ve .NET
Silverlight
XML / Web Serv.
X86 Assembly
C++ / C++.NET
J#.NET / Java
.NET 3.x
UML / Analiz
Yazılım Müh.
ASP.NET
C# / VC#/.NET
Mobil Prog.
PHP 5
YAZAR HAKKINDA
Resul Çavuşoğlu
http://www.resulcavusoglu.com
İletişme geçmek için
tıklayın
.
4
Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için
tıklayın
.
Yayınlanan diğer makaleleri için
tıklayın
.
İlgili etiketler:
C# / VC#/.NET
Resul Çavuşoğlu
YAZI HAKKINDA
Türü
:
Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi
:
Başlangıç
Kategori
:
C# / VC#/.NET
Yayınlanma Tarihi
:
13.3.2004
Okunma Sayısı
:
28160
Yorum Sayısı
:
2
yorum yaz
SİTE İÇİ ARAMA
Üye
GİRİŞİ
Üye girişi için
tıklayın
.
Kullanıcı Adı
Şifre
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
Şifremi / Kullanıcı Adımı unuttum.
C#nedir? hesabınız yok mu?
Üye olabilmek için
tıklayın
.
Serbest KÖŞE
(?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
Bende Yazmak İstiyorum
Blogroll
Burak Selim Şenyurt
Bellek Yönetiminde Verimlilik için İpuçları (Rust Odaklı)
20.5.2025
Burak Selim Şenyurt
Rust ve Güvenli Bellek Yönetimi Hakkında
20.5.2025
Diğer Herşey
»
Makaleler RSS
»
Video Gönder
»
Makale Gönder
»
Serbest Köşeye Yazı Gönder
»
Yazar Başvurusu
»
C#nedir? Ekibinde Olmalıyım!
Sponsorlar
Ana Sayfa
/
Makaleler
/
C# / VC#/.NET
/
Visual Studio.NET Whidbey'in Refactoring Özellikleri
Visual Studio.NET Whidbey'in Refactoring Özellikleri
Favorilerime Ekle
Gönderiliyor lütfen bekleyin...
arkadaşıma gönder
Arkadaşınızın email adresi:
*
Mesajınız:
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
c.resul@concort.com
Makale:
Visual Studio.NET Whidbey'in Refactoring Özellikleri C#, Visual C# ve .NET Resul Çavuşoğlu
Yazılan Yorumlar
Yorum Yaz
MAR
13
2004
Sefer Algan
/
üye hakkında
Refactoring gerçekten faydalı bir başlık. Bu konuda bizi bilgilendirdiğin için teşekkürler.
MAR
13
2004
eray cakir
/
üye hakkında
çok hoş bir yazı olmuş devamını beklerim çalışmalarınızda başarılar ... ERAY ÇAKIR.
Sayfalar :
1
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için
tıklayın
.
Üye değilseniz
Üyel Ol
linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
Bu Konuda Son 10
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
Dizayn ve Kodlama
bt
akademi
. Tüm Hakları Saklıdır © Copyright 2002-2009 c#nedir?com
Makaleler
Serbest Köşe
Makale Gönder
.Net TV
Video Gönder
Canlı Köşe
Kaynak Kod
Forum
Haberler
Röportajlar
Anketler
C# Nedir?
İletişim
Site Haritası
RSS
Favorilere Ekle
Üyelik
Hesap Aktivasyon
Ekibimiz
Ekibe Katıl