Yazılım Mimarisi ve Yazılım Mühendisliği hakkında herşey...

20070227

Mac tarafından cezalandırıldım...


Sen misin Mac'i beğenmeyen, al işte böyle olur...Bimeks teknoport içinde gezerken Mac tarafından stillendirilip arkaplan haline getirildim.

20070226

tasarımcının takım çantası...


Yazılım tasarımında kullandığımız üç temel "şey":

1. Nesne Yönelimli Programlama Prensipleri: Encapsulation, Polymorphism, Abstraction
2. Uygulama Tasarım Prensibi: Model-View-Controller (MVC)
3. Uygulama Entegrasyon Prensibi: 3-katmanlı mimari: Presentation-Business Logic-Data Access

20070223

DSL ve Yazılım Fabrikaları Seminer Tarihi Belli Oldu

Herkese selam,

DSL ve Yazılım Fabrikaları konulu seminer 10 Mart'ta Microsoft Türkiye ofisinde gerçekleştirilecek. Şu anda seminer için sunum ve örnekler hazırlamaya çalışıyorum. Sunuyu seminerin ardından, blogdan ve msakademik.net'ten yayımlayacağım. DSL'in ve Yazılım Fabrikaları'nın özelliklerini örneklemeyi düşündüğüm seminerden umarım hepiniz faydalanırsınız.

Seminerde görüşmek üzere,

Java dan .NET e...

Daha önce kullanmadığım bir araç olan Java Language Conversion Assistant (JLCA) ı ilk kez bugün kullandım. Elimi korkak alıştırmadan çevir dediğimde Java ile yazılmış koca bir uygulamayı .NET e çevirdi ve en önemlisi, verdiği problemler minör problemlerdi (yani biraz refactoring ile düzeltilebilecek şeyler). Bu açıdan emeği geçen herkesi takdir ettim. En hoşuma giden özellik te RMI'ın .NET Remoting'e sorunsuz dönüştürülmesiydi.

20070222

Ateşten Dumana RMI'dan CORBA'ya

RMI kullanan bir sisteme IIOP.NET ile erişim sağlamaya çalışıyorum. Lakin RMI-IIOP birtakım kısıtları yüzünden pek tercih edeceğim bir sistem diil. Bu yüzden ORB ile IIOP üzerinden erişim kurmayı düşünüyorum.

Amacı ve nedeni tartışılabilir ama bu bir gereksinim. Java ile .NET arasındaki iletişim mimarisinin OMG CORBA olması, standart iletişim mimarilerinin oluşturulması ve bunu sağlayan kurumların önemini bir kez daha gösteriyor bence.

20070220

DSL ve Software Factories

Domain Specific Languages ve Software Factories (Yazılım Fabrikaları) konusunda bir seminer hazırlığı içerisindeyim. Yer Microsoft Türkiye olacak ama tarihi kesin değil. Detayları msakademik.net ve bu blogdan duyurulacak.

DSL ve Software Factories konusu özellikle Visual Studio 2005 ile birlikte güncellik kazanan bir konu. Konunun liderleri MS'ten Jack Greenfield, Steve Cook, Keith Short. DSL konusu zaten bilindik bir konu esasında. Bir çok alanda kullanılan ve bilinen bir teknoloji. Ama Software Factories (Yazılım Fabrikaları) ile birlikte gücü daha net anlaşılacak bir konu.

Seminerin içeriğinde DSL'in tanımı, kullanım alanları, DSL kullanımındaki noktalar, Yazılım Fabrikaları tanımı, DSL ve YF nin birlikte kullanımının sağladığı avantajlar vb. konular olacak.

20070214

Akademik Webinerler Başlıyor...

msakademik.net olarak Akademik Webinerleri başlatıyoruz. Son zamanlarda pek moda olan Webcast/Webinar kavramına Türkçe bir isim olarak Webiner ismini uygun gördük. Bu yenilikle, msakademik.net'te bugüne kadar okuduğunuz konularda artık daha etkileşimli içerik sağlayabileceğiz.

İlk Webinerimiz AJAX konusunda olacak. Haber ve detayları için burayı inceleyebilirsiniz.

Kontrol Ters Çevrimini metod imzalarında kullanmak

IBM'den André Fachat, Inversion of Control (IoC - Kontrol Ters Çevrimi) deseninin metod imzaları için nasıl kullanılabileceğini yazmış. Bu sayede bileşenler arasındaki bağımlılığı azaltabiliriz. Burada okuyabilirsiniz.

SaaS ve Dependency Injection

Hizmet olarak yazılım (Software-as-a-Service), kavramıyla Dependency Injection (bağımlılık iletimi) arasındaki ilişkiyi incelemek için Spring.NET'i kurcalıyodum. Hizmet olarak yazılım kavramından söz ediyorken ihtiyacı konuşalım.

Birincisi, yazılım bileşenlerini hizmet olarak kullanacaksak, tekrar kullanılabilirlik bir anahtardır. Ancak, tasarımsal olarak genel-geçer bir yapı tek başına yeterli değildir. Tekrar kullanılabilirlik çalışma zamanında yapılandırılabilirlik te önemlidir.

İkincisi, yazılım bileşenleri işlevlerini standart mekanizmalarla sunmalıdır. Bu sayede herhangi bir yapılandırılabilir yazılım bileşeni bu işlevlere erişebilmelidir.

Üçüncüsü, çalışma zamanında yapılandırma tasarım zamanına geri dönüşü gerektirmemelidir. Yapılandırma mekanizması da yapılandırılabilir olmalıdır.

Bu üç anahtara göre bir framework oluşturmak, hizmet olarak yazılım kavramı için gereklidir. Bu framework'ü kendinizin oluşturması yerine Spring.NET, pico veya avalon gibi projelerden faydalanabilirsiniz. Bu konuda kaynak olarak Martin Fowler'in DI/IoC makalesini inceleyebilirsiniz.

Marc Fleury Redhat ile yollarını ayırdı...

JBoss projesinin lideri Marc Fleury Redhat ten ayrıldı. Hemen geçmişe dönüp Marc Fleury'nin Sun, IBM, Redhat ve diğerlerini eleştirdiği 4 makalelik yazı dizisi "Fil ve Kaplan" ın linklerini veriyorum. Bu yazılar profesyonel açık kaynaklı yazılım iş modelinin geleceğini görmek adına önemli. Tabi bu noktada şunu hemen söylemeliyim serinin Redhat ile ilgili 2. kısmı Redhat JBoss'u satın aldıktan hemen sonra kaldırılmıştı. Ama Web unutmaz...

The Elephant and The Tiger - pt.1
The Elephant and The Tiger - pt.2
The Elephant and The Tiger - pt.3
The Elephant and The Tiger - pt.4

Grid Computing ve .NET

Microsoft'un grid computing ile ilgili bu webcastini çok beğendim. Her ne kadar Digipede Networks e göre hazırlanmış olsa da kavramlar genel olarak herhangi bir grid computing ortamı için geçerli.

ILM 2007

Microsoft resmi olark Identity Lifecycle Management 2007 çözümünü duyurdu. Bütünleşik bir güvenlik yönetim sistemi olan ILM ile Windows Server tabanlı sistemler artık daha güvenli.

Yeniden Yazılım Mühendisliği

Bahar döneminde de Yazılım Mühendisliği dersini yürütüyorum. Malum iş ve şehir değişikliği yaşadım ama bunlar YM için engel değil:)

Bu dönemki motto "...to evolve"

Eski ve Yeniyi eşitlemek...

MSDN'deki bir arkadaş eski sistemdeki veritabanı ile uygulama veritabanını nasıl eşitleyebileceğini sormuştu geçenlerde. İlk aklıma gelen uygulamada verinin nasıl taşınacağı oldu. Yani, uygulama Chain-of-Responsibility ve Proxy gibi bir yapı kurarak veritabanını çalışırken değiştirebilir. Veriyi öncelikli olarak eski sistemden çekmeye çalışacak ama hata oluşması durumunda yeni veritabanını kullanacak bir proxy sistemi gerçeklenebilir. Verinin yazılması durumunda da istemciden tek bir komut yardımıyla her iki veritabanı sistemine de yazma gerçekleştirilebilir. Bu şekilde bir yaklaşımla kararlı sistemler oluşturulabilir.

Ancak, bu şekildeki taşıma işlemlerinin genellikle trade-off oluşturduğuna dikkat etmek gerekiyor. Performans ve Kararlılık konusunda bir seçim yapmanız gerekebilir.

Visual Studio problem listesi

Vista üzerinde Visual Studio 2005 ile yaşanan/yaşanacak problemlerin listesi yayınlanmış. Ayrıca Vista/Visual Studio için MSDN'de bir sayfa var.

Vista ve Visual Studio

Evet ben de bilgisayarıma Vista kurdum. Doğal olarak üzerine Visual Studio 2005 kurdum ama bazı uyum problemleri yaşadım. Daha sonra bunun için bir SP olduğunu öğrendim...Ancak, VS 2005'in .NET 3.0 için desteklenen tek sürüm olduğunu düşünürsek bu durum bana biraz garip geldi. Bu arada XP den daha iyi veya daha gelişmiş olsa da Vista'nın güvenlik konusundaki takıntısı paranoyaklık seviyesinde. Admin olduğum halde iki dosya kopyalayıp silemedim. Sanki makinenin sahibi o....