LINQ Sorgusu mu? ForEach mi? Bir Türlü Karar Veremedim

Bilim Kurgu fanatiklerinin kafasında her zaman hayranı oldukları filmlerden kesitler, sahneler kalır. Matrix filmini izleyenler eminimki Neo' ya uzatılan kırmızı ve mavi hap serenatını gayet iyi hatırlayacaktır. Morpheus haplardan birisinde Alice Harikalar Diyarının kapılarını ardına kadar açabileceğini ifade ederken, diğer hapı yuttuğunda, Neo' nun yatağında hiç bir şey olmamış gibi uyanacağını ve tüm bunların bir hayalden ibaret olduğunu düşüneceğini belirtir. Tabi Neo amacına ulaşmak için zaten hangi hapı içmesi gerektiğini biliyordur ki son bölümde aslında gerçekten hapı yutmaktadır [Daha fazla]

Microsoft Teknoloji Günleri Akşam Sınıfı Başladı

Bildiğiniz üzere bir süre önce Microsoft Türkiye ile birlikte Teknoloji Günleri Akşam Sınıfınını duyurmuştuk. Workshop tadında olan eğtimlerde ki amacımız, .Net Framework 4.0 tarafında gelen yenilikleri basit bir şekilde aktarmak ve tanıtmak. Bu gün başlayan servüvenimizin ilk dersinde, C# 4.0 ile Birlikte Gelen Yeniliklere değindik. 4 basit örnekle tanıdığımız yeni özelliklerde ilk olarak Reflection yerine dynamic kullanımını ve IronPython ile yazılmış bir kod içeriğinin çağırılmasını inceledik. Bu sayede dynamic diller ile olan etkileşimi de irdelemiş olduk. Ardından COM Interop tarafında gelen yenilikleri ve Optional, Named Parameters ve Ommiting Ref gibi konuları Office etkileşimi olan bir örnek üzerinden değerlendirdik. Son olarak Generic Covariance ve Contravariance konusuna giriş yaparak basit bir örnekle konuyu pekiştirmeye çalıştık. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 5 - Argument Kavramı ile Tanışalım

NedirTv?com sponsorluğunda hazırladığımız "Workflow Foundation 4.0 Öğreniyorum" görsel eğitim serimizin 6ncı dersi ile birlikteyiz. Bu dersimizde Workflow örneklerinde içeriye ve dışarıya doğru veri akışlarında kullanılan Argument kavramını tanımaya çalışıyoruz. Bu anlamda Argument ile Variable arasındaki temel farklılıklara da değiniyoruz. [Daha fazla]

Microsoft Teknoloji Günleri Akşam Sınıfında Buluşalım

Her ay düzenli olarak gerçekleştireceğimiz ve bir seri olarak birbirini takip edecek sınıf etkinliklerimizle 9 ay boyunca siz yazılım geliştiren ve tasarım yapan iş ortaklarımızla birlikte olacağız. Aşağıda detaylarını paylaştığımız ve sizler için hayli faydalı olacağına inandığımız Microsoft Teknoloji Günleri Akşam Sınıfı Etkinliğimize kaydınızı hemen yaptırabilirsiniz. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 4 - Flowchart için Ek İşlemler

"Workflow Foundation 4.0 Öğreniyorum" görsel eğitim serimizin 5nci dersi ile(4+1) karşınızdayız. Daha önceki dersimizde Flowchart aktivite bileşenini tanımaya başlamıştık. Bu dersimizde ise Flowchart aktivitesi içerisinde Flowswitch ve Parallel bileşenlerinin nasıl kullanılabileceğini incelemeye çalışıyor olacağız.Flowswitch aktivite bileşeni C# tarafındaki switch...case ifadelerinin bir benzeri olarak düşünülebilir. Flowswitch bileşeni generic türlendirilmiş bir tiptir. Genellikle bir değişkenin veya bir Visual Basic ifadesinin(Expression) çalıştırılması sonucu elde edilen sonucun farklı değerlerine göre, akışın farklı yerlere dallanması gerektiği durumlarda kullanılır. [Daha fazla]

Int32 ve Int64 Haricindekiler için Parallel.ForEach

Dolayısıyla bazı durumlarda en tepeden aşağıya doğru inen ve bağlı liste(Linked List) benzeri bir oluşumun sağlanması zorlaşmaktaydı. Her neyse...Eminim bu sorunlar çoktan aşılmıştır. Ancak bir önceki cümlede yer alan bağlı liste tarzı yapıların başında dolaşan bir kara bulut daha mevcuttur. Sorunun kaynağında paralel programlama amacıyla .Net ortamına kazandırılan Parallel.ForEach döngüsü yer almaktadır. Dilerseniz öncelikle sorunu masaya yatıralım. Bu amaçla aşağıdaki kod içeriğine sahip Employee isimli basit bir sınıfımız olduğunu düşünelim. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 3 - Yeni Bir Yüz - Flowchart

NedirTv?com sponsorluğunda hazırladığımız "Workflow Foundation 4.0 Öğreniyorum" görsel eğitim serimizin 4ncü dersi ile karşınızdayız. Hatırlayacağınız üzere bir önceki görsel dersimizde çıtayı biraz yükseltip tamamen kod yardımıyla bir Workflow içeriğinin nasıl oluşturulabileceğini incelemeye çalışmıştık. Bu yorucu bölümden sonra daha sakin ilerlemenin ve hafif bir konu ile devam etmenin yararlı olacağı kanısındayım. Bu amaçla sıradaki dersimizde Workflow Foundation 4.0 ile gelen yeni aktivite bileşenlerinden birisi olan Flowchart tipine bir Merhaba demeye çalışıyor olacağız. Örneği geliştirirken temel olarak Flowchart tipinin ne işe yaradığını görecek ve ayrıca FlowDecision aktivite bileşenini tanıyor olacağız. Keyifli seyirler dilerim. [Daha fazla]

Entity Framework - POCO ve Lazy Loading

Hatırlayacağınız üzere bir önceki yazımızda Ado.Net Entity Framework içerisinde POCO(Plain Old CLR Object) nesnelerinin kullanımını incelemeye çalışmıştık. Örneğimizde kullanmış olduğumuz LINQ sorgusu basit bir Join işlemini gerçekleştirmekteydi. Tabi Join sorgusu kullandığımız için gözden kaçırdığımız ufak ama bir o kadar da önemli bir vaka oluşmaktadır. Bu vakayı ele almak için program kodunu biraz daha değiştirdiğimizi ve aşağıdaki hale getirdiğimizi düşünelim. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 2 - Kodla Başbaşayız

"Workflow Foundation 4.0 Öğreniyorum" serimizin üçüncü dersi ile karşınızdayız. Bu kez bir sıçrama yaparak Level değerimizi 101' den 110' a çekiyoruz. Bunu yaparken de kendimize biraz eziyet ediyoruz. Eziyet etmek içinde, bir önceki dersimizde ele aldığımız Visual Studio 2010 IDE' sinin sunduğu WPF tabanlı güzelim Workflow Designer ortamını bırakarak, bir Workflow örneğinin ve tüm içeriğinin tamamen kod bazlı olarak nasıl geliştirilebileceğini görmeye çalışıyoruz. Ancak bu eziyet sayesinde, yeri geldiğinde söz konusu akışların kod yardımıyla dinamik olaraktan üretilebileceğini öğreniyor ve bunun bazı vakaları karşılayacağını farkediyoruz. Örnek akışta bir önceki akışın aynısının kod tarafına geliştirilmesini gerçekleştiriyoruz. Bu sırada Variable, InArgument, OutArgument, ActivityContext, ExpressionServices gibi önemli tipleri de öğreniyor ve nasıl kullanıldıklarını görüyoruz. Bakalım eziyetimize değecek mi? İyi seyirler dilerim. [Daha fazla]

WF Ado.Net Entity Pack - Hello World

Ne var ki ilerleyen zamanlarda çıkan PreBeta, Beta 1, Beta 2, RC ve nihayet RTM sürümlerinde yer alan Activity Component setinde bu tip bileşenlerin yer almadığına da şahit olduk. Hatta WF 4.0 öncesinde aşina olduğumuz State Machine tipinden şablonlarında kaldırıldığını gördük. Geçtiğimiz günlerde ise Codeplex üzerinden iki WF 4.0 Activity Pack yayınlandı. Bunlardan birisi WF Ado.Net Activity Pack CTP 1 iken diğer ise WF State Machine Activity Pack 1 isimli paketti. [Daha fazla]

Entity Framework - POCO(Plain Old CLR Objects)

Aslında Ado.Net Entity Framework 4.0 tarafında yer alan önemli kavramlardan birisi de POCO nesnelerinin kullanımı. Ado.Net Entity Framework 3.5(Service Pack 1) sürümünde net bir şekilde ele alınmayan POCO nesneleri için, 4.0 versiyonunda tam destek söz konusu. POCO(Plain Old CLR Objects), .Net Framework üzerinde herhangibir bağımlılığı olmadan tanımlanabilen nesneler olarak düşünülebilir. POCO nesneleri herhangibir sınıftan türemez(Class Inheritance), çeşitli arayüzleri uygulamaz(Interface Implementation) veya özel nitelikler(Attributes) ile işaretlenmezler. [Daha fazla]

Workflow Foundation Öğreniyorum - Ders 1 - Biraz Daha Bileşen

"Workflow Foundation 4.0 Öğreniyorum" serimizin ikinci dersi(Ders 1 sizi aldatmasın, hatırlarsanız Ders 0 diyerek başladık) ile karşınızdayız. Bir önceki görsel dersimizde Hello World demek için sadece WriteLine aktivite bileşeninden yararlanmıştık. Ancak Workflow Foundation 4.0, pek çok aktivite bileşeni içermektedir ve bunları zaman içerisinde öğrenmemiz çok önemlidir. İşte bu dersimizde Sequence, Assign, ForEach, If gibi aktivite bileşenlerini işin içerisine katıyor ve Workflow Foundation konusunda ilerlemeye devam ediyoruz. Geliştireceğimiz örnekte, bir klasör içerisinde yer alan dosyalardan belirli bir harf ile başlayanların(örneğin A harfi) ekrana yazdırılmasını sağlayan bir akış oluşturuyoruz. Bu sırada Visual Studio 2010 ortamının sunduğu WPF tabanlı Workflow Designer ortamından yararlanıyor ve Variable kavramını da değerlendiriyoruz. İyi seyirler dilerim. [Daha fazla]

NedirTv?com 4ncü Yıl Seminer Videoları

Hatırlayacağınız üzere 10 Nisan 2010 Cumartesi günü NedirTv?com topluluğunun 4ncü kuruluş yıldönümünü değerli konuşmacı arkadaşlarımız ve katılımcılarımız ile birlikte kutladık. Bende WCF Eco System ve Windows Server AppFabric sunumlarımla etklikte yer alarak bilgilerimi paylaşmaya fırsatını buldum. Seminerler sırasında adet olunduğu üzere Video kayıtlarımızda alındı. [Daha fazla]

Workflow Foundation Öğreniyorum Başladı - Ders 0 - Hello World

Workflow Foundation Öğreniyorum isimli serideki amacımız, Workflow Foundation konusunu başlangıç seviyesinden, orta seviyeye kadar incelemek ve öğrenmek. Bu amaçla, haftada bir yayınlanacak görsel derslerimiz ile hedefe ulaşmaya çalışıyor olacağız. Hedefimiz 24 derse ulaşabilmek ancak en az 18 dersin olacağını şimdiden ifade edebilirim. Tabi ki ilk bölüm çok basit bir Hello World uygulamasını içeriyor olacak. Ancak ilerleyen zamanlarda daha da derinlere inmeye başlıyor olacağız(İçeriğimizde çok sıkı konuların yer aldığını şimdiden ifade etmek isterim). Workflow Foundation tarafında uygulama geliştirmeye başlamak isteyenler için faydalı bir çalışma olacağını ümit ediyorum. [Daha fazla]

RTM Yayınlandı

2008 yılının son çeyreğiydi. Out Source olarak çalıştığım bankada .Net 2.0 tabanlı olarak geliştirilen WinForms uygulamasının yabancı sistemler ile olan entegrasyonu üzerinde çalışıyordum. Bir yandan da .Net Framework 4.0 ile ilişkili ilk bilgileri tedarik etmeye çalışıyordum. WCF 4.0 ve WF 4.0 tarafında gelecek olan yeniliklerin ne olacağını çok merak ediyorum. Tabi ki ortada çok fazla kaynak yoktu. [Daha fazla]

C# 4.0 - Metod Overloading ve Dynamic Tipler

Bu gün kü yazımızda Dynamic tiplerin, metodların aşır�� yüklenmesi(overload) durumunda nasıl bir duruma neden olduklarını incelemeye çalışıyor olacağız. Bildiğiniz üzere bir metodun aynı isme ait birden fazla versiyonu yazılabilmektedir. Bu durum kısaca metodların aşırı yüklenmesi(Overloading) olarak adlandırılmaktadır. Metodların aşırı yüklenmesindeki en büyük gayelerden birisi de, aynı amaca hizmet eden ama bunu farklı sayıda veya tipte parametre ile yerine getirebilen fonksiyonların farklı isimler ile yazılmasını engellemek ve böylece anlamsal bütünlüğü korumaktır. .Net Framework, ilk versiyonundan itibaren bu özelliği içermektedir. Çok eskiden eğitmenlik yaptığım dönemlerde, metodların aşırı yüklenmesi konusu ile ilişkili olarak verdiğim ilk örnek her zaman için Console sınıfının static WriteLine metodu olmuştur. [Daha fazla]

Değişken Atamalarında Bir Efsane

Bu kod parçasında double tipinden olan x, y ve z değişkenlerine tek satırda Pi değerinin atanması söz konusudur. Bu son derece doğaldır nitekim eşitliğin sağından başlayan bir atama sırası mevcuttur. Hatta buna göre aşağıdaki ifade de doğrudur. [Daha fazla]

WCF Web Http Services - ETags

WCF WebHttp Service' leri ile ilişkili yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda ETag(Entity Tag) kullanarak sunucu ile istemci arasındaki veri trafiğini nasıl azaltabileceğimizi incelemeye çalışacağız. Öncelikle istemci ile servis arasındaki iletişimi düşünerek ilerlemeye çalışalım. İstemci, sunucu üzerinde yer alan bir operasyon için talepte bulunduğunda bir cevap üretilecek ve buna bağlı bir içerik verisi istemci tarafına indirilecektir. [Daha fazla]

Entity Framework - Entity Bölünmesi (Splitting)

Hız kesmeden Ado.Net Entity Framework ile ilişkili araştırmalarımızı paylaşmaya devam ediyoruz. Bu günkü yazımızda bir Entity tipinin, veritabanı tarafında birden fazla Tablo' yu işaret edebilmesi kabiliyetini incelemeye çalışacağız. Söz konusu duruma çok sık rastlanılmasa dahi, zaman zaman gereksinim duyulmaktadır. Konuyu daha kolay bir şekilde kavrayabilmek adına, yazıyı yazdığım tarih itibariyle sistemimde kurulu olan Adventure Works 2008 veritabanında yer alan ve aşağıdaki diagramda görülen tablolarımızın olduğunu varsayalım(Tabiki kendi sisteminizde yer alan örnek veritabanında benzer ilişikilere sahip başka tabloları da aynı teori içerisinde değerlendirebilirsiniz) [Daha fazla]

Yazılımcı için İşsizlik

Üniversiteden yeni mezun veya bitirmekte olan ve kariyerinde bilgisayar yazılım teknolojileri üzerine ilerlemek isteyen pek çok genç arkadaşımız için en büyük kabuslardan birisi de iş bulmaktır. Ne yazık ki global kriz, ülkemizin içinde bulunduğu şartlar ve daha pek çok nedenden ötürü ilk kaygımız "doğru işi bulmak" yerine, "bir iş bulabilmek" olmaktadır. Hatta çoğu zaman herhangibir iş bulmak kadar kötümser bir senaryo da söz konusu olabilir ki ben bu yazımızda bu konuya değinmeyi düşünmüyorum. Şu andan itibaren yazılım alanında ilerlemek istediğimiz konusunda hem fikir olduğumuzu ve buna göre bir iş bulma kaygısını taşıdığımızı düşünerek ilerlememiz daha doğru olacaktır. [Daha fazla]

Object vs Dynamic

Ayrıntılar detaylarda saklıdır. Bu cümleyi çok severim. Sevdiğim özlü sözler arasındadır. Gerçel bir nesnenin ne kadar kaliteli olduğunu anlamak için detaylarına bakmak gerekir. İşçiliğine, kullanılan malzemeye, malzemelerin uyumuna vs...Hatta benzer diğerleri ile olan kalite farkını anlamak için bile. Çok doğal olarak yazılım dünyasında da bir takım konuların anlaşılabilmesi, kavranabilmesi, benzerleri ile olan farklarının irdelenebilmesi için mutlaka detaylara bakmak, ama sıkılmadan bakmak gerekir. Aynen bu günkü yazımızda yapacağımız gibi. [Daha fazla]

NedirTv?com 4ncü Yıl Seminerleri

2006 Mart ayında yayın hayatına başlayan nedirtv?com, 10 Nisan Cumartesi günü İstanbul' da düzenleyeceği etkinliklerle 4. yılını kutluyor. Konularında uzman nedirtv?com editörleri tarafından, beş farklı oturumda gerçekleştirilecek etkinliğimizde sizleri de aramızda gö... [Daha fazla]