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

Son zamanlarda dinlediğim gruplar…

Yukarıdaki hatayı eminim Unit test yaparken bir çok kişi almıştır. Ve ilk başta anlayamamıştır…”Excepted ve Actual değerlerim aynı nesne(?),nasıl test başarısız olur ki”… Olur…

Şöyle ki, aşağıdaki gibi bir obje yapımız var diyelim…

public class TestClass
{
private string _testString;
public TestClass(string test)
{
_testString = test;
}

public string TestString
{
get { return _testString; }
}

}

Şimdi Assert.AreEqual(new TestClass(“Test”), new MyClass(“Test”)); şeklindeki test kontrolümüz bize başlıktaki hatayı verecektir. Çok basit bir nedeni var bunun…Çünkü bu ikisi aynı nesne değil…İkiside memory’de farklı yerlerde tutulduğundan aynı nesne olarak algılanmaz.

Böyle bir durumda testin başarılı bir sonuç almasını istiyorsak Object’in Equals() methodunu override edip, kontrolü manuel olarak yapmamız gerekmekte.Ama çokta tavsiye edilen bir şey değil bu…Bunun yerine “Unit Test”‘in adından da gelen “birim” olarak test yapmak daha doğru olacaktır.

Assert.AreEqual(new TestClass(“Test”).TestString, new MyClass(“Test”).TestString);

Böylece daha nokta atışı kontroller yapabilirsiniz…

Windows 7’nin bazı özelliklerini kendi uygulamalarınızda kullanabilmek mevcut .NET Framework 3.5 SP1 sürümü ile mümkün. http://code.msdn.microsoft.com/WindowsAPICodePack adresinden download edebileceğiniz API sayesinde Windows 7’nin güzel özelliklerini kendi uygulamalarınıza yansıtabiliyorsunuz. Bazı kullanılabilecek özellikler aşağıda;

  • Windows 7 Taskbar Jump Lists, Icon Overlay, Progress Bar, Tabbed Thumbnails, and Thumbnail Toolbars.
  • Windows 7 Libraries, Known Folders, non-file system containers.
  • Windows Shell Search API support, a hierarchy of Shell Namespace entities, and Drag and Drop functionality for Shell Objects.
  • Explorer Browser Control.
  • Shell property system.
  • Windows Vista and Windows 7 Common File Dialogs, including custom controls.
  • Windows Vista and Windows 7 Task Dialogs.
  • Direct3D 11.0, Direct3D 10.1/10.0, DXGI 1.0/1.1, Direct2D 1.0, DirectWrite, Windows Imaging Component (WIC) APIs. (DirectWrite and WIC have partial support)
  • Sensor Platform APIs
  • Extended Linguistic Services APIs
  • Power Management APIs
  • Application Restart and Recovery APIs
  • Network List Manager APIs
  • Command Link control and System defined Shell icons.

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries

.Net ile uygulama geliştiren herkesin okuması gerekli olan bir kitap. Uzun zaman önce almış okumuştum,şimdi tekrardan bilgilerimi tazeliyorum. .Net Framework’ü geliştirilirken ki yaklaşımların paylaşıldığı,süper öğretici bir kitap… 2. baskısı çıktı. .NET 3.5 ile ilgili,ona da bakın derim…

Pro ASP.NET MVC Framework

En son aldığım kitap. Düşündüğümden de çabuk elime ulaştı,düşündüğümden de hızlı okuyorum…ASP.NET MVC Framework ile geliştirme yapıyorsanız mutlaka elinizin altında bulunması gereken bir kitap. Çok güzel örnekleri var,temel konular ile başlayıp,ileri düzey ASP.NET MVC Framework konularına da değinilmiş bir kitap.

Compiler Error Message: CS0012: The type ‘System.Data.Objects.DataClasses.EntityObject’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’.

Asp.NET MVC Framework ile Entity Framework kullanmak isteyebilirsiniz…Bakınız ben…Çok basit bir işlem için tüm kodlarımı yazdım,ilgili referanslarımı verdim.Projelerimi derledim ve hiç bir hata almadım. Ta ki projeyi çalıştırana kadar…

Projeyi çalıştırdığımda yukarıdaki gibi bir hata aldım. İlgili bir DLL dosyasını bulamamadan kaynaklanan çok tanıdık bir hata. Proje referanslarımı kontrol ettim baktım düzgün,olması gereken tüm DLL’ler var…İlginç…

Sonra ASP.NET MVC Framework’te runtime’da bir sürü işlemlerin arka tarafta yapıldığı aklıma geldi ve runtime’da gerekli olacak bu DLL’in bir şekilde runtime sırasında yüklenmediği kanatine vardım.Ve tabi ki ilk baktığım yer web.config’deki assemblies kısmı oldu. Buraya aşağıdaki satırı ekleyince artık her şey istediğim gibi oldu.

<add assembly=”System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089″/>