Ana içeriğe atla

Kayıtlar

Haziran, 2007 tarihine ait yayınlar gösteriliyor

Ekip evleniyor...

Timuçin ve Gülay'ın geçenlerde yapılan kına gecesine katıldık. Bu gecenin nasıl geçtiği belki resimlerden de anlaşılıyor olabilir ama yine de birkaç satır yazmak istedim. Bahçe geniş ve oynamaya elverişliydi... Yerel müzikler için yerel oyunlar sergilendi... Timuçin & Gülay için mutluluklar diliyorum.

Zaman tabanlı cache nesneleri

using System; using System.Threading; using System.Collections; namespace TimeBasedCaching { public class CacheObject : IDisposable { Timer t; int FTimeOut; private void CloseTimer() { t.Dispose(); t = null; } protected void ResetTimer() { t.Change(FTimeOut, 0); } public CacheObject(int ATimeOut) { TimerCallback tcb = new TimerCallback(OnTimer); t = new Timer(tcb); FTimeOut = ATimeOut; this.ResetTimer(); Console.WriteLine("create"); } public void OnTimer(object stateinfo) { this.CloseTimer(); this.Dispose(); } public void doit() { //... //... this.ResetTimer(); } public void Dispose() { if (t != null) { this.CloseTimer();

Ege Üniversitesi - Bilgisayar Mühendisliği - 2007 Mezunları

Ege Univ. Bil. Muh. 2007 mezunları ile bugün son sınavda olmak çok heyecan vericiydi. Birlikte sınav olduk demek istiyorum ancak bu sefer ben sadece karşıdan sınav olanları izledim. 20 soru ve test, sonunda mezuniyet. Son sınava girmek ve sonrasında mezun olmak. Bugün tam o ince çizgide, sınav sonrası birlikteydik... Yeni mezun olacak arkadaşlara şimdiden başarılar diliyorum...

Web servislerini birleştirelim!

Bir ya da birden fazla Web servisini birleştirerek daha karmaşık sorunları çözen sistemler hazırlanabilir. Ucuz kitap karşılaştırması yapan bir servis + kitap satan bir servis + kredi kartı ödemelerini yürüten bir servis bir araya getirilebilir. Yeni oluşan bu servise "Ucuz kitap satış servisi" adını verebiliriz. Yeni oluşan bu serviste görünmeyen birçok sorunu aşmak gerekiyor. Yeni servisin içinde yer alan üç özerk servisin kendine ait bilgi tabanları vardır. Bu bilgi tabanlarına göre yöntemler veya amaç ( sonuç) fonksiyonları farklılık göstermektedir. Karmaşık servislerin bir araya getirilmesinde eğer ontolojiler kullanılmış ise servis bütünleştirme işi biraz daha kolay hale gelecektir. Servislerin bir araya gelmesinden önce servis aralarına arabulucu (mediation) katmanları eklenmelidir. Bu ara katmanlar bir servisteki bilgiyi diğerine çevirerek sistemin bir bütün halinde çalışmasını sağlamaktadır. Arabulucu kavramını üç seviyede incelemek gerekiyor; Veri seviyesinde Fonksi

System.Reflection

Güncel kod geliştirme ortamları ve bu ortamlara ait framework özellikleri artık çok gelişti. Kod veya tasarım artık çok gizli ya da kapalı değil. İçeride ( assembly) kullanılan bir sınıf, yöntem ya da tip tanımlaması dışarıdan kolayca izlenebiliyor ( tabi ki kod şifrelemeye ihtiyaç duymuyoruz, delikanlı tasarımcı kodunu gizlemez!) ancak bu tür sistemleri ( örnek : .Net framework) geliştiren tasarımcıların bir sonraki hedeflerini kestirmek gerçekten zor olabilir. Bu zorluğa bende birkaç önerim ile katkıda bulunmak istiyorum. Evet, kodu tasarladık, compile ettik, testlerimizi gözden geçirdik ve herşey uygun. Tasarımı ( dll, exe şeklinde) müşterilere (iç ya da dış ) gönderdik. Eğer gönderilen yerde reflection araçları varsa herşey ortada. Tasarımcının gizli dünyasına, yazılım yaparken beyninde kurguladığı ve sonrasında sıfır-bir şekline dönüşecek bir ortama aktarması, bu aktarım sırasında yaşanan sıkıntıları, masada oturmaktan kaynaklanan yorgunluk şikayetleri, sınıfları, yöntemleri, he

Biraz C# ve biraz NUnit

Unit test: Unit test yöntemi ile tasarım yapmak çok önemli çünkü akla gelebilecek ya da gelmeyecek birçok hatayı henüz büyük bir sistemi tasarlamadan tespit edebiliriz. NUnit aracının 2.4.X sürümünü kullanıyorum. NUnit, DUnit ( Delphi Unit) sisteminden biraz daha farklı geliştirilmiş. Delphi test işlemlerini yapmak için birçok sınıf tasarlanmış ancak NUnit ortamında ise istenilen sınıf veya yöntem isimleri, test işlemleri için kullanılabilir. Test işleminin başarılı şekilde yapılabilmesi için önemli olan konu NUNit framework içinde yer alan attribute değerlerinin düzgün yerde kullanılmasıdır. [TestFixture] Test yapılacak sınıfın üzerinde tanımlanması gerekiyor. Bu tanımlama .Net assembly içindeki bu sınıf NUnit aracı tarafından tespit edilecek ve [Test] attribute değeri olan yöntemleri çalıştıracaktır. [Test] Delphi'de olduğu gibi yöntem isimlerini "Test" ile başlatmak gerekmiyor. NUnit aracı, ilgili sınıftaki tüm yöntemleri gezerken yöntemin public ve [Test] ile tanımlan