Peki YA ŞİMDİ?

peki ya şimdi, Peki Ya Şimdi, PEKİ YA ŞİMDİ?

Bu kelimeler uzun zamandır kendime sorduğum, sebebinin mesleki tatminsizlik olduğunu anladığım soruların sadece bir tanesi.

Benim gibi yaklaşık 6 yıldır bu işi severek yapıp bu soruları sormaya başlamış iseniz demek ki artık sıradaki adıma sizinde geçme zamanınız gelmiş demektir.

Peki ya şimdi?…..

Yazılım hayatımda şuan ana kadar bir çok projenin, sorunun, çözümün, mesainin, sinirin, stresin içinde epey bir yol kat etmiştim. Bir çok şey öğrendim, deneyimledim. Kod okudum kod yazdım çözüm geliştirdim google ile, mantık ile, tecrübe ile, başkasının aktardığı tecrübe ile.

Kompleks senaryolar için kompleks çözümler, imkansızlar gerçekleştiriyorsunuz. Yani kod yazıyorsunuz ve sorun ne olursa olsun iyi yada kötü, yeni yada eski teknoloji sonuçta o sorunu çözebileceğinizi biliyorsunuz. Ama bir şey yanlış yada eksik o google dan okuduğum kodlara bakınca vay anasını diyorum adam yapmış arkadaş, ve hep bunu nasıl yapmış acaba dedim aklıma gelen yezen kişinin tecrübesi ve dili çok iyi bilmesinin sonucu olarak düşündüm ki evet bir yere kadar doğru. Aradan zaman geçti daha çok proje daha çok kod ama bu o hayal edilen duruma yaklaşamıyorum yada çok az, yavaş yaklaşıyorum, nirvanaya çıkamıyorum.

Demek ki bu yolun sonuna gelmişsiniz ve o soru PEKİ YA ŞİMDİ?

Ve bingbang, aslında bunun yazılımın temellerinde olan eksiklerden olduğunu fark ettim, kendi mantığımız ve tecrübemiz ile sınırlanmış durumdayız. Yazılımın kendi metodolojileri kendi doğası ile derinlemesine bakamıyoruz.

Buna göre sıradaki adım için etrafımda örnek aldığım yazılımcıları incelemeye başladım farklı olan ne tam olarak. Şimdi bizde ne eksik nasıl gitmeli bu süreç?

Sıradaki adım artık daha derinlere inmek, kod yazmayı, yazılım geliştirmeyi başka boyuttan kavramak, dili değil yazılımı anlamak.

Bu çerçevede

  • Yazılım prensipleri
  • Tasarım Desenleri
  • Kurumsal Yazılım mimarileri
  • Ve hangi dilin uzmanı isek onun için ileri bilgileri öğrenmek

sıradaki adımlarımız oluyor.

Sizin ile kendi yol haritamı paylaşmak istiyorum,  ben oldum olası Microsoft dünyasında yazılım geliştiriciyim ileri eğitim planlamamı da buna göre yaptım, sizde kendi uzman olduğunuz yazılım diline göre planlama yapmalısınız. Aşağıdaki eğitimler benim yol haritam ilk eğitimi almaya başladım ve daha ilk günden beri ufkum açılmaya algım değişmeye başladı. 1 ve 3 nolu eğitiler dil bağımsızdır, yazılım kendi dünyasına aittir.

  1. OOP Principles Design Patterns- Tasarim Kaliplari
  2. İleri C# Uygulamaları
  3. Enterprise Design Patterns & Architectures (Kurumsal Yazılım Mimarileri)

dotTrace Notlarım

Uygulama geliştirme dünyasında yer alan herkezin muhakkat yolunun geçeği sokaktır, uygulama performans analizi, performansı uygulama geliştirme yada uygulamayı daha performanslı hale getirme. Bu yolda ya yazdığınız kodların “best practice” araştırır uygularsınız yada performans analizi uygulamaları ile uygulamanızı(kodunuzu) analiz eder uzun süren yada fazla işlemci yükü oluşturan yerleri tespit edip düzenleme yaparsınız.

İşte bu senaryolarda kullanılan performans analizi uygulamalarından biri de ReSharper geliştiricisi JetBrains tarafından sunulan “dotTrace” uygulamasıdır.

Performans analizi uygulamaları temel olarak, yazdığınız uygulamanın memory, cpu, hangi kod satırı kaç kere işlendi, ne kadar sürdü vs gibi metrik bilgiler çıkararak size sunan yazılımlardır. Hatta bazı uygulamalar yazdığınız kodu analiz edip kodunuzun kısmi bölümlerine best practice kullanımlar önermektedir.

Okumaya devam et dotTrace Notlarım

Thread Safe Random

Online örnek linki. 

Örnek uygulama kodları

AutoMapper Passing Parameter

Online yazdığım örnek linki

Yada direk kodlar aşağıdadır.

IFrame içinden Parent-Page URL bilgisini almak

Üzerinde çalıştığım bir projede farklı bir domain içinde olan formları farklı domainlerdeki sitelerde iframe olarak ekleniyordu. Eklenen bu siteler iframe içinden, iframe yer aldığı sayfanın URL bilgisini almam ve bir hiddenfield içine atmam gerekiyordu ki bu bilgiyi server-side olarak kullanabilmek için.

Doğal olarak bir backend developer olarak önce server side denemeler yaptım ama fark ettim ki en güzel yol bunu javascript olduğunu fark ettim.
İlk olarak “parent.document.location.href” kodunu kullandım. Local testlerde sıkıntı olmadı fakat gerçek ortam testlerine sıra geldiğinde karşıla “Cross-Domain” hatası çıktı tekrardan. Doğal olarak formlar başka yerde gösterim yapılan yer başka.
Ve nihaği çözümü altta yer alan kod ile gerçekleştirdim.
İlk aşamada (try bloğu içinde) parent-page url bilgisi “parent.document.location.href” ile alınmaya çalışılıyor.
Burada, Cross-domain yada parent-page url bilgisi almaya çalışılırken başka bir hata alınırsa (catch bloğu içinde) işlem “document.referrer” ile gerçekleştiriliyor. Gereken bilgi sayfada yer alan hdParentPage id’li hidden içine aktarılmış oluyor.

Olmazsa Olmaz Visual Studio Extension’larım

Aşağıda iş hayatımda kullandığım ve iş süreçlerinize çok çok yardımcı olacak Visual Studio Extension’larım vardır. Emin olun sizinde işinize yarayacak.

Ayrıca genel olarak Visual Studio extensionların siteside aşağıdadır olurda sizde kurcalamak istersiniz;
http://visualstudiogallery.msdn.microsoft.com/

Asp.net Cross-Origin Hatası

Temel olarak cross-origin hatası farklı domainde olan yani başka bir sitedeki bir servise talep yaptığınızda oluşur. Bunun taleplerin çeşitli varyasyonları var. Benim karşılaştığın sorun ise ajax tarafında direkt olarak “http://www.asd.com/DataServis” gibi bir servise ulaşmaya çalıştığında oldu. Çeşitli yöntemler denedim internetten bakarak cross-domain izin vermek için web.config ayarları xml dosyası ekleme ama nafile hiç biri olmadı. O sırada iş arkadaşımın bir tavsiyesi ile sorunu çözdük. O da nedir? tabiki server-side nimeti olan WebRequest. Aspx sayfanızın arkasına bir WebRequest yazarak diğer siteye bu şekilde işlem yaparsanız iş tıkır tıkır oluyor. Ben ihtiyacım doğrultusunda json yollayıp json aldım, sizde gönderecek datanoz varsa “PostData” kısmına mesela “{ClientID : 1 }” gibi yollayıp işlem yapabilirsiniz yada kullanmazsanız silebilirsiniz direk. Sonrada bunu ajax post ile aspx client-side tarafında yakalarsınız.

Örnek bir WebRequest

C# ile XML işlemleri

XML işlemleri nasıl yapılır üzerine bir eğitim video izlerken ekteki örneği hazırladım ve paylaşılacak kadar derli toplu oldu ihtiyacınız varsa sizde indirip rajatça kullanabilirsiniz.

İçeriği ile alakalı screenshot bakabilirsiniz

XMLSCREENSHOT

Dosya: XMLLessons (Webform)
AdventureWorks 2008 R2 SR1: http://msftdbprodsamples.codeplex.com/releases/view/55926