27 Nisan 2016 Çarşamba

XAML Nedir ? (XAML’in açılımı Extensible Application Markup Language şeklinde olup “zammel” diye telaffuz edilir!)

                                                                                    XAML NEDİR
XAML nesnelerin ve özelliklerinin tanımlandığı XML tabanlı bir dildir. XAML yazım kuralları daha çok WPF (Windows Presentation Foundation) için arayüz (UI) tanımlamaya yönelik olduğundan program kodundan ayrı olarak bulunur.
Bununla beraber hali hazırda XAML sadece Windows platformalarında kullanımda olup WPF/E (Windows Presentation Foundation/Everywhere) girişimi XAML diğer platform ve aletlerde de kullanılabilinir hale getirecektir.
XAML Hakkında Bilinmesi Gerekenler
Bazen konuşurken veya bir şeyleri ifade ederken XAML ile WPF birbirlerine karıştırılıp, birbirlerinin yerlerine kullanılabilirler ama bunlar aynı değillerdir. XAML, XML tabanlı bir dildir. WPF ise grafik API (Application Protocol Interface) dir.
XAML, SVG(Scalable Vector Graphics) farklıdır. W3C’in tanımlamasına göre SVG, “2 boyutlu grafikler için bir platformdur ve 2 kısımdan oluşur: bir XML tabanlı dosya ve grafik uygulamaları için bir programlama API’sinden oluşur” Bununla beraber XAML ise XML tabanlı bir bir dosyadır ama API değildir. XAML ayrıca 3D ve kontrollerini de destekler ki bunu SVG yapamaz.
XAML en büyük avantajlarından biriside dizayn ve geliştirmeyi (kod yazımı) birbirinden ayırmasıdır ki bu yazılım ve grafik arayüzü geliştiricilerinin işbirliğini arttırmasına yardım etmesidir. Programın arayüzünün geliştirilmesi XAML olduğundan programın arayüzü, programın kodlama ayrıdır ve birbirlerinin gelişim süreçlerine engel olmazlar.
XAML dokümanlarının uzantıları .xaml şeklindedir.

XML (Extensible Markup Language) Nedir ?

Birbirinden Farklı tipteki verileri (resim,metin vb.) asıl formatlarında bir arada tutabilen XML, bilgiyle hızlı, kolay ve ortamdan bağımsız olarak erişebilme imkanı sunmaktadır. Eticaret sitelerinde xml' in kullanım amacı genellikle ürün, müşteri kaydı, sipariş, resim transfer etmektedir. Eticaret siteleri arasındaki bu entegrasyonlar genellikle xml formatındaki dosyalar üzerinden gerçekleştirilirler.

Bağımsız bir kuruluş olan W3C (World Wide Web Consortium) organizasyonu tarafından tasarlanan ve herhangi bir kurumun tekelinde bulunmayan XML (Extensible Markup Language); kişilerin ya da kurumların kendi sistemlerine, kendi yapılarına göre standardize edebilecekleri esnek, genişleyebilir ve kolay uygulanabilir bir meta programlama dilidir.

XML verileri standart bir şekilde yapılarını bozmadan tanımladığından internet üzerinde siteler arasındaki veri alış verişini kolaylaştırmaktadır. Buna göre XML; hem bir teknolojidir hemde bir programlama dilidir.

Expression Blend ve WPF

Expression Blend, .Net 3.0 teknolojisini kullanarak yapabileceğimiz uygulamaları XAML projelerinin içerisine entegre ederek oluşturabileceğimiz editör olarak karşımıza çıkıyor. XAML ve .Net 3.0 ile aramıza katılan WPF ile vista Aero tarzı tasarımlar yapmamıza olanak tanıyor. Oluşturduğumuz tasarımların ve projelerin sonucunda karşımıza çıkacak sonuçlar karşısında kendi kendinize bunu benmi yaptım demeye başlıyorsunuz. Sonra ise yaptığınız projenin büyüsüne kapılarak kendinizi .Net 3.0 ile XAML' in gücüne ve hayal gücünüze bırakmış olarak buluyorsunuz.

Expression Blend' in Expression Studio içeresinde yer almasının sebebi nedir diye biraz araştırdığımızda Expression Studio' nun tamamiyle aslında bir bütün olduğunu başka hiç bir yazılıma gerek kalmadan bütün isteklerimizi karşılayabilmesi sonucuna ulaşabiliyoruz.

Expression Blend' i Expression Studio ile bütünlüğünü sağlayan etkenler ise Expression Desing ile oluşturduğumuz tasarımları XAML formatında kaydederek Blend içerisinde kusursuz kullanabilmemiz olması Zaten çalışma ortamı incelediği zaman Expression Desing ve Expression Media ile aynı olduğu gözden kaçmamaktadır.

Eğer Expression Blend ile temel tema olarak gelen Koyu siyahı beğenmemeniz durumunda Expression Light adı verilen gri ye yakın bir rengi olan temayı seçebilirsiniz.Ulaşabilmeniz için Tool-->Options...-->Workspace-->Theme yolunu takip ederek değiştirebilirsiniz.

26 Nisan 2016 Salı

DirectX Nedir ? Ne İşe Yarar?

DirectX, Microsoft' un oyunlar ve çoklu ortam yazılımları için geliştirdiği yazılım programlama Arayüzü(API)'dür. Aslında bir çok API' den oluştuğunu söylesek yanılmayız. DAha iyi bir oyun deneyimi, görsel ve ses deneyimi vermesinin dışında üstün uyumluluk sağlayan API' nin önemi tartışılmaz bir gerçek. Aslında  Microsoft DirectX'i Windows 95 döneminde oyun programcılarını kendine yani Windows'a çekmek için geliştirmiştir. Ayrıca Microsoft'un Xbox konsolunda DirectX kullanılmaktadır. Firma DirectX Özelliğini popüler hale getirmek ve var olan kullanıcıları konsola yöneltebilmek için konsol adına "X" takısını eklemiştir.

Genel olarak baktığımızda DirectX bir tamamlayıcı görev, üstlenmektedir. Yani bilgisayarınızın donanımı ve uygulama arasındaki bağlantıyı sağlar. DirectX'in gelişimi sürekli devam etmektedir ve genel olarark ekran kartlarının gelişimi ile paralel olarak takip eder. Oyunlarda ki Gerçekçiliğe katkı sağlayan yazılım sayesinde bugün oyunlarda çevre ile etkileşime geçebilmemizin tabanı sağlanmıştır. DirectX'in rakibi var mı derseniz elbette var. Bunlardan en önemlisi AMD'nin geliştirdiği Vulkan'dır. Vulkan hakkında da ilerleyen zamanlarda yazımız olacaktır. Dilerseniz DirectX'in içerdiği bileşenlere geçelim.

DirectInput; Fare,Klavye,joystick gibi aygıtların giriş,çıkış ve verilerini yöneten arabirimdir.

DirectSound; İki ve üç boyutlu sesler için kullanılır. Ayrıca ses kartlarının arayüzünde de kullanılır.

DirectMusic; Etkileşimli ses bileşeni diyebiliriz. Windows altında aklınıza gelen ses ile ilgili her şeyle ilgilidir.

Direct3D; En önemli API'lerden biridir. Ekrana 2 veya 3 boyutlu görüntülerin aktarılmasını sağlar. ATI ve NVIDIA'nın katıkıları ile geliştirilmiştir.Alternatifi OpenGL'dir.

DirectPlay; Modem, Internet ve ağ üzerinde ki oyun bağlantılarını sağlar. Gerek oyunlar içindeki sesli sohbet gerekse oyun verilerinin kaybolmamasını sağlar. TCP/IP, IPX, Bluetooth ve doğrudan modem bağlantılarını destekler.

DirectDraw; Video bağdaştırıcısının özelliklerine hızlı bağlantı sağlar. API, render ve grafik uygulamalarını hızlandırır tam ekran pencere ve gömülü ekranların çalışmasını sağlar. 2D API olup, 3D işlerde verimsizdir ki zaten Direct3D o açığı çözüyor.

DirectShow; API sayesinde bilgisayarda, internette yer alan çoklu ortam  dosyalarını yakalama ve oynatma imkanı sağlar. ASF, AVI, DV, MPEG, MP3, WMA, WMV, WAV gibi çeşitli ses ve video biçimlerini destekler.

                                                  DİRECTX SÜRÜMLERİ


Criag Eisler, Alex St.John ve Eric Engstrum tarafından geliştirilen DirectX (Bu bilgiyi başta vermek gerekirdi) ilk sürümüne 1994‘te kavuştu. Ardından 2, 3, 4 sürümleri geldi ancak 4.sürüm piyasaya sürülmedi ve aynı yıl 5. sürüm piyasaya sürüldü. Ancak DirectX 5 ile birlikte Microsoft beklediği ilgiye ulaşabildi.

Ardından DxDiag destekli DirectX 6 (1998) geldi. One izleyen 7 ve 8 sürümler optimizasyona önem verirken gelişmeyi DirectX 9 getirdi. 2002 yılında çıkıp 2004 yılına kadar farklı sürümlere kavuştu ve 2006 yani DirectX 10’a kadar yaşam sürdü. Ardından Windows Vista ve DirectX 10,  DirectSound ve DirectInpu API’leri ile birlikte geldi ve grafik tarafında iyileştirmeler yaptı.

Hemen ardından Windows 7 ile birlikte halen kullanımda olan DirectX 11 yenilikler ile tanıtıldı. DX11 Tessellation özelliği ile çok daha fazla poligon seviyesine ulaşmıştır ve ekranda görünen detay seviyesi üst seviyeye çıkmıştır.

Tesellation Nedir ?

Şimdilerde Windows 10 ile gelecek olan DirectX 12 konuşuluyor. DX12 ile birlikte inanılmaz bir poligon artışı yaşanacak ve PC donanımında ki yük azaltılacak. Bununla birlikte donanımın gücü çok daha iyi kullanılacak. Öyle ki %40 civarında ki bir performans artışından bahsediyoruz. Tabi ekran kartınız DX12 sürümünü destekliyorsa.

DirectX 12 Destekli Ekran Kartları

Yazımızın sonuna gelmiş bulunmaktayız. Size geçen hafta kısa bir yazı yazacağımı söylemiştim ancak yine uzun bir yazı oldu.  Eğer aklınıza takılan bir soru veya merak ettiğiniz bir bilgi var ise yorum olarak belirtin ve adınızın geçtiği yazımızda bilgiyi Dijitaller ailesine aktaralım. Bir sonraki yazımıza kadar esen kalın.



31 Mart 2016 Perşembe

WPF (Windows Presentation Foundation) nedir?

WPF yeni nesil kullanıcı arayüzü geliştirme ve görüntüleme platformudur. Bu yeni platformun sağlamış olduğu yeni özellikleri ile görsel olarak daha modern kullanıcı ile daha etkileşimli içerik sunumunda daha esnek uygulamalarda kullanılan ses ve görüntülerin daha kolay bir şekilde gösterilmesi ve zengin içerikli uygulamaların kolay ve hızlı bir şekilde geliştirilmesi sağlanmaktadır. WPF'in mimarisinden dolayı çalıştığı sistem üzerindeki donanımı yoğun işlemlerde dahi en etkin biçimde kullanarak performans konusunda tatmin edici sonuçlar vermektedir.

                                         WPF NİN WİNDOWS FORMDAN FARKI NEDİR ?

* WPF' in Windows Form da 65 adet component bulurken wpf de 50 adet component buluyor. Bunun nedeni kullanıcıların geri bildirimleri sonucu olduğu bildirilmektedir

* WPF, görüntülemede XAML yapısını kullanarak daha esnek arayüz imkanları sunar.

* WPF de uygulamalarımızın farklı çözünürlükte grafik arayüzünün olusumunun bozulması ve  bunun da basınızı çok agrıtan bir durum olduğundan bu sorun WPF' de ortadan kalkmış ve çözünürlükten bagımsız bir arayüz oluşturma imkanı sunulmuştur.

* Günümüzde grafik kartları oldukça hızlandıklarından WPF' in yeni yapısıyla arayüz oluşturulurken GDI kullanmayıp dogrudan GPU (grafik işlemcisi) üzerinden işlemler yürütülmekte böylelikle çok daha performanslı olmakta  ve CPU (bilgisayar islemcisi) 'a binen fazla yük engellenmektedir.

Bilinmesi gerekenler;
Wpf yapısı itibariyle xaml okuyarak çalıştığı için tasarımları yaparken bu xaml üzerinde değişiklikler yaparak yapmak oldukça zor. Bunu en kolaya indirgemek için Expression Blend' i kurup wpf application'u seçip oldukça hızlı ve rahat bir şekilde tasarımlar yapabiliriz.

         Wpf nin Mimarisi



PresentationFramework: Bu yapı wpf araçlarını(button,label vs) barındırır.
Presentation Core : Wpf nesneleri dışında özelleşmiş yeni nesnelere ihtiyaç olduğunda bu katmanda bulunan nesneler kullanılır.
milcore: wpf araçlarının görüntülenmesini sağlayan katmandır. Bu katmanda arayüz oluşturma kısmında anlatılanlar (GPU nun kullanılmaması vs) gerçekleşir.

Windows Phone Nedir ?

Windows Phone, Microsoft tarafından akıllı telefonlar için geliştirilmiş olan bir mobil işletim sistemidir. Windows Mobile'dan farklı olarak; kurumsal pazarı değil, tüketici pazarını hedef alan bir üründür.

Ekim 2010'da Pazara giren ürün; ilk olarak Avrupa,Singapur,Avustralya ve Yeni Zelanda'da kullanıcılara sunuldu. Hemen Ardından ABD, Kanada ve Meksika pazarına giren ürün, Aralık 2010'da Pal bölgelerinde ve 2011 başlarından itibaren de Asya'da Kullanıcılar ile buluştu. Windows Phone ile birlikte Microsoft, Metro adlı yeni bir kullanıcı arayüzü duyurdu.

         

Windows Phone Geliştiricilere 2 ana programlama modeli sunuyor:

Silverlight: Silverlight, İlk olarak web tarayıcılar için bir eklenti (plug-in) olarak tasarlandı. Amaç, zengin internet uygulamaları geliştirme sürecine yeni bir bakış getirmekti. Silverlight bizlere Deklaratif bir kullanıcı arayüzü sundu. Kolayca oluşturulabilen ve temalandırılabilen bu arayüz; animasyon, veri bağlama (data bindling), vektör grafikler ve çeşitli kontroller ile destekleniyordu, Silverlight'ın Windows Phone tarafından kullanılmakta olan mevcut sürümü, Windows ve Mac üzerinde kullanılan güncel Silverlight sürümü ile aynı etkinliğe sahiptir. Fakat, telefon ile alakasız olan bazı özellikler kaldırılmış ve telefona özgü bazı özellikler eklenmiş ve ayrıca performans ayarlaması yapılmıştır.

XNA: XNA, İlk olarak XBOX odaklı olarak tasarlanmış olmasına rağmen, ayrıca Windows, Zune HD ve tabii ki Windows Phone sürümleride mevcuttur. XNA'in geliştirilme amacı yüksek performanslı, 2D ya da 3D oyunlar oluşturmaktı.

Peki Hangisi Seçilmelidir ?
İki model hakkında da genel fikir sahibi olduktan sonra, gelelim seçim yapmaya. Temel seviyede geliştiricilere yapılan tipik tavsiye şudur: "Uygulama geliştirirken Silverlight, Oyun geliştirirken XNA kullanın." Ama detaylar işin içerisine girdikçe, gerçek dünyada durum biraz daha farklı olabilir ve tercihler değişebilir.

Silverlight ile oyun geliştirmek:

Silverlight ile de oyun geliştirebilirsin. Sonuç olarak oyun da bir programdır. Marketplace'te, Silverlight ile geliştirilmiş "Darts" isminde mükemmel bir örnek bulunmaktadır. Bu oyunun ilk sürümü Windows Phone Marketplace üzerinde yayınlandığında, çok kısa zamanda ücretli uygulamalar arasında 11. sıraya kadar yükseldi. Darts, XNA kullanan çok sayıda XBOX LIVE oyunu arasından sıyrıldı ve bu konuma yükseldi.

Bir Oyunu silverlight ile kodlamak, geliştiriciye çeşitli avantajlar sağlar. Örneğin; Facebook ve Twitter gibi servisler ile kolay entegrasyon ve bunun yanında; menüler ve scoreboard'lar gibi noktalarda tüm standart silverlight kontrollerini kullanabilme yeteneği. Diger yandan, Silverlight ile kompleks oyunlar oluşturmaya çalışman, performans açısından çok akıllıca olmayabilir. 3D oyunlar da tabii ki konumuz dışında. XBOX LIVE özelliklerini, sadece XNA oyunları için kullanabilirsin.

Bu konuda tek kısıt, Silverlight arayüzü ile XNA arayüzünün aynı anda kullanılamamasıdır
Bir uygulama için seçilecek olan kullanıcı arayüzü, bu teknolojilerden yalnızca biri olabilir, Marketplace sertifikasyonu,Silverlight ve XNA ' in uygun olmayan bir biçimde Harmanlanmasını yasaklar !

XNA ile uygulama geliştirmek:

XNA kullanarak oyun dışında bir uygulama kodlayabilirsin. Ancak Button ve Listbox gibi en temel kontrolleri yeniden yaratma ihtiyacının doğmasının dışında, XNA uygulamaları şu anda kullanıcının; telefon teması, uygulama çubuğu (application bar), tarayıcı kontrolü (web browser control) ve benzeri çok sayıda özelliğin avantajlarından yararlanabilme yeteneğine sahip değildir. Ayrıca XNA için çok sayıda üçüncü parti kontrol kütüphaneleri (control libraries) mevcuttur.

Silverlight ile XNA'i Birlikte Kullanmak:

Bir Windows phone uygulaması içerisinde Silverlight ve XNA'in fonksiyonelliğini harmanlayabilirsin. Marketplace' te yer alan Silverlight uygulamalarının bir kısmı; mikrofonu kullanmak, ses efektlerini çalmak gibi XNA fonksiyonelliklerinden de faydalanmıştır. Ayrıca XNA uygulamaları içinde bir web tarayıcı kullanılmamasına rağmen, Silverlight' ın ağ ile ilgili sınıflarını kullanarak bir web kaynağına talep de yapabilirsn.