Kullandığım geliştirme araçları

Öncelikle belirtmeliyim ki bu araçların %80 nini İlker abiden öğrendim :) Geliştirme süreci zaten zor, birde işin içine incik boncuk girince iyice zorlaşıyor. Aşağıda ki çoğu araçla hayatınızı kolaylaştırabilir, zamandan ciddi anlamda tasarruf elde edebilirsiniz.

  • Visual Studio Eklentileri
    • Jetbrains ReSharper
      • İlker abiyle ilk tanıştığımızda bana ReSharper kullanıyor musun dediğini dün gibi hatırlıyorum. İlk kurduğumda 3 gün dayanabildim ve eklentiyi kaldırdım. Şu anda ise ReSharper olmadan geliştirme yapabileceğimden şüpheliyim :) Visual Studio da ki elimiz ayağımız ifadesi tam yerinde olacaktır. ReSharper için ayrı bir yazı gerekiyor. Kabaca ReSharper bize şunları sunuyor; dosya şablonları, hızlı refactorings, class, dosya ve method adı seviyesinde hızlı arama, kod yazmamızı kolaylaştıran kısa yollar.. Her şeyini de kendinize göre özelleştirmeniz mümkün. Dikkat bağımlılık yapar!
        • resharper2 resharper
    • Productivity Power Tools
      • Bir çok özelliği olmasına rağmen ben bir tek sekmeleri sola sağa almak için kullanıyorum. Sekmeler varsayılan durumda kod yazdığınız kısmın üst tarafında duruyor ve bir kaç probleme sebep oluyor. Problemlerin başında; fazla sekme olunca neyin ne olduğu anlaşılmıyor ve gördüğümüz satır sayısını azaltıyor. Bir başka problemde Visual Studio 2012 de sekmeleri pinleyebiliyorsunuz fakat pinlenmiş ve pinlenmemiş sekmeler arasında bir ayraç bulunmuyor buda pinlemeyi anlamsız kılıyor. PPT ile pinlediğiniz sekmeler arasında ayraç bulunuyor ve istediğiniz gibi sıralayabiliyorsunuz.
        • powertool
    • Hide Main Menu
      • File, Edit, View… düğmelerinin olduğu ana menüyü gizlemeye yarıyor. ALT tuşuna bastığınızda tekrar görünüyor. Bunu kullanma amacım görünen kod satır sayısını arttırmak. Zaten o menüye ayda yılda bir ihtiyacımız oluyor, sürekli orada durması anlamsız.
        • output_F3qi8S
    • Nuget Package Manager
      • Adı üstüne paket yöneticisi :) Nuget.org da ki binlerce açık kaynak kütüphaneyi bir komut yada bir tık kadar size yaklaştıran bir yönetici. Kullanımını şurada anlatmıştım.
        • nuget
    • VisualHG
      • Eğer kaynak kontrol (source control) için Mercurial kullanıyorsanız bu eklentiyle birlikte commit ve ilgili diğer işleri solution explorer dan yapmanıza olanak sağlıyor. Benin kullanım amacım ise farklı :) Değişiklik olan dosyaların yanında küçük simgeler çıkıyor ve hangi dosyalarda çalışmışım bunu görebiliyorum. Bu tamamen alışkanlıklarla ilgili normalde çok kullanışlı bir araç..
        • VisualHG
  • Google Chrome Eklentileri
    • Webpage Screenshot
      • Açık olan web sayfasının ekran görüntüsünü almaya yarıyor. Cazip tarafı ise sayfanın yüksekliği ne olursa olsun tek tıkta görüntünün tamamını alabilmesi..
        • screenshot
    • UA Spoofer
      • UA (User Agent) Farklı ua lara çekip testlerinizi yapmanıza olanak sağlıyor, ben genelde mobil geliştirmelerde kullanıyorum.
        • uaspoofer
    • Css Inject
      • Diskinizde ki herhangi bir css dosyasını sayfaya enjekte etmeye yarıyor. Böylece yaptığınız değişiklikleri canlı olarak sayfa üzerinde görebiliyorsunuz, çok profesyonel bir çözüm değil fakat zaman zaman süper iş görüyor ;)
        • cssinjet
    • Edit This Cookie
      • Çerezleri düzenlemeye yarayan bir eklenti. Basit ve etkili.
        • editcookie
    • AngularJS Batarang
      • AngularJS için hata ayıklama (debug) ve performans izleme eklentisi. Bu eklenti direk Web Geliştiricisi Araçlarına geliyor (F12) AngularJS ye çok ilgili olsamda henüz bir projede kullanmadığımdan bu aracıda adam gibi kullanma imkanım olmadı.
        • angular2 angular angular3
    • Image Properties Context Menu
      • Sayfada ki görsellerin üzerine gelip sağ tuşa tıkladığınızda açılan menüden ilgili görselin orijinal boyutu, sayfada gösterilen boyutu, dosya boyutu gibi temel bilgileri gösteren güzel bir eklenti..
        • imagecontext
    • JSONView
      • Json candır, canandır. Tarayıcılar xml kodlarını formatlı bir şekilde gösteriyor fakat json için bu durum söz konusu değil. Bu eklenti sayesinde json datasını formatlı bir şekilde görebiliyoruz. Harbiden ya yıl 2013 neden tarayıcılar direk formatlamıyor şaşılacak şey..
        • json
    • PageSpeed Insights (by Google)
      • Sayfanızı daha hızlı hale nasıl getirebilirsinizin analizini yapıp size çözüm önerileri sunan olmazsa olmaz aletlerden biri. Kullanımı çok basit, bu araçta Web Geliştiricisi Araçlarına geliyor (F12)
        • Devtool
    • Postman – REST Client
      • Http istekler gönderip almak gibi işlemleri çok fonksiyonel şekilde yapmanıza imkan sağlayan bir araç. Basic Auth, OAuth1.0 gibi kimlik doğrulama protokollerini destekliyor. İsterseniz ortam değişkenlerini tanımlayıp istediğiniz yerde kullanabiliyorsunuz. Çıktı olarak json, xml yada ham (raw) olarak gösterebiliyor. Son zamanlarda gözdemiz olan bir eklenti.
        • postman
  • Windows Uygulamaları
    • Microsoft Visual Studio 2012 – 2010
      • Gezegende ki en iyi ide.
    • Sublime Text 2
      • Daha hafif ve iyisini görmediğim text editör, aslında text editör demek biraz yanlış ama idare edin. Çoğu derde deva, diğer editörlerden farklı bir kategoride bulunan, kategorisiz editör :) Hangi amaçla kullanıyorum sorusuna bir an cevap veremedim ama bilgisayarı açtığımda Sublime Text ide çalıştırıp bir köşede bekletiyorum, ne zaman nerede o na iş düşer belli olmuyor. İçinde Javascript yazmak ayrı bir keyif veriyor, farklı bir aurası var :)
    • mRemote
      • Biz rdp (Uzak Masaüstü) için kullansakta telnet, ssh gibi protokolleride destekleyen yegane aracımız. Bağlantılarınızı isimlendirip, kategorize etmenize olanak sağladığı gibi aynı anda birden fazla bağlantıyıda yapmanıza olanak sağlıyor. Sana puanum 9 kanka!
    • Json Viewer
      • Ne json muş arkadaş :) Json stringini tree şeklinde parse eden çok basit ama canımız kanımız olan küçük bir uygulama. O olmazsa onca şeyi nasıl okurduk bilmiyorum. Bunu okuyan kör oldu ifadesi cuk otururdu herhalde.
        • jsonviewer
    • Beyond Compare 2
      • 2 dosyayı karşılaştırıp, aralarında ki farkları gösteren bir uygulama. Ayda yılda bir kere lazım olsada hayat kurtardığı çok olmuştur. Bak arkadaşım! 4. satır bunda böyle ama şunda şu şekilde değişmiş dediğinde, Allah’ ım sana geliyorum diyebilirsiniz :)
    • The Regex Coach
      • Doğdum ölecem Regex’ i ne anladım nede anlamak istedim ama ne varki kaçmakta çok mümkün değil. Bu araç sayesinde benim gibi regex özürlülerde regex yazabiliyor.
        • regexcoach
    • Microsoft WebMatrix
      • İlk çıktığında çok sevdiğim sonrasında kullanmadığım, son zamanlarda yine kendisine işimin düştüğü hafif bir web geliştiricisi aracı. Fakat ama lakin çok farklı özellikleri vardır. Popüler (binlerce) açık kaynak scriptleri (wordpress, magento vb..) bir tıkta indirip bilgisayarınıza kurup, üzerinde geliştirme yapmanıza olanak sağlar. Editör içinde birde basit veritabanı editörü bulunuyor. Raporlama aracı sayesinde sitenizi analiz edip size bir çok konuda yol gösteriyor, önerilerde bulunuyor. Sayfada bozuk köprüler var, <h1> etiketi eksik, bağlantı metni ilgisiz gibi.. Dikkat! Bunda da farklı bir aura vardır.
        • webmatrix webmatrix2 webmatrix3
    • AutoHotkey
      • Programlanabilir kısa yol uygulaması. Tam ifade edemedim yahu ama şöyle örneklendireyim. Mesela şu anda klavyeden “nguid” yazdım ve “0D5E2C24-C376-C997-4CAB-4FA077851FDF” bu guid ekrana yazıldı. Bu guidi üretmek için bir script yazıyorsunuz ve nguid kelimesiyle çalışmasını istiyorsunuz. Bir çok amaç için kullanılması olası fakat biz genelde tarih ve guid için kullanıyoruz.
        • autokey
    • FileZilla FTP Client
      • Adam bunu yapa yapa yapa bitiremedi :) Neredeyse her ay yeni bir güncellemesi çıkan çok başarılı bir ftp uygulaması. Ftp serveride bir o kadar başarılı. Severek kullandığımız, formattan hemen sonra ilk kurulan uygulamarın başında geliyor.
    • Adobe Photoshop
      • Gezegende ki en iyi resim editörü.
    • ScreenHunter
      • Ekran görüntülerini bir tıkta alıp belirlediğiniz konuma kopyalayan, bir çok ekstra ayarı da bulunan bir program, dene seveceksin.

Zaman içerisinde bu yazı kendi kendini güncelleyecektir.

.Net Mvc cephesinde ki bazı gelişmeler.

Konu çok olunca böyle bir başlık yazmayı uygun gördüm. Son zamanlarda özellikle web tarafında bir Mvc ve Entity dir gidiyoruz. Gün geçmiyor ki yeni bir şey çıkmasın, haliyle ipin ucu kaçtığında neyin ne olduğunu anlamak bir hayli güçleşiyor ve içinden çıkılmaz bir hal alıyor. Bu gelişmeleri maddeler halinde dilimin döndüğünce paylaşmak istiyorum.

  1. Ado.Net Entity ile bir model oluşturup bu model üzerinde veritabanı işlemlerimizi gerçekleştiriyorduk. Entity ile varolan vt yi modelleye bildiğimiz gibi model den de vt yi oluşturabiliyorduk. Bu yaklaşım entitynin bir nevi başlangıç noktasıydı. Zaman ilerledikçe problemler de beraberinde geldi. En başta modelimizi otomatik oluşturduğu için müdehale etmek bir hayli zordu ve müdahale sonunda eğer modelimizde değişiklik yapılmışsa sonradan eklemelerimiz sıfırlanıyordu, çünkü kodlar yeniden oluşturuluyordu. Ayrıca çoğu zaman hiç kullanmayacağımız methodlar boşuna yük oluyordu. İşin birde doğrulama (validation) boyutu vardı ki takla üstüne takla atmak gerekiyordu. Modeli ben yazacam arkadaş, hakimiyet bizde olacak ! Modele hakim olamadığınız durumlarda başlarda güllük gülistanlık olan işlemler ilerde çok can sıkıcı ve içinden çıkılmaz durumlara yol açıyor. Allah’ tan code-first yaklaşımıyla bu isteklerimiz yerine geliyor. Modelimizi istediğimiz gibi yazabiliyoruz, doğrulama işlemlerini basitçe çözebiliyoruz ve tek hakim biz oluyoruz ama yine eksiklikler var, validation için ekstra classlar yazmamız gerekiyor. Şimdi elimizde 2 tane seçenek bulunuyor. Entity Data Model (edm) ve Code-First. Burada ki video da edm den kod oluşturucular (code generator) tarafından code-first bir modelin nasıl oluşturulup kullanıldığını anlatmaya çalışmıştım, yani emd yi kullanarak code-first modelimizi oluşturabiliyoruz. Diğer bir durum ise edm yi hiç işe katmayıp model sınıflarımızı yazıp veritabanımızı bu modelden oluşturmak. Bu seçenek kontrolün tamamıyla elimizde olduğu tek seçenek. Özetleyecek olursak Ado.Net bize şu yolları sunuyor, direk Edm kullanımı, edm den model oluşturma ve edm yi işe hiç katmadan direk modeli yazıp kullanmak.
  2. Paket yönetim konsulu (Package Manager Console) Son zamanlar da yine Microsoft cephesinin üzerinde epeyce durduğu bir konu paket yönetim konsolu. Amacı belli kaynaklardaki özellikle açık kaynak kodlu (open source) projeleri, kolaylıkla çalıştığımız projeye eklememize olanak sağlıyor. Örneğin projemize facebook connect yada x bir ekstra mekanızma (:D) eklemek istediğimizde arayıp bulmamıza gerek kalmadan bir komutla indirip projemize ekleyebiliyoruz. Temel komutlar burada güzel bir şekilde listelenmiş. Nuget projesi şu anda en büyük ve popüler açık kaynak paket deposu. Şu anda 907 adet paket hali hazırda kullanılmak için bekliyor. İndirilen paketler proje dosyalarının bir üst dizininde packages klasörünün içerisinde depolanıyor ve referans olarak projenize ekleniyor.
  3. mvcScaffolding Bu yapıyı yukarıda bahsettiğimiz paket yönetimini kullanarak mvc projenize ekleyip kullanabilirsiniz. Nedir bu scaffolding diye soracak olursanız Crud (Create, read, update ve delete) işlemlerini 1. maddede bahsettiğimiz modelimize uygun bir şekilde, gerekli olan yapıyı ve formları bizim yerimize otomatik olarak oluşturan açık kaynak bir araç. Steve abimiz konuyla ilgili tüm bilgileri blogunda anlaşılır bir şekilde paylaşıyor, ayrıca burada ki videosunu sonuna kadar izlemenizi şiddetle tavsiye ediyorum. Akıllıca tasarlanmış bir model üzerinden çok hızlı bir şekilde saat gibi işleyen projeler yapabilirsiniz.

Dipnot: .Net ile web projesi geliştirmek isteyen arkadaşlarımız var fakat nereden başlayacakları konusunda fikir sahibi değiller. Bunun en büyük sebebi .net tarafında iki türlü geliştirme şeklinin varlığı. Bir tarafta webForm diğer tarafta mvc. Mvc sadece .net de değil diğer web geliştirme ortamlarında da oldukça popüler bir tasarım deseni oldu. Benim konuyla ilgili fikrim direk mvc ile başlamaktan yana sebebi ise şu; webform da bir sürü kontrol bulunuyor ve bu kontrollerin bir sürü özellikleri bulunuyor. Kontrollerin çalışma mantığını anlamak, kullanım yerlerine ve şekillerine hakim olana kadar epeyce zamanınız geçer. Çoğu kişide hiç alışık olmadığı bu yapı karşısında pes eder ve bırakır. Mvc de ise html elemanları ile iş yapıldığından zaten önceden bir aşinalık söz konusudur. Örneğin; input, textarea, selectbox, form gibi.. Php, asp vb.. diğer dillerde nasıl kullanılıyorsa aynen burada da kullanabiliyorsunuz. Enerjinizin %90 lık kısmını model ve kontrol kısmına vermeniz durumunda öğrenilmesi ve kavranılması daha kolay gibi geliyor bana.. Özellikle mvc3 ile birlikte eksiklerin giderilmesi, yeni özelliklerin eklenmesiyle çok da zevkli bir uygulama geliştirme imkanınız oluyor. Günün sonunda bir tasarım desenine uygun uygulamada geliştirmiş oluyorsunuz.