22 Aralık 2018 Cumartesi

Code Simplicity ( Kod Basitliği - 9)

     S.a. Arkadaşlar,
     İlk yazısına 1 Nisan'da başladığımız kod basitliği kitabının nihayet sonuna gelmiş bulunuyoruz. Bu kitaba başlamama vesile olan İbrahim Kürce'ye de buradan bir teşekkürü borç bilirim. Şimdi de kitabı bitirmenin heyecanıyla son yazıyı ele alıyoruz. 9.bölüm olan son yazımızda testi ele alacağız. Ayrıca bu yazımız yılın da son yazısı olacak. Şimdi sizi yazıyla baş başa bırakalım.

9 Aralık 2018 Pazar

Code Simplicity ( Kod Basitliği - 8.2)

    S.a. Arkadaşlar,
    İyiden iyi sona yaklaşıyoruz artık. Tatlı bir heyecan sarmaya başladı beni. Bu yazımızı da tamamladığımızda sadece bir bölüm kalacak, onu da yıl bitmeden tamamlamaya çalışacağım. Bildiğiniz üzere 8.bölümü 2 kısma ayırmıştık. İlk bölümde karmaşıklık ve kötü teknoloji seçiminden bahsetmiştik. Şimdi ise geri kalan konuları işlemeye çalışacağız. Hazırsanız başlayalım.

26 Kasım 2018 Pazartesi

Mvc'de Filtrleme İşlemleri - Attribute Kullanımı - AOP

    S.a. Arkadaşlar,
    Bugünkü yazımız üye yetki kontrolü ile ilgili olacaktır. Bir sisteminiz var ve bu burada bulunan sayfalara herkes giriş yaptığında girebilecek mi, yoksa bazı sayfalara sadece belirlediğiniz kullanıcı tipleri mi erişebilecektir. Eğer böyle bir sisteminiz varsa doğru yere geldiniz. Burada her metodu ayrı ayrı kod yazıp kontrol etmeyeceğiz. Burada devreye attribute'leri devreye sokacağız.

31 Ekim 2018 Çarşamba

Code Simplicity ( Kod Basitliği - 8.1)

    S.a. Arkadaşlar,
    Kod basitliği kitabının artık iyice sonlarına yaklaştık. Şimdiye kadarki tüm yazılarımızda basitliğin üzerinde durduk. Hep olması gerekeni konuştuk, onu uygulamaya çalıştık. Özellikle bir önceki bölümde basitliğin üzerinde iyice durduk. Bu yazımızda basitliğin tersi olan karmaşıklığı ele alacağız. Uzun olmaması için yazıyı yine ikiye ayırıyor olacağız. Hazırsanız başlayalım...

11 Ekim 2018 Perşembe

MVC Sürecinde Karşılaştığım Problemler

     S.a. Arkadaşlar,
     Bir süredir üzerinde çalıştığım projede kullandığımız ASP MVC konusunda yaşadığım kendimce ciddi problemleri ve onları nasıl hangi kaynaklardan çözdüğümü kısaca bir toparlamak istedim. Zaman zaman çok zorlandığım anlar da oldu. Hem lazım olursa tekrardan dönüp bakmak açısından hem de belki başkalarına yardımcı olur düşüncesiyle bu yazıyı yazıyorum.

30 Eylül 2018 Pazar

Code Simplicity ( Kod Basitliği - 7.2)

     S.a. Arkadaşlar,
     Kod basitliği kitabından öğrendiklerimizi yazmaya devam ediyoruz. En son kitabın en önemli konusu olan 7.bölümde kalmıştık. 7.bölüm uzun olduğundan 2 yazıya bölme ihtiyacı doğmuştu. 1.kısmına buradan erişebilirsiniz. Bugün ise 2.kısmını ele alacağız. Hazırsak başlayalım.

18 Eylül 2018 Salı

Canlı Destek Entegrasyonu (MVC)

     S.a. Arkadaşlar,
     Üzerinde çalıştığım proje için canlı destek ihtiyacı doğdu. Bu yüzden ben de bir ön araştırma yaptım. İlk başlarda farklı bir kaç araç buldum. Bunlardan bazıları tawk, ondestek, zopim oldu. Bu araçların 3ü de güzel olan araçlar fakat uğraşılması gerekebilir. Biraz daha araştırdığımda bu iş için SingnalR diye gerçek zamanlı uygulamalar geliştirmek için kullanılan bir framework olduğunu öğrendim. Araştırmaya devam ettiğimde Github'dan bununla ilgili güzel bir proje buldum  ve o proje üzerinden devam etmek istiyorum.

16 Eylül 2018 Pazar

Code Simplicity ( Kod Basitliği - 7.1)

     S.a. Arkadaşlar,
     Bildiğiniz gibi kod basitliği kitabını işliyorduk. İlk 6 konuyu her hafta işlemeye özen gösterdim. Yeni iş, yeni proje , yeni teknoloji sebebiyle basitlik yazılarına ara vermek zorunda kalmıştık. Neyse ki pes etmeden tekrar devam etmek nasip oldu. Bugün kitabın 7.konusu olan kitabın temelini oluşturan basitliği işliyoruz. Hem konunun önemi hem de uzunluğu sebebiyle yazıyı 2 parçaya böldük. En yakın zamanda 2.parçasını da yayımlamak dileğiyle. Hazırsanız başlayalım.

6 Ağustos 2018 Pazartesi

İngilizce Kelime Getirme - Oxford API (Dictionary, not Translation)

    S.a. Arkadaşlar,
    Geçenlerde sözlükle ilgili bir api arıyordum. Sürekli translate tarzı apiler ve componentlerle karşılaştım, fakat benim aradığım kendi dilinde çeviri yapan , bildiğimiz ilk okullarda kelime baktığımız sözlüktü. Önce bunun Türkçe için olanını aradım, onla ilgili tam bir sonuca varamadım, ama daha sonra tekrar bakacağım, bunla ilgili yardımlarını beklerim, ama yabancı diller için bir çok api denedim, en sonunda oxford apide karar kıldım. Onun da bir sürü dil seçeneği vardı ama C# yoktu. Bugünkü konumuz bununla ilgili.

31 Temmuz 2018 Salı

Tekrarlanan Kodları Generic Metota Çıkarma (Refactoring)

     S.a. Arkadaşlar,
     Her ay en az bir blog yazmaya özen gösteriyorum. Şuan yazmaya başladığımda farkettim ki ayın son günü :) Yeni iş , taşınma derken uzun bir süredir yazmak istediğim halde yazmakta zorlanıyordum. Neyse ki bugüne kısmet oldu. Bugün yazacağım konu generic metod ve refactoring ile ilgili. Yazdığım bir kaç action'un (metodun) birbirine benzediğini fark ettim. Onları ortak bir metoda alabilir miyim diye yola çıkarken bir de baktım ki bir yazı olacak bir şey ortaya çıkıvermiş.Ben de bu fırsatı kaçırmak istemedim :)

4 Haziran 2018 Pazartesi

Code Simplicity ( Kod Basitliği - 6)

S.a. Arkadaşlar,
Kod basitliği kitabının 6.bölümüyle devam ediyoruz. Geçen yazımızda kitabı yarısı geçtiğimizi söylemiştik. Şimdi artık yokuş aşağı iniş başladı diyebiliriz. İnşaallah hayırlısıyla bitirmek de nasip olur. 5.bölümde yazılımdaki değişiklikleri ve 3 kusuru işlemiştik. Bugün ise hatalar ve tasarım başlığını inceleyeceğiz. Hazırsak başlayabiliriz.

13 Mayıs 2018 Pazar

Code Simplicity ( Kod Basitliği - 5)

     S.a. Arkadaşlar,
     Kod basitliği kitabının 5.yazısına başlıyoruz bugün. Bildiğiniz üzere 9 yazılık  bir seri olacaktı. Bu yazıyla yolun yarısını da geçmiş oluyoruz. Seriyi de tamamlarız inşaallah en yakın zamanda. Geçen yazımızda yazılımın geleceği konusunu işlemiştik. Bugün ise yazılımdaki değişiklikleri işleyeceğiz. Kısa bir giriş yaptığımıza göre artık başlayabiliriz.

7 Mayıs 2018 Pazartesi

Delegation Dictionary ile Sınıfları Koşulsuz Çağırma

     S.a. Arkadaşlar,
     Bugünkü yazacağımız konu, kodun düzenlenmesiyle ilgilidir. Farklı sınıfları çağırırken if veya switch case yapısı yerine nasıl bir yöntem izleyebiliriz ona bakacağız. Öncelikle switch case yapısını inceleyeceğiz, daha sonra reflection ile düzenleme yapacağız, en son da delegate dictionary ile kodu düzenleyeceğiz. Aradaki farkı gördükten sonra istediğiniz yapıyı kullanmak size kalmış, fakat sanki tercihiniz belli gibi olacak. Hazırsak başlayalım.

24 Nisan 2018 Salı

Code Simplicity ( Kod Basitliği - 4)

      S.a. Arkadaşlar,
      Bildiğiniz gibi Kod Basitliği kitabını bölüm bölüm inceliyorduk. Geçen yazımızda tasarımın zorluklardan bahsetmiştik. Bugünkü yazımız ise diğer üç yazımıza göre biraz uzun olacaktır. Umarım en keyifli şekilde okursunuz. Bugünkü yazımızın 3 temek başlığı yazılım tasarım denklemi, tasarımın kalitesi ve öngörülmeyen sonuçlardır. Eğer hazırsak başlayalım :)

15 Nisan 2018 Pazar

Code Simplicity ( Kod Basitliği - 3)

     S.a. Arkadaşlar,
     Bildiğiniz gibi Kod Basitliği kitabı yazı serisine başlamıştık. Önceki yazıda kayıp bilimi işlemiştik. Yazılımcının aynı zamanda bir tasarımcı olduğunu ve yazılım bilim ilişkisi üzerinde durmuştuk. Bugün ise 3.bölüm olan yazılım tasarımının zorluklarına değineceğiz. Şimdi kısa bir giriş yaptıktan sonra yazımıza geçebiliriz.

8 Nisan 2018 Pazar

Code Simplicity ( Kod Basitliği - 2)

       S.a. Arkadaşlar,
       Daha önceki yazımızda bahsettiğimiz gibi Code basitliği kitabın çevirisini yapıp anladıklarımızı aldığımız notları bazen de ek açıklamalar yaparak yazısı dizisi hazırlıyorduk. Bugün bu yazı dizisinin 2.bölümü olan Kayıp Bilimi işleyeceğiz. Bu başlık altında Her programcı bir tasarımcıdır, yazılımm tasarımın bilimi ve tasarımda neden bilim yok konularını işleyeceğiz. Hazırsak başlayalım :)

1 Nisan 2018 Pazar

Code Simplicity ( Kod Basitliği - 1)

       S.a. Arkadaşlar,
       Bugün yeni bir yazı dizisine başlamayı düşünüyorum. Max Kanat-Alexander'in Kod Basitliği adlı kitabını elimden geldiğince okuyup anladığım kadarıyla , bazen de küçük notlar ekleyerek yazmayı düşünüyorum. Kitap 9 bölümden oluşmaktadır. Ben de 9 yazı şeklinde bunu yayınlamayı düşünüyorum. Her haftanın belirli bir günü yazıları yayınlamayı düşünüyorum. Bana bu konuda ilham veren Büşra Uzun'dur. Daha önce medium üzerinden yayınlamış olduğu Clean Code adlı ünlü kitabın çevirisi çok hoşuma gitmiş ve her okuduğum yazıda kendisine müteşekkir olmuştum. Her birimiz böyle değerli bir kitabı iyi kötü çevirsek bu konuda daha da gelişiriz diye düşünüyorum. Kısa bir girişten sonra artık sözü kitaba devredelim :)

25 Mart 2018 Pazar

Null-coalescing (? ?), Ternary (? :), Monadic Null-Checking (?)

      S.a. Arkadaşlar,
     Bugün yazacağımız konu soru işaretinin(?) ne işe yaradığı ile ilgili olacaktır. Aslında basitçe bir if-else görevi görmektedir, fakat bununla birlikte bazı işlerde gayet kısa işlemler de yaptırıyor bize. Biz bugün ? , ? : , ?? işleçlerini ele almayı deneyeceğiz. Şimdi başlayalım.

19 Mart 2018 Pazartesi

SFTP ile Dosya Gönderme

      S.a. Arkadaşlar,
      Bugün C# ile stfp ile dosya göndermeyi işleyeceğiz. Daha önce Java'da yazmış olduğum bir blog yazım vardı konuyla ilgili, fakat şuan C# ile örnek yazacağız. Java ile yazdığımız ftp ile ilgiliyken  örneğimiz güvenli ftp manasındaki sftp olacak. Burada dahili kütüphane yeterli gelmiyor, bu nedenle nuget'ten ssh.net indirdik. Eğer siz de hazırsanız başlayabiliriz :)

11 Mart 2018 Pazar

App.config Dosyasından Okuma (Github Projesi)

     S.a. Arkadaşlar,
     Bugün C# ile app.config dosyasından okuma yapacağız. Daha sonra okuduğumuz verileri kullanacağımız bir projemiz var. Onu kısaca açıklayacağız. Bu projeyi github üzerinden yayımladık, daha sonra buraya eklemeler yapmayı düşünüyoruz. Şimdi başlayalım. 

25 Şubat 2018 Pazar

Sonarqube ile Kod Analizi

      S.a. Arkadaşlar,
      Bugün sonarqube ile statik kod analizi aracını inceleyeceğiz. Sonarqube nedir ,kurulumu nasıl yapılır, nasıl kullanılır soruları üzerinde duracağız. İnternette farklı şekillerde anlatan makaleler var. Burada ise sade ve adım adım anlatmaya çalışacağız. Hatayla karşılaştığımız yerleri de belirteceğiz ki siz de aynı hatalarla karşılaştığınızda kolaylıkla o problemleri aşabilirsiniz.

11 Şubat 2018 Pazar

Visual Studio ile Github Bağlantısı

       S.a. Arkadaşlar,
Bugün Visiual Studio 15 ile oluşturduğumuz projeyi githuba yüklemeyi yapacağız. Normal koşullarda studio içinde github eklentisi gelmiyor. Bunu kendimiz manuel olarak eklememiz gerekiyor. Nuget içerisine baktım fakat orada yoktu. Küçük bir araştırma ile .vsix dosyasını indirdim. Siz de buradan indirebilirsiniz. Daha sonra ileri ileri deyip işlemi tamamlayabilirsiniz. Bu arada studio kapalı olursa iyi olur. Şimdi kurulumu yaptıktan sonra artık studioyu açabiliriz.

23 Ocak 2018 Salı

Niçin Try Catch Kullanma(ma)lıyız ?

       S.a. Arkadaşlar,
       Bugünkü konumuz try carch ile ilgili, fakat nasıl kullanılacağı ile ilgili değil. Eğer nasıl kullanıldığına bakacaksınız buradaki yazımdan bakabilirsiniz. Peki biz ne ile ilgileneceğiz. Biz hangi durumlarda try catch kullanmalıyız, hangi durumlarda kullanmaktan kaçınmalıyız sorusunun cevabını arayacağız.

10 Ocak 2018 Çarşamba

private ve static Anahtar Kelimeleri Neden Birlikte Kullanılsın !!

    S.a. Arkadaşlar,
    Konuya başlamadan önce static ve private anahtar kelimelerinin kullanımını bilmek gerekir. Kısaca ikisini de belirtmek gerekirse;
   private : Değişkenin veya metodun (veyahut her ne kullanılırsa) sadece o sınıf içinde çağrılmasını sağlar. Başka sınıflardan erişilemez.
   static :  Değişkenin veya metodun (veyahut her ne kullanılırsa) nesne oluşturulmadan çağrılabilen yapılardır.

9 Ocak 2018 Salı

Foreach ve Linq Kullanımı

      S.a. Arkadaşlar,
      Bir önceki yazıda belirttiğim gibi bu aralar kodun kalitesi ile ilgili ufak tefek şeyler okumaya çalışıyorum. foreach kullanımın ile ilgili örneklere göz atarken karşıma burada sorulan bir soru çıktı. Soru şöyle :
foreach (var item in items)
{
    if (item.Field != null)
        continue;

    if (item.State != ItemStates.Deleted)
        continue;
    
     //kod
}

foreach (var item in items.Where(i => i.Field != null && i.State != ItemStates.Deleted))
{
    //kod
}

4 Ocak 2018 Perşembe

Dictionary Tekrarlanan Kayıt Eklenir mi ?

      S.a. Arkadaşlar,
      Artık eskisi kadar maalesef sık yazamıyorum. Klasik nedenlerinden biri iş olsa da bu aralar java değil C# kodluyor olmam. İkisi eklenince eskisi gibi yazamıyorum. Bazen hevesleniyorum ama daha çok programlama diline özgü değil de iyi kodun yazılması ile ilgili şeyler okumak ve öğrenmeye vakit harcıyorum. Onları yazmam için de bilgilerimin daha olgunlaşmasını bekliyorum. Kısa bir girişten sonra konumuza dönelim :)