Arda Çetinkaya Yazılım ve arada kendim ile ilgili karaladıklarım…

ADO.NET Entity Framework Beta 3 çıktı. Buraya tıklayarak indirebilirsiniz.Bir önceki versyona göre baya bir değişiklik var;

 

 

Performance improvements

  • Much quicker object query execution
  • Simpler generated SQL
  • Faster view generation
     

Easier disconnected operation

  • ApplyPropertyChanges
  • Public, serializable EntityKey property on EntityReference
  • Attach on EntityReference
  • Improvements to EntityKey serialization
     

Extensibility and business logic enhancements

  • Partial methods in code generation for property changing and property changed events
  • Load with MergeOption
  • AssociationChanged Even

Query improvements

  • Additional canonical functions for LINQ to Entities
  • Apply operator elimination (makes more operations work in SQL Server 2000 and other databases)
  • Compiled LINQ query
  • ToTraceString() method on ObjectQuery and EntityCommand to facilitate debugging

Other

  • Provider interface allows better reasoning about primitive types
  • Connection management refinements

 

 

Peki bu Entity Framework ne?

Microsoft, .NET Framework 3.5 ile O/R Mapping olayına ciddi anlamda girmiş oldu. Entity Framework’de bu girişimin en somut örneği. Database’de bulunan tabloların 1:1 şeklinde kod tarafına yansıtılması LinqToSql’in bize sağladığı,yani var olan bir şeydi zaten. LinqToSql’e göre Entity, veritabanındaki bir tabloya denk geliyordu kavram olarak.Ama Entity kavramı uygulama açısından ve business logic açısından her zaman database’deki tablolar olmayabilir.

Şöyle ki; Veritabanımızda Kişi,Siparişler ve Adres şeklinde tablolar olsun. Business açısından da müşteri kavramı Kişi,Sipariş ve Adres özelliklerine sahip bir yapı olsun. Normalde böyle bir şeyi yapmak çok zor değil ancak hamal kod( 🙂 ) diye adlandırabileceğim yazılımcıyı bir süre sonra sıkan kodlar yazmak gerekli. Entity Framework bizi bunlardan kurtarıyor. Ve ister istemez bir şekilde veritabanındaki yapıya ve şemasına bağlı olmak zorunda kalıyorduk. Aslında kötü bir şey değil bu ama farklı ihtiyaçlar için elimizi kolumuzu bağlıyordu.Kısaca ADO.NET Entity Framework’ü, veritabanı odaklı uygulama modelleri yerine uygulama odaklı veri modelleri oluşturmamızı sağlıyor.

Ayrıca Attribute kavramları ile yarattığınız kendi entityleri veritabanında tablo şeklinde oluşturabiliyorsunuz.Bu az önce dediğim uygulama odaklı veri modelleri oluşturmak kavramının bir parçası.
 
Visual Studio 2008’e yüklenen bir tool ile entity tasarımı yapmak oldukça basit ve eğlenceli bir hal alıyor.Üşenmezsem bir sonraki yazılarımda Visual Studio 2008 ile nasıl bu bahsetmiş olduğum şeyleri gerçekleştiriyoruz anlatacağım. (:

Daha geniş bilgileri aşağıdaki adreslerden temin edebilirsiniz…
http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx

Volta      Microsoft Live Labs, çok katmanlı web uygulamaları geliştirmede, geliştiriciye kolaylık sağlaması açısından yeni bir yaklaşım ile karşımıza çıkıyor. Bir web uygulamasını, çok katmanlı bir mimarinin web tarafındaki kullanıcı arayüz katmanı olarak düşünebiliriz aslında. Bundan dolayı çok katmanlı web uygulamaları konsepti ne kadar anlamlı tartışılır. Ama gelişen teknoloji ve büyüyen internetten dolayı standart “application” kavramının yavaş yavaş “web application” kavramına dönüşmesi sanırım bu olaya biraz açıklık getirir. Çok dağılmadan Volta’ya geri dönelim.
Volta aslında bir çeşit derleyici ve kütüphane. MSIL kodunun tekrar derlenmesi ile uygulamanın client ve server için gerekli olan kısımlarını oluşturuluyor, ilgili web servis iletişimlerini oluşturup bunların güvenliklerini sağlıyor. Çok karmaşık gibi gelse de, aslında geliştirmesi oldukça kolay bir ortam sunuyor Volta bize.
Peki bunları nasıl yapıyor? Refactoring,retargeting ve remodulating şeklinde 3 aşamada bütün bunlar oluyor.
Refactoring;  Tek katmanlı uygulamanızı, dağıtık mimari için uygun hale getiren aşama bu. Tek katmanlı bir uygulama nasıl oluyorda dağıtık bir mimariye dönüşüyor? Ne kadar mantıksız? Banada ilk başta bu şekilde mantıksız gelmişti. Ancak daha sonraki araştırmalarımda Volta’nın uygulama geliştirme yaklaşımı, tek katmanlı bir yapı düşünerek geliştirmeyle başlamaya dayanıyor. Yani uygulamanızı geliştirirken uygulamayı bir .NET client uygulaması olarak geliştirmeye başlıyor, geliştirme aşamasında client ve serverda olacak kısımları belirtebiliyorsunuz. Refactoring aşaması bu olayı gerçekleştiriyor. Yani aslında bu şekilde mimarinizi sonradan “refactor” etmiş oluyorsunuz. İşte Volta’nın ortaya çıktığı nokta da bu aslında. Mevcut mimarinizi bozmadan ama etkin kullanım için geliştirmek.
Retargeting; Bu aşamada MSIL kodundan, Javascript kodları yaratılıyor. Bu sayede server-client ilişkisi .NET Framework’nün sağladığı imkanlar ile güçleniyor. Ajax bu güçlerden birine örnek.
Remodulating; Web uygulamaları geliştirirken, çeşitli browser’lara göre bazı şeyleri düşünmek gerekir.Kimi javascripti desteklemez,kimi desteklese de bir yerde patlar…Remodulating aşamasında Volta sizin için bunları düşünüyor ve gerekli düzenlemeleri kendi ayarlıyor.Şu aşamada sadece IE ve Firefox desteği var ama ilerleyen sürümlerde diğer browser destekleride olur herhalde.
Volta yaklaşamı ile uygulama geliştirebilmek için Visual Studio 2008 ve .NET 3.5 Framework’ü bilgisayarınızda yüklü olmalı. http://labs.live.com/volta/ adresinden indireceğiniz dosyayı kurtuktan sonra Visual Studio 2008’de Volta uygulamaları geliştirmek için çeşitli template’ler çıkacaktır.
Bir sonraki yazı da Volta ile ilgili basit bir örnek ile bütün bu yukardaki kavramları biraz daha somutlaştırmaya çalışacağım.
Volta: http://labs.live.com/volta

Malum havalar soğuk,yağışlı…Kar,kış,yağmur,çamur bir şekilde gündelik hayatımızı etkiliyor. Bu etkiyi dışarda en aza indirgemek için ne yapıyoruz? Şemsiye gibi oldukça basit bir araçı kullanıyoruz. Fazla rüzgarlı havalarda misyonunu tam olarak yerine getiremese, dışarıda ki su oranının yüksek olduğu zamanlarda bizi kuru tuttuğu sanırım tartışılmaz. (:

Peki şemsiyeyi nasıl kullanıyor, yolda şemsiye ile nasıl yürüyoruz? Zaten etrafındaki insanlara fazla saygı göstermeden yaşayan bir Türk insanı,nedense şemsiye ile etrafına bir de tehlike veren bir varlık konumuna geliyor.

Bugün,dün,bir önceki gün ve bilimum yağış olan diğer günler boyunca yolda yürürken şemsiye terörüne mutlaka kurban gidiyorum. Özellikle yoğun sokak ve caddelerde yürüyorsam, yağmurda minimum ıslanmayı düşünmek yerine, nasıl minimum zararla hedefime ulaşırım onu düşünüyorum.

Şemsiye ile yürürken, diğer şemsiyeli insanlara dikkat etmek, karşıdan gelen insanın bir yerlerinin elimizdeki şemsiyeyle çizilebileceğini düşünerek yürümek çok zor olmasa gerek. Zor ise de ne yazık ki zoru başarabilen bir toplum değiliz sanırım (:

Hadi bir elimizde olmayan bir nedenden dolayı şemsiye ile yanımızdakinin yanağını çizdik, neden kibarca özür dileme gibi bir davranış özellğimiz yok. Yağmurlu havalarda bu durumla çok karşılan biri olaraktan bu gereksiz yazıyı yazdığım için özür dilerim, ama bir şekilde bunu içimden atmam lazımdı…

Fazla bir şey yazmayacağım ama mutlaka aşağıdaki videoyu izleyin…

Live Messenger 9.0

Geçen gün Live Messenger 9.0 için Beta test davetiyeleri gönderilmeye başlandı. 8.5 yeni çıkmışken,9.0 nerden çıktı diyip indirdim kurdum ve kurcalamaya başladım. 8.0’dan 8.5’e pek fazla kullanıcı tarafında değişiklik olmamışken, 9.0’da kullanıcı için baya bir değişiklik var. Değişiklik değil de yenilik demek daha doğru. En çok hoşuma giden yenilik kişisel iletilerdeki URL’lere artık tıklayabiliyoruz. Evet 8.0’dan beri kişisel iletilerde ki URL’leri kopyalayıp sonra da yapıştırarak URL’leri açma olayı 9.0 ile tarihe karışıyor.

Bir güzel,hoşuma giden yenilik de, online olduğunuzda karşı tarafda çıkacak sesli uyarıyı kendinizin belirliyor olmanız. Şöle ki; “Ben geldimmmmmmm” diye bir kendi sesinizi kaydettiğiniz zaman ve online olduğunuzda karşı taraf bu ses ile sizin geldiğinizi anlayabilecek. Çok gerekli olmayan ama güzel bir yenilik olmuş bence.

Diğer dikkat çeken yeniliklerden biri yine ses ile ilgili; titreşim ve bilimum Live Messenger seslerini değiştirebiliyor olmanız. Gün geçtikçe artan spam ve rahatsız mesajlara karşı da yeni bir özellik 9.0’da eklenmiş durumda. Artık bu rahatsız olduğunuz kişileri ve mesajları Microsoft tarafına iletebileceksiniz. Önceki versiyonlara nazaran biraz daha gelişmiş olması sanırım Microsoft’un bu tarz rahatsızlıkla ilgili şikayetlere önem vereceğini gösteriyor.

Tam yazıyı sonlandıracaktım ki atlamamam gereken bir yenilikten bahsetmediğimi fark ettim. Artık birden fazla yerde aynı anda Live Messenger’ı açık olarak kullanabiliyorsunuz. Evde açık bıraktığınız Live Messenger, işten açtığınız zaman kapanmıyor.

Beta olmasından dolayı şimdilik küçük sorunları yok değil. Sign In işlemi biraz uzun sürüyor,eski sürümler ile webcam ve konferanslarda bağlantı sorunları çıkabiliyor. Ama son haline gelene kadar bunların düzeleceğine ve daha yeni şeylerin ekleneceğine eminim.