String Builder Sınıfı

String Builder Sınıfı

String Builder Sınıfı

Bu yazımızda String Builder sınıfı ve kullanım yerlerinden bahsedeceğiz.

Kodlarımızda en sık kullandığımız nesnelerden birisi olan String nesnesi immutable (değiştirilemez) bir nesnedir. Immutable olması nedeniyle üzerinde bir değişiklik işlemi (örneğin string birleştirme) yaptığımızda nesne yeniden oluşturulur ve bellekten yeniden yer ayrılır.  Eğer bir kaç defa bu işlemi yapacaksak çok sorun teşkil etmez ancak bir döngü içerisinde çok fazla sayıda string üzerinde işlem yapmamız gerekli ise bu çok fazla yük getirecektir. İşte bu noktada String Builder sınıfı devreye girmekte ve performansı artırmak için kullanılmaktadır.

System.Text NameSpace’inde bulunan String Builder Sınıfı bize oluşturuduğumuz nesne üzerinde yeni bir nesne oluşturmadan değişiklik yapma imkanı sunar. Bu özelliği ile string üzerinde çok sayıda değişiklik yaptığımız uygulamalarda yüksek performans sağlar. Ayrıca oluşturacağımız stringin büyüklüğünü de başlangıçta belirleyebiliriz.

Şimdide örnekler üzerinde constructor ve methotlarının kullanımı görelim:

StringBuilder sBuilder = new StringBuilder("Default Constructor");
StringBuilder sBuilder = new StringBuilder("Sınırlı Kapasite", 100);

sBuilder.Append("string ekle");
sBuilder.AppendLine(); //Yeni Satır ekle
sBuilder.AppendLine("Yeni satır ve string ekle");

sBuilder.Replace("A", "B"); //A harflerini B ile değiştir
sBuilder.Insert(15,"beni 15. karakterden sonra ekle" );

Reklamlar

C# Methoddan 2’li Veri Döndürme

Anahtar-Değer

Anahtar-Değer

C# Methodlarımız tanım olarak tek tipte veri döndürmemize izin veriyor. Birden fazla değer veri döndürmek istediğimizde kullanabileceğimiz farklı yöntemler mevcut.

Bu yazımda Anahtar – Değer olarak ikili verileri döndürülmesinden bahsedeceğim.

İkili veriler Dictionary gibi bir çok yerde kullanılmakta. Temel mantık olarak her anahtar için bir değer atıyoruz.  Bu şekilde bir ikili değeri methodumuzdan döndürmek istediğimizde KeyValuePair değişkeni olarak döndürmek  mümkün.

Aşağıdaki örnekte bir ikiliyi nasıl döndürdüğümüzü göreceksiniz.

public KeyValuePair<string, int> MeyveKilo()
{
return new KeyValuePair<string,int>("elma",5);
}


Sonuç değerlere erişmek için .key ve .value özelliklerini kullanıyoruz.

Asp.Net ile Metinden URL Oluşturma

metinden url oluşturmaSeo açısından URL içerisinde geçen keyword‘lerin ne kadar değerli olduğunu biliyoruz. Bu yüzden bazen elimizdeki metinden otomatik olarak URL oluşturmamız gerekebilir.

Seo açısından URL’lerimiz 75 karakteri geçmemeli ve Türkce karakter bulundurmamalıdır. Buna ek olarak kelimeler birbirinden “-” karakteri ile ayrılmalıdır. Tüm bu seo kurallarına uyarak metni URL’e çeviren methodu aşağıda bulabilirsiniz.

Method string olarak metni alıp yine string olarak url döndürmektedir.

private string urlYap(string data)
{
data = data.Replace(",", "").Replace("\"", "").Replace("'", "").Replace(":", "").Replace(";", "").Replace(".", "").Replace("!", "").Replace("?", "").Replace(")", "").Replace("(", " ").Replace("&", " ").Replace(" ", " ");if (data.Length > 75)
{
data = data.Substring(0, 75);
data = data.Substring(0, data.LastIndexOf(" "));
}

data= data.Replace(" ", "-").ToLower();
return data.Replace("ş", "s").Replace("Ş", "s").Replace("ç", "c").Replace("Ç", "c").Replace("ö", "o").Replace("Ö", "o").Replace("ü", "u").Replace("Ü", "u").Replace("İ", "i").Replace("ı", "i").Replace("ğ", "g").Replace("Ğ", "g");
}

Asp.Net İle Ziyaretçinin IP’sini Öğrenme

asp.net ile ziyaretçi ipsini öğrenmeSitemizde log tutuyorsak mutlaka gelen ziyaretçilerin ip adreslerini saklamalıyız. Asp.Net ile aşağıdaki methodu kullanarak sitemize gelen ziyaretçileri ip adreslerini saklayabiliriz.

public string IPogren()
{
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
string ipString = "";
if (string.IsNullOrEmpty(Request.ServerVariables["HTTP_X_FORWARDED_FOR"]))
{
ipString = Request.ServerVariables["REMOTE_ADDR"];
}
else
{
ipString = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
.FirstOrDefault();
}
return ipString;
}

Asp.Net Regex ile Hacklinklerin Temizlenmesi

rel-do-follow

Kullanıcıdan veri aldığımız ve bunları yayınladığımız sayfalar, hacklink saldırılarına oldukça açık.
Hacklinklerden korunmak için girilen metinleri kaydetmeden aşağıdaki regex formatında geçirip linkleri temizlememiz yeterli olacaktır.


string temizMetin = System.Text.RegularExpressions.Regex.Replace(hamMetin.Value, "<a.*?>.*?</a>", string.Empty, System.Text.RegularExpressions.RegexOptions.Singleline);

Sayfaya Özel Web.config Dosyası Eklemek

Projemizde her sayfaya farklı config dosyası eklememiz gerekebilir.

Örneğin bazı sayfalarda session’u kapamak isteyebiliriz.

Bu durumda yapmamız gereken özel config dosyası eklemek istediğimiz sayfaları yeni bir klasöre alıyoruz. Bu klasörün içine yeni bir web.config dosyası oluşturuyoruz. (Ya da olan config dosyamızı kopyalayıp içinde gerekli değişiklikleri yapıyoruz.)

Sayfamız öncelikli olarak bu web.config dosyasını baz alacaktır.