Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Oğuz Yağmur
Oğuz Yağmur
http://www.oguzyagmur.com
İletişme geçmek için tıklayın.
26 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: arasindaki asp.net avalon button gelistirme gelistirmek gerekli microsoft olusturmak studio tamamen uygulama uygulamalari visual windows .NET 3.x Oğuz Yağmur
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : .NET 3.x
Yayınlanma Tarihi : 24.3.2007
Okunma Sayısı : 25975
Yorum Sayısı : 8     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 23.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 23.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 23.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 23.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Yeni Bir Geliştirme Ortamı : WinFX ve AVALON
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Uzun süredir .NET dünyasındaki gelişmeleri yakından takip etmeye çalışıyoruz. Ama yetişebilmek ne mümkün? Neden mi ? Yüzeysel olarak bakacak olursak ;henüz C# 2.0 yeni yeni yerini sağlamlaşdırmaya başlamışken arkadan sessizce koşturan kod adı Orcas olan Visual Studio .NET 2005’le birlikte gelecek C# 3.0’ın (derin bir inceleme için Sefer Bey’in makalesini okumanızı tavsiye ediyorum) Mayıs 2006 CTP (Community Technology Preview)’si bir önceki deneme sürümüne ek olarak bir çok özellikler (ToQueryable , Expression.Compile, Expression Trees, Join operator, Single, SingleOrDefault, Last, LastOrDefault, ElementAt, ElementAtOrDefault ... ) eklenmiş hali ile çok kısa bir süre önce duyruldu. Yine buna ek olarak LINQ (Language-Integrated Query) projesi dahilindeki Dlinq (.NET Language-Integrated Query for Relational Data) de, Inheritance, Multi-tier Entities, Joins, Debugging Support, sorgu sonuçlarını artık DataSet’e atabilme ve daha birçok yenilik ile birlikte belki de en dikkat çeken özelliği, görsel olarak kendi entity sınıflarınızı oluşturabilceğiniz ve tablolar arasındaki ilişkileri kurabileceğiniz Visual Dlinq Designer’ın Visual Studio 2005 e eklenmesi olmuş. Yine Xlinq ve Linq’da birçok yeniliği görebilirsiniz. Web tarafında yine birçok yenilik ile kaşılaşmak mümkün. AJAX yarışında kanımca bir adım önde olan Microsoft, ASP.NET ATLAS ( ASP.NET ile ajax destekli web uygulamaları geliştirmek için Microsoft’un geliştirdiği framework) projesinin yeni sürümünü yakında duyuracak. (Kısa süre önce Yahoo ajax ile web uygulaması geliştirenler için bir framework duyurmasının ardından (YUI),ajax uygulamaları geliştirmek için Google’da Google Web Toolkit’ini duyurdu) . Aynı zamanda ATLAS Control Toolkit ile kendi ATLAS kontrollerinizi geliştirme imkanı sunmakta. Kısa bir süre önce 9 tane hazır olarak gelen kontrollere 4 yeni kontrol daha ekleyerek ( AlwaysVisibleControl, DropShadow, ModalPopup, RoundedCorners), yeni versiyonunu yayınladı. Yine kısa bir süre önce, CSS Control Adapter Toolkit ile kontrollerinize çok kolay bir şekilde CSS ile style uygulayabilmemizi sağlayan gelişmeyi duyurdu. Belkide bunlar arasında beni ençok heycanlandıran gelişmeler arasında ilk defa 2003 deki PDC (Professional Developer’s Conference) de duyrulan WinFx (The Windows Framework Extension bu linkten ayrıntılı bilgi edinebilirsiniz.) yani yeni nesil windows programlama framework’ü olarak isimlendirebileceğimiz gelişme oldu. Windows Vista’nın – kod adı longhorn - çıkması ile birlikte, windows programlama anlayışımız neredeyse tamamen değişmiş olacak. Peki Microsoft neden böyle köklü bir değişime gidiyor? Bildiğimiz üzere bugün Windows üzerinde çalışan programların hemen hemen hepsi Win32 API lerini kullanarak geliştirilmiştir. Hele de sisteme biraz daha yakın işlemler yapmak istiyorsak eninde sonunda başvuracağımız Win32 Apileri olacaktır. (Bugün hala .NET ile ilgili forumlara bir gözattığımızda en çok sorulan soruların başında DllImport gelmektedir. Öyle ki .NET framework ile yapamadığımız işleri Win32 API leri ile yapmak zorunda olduğumuz durumlar ile karşılaşmaktayız. ) Düşünürsek, 1992 de tasarlanmış ve programcılara sunulmuş olan Win32 API günümüzde artık ne kadar işimize yaramakta ? Ençok kullanılan nesne yönemli programlama tekniğine ne kadar uygun? Alternatif geliştirme ortamlarına göre ne kadar kullanışlı ve uygulama geliştirirken gelişim sürecini yavaşlatıyor mu? Peki en önemlisi programcılar bu API leri ne kadar rahat kullanabiliyor ve öğrenme süreci ne kadar kolay?. Programcılığa yeni başlayanlar için ne kadar uygun bir seçim? En can alıcı noktalardan birisi de – günümüzde dağıtık sistemlerin çokluğu ve taşınabilirliğin önplanda olmasını dikate alırsak – Win32 API ler ne kadar taşınabilir bir yapıya sahip? İşte bu soruların birçoğuna malesef iç açıcı cevaplar verebilmek pek mümkün değil. Çevremize baktığımızda artık herkesin Web Programcılığına yönelmesi ve programlamaya yeni başlayan herkesin ilk tercihinin Web programcılığı olması dikkatlerden kaçmıyor. Belki de artık Web Programcılığının bu kadar sevilmesi ve yaygınlaşmasının nedenleri arasında Win32 API lerini – yani Windows uygulaması geliştirmedeki zorluk - ilk madde olarak koyabilir miyiz ? Belki de Microsoft geriye uyumluluğu korumak için bunca şeyi gözardı etmiş olabilir. Peki ya rakipler? Uyumluluğu koruyacağım diye bu kadar taviz vermesi artık kazandırmaktan ziyade kaybettiriyor olabilir mi? Bu alanda ilk büyük adımı sanırım .NET’e geçerken attı ve günümüzde en çok kullanılan dillerden birisi olan VB’ye (6.0 ve öncesi) .NET te yer vermeyerek geçmişte yazılan VB kodlarını .NET’e aktarılması yönünde destek vermedi. Diğer bir adım olarak .NET 1.0 ile 1.1 arasındaki uyumsuzluk olabilir. Yani artık Microsoft birşeyleri kökten değiştirme kararı alıyor. Artık Microsoft 92 den beri sürekli yeni özellikler eklenerek bugüne kadar getirdiği Win32 API’yi sonunda terk etti! Yerine sunduğu ortam : yeni nesil Windows API si diyebileceğimiz, tamamen yönetilebilen kod (managed) ile geliştirme yapabileceğimiz .NET tabanlı bir geliştirme ortamı olan WinFX!. Şimdi genel olarak WinFX mimarisine bir gözatalım.
(Büyük halini görmek için resmin üstüne tıklayınız) Şekilden de görüldüğü gibi WinFX üç ana özellik ile dikkati çekiyor. WinFS : Longhorn da kullanılması düşünülen yeni dosya sistemi. Daha büyük depolama imkanı sunması ve verilerin organizasyonu konusunda yenlikler getiriyor. Indigo ( Windows communication Foundatiton): Windows’un tüm iletişim altyapısını sağlaması yanında uygulamalar arası iletişimini de sağlayacak. Webservisleri ya da internet üzerinden çalışan uygulamalar ya da intranet uygulamaları geliştirmek istediğinizde kullanacağınız Avalon (Windows Presentation Foundatiton): Kısaca windows uygulamalarınızın yeni yüzü! Uygulamalarımızdaki formları,windows kontrolleri ,2D ve 3D animasyonları, uygulamalarımız ile media dosyaları arasındaki ilişkileri sağlayacak olan WinFX’in en önemli parçasını oluşturmaktadır. Bundan sonraki makalelerimizde ayrıntılı bir şekilde inceleyeceğiz. Benim gibi siz de bir an önce bu yeni ortamda uygulama geliştimek istiyor olabilirsiniz. WinFX ile uygulama geliştirebilmek için Windows Vista Beta, XP Service Pack 2 veya Windows 2003 Sever SP1 kurulu işletim sisteminiz olmalı öncelikle. Daha sonra uygulamamızı geliştirmek için gerekli olan Visual Studio 2005’i edinmek gerekiyor. Eğer bunlar hazır ise bir an önce gerekli araçları indirip kurmaya başlayalım : Windows SDK : Bu adresden sadece bize gerekli olan paketleri seçebileceğimiz kurum programı indirdikten sonra çalıştıralım. Aşağıdaki resimde görüldüğü gibi sadece Win32 and WinFX desktop Tools seçeneğini işaretleyip kuruluma devam edelim (setup.exe).
WinFX Runtime Components : Bu adresten gerekli programı indirip kurulumu tamamlayalım. (winfxsetup.exe) Install the Visual Studio "Orcas" Preview - Development Tools for WinFX: kod adı Cider olan bu adresten Visual Studio ile Avalon uygulamaları geliştirirken görsel arayüz hazırlamak için gerekli eklentiyi indirip kuralım.( vsextwfx.exe)
Artık WinFx uygulamaları geliştirmemiz için ortamımız hazır. Ama yine de şunu belirtmek isterim ki yukardaki tüm uygulamalar henüz hazır ürün değiller. Bu yüzden sisteminizde bazı sorunlara yolaçabilirler – 3 veya 4 sisteme kurmam sonucunda bir soruna rastlamadım ama yine de dikkat etmekte fayda var. – Sizler de benim gibi vmware ya da microsoft Virtual Pc programları ile sanal makinalar kurup gönül rahatlığı ile denemelerinizi yapabilirsiniz. Avalon İle Merhaba Dünya

Kurulumu başarılı bir şekilde tamamladıktan sonra ilk Avalon uygulamamıza başlayabiliriz. Visual Studio 2005 i başlattıkdan sonra File -> New->Project i seçiyoruz. Visual C# altındaki kısımdan Windows(WinFX) menüsünü seçtiğimizde Templates kısmında WinFX ile geliştirebileceğimiz proje şablonlarını görüyoruz.Bu şablonlardan Windows WinFX Applications’u seçip projemize bir isim verip OK dediğimizde en basit hali ile bir uygulamaya sahip olmuş oluyoruz. Şimdi amacımız Window’da (burda dikkatinizi çekmek istediğim bir nokta var. Form yerine Window demiş olmam. Evet artık WinFX uygulamalarımızda Form’lar yok. İsim değişliğine gidilip artık Form yerine Window denliyor uygulama pencerelerine) bir Button oluşturp tıklandığında "Merhaba Dünya" mesajını göstermek. En önemli yeniliklerden birisi de artık WinFX uygulamalarında Window’ların dizaynı ile kodun tamamen ayrı olması. Yani artık uygulamarımızın görsel özelliği ile kod kısmının tamamen birbirinden ayrılması. Peki bu ne demek ? Önceden windows uygulaması geliştirdiğimize Formun üstüne bir Button eklemek istediğimizde;
Button Btn = new Button();
Btn.Text = "Tıkla";
Btn.Locacation = new Point(100,20);
Btn.Click += new EventHandler(MerhabaDunya);
This.Contols.Add(Btn);
....
kodlarını yazmamız gerekiyordu. Yani programımızın arayüzünü oluşturmak için yazdığımız kodlar ile programın amacına uygun kodlarımız iç içe idi. Peki şöyle bir tasarımımız olsa : Uygulamamızın yapacağı işin kodları ile uygulamamızın arayüzünü oluşturacak kodlar tamamen ayrı olsa. Hatta uygulamamızın arayüzünü oluşturmak için kod yazmasak ??? Evet düşüncelerimize benzer bir yapı ASP.NET’te mevcut. Yani tamamen deklaratif bir kodlama yöntemi kullanarak kullanıcı arayüzü oluşturulabiliyor.Peki bu kolaylık neden Windows uygulumalarımızda olmasın ki ? Artık WinFX ile böyle bir imkana sahip olduk. Visual studio 2005 de projemizi oluşturduğumuz ekranda design modunda iken alt kısıma baktığımızda yeni bir sekmenin daha eklenmiş olduğunuz göreceğiz. (Extensible Application Markup Language) yani kısaca XAML (Zamel diye okunur). XAML, tamamen XML tabanlı olup Avalon’da kullancı arayüzünü yani pencereler, textbox, listbox, button gibi kullanıcı kontrollerini oluşturmak için geliştirilen bir işaretleme dildir. Bu sayade kullanıcı arayüzünü (UI) hazırlamak için XAML dilini kullanarak bir xaml dosyası oluşturmamız yetecektir. Window1.xaml dosyasının içeriğine baktığımızda temel bir uygulama penceresinin deklaratif yapıda ve tamamen Xml tabanlı olan XAML ile nasıl oluşturulduğunu görebiliriz.

<Window x:Class="MerhabaAvalon.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MerhabaAvalon" Height="254" Width="307">
    <Grid>
       
    </Grid>
</Window>

Bu yapı bize hiçte yabancı gelmiyor. XML den bir farkı yok. ASP.NET geliştiricileri için ise hiç yabancı değil. Hatta birçoğu “e ne var bunda biz bunu hep yazıyoruz” diyorlardır. Evet, gerçekten de çok yeni bir dil olmamasına karşın Windows programcıları için hiç kod yazmadan bir pencere oluşturmak büyük bir yenilik. Peki bu noktada şu soruyu düşünmenizi isterim; XAML İlerde bir ASP.NET uygulamalarında kullanılmaya başlandığında bir Windows uygulamasını ASP.NET’e, bir ASP.NET uygulamasını da Windwos uygulamasına Dönüştüreme konusunda Microsoft bize gör kırpıyor olabilir mi ? Bundan sonraki makalelerimizde XAML üstünde çok konuşacağız. Bu nedenle XAML konusunu burda kapatıp uygulamamıza devam edelim. Şimdi window1.xaml dosyamızın içini aşağıdaki gibi düzenleyelim.

<Window x:Class="MerhabaAvalon.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MerhabaAvalon" Height="254" Width="307">
    <Grid>
      <Button Click="MerhabaAvalon" >Merhaba</Button>
    </Grid>
</Window>

Evet yine ASP.NET uygulaması geliştirenler “yahu ben bunu hep böyle yapıyorum” diyorlardır. Ben de “biz bunu ilk defa böyle yapıyoruz ama!” diyorum. Tamamen deklaratif bir yöntem bile xmal dosyamın içerisine <Button></Button> yazmam benim pencereme (Window) bir Button nesnesinin eklenmesini sağlamış oluyorum. Gelelim Click niteliğine. Artık nesnelerimizin event lerini Xml’den bildiğimiz nitelikler (Atrribute) ile bildirebiliyoruz. Yani  bu sayade “bu butona tıklandığında Click olayı (event) gerçekleştiğinde MerhabaAvalon metodunun çağrılmasını istiyorum” . demiş oluyorum. Peki MerhabaAvalon metodu nerde? Windows1.xmal.cs dosyasına aşağıdaki gibi metodumu ekliyorum.

public void MerhabaAvalon(object sender, EventArgs e)
{
     MessageBox.Show("Merhaba Avalon");
}

Görüldüğü gibi button ile MerhabaAvalon metodunu ilişkilendirmek için sadece xmal dosyasına Click="MerhabaAvalon” yazmamız yeterli oldu. Daha önceden de bahsettiğim gibi programımızın yapmasını istediğiniz iş ile programın arayüzünü oluşturacak kodlar tamamen birbirinden ayrılmış oldu. Bu sayade sadece programımın yapacağı işleri kodlama kısmına adapte olarak uygulama geliştirebiliyor oluyoruz.



Sonraki makalelerimde özellikle Avalon ve XAML konularına ayrıntılı bir şekilde değinerek Windows uygulamalarımızı WinFX ile nasıl geliştirebilceğimizi , bunun yanında Avalon ve XAML’in getirdiği yeni özellikler ve güçlü yapılarıyla windows uygulamalarımıza nasıl güç ve daha fazla görsellik kazandırabileceğimizi de inceleyeceğiz.

Mutlu günler dilerim.

Örnek uygulamayı indirmek için tıklayınız.

Makale:
Yeni Bir Geliştirme Ortamı : WinFX ve AVALON .NET 3.0 ve .NET 3.5 Özel Bölümü Oğuz Yağmur
  • Yazılan Yorumlar
  • Yorum Yaz
NİS
25
2007
orda bahsi geçen mevzu geliştiricileri amaçlamaktadır. Tabi ki alt yapı olarak kullanacaktır MS kendi içerisinde.. ama biz geliştiriciler artık API lere ihtiyaç kalmadan WINFX ile uygulama geliştirebileceğimiz bir ortam ile karşı karşıyayız. Ha WPF ile bu ne kadar mümkün ne kadar değil zaman içinde anlayacağız. Bu makaledeki amaç API lerin tamamı değil UI tarafındaki API lerden bahsetmekte. Bakalım ne zaman .net uygulamalarında DllImport yazmaktan kurtulacağız.
NİS
25
2007
Artık Microsoft 92 den beri sürekli yeni özellikler eklenerek bugüne kadar getirdiği Win32 API’yi sonunda terk etti! demişsiniz. eminmisiniz? http:blogs.msdn.comvcblogarchive20070321mfc-updates-for-vista-common-controls.aspx
TEM
16
2006
ellerine saglık.benim de tam araştırdığım konuydu bu nedir diyordum.isbet oldu doğrusu okan okşak
HAZ
3
2006
merhabalar. ben selçuk ünv. bilgisayar programlama son sınıf öğrencisiyim. oracle veri tabanını kullanarak c sharp da stok takibi yapmam gerekiyor ama hiç bir bilgim yok. yardımcı olabilir misiniz benim için çok önemli çünkü bitirme projem benim ilgilenirseniz sevinirim iyi çalışmalar dilerim [email protected]
MAY
27
2006
Evet. İleriye yönelik - özellikle Microsoftun güvenlik ile başı belada iken- çeşitli çözümler düşünülüyor. Muhtemel çözümlerinin başında program kodlarının donanıma direk erişmesini engelleyerek CLR gibi ara sistemlerin aracılığı ile kodların güvenli bir şekilde çalışmasını tüm sistem bazında sağlamak olabilir. Bahsettiğiniz konular da bunların ön çalışmaları. Ama biz bu yazı dizimizde daha çok üst katmanlara değineceğiz. Ama başka bir makale konusu da olabilir bahsettiğiniz konular.
MAY
27
2006
Yazınız icin tesekkurler, bir de singularity kernel mevzusu var, bu konuda da bir şeyler yazılmasi gündemde mi ? Bununla beraber Intel in EFI teknolojisi ile daha da yeni nesil windows kernellerin hardware e gomulup gelmesi gibi bir seyler havada ucusuyor. http:www.intel.comtechnologyefi
MAY
26
2006
Bilginiz için teşekkür ederim. Bahsettiğiniz konuyu inceleyeceğim zaman bulduğumda... İlerki makalelerde değinmeye çalışacağım.
MAY
26
2006
WinFX dünyasına giriş niteliğinde çok güzel bir makale olmuş. Elinize sağlık... Bu arada Microsoft un Interactive Designer diye bir projesi var, avalon arayüzlerin hazırlanabileceği (xaml) bir designer. İlk anda Flash kullanan arkadaşlara pek yabancı gelmeyecek bir ortam. Sahne sahne hazırlanabiliyor arayüzler. Tasarımla işiniz bittikten sonra Visual Studio ya export yapabilip akabinde geri kalan kodlarınız tamamlayabiliyorsunuz. Yalnız beta olduğu için çok stabil çalışmıyor :) Buradan deneyebilirsiniz: http:www.microsoft.comproductsexpressioneninteractive_designerid_free_trial.aspx Ayrıca XAML Tool u olan ZAM 3D yi de deneyebilirsiniz...
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor