Yade 4 yas fotosu
Yazılım Mimarisi ve Yazılım Mühendisliği hakkında herşey...
Posted via email from eaxitect
Posted via email from eaxitect
Posted via email from eaxitect
SYM Software Web Site, re-engineered in parallel with new business strategy, SYM2.0. The social network presence is re-engineered, too...
SYM Yazılım Web Sitesi, yeni SYM2.0 stratejisine paralel olarak güncellendi. Ayrıca, sosyal ağ bağlantıları da yeniden düzenlendi...
Bütün mimarlar yüksek, mühendisler de
Bir sen kaldın alçak mimar ey Sinan Usta!
Ruby on Rails Cheatsheet. RoR ile Web uygulamaları geliştiriyorsanız elinizin altından olmasında fayda var. İndirmek için tıklayın - PDF
Bir süredir çeşitli nedenlerle (aka. Embedded Computing, Real-time systems, vs.) CORBA kullanıyorum. Kesinlikle parantez içindeki nedenler dışında kullanılmaması gereken bu (ve DDS, pthread gibi teknolojiler) teknolojiyle uğraşırken kendimi 90'ların havasına kaptırdım (80'ler değil tam olarak). Aklıma özellikle o zaman bizi büyüleyen Amerikan filmleri ve onun kült polis (FBI dedektifi) arabası olan Ford Crown Victoria geldi. Yazayım istedim... Çok merak edenlere ahada bi fotoğraf:
Blogdur en nihayetinde yarın yazarım diye diye pek uzun süredir ne buraya ne de şuraya yazamıyordum. Beni rahatsız eden bu duruma son veriyorum.
Herkese yeniden merhaba,
Uzuuuuun bir süredir sallamadığım bloguma bişiler yazayım dedim. Öncelikle işimi ve yaşadığım yeri değiştirme arifesinde olduğumu yazayım. Şu an itibarıyla bu değişikliğin yaşanmasına 5 gün var, yani ŞAFAK 5.
Evet, yanlış duymadınız, ben Lisp'im... İnanmıyorsanız buradan bakın
Şu an itibarıyla Hello World ötesine geçtiğim diller ve sebep olanlar:
XAML (eXtensible Application Markup Language), .NET nesne hiyerarşisini kullanmak için geliştirilmiş basit ve bildirimsel bir programlama dilidir. XML tabanlı bu tanımlama dilini, HTML ve benzeri tanımsal dillerle karşılaştırmak yanlış olur. Bunun nedeni, .NET 3.0 içerisinde XAML derleyicisi ve çalışma zamanı XAML çözümleyicisi bulunmasıdır. Ayrıca, XAML Windows Workflow Foundation için de kullanılabilecek şekilde tanımlanmıştır. Bu sayede WWF iş akışları da XAML ile tanımlanabilir.
WPF ile XAML kullanımı genelde yanlış anlaşılabilmektedir. WPF, .NET 3.0 destekli herhangi bir programlama dili ile kullanılabilir. Benzer şekilde, XAML yukarıda söylendiği gibi WWF tanımlamalırında da kullanılabilmektedir. Yani WPF ile XAML tamamen bağımsızlardır. Ancak, bariz faydalarından dolayı WPF geliştirmelerini XAML ile yapmak .NET 3.0 geliştirme pratiklerinin başında gelmektedir. İsterseniz bu durumu aşağıdaki örneklerde inceleyelim.
XAML:
<Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Content="OK" />
C#:
System.Windows.Controls.Button b = new System.Windows.Controls.Button( );
b.Content = "OK";
Yukarıdaki kod parçacıkları aynı elemanı tariflemektedir. XAML ile bir XML elemanı tanımlamak, C# gibi bir dille ilgili elemanı yaratmakla eşdeğerdir. Yine benzer şekilde, XAML ile bir niteliğe değer atamak, nesnelerin özelliklerini ayarlamakla eşdeğerdir. Olay tanımlamaları da bu mantıkla aşağıdaki gibi gösterilebilir:
XAML:
<Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Content="OK"
Click="button1_Click"/>
C#:
System.Windows.Controls.Button b = new System.Windows.Controls.Button( );
b.Click += new System.Windows.RoutedEventHandler(button1_Click);
b.Content = "OK";
Öte yandan, XAML elemanlarının özellikleri aşağıdaki şekilde de tanımlanabilir:
<Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Content="OK"
Click="button1_Click">
<Button.Content>OK</Button.Content>
<Button.Background>Blue</Button.Background></Button>
Yukarıdaki XAML kod parçacığına bakınca şunu farketmiş olabilirsiniz: Button elemanının Background özelliğini string biçiminde Blue olarak ayarlıyoruz, ancak .NET kod modelinde bunun Brush nesnesi olması gerekiyor. Bu durumda XAML bu dönüşümü nasıl yapıyor?
XAML modelinin çalışması için arkaplandaki XAML derleyicisi, bazı dönüşümleri otomatik olarak yapıyor. Button.Background özelliğinde Blue string değeri kullanıldığında XAML bunun TypeConverter nesnesinin aslında bir BrushConverter olduğunu biliyor. WPF içerisinde bu dönüştürücüler TypeConverter hiyerarşisinde bulunmaktadır. Ayrıca, kendiniz de bir Type Converter yazabilirsiniz.
Son olarak, XAML içerisindeki bir diğer kavram da Markup Extensions kavramıdır. XAML elemanlarının niteliklerinde { } parantezleri arasında yazılan ifadeleri XAML derleyicisi Markup Extensions olarak algılar. Bir Markup Extensions sınıfı, { parantezinden sonraki ilk ifadedir ve sonrasında gelen ifadeler ilgili sınıfın özellikleridir. Markup Extensions sınıfları, varsayılan constructor lara sahip oldukları için XAML elemanı olarak ta ifade edilebilirler.
<Button xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
Content="{Binding Path=Height, RelativeSource={RelativeSource Self}"
Click="button1_Click">
<Button.Background>Blue</Button.Background></Button>
<Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Click="button1_Click">
<Button.Background>Blue</Button.Background>
<Button.Content>
<Binding Path="Height">
<Binding.RelativeSource>
<RelativeSource Mode="Self"/>
</Binding.RelativeSource>
</Binding>
</Button.Content>
</Button>
Sonuç olarak, XAML, bize bildirimsel olarak XML modeli ile WPF arayüzleri oluşturmamızı sağlayan çok güçlü bir dildir. Özellikle Expression Blend aracı ile birlikte çok kolay şekilde XAML arayüzleri oluşturulabilmektedir. Bu giriş makalesinde değinemediğimiz bir diğer konu da XAML'ın grafiksel ifade yeteneğiydi. Ancak, XAML, programatik erişimin bir modeli olduğu için, grafiksel modelleme konusunda da oldukça başarılı bir dildir. Hiyerarşik yapısı sayesinde, WPF demolarında gördüğünüz tüm uygulamalar XAML ile tanımlanabilmektedir. Bu konuda, MSDN ve ilgili sitelerdeki çalışmaları ve örnek kodları inceleyebilirsiniz. Bir başka makalede görüşmek üzere,
Ekrem Aksoy
eaxitect.blogspot.com
Windows Presentation Framework, Microsoft'un .NET 3.0 yeniliklerinin bence en önemlisi. Bugüne kadar alıştığımız ve kullandığımız kullanıcı arayüzlerinin ötesinde, görsel olarak çok farklı kullanım deneyimi sunan WPF, programlama modeli olarak ta Microsoft'un Tasarımcı ile Programcı yı birlikte çalıştırma vizyonunu da gerçekleştiriyor.
Sizlerin de takip ettiğiniz üzere, Microsoft, Windows XP (Experience) ile birlikte, bilgi işlemeyi (computing) kullanıcı deneyimi etrafında şekillendirme vizyonunu hayata geçirmeye başlamıştı. Bizler, bugüne kadar, bilgisayarın (daha doğrusu yazılım platformlarının) bizlere sunduğu şekilde bilgi işlemeye alışmıştık. Ancak, gri zeminli formlar'la başlayan bu deneyim, özellikle zengin web uygulamalarının yaygınlaşmasıyla birlikte geçerliliğini kaybetmekteydi. İşte tam bu noktada, Microsoft, WPF platformunu duyurdu .NET 3.0 ile gelen yeniliklerle birlikte.
Windows Presentation Framework (WPF), 3 temel amaca çözüm olarak geliştirilmiştir: yeni nesil zengin kullanıcı arayüzlerini oluşturmak, tasarımcı ve geliştiriciyi birlikte çalıştırabilmek ve Windows ile Web istemci platformlarını ortak yapmak (Silverlight WPF/E olarak lanse edilmişti).
Bu doğrultuda, zengin çoklu ortam destekli, vektörel ve 3D grafik destekli ve tamamen yoğun kullanıcı etkileşimi destekleyen güzel bir programlama modeli mevcut WPF'te. Bunun temelinde de XAML olarak adlandırılan eXtensible Application Markup Language (Genişletilebilir Uygulama Betimleme Dili) bulunmaktadır. XAML, kullanıcı arayüzlerinin tanımlanmasında kullanılan Button, TextBox, Label gibi XML elemanlarını içeren bir betimleme dili. Buradaki esas güç, XAML ile tanımlanan her eleman aslında WPF teki bir sınıfa karşılık geliyor. Yani:
<Button Background="Red">
No
</Button>
Yazmak ile,
Button btn = new Button();
btn.Background = Brushes.Red;
btn.Content = "No";
yazmak arasında bir fark yok. Yani kod ile yaptığımız herşeyi, XAML ile ifade etmek mümkün. Bunun tam tersi de geçerli tabii.
Yukarıda da bahsettiğim gibi, temel amaçlardan birisi de aynı platform üzerinde web ve Windows istemcileri oluşturabilmek. Bu da XAML ve WPF programlama modeli sayesinde gerçekleştirilebilen bir vizyon.
Sonuç olarak WPF ile birlikte, artık kullanıcı deneyimleri yeni bir aşamaya geçerken, geliştirici ve tasarımcılar için de farklı fırsatlar sunuluyor. Bir sonraki makalede görüşmek dileğiyle.
Hehe, ben de bi cinslik yapayım istedim :)
Selamlar,
21 Nisan Cumartesi günü yapılacak olan Software Engineering dersi iptal edilmiştir. Bigilerinize, Ara sınav ile ilgili sorularınız için sorularınızı mail ile gönderebilirsiniz.
--GÜNCELLEME--