Ana içeriğe atla

Kayıtlar

c# etiketine sahip yayınlar gösteriliyor

Readonly ve Const Değişken arasındaki fark nedir ?

Bu yazımda günlük kullanımda genellikle karıştırılan tipler olan readonly ve const değişkenleri inceliyor olacağız. Öncelikle bu tipleri temel anlamda inceleyelim. Readonly : Gerçek zamanlı olarak uygulamamız çalışırken güncellenebilir. Fakat bu güncellenme işlemi sadece contructor da yapılabilir. Constructor metodumuzda readonly değişkeni dilediğimiz kadar güncelleyebiliriz. Const : Sadece uygulama derleme öncesi bir değer ataması yapabilir. Sonrasında uygulama çalışması esnasında bir güncelleme yapamayız. Kullanım Alanları  Const :  Genel kullanım aşağıdaki şekildedir :  public class Urun { const string urunBirimi = "Adet"; const bool garantiDurumu =true; /* . .diğer tanımlamalarımız burada . */ //constructor public Urun(){ }//Constructor Kapanış }//Class Kapanış Aşağıdaki şekilde kullanımı yapamayız :  public class Urun { /*Burada bir hata alıyor olacağız. Atama işlemi program çalıştırılmadan önce yapılmalıdır ş...

Bir Web Sitesini Gezip Verilerini Alacak Bot Yazmak

Bazı durumlarda projelerinizde bazı sitelerin veri tabanlarına ihtiyacınız olabilir fakat tabiki başka sistemler size veri tabanlarını açmayacaktır.Bugün bu web sitelerinin verilerini ihtiyacımız dahilinde nasıl çekebiliriz bu konu üzerine yoğunlaşacağız. Başlangıç  Uygulamamızı C# ile HTMLAgilityPack.dll ini kullanarak yapıyor olacağız.Visual studio üzerinden nuget manager ile HTMLAgilityPack i indirip kullanabileceğimiz gibi isterseniz code plex üzerinden de ilgili dll i indirebilirsiniz.(code plex url :https://htmlagilitypack.codeplex.com/releases/view/90925) Kısa açıklama Bu uygulamamız isbnsearch.org sitesindeki kitap bilgilerine ISBN numarası ile ulaşmamızı sağlayacak. Yani şöyle bir ihtiyacımız olduğunu düşünelim sitemize kitap ekleyeceğiz ama kitap bilgilerini (resim,isim,yayınevi,yazar,vs) tek tek girmek istemiyoruz.İlgili kitabın ISBN numarasını girip kitabın bilgilerini resmiyle birlikte getirmek istiyoruz. Hadi kodlayalım :) Öncelikle Book adında bir ...

JSON ile Değer Döndüren Web Servis e HTTP Post Talebi

Bu sıralar çokca karşılaştığım bir süreci bloğumda da paylaşmak istedim. .Net dışındaki dillerde web servis hazırlandığında genelde dönüş değeri olarak bu aralar popüler olan JSON ile değer döndürülüyor.Siz de bu web servise HTTP Post yöntemi ile C# üzerinden erişip işlem yapıyorsunuz. Aşağıda ki metodu bir servise talep gönderip JSON olarak gelen dönüşü Generic Type dönüşümü ile istediğiniz tür de class veri tipine çevirme işlemi yaparak object oriented olarak projeniz de çalışabilirsiniz. Not : Bu metodu kullanabilmeniz için  http://www.newtonsoft.com/json  adresindeki Newton json dll ini indirmeniz ve .Net projenize referans olarak eklemeniz gerekmektedir.Bu nesne json tipini bir class türüne, class türünden bir datanızı json türüne çevirimde kullanmanızda size yardımcı olacaktır.        /// <summary>         /// It provide that sent http post request and convert json response to entity tpye of T     ...

Gitti Gidiyor API ile Kategori Hiyerarşisini Çekmek

Bu yazımda gitti gidiyor api leri ile kategori verilerini nasıl çekeriz ve gitti gidiyorun algoritması ile bu aldığımız kategori verileri ile nasıl bir kategori hiyerarşisi oluşturabilirz bundan bahsediyor olacağım. Öncelikle servisleri kullanabilmeniz için dev.gittigidiyor.com üzerinden api bilgilerine sahip olmanız gerekiyor. Kategorileri Getirme 1.BasicAuthentication işlemi : Bu işlem api bilgileriniz ile servisleri çağırmadan önce yapmanız gereken bir authentication işlemidir.Buradaki veriler gitti gidiyor geliştirici hesabınızda tanımladığınız bilgilerdir. Aşağıdaki gibi bir metod oluşturarak bu işlemi yapabiliriz.  public void SetBasicAuthentication(string apiKey, string secretKey, string roleName, string rolePass)         {                       /*create authentication*/             AuthConfig config = new AuthConfig();           ...

C# konsol uygulamasında progress gösterimi

Konsol uygulaması geliştirirken bazen windows ve web uygulamalarında olduğu gibi progress bar kullanmamız gerekebilir.Böyle durumlar için kendim için yaptığım basit bir metodu paylaşmak istedim. Metod kısaca parametre olarak verdiğiniz saniye kadar ekranda bir, iki ve üç nokta  görünmesini sağlıyor.Umarım faydalı olur. private static void GetProgress( int progressSecond) {   int sleepSecond = 5; int cursorLeft = Console .CursorLeft; int sleepTime = 500; for ( int i = 0; i < (sleepSecond / 2); i++) {     Console .SetCursorPosition(cursorLeft, Console .CursorTop); Console .Write( "." ); Thread .Sleep(sleepTime); Console .SetCursorPosition(cursorLeft, Console .CursorTop); Console .Write( " " ); Console .SetCursorPosition(cursorLeft, Console .CursorTop); ...

Asp.net Checkbox için javascript confirm popup

Asp.net de bulunan ajax toolkit 'ConfirmButtonExtender' kontrolü malesef checkbox ve benzeri kontroller için kullanılamamaktadır.Peki eğer asp.net CheckBox ımıza tıklandığında onay popup ı göstermek istiyor isek nasıl yapacağız? Bunun için biraz javascript ten yardım almamız gerekiyor.Aşağıdaki gibi bir javascript kullanıcaz. Senaryomuzda bir sayfadaki lisans sözleşmesinin kabul edilmesi ve bu sözleşmenin kabul etmek için check edildiğinde uyarı göstermesi olsun.    <script type="text/ecmascript">                      function confirmCheck() {                 //asp.net checkbox ımızın değerini alıyoruz.                 var deger = document.getElementById('<%= ChkApproveLicence.ClientID %>').checked;                 if (deger == true) {             ...

Test Güdümlü Yazılım Geliştirme(Test Driven Development)

Test güdümlü yazılım geliştirme Extreme Programming süreçlerinde sık olarak kullanılan bir metod dur.Lafı çok uzatmadan direk süreç nasıl işler?  bize neler kazandırır ? nasıl başlarız ? gibi sorulara cevap verip örnek birkaç kod parçası ile bunları destekliyeceğim. Süreç Nasıl İşler  ?  1-)Yapılacak işlem senaryoları belirle 2-)Her senaryo için bir test kodu ekle  - Burada direk senaryo gereği talep edeceğiniz veriyi, olmasını istediğiniz anlamlı isim ile çağıracak kodu yazıp gerekli parametreleri vermeniz gerekiyor.(Parametreleri farklı testinizi başarıya uğratabilecek alternatifler ile değiştirmeniz fayda sağlayacaktır) 3-)Testi çalıştır.Hatayı al 4-)Sadece hatayı ortadan kaldıracak kadar kodu en yalın haliyle yaz. 5-)Testi çalıştır.Hata yok ise tekrar kodu gözden geçirip en sade hale getir. Bize Neler Kazandırır ?  1-)Sonuç odaklı kod yazmış oluruz. 2-)Tamamı test edilmiş kodlar yazarız böylece sonrasında çıkabilecek problemler yüzünden proje sü...

StringBuilder Kullanımı

StringBuilder tek bir nesne örneği üzerinden string türünden verilerimizi tutmamızı sağlayan ,ayrıca string nesnesinden daha performanslı olan bir nesnedir. string neden performanslı diyecek olur isek, string nesnesini kullanırken içerisine her veri aktarıldığında yeni bir nesne ve bellekte yeni bir adres oluşturulur.Bu da fazladan bellek tüketimine neden olur.StringBuilder ise bellekte tek bir adres ile o adreste sınırsız veri işlemlerine izin verir.Böylece fazladan bellek tüketmeden daha performanslı kodlar yazmış oluruz.:) Kullanımı aşağudaki şekilderdir :  1.StringBuilder Genel Kullanımı :  //Nesne Örneği oluşturuluyor. StringBuilder sbTest=new StringBuilder(); //String türünden veri eklemek için  sbTest.Append("test verisi"); 2.StringBuilder 'AppendFormat' fonksiyonu kullanımı String nesnesi ile çalışırken sık kullandığımız "string.Format()" fonksiyonunu StringBuilder da çok rahat bir şekilde kullanabiliyoruz. Örnek :  ...

c# ile Singleton Tasarım Deseni

Önce Design Pattern ı kısaca açıklamak gerekirse,günümüz nesne yönelimli programlama aşamalarında ortaya çıkan problemler için uygulanan çözümlerdir diyebiliriz. Bu yazımda kısaca Singleton Tasarım Deseninden(Singleton Pattern) bahsedicem. Temelinde nesneleri birden çok kez oluşturulmasındansa birkez oluşturup sonraki aşamalarda bu oluşturulan nesnenin örneğini kullanmamızı sağlayan desendir. Şimdi bunu bir örnek ile açıklayalım : Bazen uygulamalarımızda nesneleri(Sınıfları) bir çok kez çağırır onlarla işlem yaparız.Mesela Windows uygulamalarında user control kullandığımız bir windows form uygulaması düşünelim, kullanıcı her tıkladığında UserControl ü tekrar oluşturup içerik kısmına yükleriz.Ve o formdaki bütün nesneler gridler tekrardan oluşturulur. Bu tasarım deseni ile bunun önüne şu şekilde geçebiliriz : Bir windows form u düşünelim adı "KitapKayit" olsun. Birde buton olsun her tıklandığında "KitapKayit" formunu oluşturan ve show ile gösteren.. //No...

Performance Counter "Bytes Sent/sec , Bytes Received/sec , Get Requests/sec" counter 'ları 0 değer üretiyor ise

Sorun : Performance Counter ile web service kategorisindeki "Bytes Sent/sec" , "Bytes Received/sec" , "Get Requests/sec" Counter isimlerinin değerleri alınmak istendiğinde 0 değer üretiyor ise.. Çözüm : Bu değerler ilk istendiğinde 0 değer üretebiliyor.Bunu bir döngüyle yaklaşık 10 kez çağırmayı denerseniz ve tabi bu döngüde çağırmadan önce System.Threading.Thread.Sleep(2) değerini de vermeyi unutmayalım çünkü yapılan istek normal bir for döngüsünde aynı anda yapılmış gibi oluyor.En azından araya 1-2 mili saniye bekleme koyarsak isteği farklı zamanlarda yapmış oluyoruz. Örnek Kod : PerformanceCounter perCounter = new PerformanceCounter("Web Service", "Bytes Sent/sec", "_Total"); float nextValue=perCounter.NextValue(); if(nextValue 0)//Eğer deneme sonucunda değer alınmışsa döngüye son veriliyor break; //2 milisaniye bekleme System.Threading.Thread.Sleep(2); //Bytes Sent/sec ,değeri alınıyor. nextValue = perCounter.NextVa...