C#nedir?com
 
YAZAR HAKKINDA
Önsel Akın
Önsel Akın
http://nslkn.com
İletişme geçmek için tıklayın.
8 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: (sekil adimda adindaki degistirme extract ismini mevcut musteri musterisinifi olusturup public refactoring rename sonraki yapilacak C# / VC#/.NET Önsel Akın
 
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 : 16.5.2004
Okunma Sayısı : 15739
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜ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.
 
.net TV RSS 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.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
ChatBot UI Sample 22.10.2017
Turhal Temizer 'in Blogu
C# – IRR Function 22.10.2017
Burak Selim Şenyurt
Asp.Net Core'da Bir WebSocket Macerası 22.10.2017
Burak Selim Şenyurt
.NET Core 2.0 ile Basit Bir Web API Geliştirmek 22.10.2017
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Visual Studio 2005 ile Gelen Yenilikler -1
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
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