Beta etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Beta etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Cumartesi, Temmuz 11, 2009

WPF - Visual Studio 2010 Başlangıç Sayfasının Düzenlenmesi

.Net ile yazılım geliştiricilerin en sık kullandığı geliştirme platformu Visual Studio 'dur. Sizlerinde bildiği üzere yıl başından bu yana geliştirme platformunun yeni sürümü olacak olan Visual Studio 2010 'nun CTP ve Beta1 sürümleri bizlerin kullanımına sunulmuştur. Bu sürümleri bilgisayarlara kurduğumuzda dikkatimizi çeken en büyük değişiklik görsel anlamda olmuştur. Bu değişikliği sağlayan en büyük faktör ise platformun tekrardan Windows Presentation Foundation (WPF) ile yazılmasıdır.

Daha önceki yazılarımızdan hatırlayacağınız üzere Windows Vista ve Windows 7 işletim sistemleri WPF mimarisine göre geliştirilmişti. Bu değişiklik sonucunda grafik kartı üreticileri Windows Vista uyumlu ekran kartı çıkarttılar. Peki neden Vista uyumlu ekran kartlarına gerek vardı. Çünkü Windows Vista öncesi işletim sistemleri yani Windows Form uygulamaları o kadar fazla grafik kartları kullanmasına gerek yoktu. Fakat Windows Vista ve WPF uygulamalarının yaygınlaşması ile grafik kartlarının üzerine düşen yük arttı ve bu yenilikleri sağlayacak kartlara gerekli sürücüler oluşturuldu. Bu konu ile ilgili detaylı içeriğe daha önce yayınlamış olduğumuz yazıları okuyarak edinebilirsiniz.

İnsanların görselliğe önem vermesi ve yeni geliştirilen uygulamaların WPF ve XAML 'in gücünden yararlanılarak geliştirilmesine daha da olanak tanıyordu. Ayrıca bu teknolojilerin web versiyonu olan Silverlight uygulamalarının da web üzerinde yaygınlaşması gelecekte ne denli önemli bir yer alacağını da gözler önüne seriyordu. Bu durumda yapılması gereken ise yeni geliştirecek olduğumuz projelerde görsel anlamda bir düşüncemiz var ise WPF alt yapısı üzerine geliştirilen uygulamalara dikkat etmek olacaktır.

WPF günümüzde yer alan uygulamalarda bu kadar gelişiyor ve dikkat çekiyorsa geliştiricilerinde kullandığı araçlarda geliştirmeler bu teknoloji ile yapılması düşünülebilir bir duruma gelmiştir ki Expression Studio ailesi içerisinde yer alan ürünler bahsettiklerimizi karşılar biçimdeydi. Çok daha görsel ve daha performanslı bir biçimde çalışan geliştirme ortamları ile çalışabilinmesine olanak tanınmaktadır. Expression Blend ile aramıza katılan OSLO projesinin geliştirme ekranında aşina olmaya başladığımız yeni nesil pencereler Visual Studio 2010 ile geliştirme ortamlarında da aramızdaki yerini alacaktır.

Visual Studio 2010 'a .Net 4.0 'ın eklenmesinin dışında geliştirme platformu da yeniden hazırlanmıştır. Peki, hazırlanan teknolojiyi sizlere sorsam sanırım yukarıdaki yazdıklarımızı okuduktan sonra hiç düşünmeden "WPF" diye soruyu cevaplayacaksınızdır. Neden WPF kullanıldı sorusuna kısmen cevap verdik. Fakat bunun sebeplerini biraz daha araştıralım. WPF uygulamalarının en önemli özelliği görsel öğeleri çok iyi şekilde kullanmaktadır. Grafikerlerin hazırlamış olduğu tasarımları XAML yardımı ile projelerde rahatlık kullanılıyor olması, Data Binding işlemini oldukça başarılı yapılabilmesi ve bunun gibi şu anda aklımıza gelmeyen bir çok sebepten ötürü WPF tercih edilmiştir.

Visual Studio 2010 'un neden WPF ile yazıldığını ve bize ne gibi yararlar sağlayacağına değinmeye çalıştık. Peki, Visual Studio 2010 Beta1 'in WPF ile hazırlanmış olan yeni giriş ekranın görüntüsü nasıl olduğuna bir göz atalım.



Alışık olduğumuz görünümden oldukça farklı fakat bir o kadar şık bir görünüme sahip olmuştur. Tabii yazımızın başında beri de değindiğimiz bir özelliğe sahip olmuştur. Bu da WPF ile hazırlanmış olmasıdır. Bizler de WPF yardımı ile bu ana ekran görüntüsünü düzenleyebilme imkanına sahibiz. Bu işlem için ister Visual Studio 2008 veya 2010 ortamlarından ya da Expression Studio ailesinden Expression Blend yardımı ile yapabilmemiz mümkündür. İşlemi gerçekleştirebilmemiz için bir Visual Studio 2010 üzerinde bir kaç değişiklik yapmamız gerekmektedir.

Not: İşlemlere başlamadan önce C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\StartPages klasörünün içeriğini bilgisayarda başka bir noktaya kopyalamanızı öneriyorum. Malum yeni hazırlayacağınız tasarım sonrası ana sayfanız açılmaz bir görünüme de bürünebilir. :)

Visual Studio 2010 ortamını açıyoruz ve ilk olarak Tools\Options adımlarını izleyerek Visual Studio özellikleri ekranına geliyoruz.



Karşımıza gelen ekranda Environment\Startup yolunu izledikten sonra açılan ekranda Allow Custom Start Page checkbox 'ını seçili duruma getiriyoruz.



Yapmış olduğumuz bu işlemler sonrasında artık Visual Studio 2010 'nun karşılama ekranını istediğimiz şekilde düzenleyebilinmesine olanak tanınacaktır. Peki bu işlemi nasıl gerçekleştireceğiz. Biraz önce yedeklediğimiz klasörün içerisinde yer alan proje dosyasını açarsak gördükleriniz sizi çok şaşırtacaktır.


StartPage.csproj dosyasını ister Visual Studio 2008 ister Visual Studio 2010 ile açıyoruz. VS2010 'nun ana sayfası design kodları ile karşınızdadır.



Doğruyu söylemek gerekirse bu kodları görmek pek alışık olduğumuz bir durum değildir. :)

StartPage.xaml
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:vs="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.UI"
     xmlns:sys="clr-namespace:System;assembly=mscorlib"
     Style="{DynamicResource {x:Static vs:StartPageResourceKeys.OuterGridStyleKey}}"
    >

    <Grid.Resources>
        <!-- Welcome tab links -->
        <sys:String x:Key="Links.WhatsNew">http://go.microsoft.com/fwlink/?LinkId=123638</sys:String>
        <sys:String x:Key="Links.Walkthroughs">http://go.microsoft.com/fwlink/?LinkId=147108</sys:String>
        <sys:String x:Key="Links.Feedback">http://go.microsoft.com/fwlink/?LinkId=147445</sys:String>
        <sys:String x:Key="Links.Customize">http://go.microsoft.com/fwlink/?LinkId=123641</sys:String>

        <!-- Visual Studio tab links -->
        <sys:String x:Key="Links.MSDNLibrary">http://go.microsoft.com/fwlink/?LinkId=123642</sys:String>
        <sys:String x:Key="Links.MSDNForums">http://go.microsoft.com/fwlink/?LinkId=123643</sys:String>
        <sys:String x:Key="Links.Community">http://go.microsoft.com/fwlink/?LinkId=123644</sys:String>
    </Grid.Resources>

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" MinWidth="0" MaxWidth="90"/>
        <ColumnDefinition Width="*" MinWidth="530"/>
        <ColumnDefinition Width="*" MinWidth="0" MaxWidth="100"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" MaxHeight="100"/>
        <RowDefinition Height="*" />
        <RowDefinition Height="*" MaxHeight="65"/>
    </Grid.RowDefinitions>

    <Border Grid.RowSpan="3" Grid.ColumnSpan="3" Height="800" VerticalAlignment="Top" Style="{DynamicResource {x:Static                                     vs:StartPageResourceKeys.OuterBorderStyleKey}}" />

    <!-- Logo -->
    <Image Grid.Row="0" Grid.Column="1" Style="{DynamicResource {x:Static vs:StartPageResourceKeys.LogoImageStyleKey}}" />

    <!-- RSS feed -->
    <vs:RssRotator Grid.Row="2" Grid.Column="1" Style="{DynamicResource {x:Static vs:StartPageResourceKeys.RssRotatorStyleKey}}" />


    <!-- Tray -->
    <vs:Tray Grid.Row="1" Grid.Column="1" SelectedIndex="0" x:Name="PART_Tray">

    <!-- Welcome group -->
    <vs:TrayItem Header="Welcome" x:Uid="Welcome_Header">
    <vs:TrayGroup SelectedIndex="0">

    <vs:TrayGroupItem Content="Welcome"
            ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/01_whatsnew.png"
            x:Uid="Welcome_Item"
        >
        <vs:TrayGroupItem.InnerContent>
            <StackPanel>
                <TextBlock FontSize="18pt" Foreground="#E8E8E8" Margin="15" x:Uid="Welcome_Text">Welcome to the Visual Studio 2010 Beta 1</TextBlock>
                <TextBlock Foreground="#E8E8E8" Margin="15" TextWrapping="Wrap" x:Uid="Welcome_Paragraph" >
                    This release contains many features new to Visual Studio.
                    We have created a set of walkthroughs for major new feature areas.
                    We would also appreciate hearing your feedback.
                    Thank you for taking the time to evaluate and provide your input;
                    it will help us make Visual Studio 2010 the best release ever.
                </TextBlock>
                <Button Content="More Information"
                    HorizontalAlignment="Left"
                    Margin="15"
                    Style="{DynamicResource {x:Static vs:StartPageResourceKeys.WelcomeButtonStyleKey}}"
                    Command="{x:Static vs:VSCommands.Browse}"
                    CommandParameter="{StaticResource Links.WhatsNew}"
                    x:Uid="Welcome_Button"
                />
            </StackPanel>
        </vs:TrayGroupItem.InnerContent>
    </vs:TrayGroupItem>

    <vs:TrayGroupItem Content="Walkthroughs"
        ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/02_ctpwalkthroughs.png"
        Command="{x:Static vs:VSCommands.Browse}"
        CommandParameter="{StaticResource Links.Walkthroughs}"
        x:Uid="Walkthroughs_Item"
    />

    <vs:TrayGroupItem Content="Feedback"
        ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/03_feedback.png"
        Command="{x:Static vs:VSCommands.Browse}"
        CommandParameter="{StaticResource Links.Feedback}"
        x:Uid="Feedback_Item"
    />

    <vs:TrayGroupItem Content="Customize the Start Page"
        ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/04_customizestartpage.png"
        Command="{x:Static vs:VSCommands.Browse}"
        CommandParameter="{StaticResource Links.Customize}"
        x:Uid="Customize_Item"
    />

    <vs:TrayGroupItem Content="Find and Install Extensions"
        ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/11_extensibility.png"
        x:Uid="Extensibility_Item">
        <vs:TrayGroupItem.InnerContent>
            <StackPanel>
                <TextBlock FontSize="18pt" Foreground="#E8E8E8" Margin="15" x:Uid="ExtensionManager_Text">Extension Manager</TextBlock>
                <TextBlock Foreground="#E8E8E8" Margin="15" TextWrapping="Wrap" x:Uid="ExtensionManager_Paragraph">
                    The Extension Manager allows you to find new extensions online and manage your currently installed extensions.
                </TextBlock>
                <Button Content="Show Extension Manager"
                    HorizontalAlignment="Left"
                    Margin="15"
                    Style="{DynamicResource {x:Static vs:StartPageResourceKeys.WelcomeButtonStyleKey}}"
                    Command="{x:Static vs:VSCommands.ExecuteCommand}"
                    CommandParameter="Tools.ExtensionManager"
                    x:Uid="ExtensionManager_Button"
                />
            </StackPanel>
        </vs:TrayGroupItem.InnerContent>
    </vs:TrayGroupItem>

    </vs:TrayGroup>
    </vs:TrayItem>

    <!-- Projects group -->
    <vs:TrayItem Header="Projects" x:Uid="Projects_Header">
        <vs:TrayGroup SelectedIndex="0">

            <vs:TrayGroupItem Content="Recent Projects"
                ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/05_recentprojects.png"
                InnerContentUri="Microsoft.VisualStudio.Shell.UI.Internal;component/Packages/MRU/Controls/RecentProjects.xaml"
                x:Uid="RecentProjects_Item"
            />

            <vs:TrayGroupItem Content="New Project"
                ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/07_newproject.png"
                Command="{x:Static vs:VSCommands.ExecuteCommand}"
                CommandParameter="File.NewProject"
                x:Uid="NewProject_Item"
            />

            <vs:TrayGroupItem Content="Open Solution"
                ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/06_openproject.png"
                Command="{x:Static vs:VSCommands.ExecuteCommand}"
                CommandParameter="File.OpenProject"
                x:Uid="OpenProject_Item"
            />

        </vs:TrayGroup>
    </vs:TrayItem>

    <!-- Visual Studio group -->
    <vs:TrayItem Header="Visual Studio" x:Uid="VisualStudio_Header">
        <vs:TrayGroup>

            <vs:TrayGroupItem Content="MSDN Library"
                ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/08_msdnlibrary.png"
                Command="{x:Static vs:VSCommands.Browse}"
                CommandParameter="{StaticResource Links.MSDNLibrary}"
                x:Uid="MSDNLibrary_Item"
            />

            <vs:TrayGroupItem Content="MSDN Forums"
                ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/09_msdnforums.png"
                Command="{x:Static vs:VSCommands.Browse}"
                CommandParameter="{StaticResource Links.MSDNForums}"
                x:Uid="MSDNForums_Item"
            />

            <vs:TrayGroupItem Content="Community"
                ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/10_community.png"
                Command="{x:Static vs:VSCommands.Browse}"
                CommandParameter="{StaticResource Links.Community}"
                x:Uid="Community_Item"
            />

            <vs:TrayGroupItem Content="Settings"
                ImageSource="pack://application:,,,/Microsoft.VisualStudio.Shell.UI;component/Images/StartPage/12_settings.png"
                Command="{x:Static vs:VSCommands.ExecuteCommand}"
                CommandParameter="Tools.Options"
                x:Uid="Settings_Item"
            />

        </vs:TrayGroup>
     </vs:TrayItem>

    </vs:Tray>
</Grid>

XAML kodu yukarıdaki gibidir. Bu kodları incelediğimizde dikkatimizi çeken kodların;
   •<vs:Tray>
   •<vs:TrayGroup>
   •<vs:TrayGroupItem>
   •<vs:RssRotator>
arasında yeralmasıdır.

Görsel olarak değişiklikler için WPF bilgimizden yararlanılarak ekran birkaç değişiklik yapıyoruz.



Gördüğünüz gibi Visual Studio 2010 'nun giriş ekranını istediğimiz biçimde düzenleyebiliyoruz. Sizlerin hayal gücünüze bağlı olarak istediğiniz şekilde başlangıç ekranı düzenleyebilmeniz mümkündür. Örneğin VS 'in başlangıç ekranında şirket logonuzu görebilmek çok güzel bir duygu olsa gerek. :)

Windows Presentation Foundation yazılım dünyasında yerini gittikçe sağlamlaştırdığını bu uygulama ile daha net bir biçimde görmekteyiz.

Umarım yararlı olabilmiştir.

Turhal Temizer
info@turhaltemizer.com

Perşembe, Mayıs 21, 2009

Visual Studio 2010 Beta1 – Kurulum ve Genel Bakış

Gün içerisinde çalışmanın dışında bir de Visual Studio 2010 ‘u kurmakla zaman harcadım. Web installer versionu ile kurduğum VS ‘in kurulum ile ilgili ekran görüntülerini size yazının devamında sunuyor olacağım. Bir çok yenilikle bizlere sunulacak olan VS2010 ilk Beta1 sürümü ile karşımızda. F# ‘tan paralel programlamaya ide güncellemesine kadar nice yeni özelliklerle biz yazılımlacıları mutlu etmeye geliyor.

Kurulum aşaması;

yeni1

yeni2

yeni3

yeni4

yeni5

Yukarıdaki işlemler sonucunda uygumala kurulmuş oluyor. Kurulum sonrası bizi karşılayan ekrandaki değişiklik oldukça köklüdür.

yeni6

yeni7

Zaman içerisinde daha detaylı bilgi vereceğim.

Cumartesi, Mart 29, 2008

F# Nedir?

Bu makalemizde kolay, basit, tipleri fonksiyonel olarak programlayabilen ve yepyeni bir dil olan F#(Fsharp) ‘ı incelemeye çalışacağız.

Yeni çıkmış olan bir dili anlatan makaleler genellikle programlama dilini ve dilin oluşmasını sağlayan etmenlere değinerek giriş yapar. Bizde bu makalemizde bu yolu izleyerek başlayacağız. Temel etmenlere de değinmeden önce daha önemli olan “F# nedir” ‘i ve “Fonksiyonel Programlama nedir” ‘i incelemek daha mantıklı olacaktır.

Fonksiyonel Programlama Nedir?

Fonksiyonel programlama (FP) çok eski zamanlardan, ileri düzey programlama dillerinden beri kullanılan bir yapıydı. FP ‘yi 1955 yılında IPL bulmuştur. İlk olarak ise FORTRAN dili tarafından kullanılmıştır. İkinci olarak kullanan dil COBOL olmuştur. FORTRAN ve COBOL prosedürsel bir mantıkla programlarını oluşturabilme olanağı tanıdığı için bilimden mühendisliğe kadar birçok alanda kullanılmışlardır. Bu mantık 1970 ’li yıllara kadar devam ettikten nesne tabanlı programlama çıkarılmıştır. Nesne tabanlı programlama mantığını kullanabilen programlama dilleri günümüzün en popüler dileri arasında yer almaktadırlar. Kullanmayanlar ise büyük oranda arka plana itilmişlerdir.

Mimari mantıklar bu oranda geliştirilirken fonksiyonel programlama dilleri de kararlı ve güçlü bir biçimde geliştirilmeye devam etmişlerdir. En güçlü fonksiyonel programlama dilleri: SML, OCaml, Haskell, Clean ve diğerleridir. En çok sevilen fonksiyonel programlama dilleri ise: APL ve List ‘dir. Tabii bu bahsettiğimiz dillerin yaşadığı zamanlar 1950 lerdir. Fakat akademik çevreler fonksiyonel programlama kavramını birinci öncelik olarak tutarak geliştirmeye devam etmişlerdir. Bu gelişimlerden de en çok söz getirenleri İngiltere Cambridge üniversitesinde gerçekleştiği akademik yayınlar ile bütün dünyaya duyurulmaktaydı. Çok öncelerden tamamlanmış olan bu dil global dünyanın gerçekleri ile karşılaştığında ise on yıllar önce ömrünü tamamlamış olarak görülüyordu. Fakat yurtdışındaki üniversitelerde karmaşık ve oldukça zor problemler fonksiyonel programlama ile çözülmeye devam edilmiştir. Zaten bu gelişimlerin bir yansısı olarak ta günümüzde birçok üniversitede mühendislik bilimleri fakültelerinde ders olarak okutulmakta olan MATLAB programının oluşmasına sağlamıştır. Matlab programının özelliği matematiksel, fiziksel ve mühendisteki birçok işlemi oldukça kolay fonksiyonlarla yapabilmemize olanak tanıyordu. Ayrıca kolay fonksiyonlar ile yapılabilmesinin dışında oldukçada performanslıydı. Fakat matematiksel işlemleri günümüz programlama dilleri ile yapmaya çalıştığımızda performans olarak ne Matlab ‘te ne fonksiyonel programlama da ne de bu yapıda olan programlama dilleri ile alabildiğimiz sonuçları alamıyorduk. Bugün ise, fonksiyonel programlama kavramını net olarak anlayabilmemiz durumunda en karmaşık problemleri bile çok basit yöntemlerle çözebileceğimiz belirtiliyor.

Fonksiyonel programlama, bütün programlama dillerinin derlemlerini (collection) başka fonksiyonlardan etkilenmemiş biçimde alarak bağımsız değişkenlerini geri dönüş değerleri olarak kabul eder. Nesne tabanlı programlama gerek görülmeyen problemlerin döngülerinin sonucunda oluşan yan ektilere izin vermektedir. Veri yapıları olarak kullandığımız tiplerin büyük bir çoğunluğunu, bellek yönetim kodlarımızı ve diğer birçok alıştığımız mantıkları fonksiyonel programlama ile kullanabilmemiz mümkündür.

Basit matematiksel modellerden yararlanılarak çözülebilen uygulamalar az ve öz kod yazılarak, uygulamalarımızı geliştirecek olduğumuz uygulamalarda yalnızca gerekli olan bileşenlerin referansa edilmesi ve görev çubuğunda minimum düzeyde bellek sarfiyatı yapması gibi özellikler fonksiyonel programlamanın temel yapı taşlarını oluşturmaktadır. Günümüzde fonksiyonel programlamayı kullanabileceğimiz dil F# ‘dır. F# ‘da fonksiyonel programlar yardımı ile karmaşık uygulamaları rahatlıkla geliştirebilmemiz mümkündür.

Niçin Fonksiyonel Programlama Önemlidir?

Fonksiyonel programlamayı düşünen insanlar genellikle kusurlu, hatalı, yaklaşılmaması gereken dil olarak görürlerdi. Fakat bunu düşünen insanları fonksiyonel programlananın kendilerine katacağı avantajları düşünmeden bu tür yargıları düşünüyorlar. Tartışılan bir diğer nokta ise günümüz programlama dilleri ile yaptığımız işleri fonksiyonel programlama dili yapamayacağımız yönünde şekillenmiştir. Günümüz dünyasında fonksiyonel programlamanın avantajlarını her durumda reddeden insanlara karşı tartışmalar esnasında verilmiş en iyi cevabı Chalmer teknik üniversitesinden John Hughes vermiştir. ( http://www.math.chalmers.se/~rjmh/Papers/whyfp.html )

John Hughes derki, “Fonksiyonel programcıların(FP) konuştukları orta çağ rahiplerinin konuştuklarına benzetilmemelidir. Çünkü FP ‘cılar bu dili sevdikleri için geliştirmektedirler. Rahipler ise maddi çıkar için işlerini yapmaktadırlar.”

Bir örnek ile fonksiyonel programlamayı anlatmak gerekirse, kendimizin düşünerek oluşturduğumuz fonksiyonların değerlini başka fonksiyonlara aktarabilmemize olanak tanınmaktadır. Bu özellik sizlere ilk görüşte önemsiz gelebilir, fakat değerlerin kullanılmasını olağanüstü oranda arttırmaktadır. Ayrıca veri ve fonksiyonlar arasındaki anlam farklarını da birbirinden rahatlıkla ayırabilmekteyizdir. Fonksiyonel programlama da kullanılan kısa ve basit yapıya nesne tabalı programlamalarda uymak zorundadır ve uymaktadırlar.

Ayrıca, fonksiyonları geri dönüş değerleri çokluda olabilmekte ve çağırılan fonksiyonların boşa kullanılması önlenmektedir. Bu mantığa uygun örnekleri gelecek makalelerimizde vereceğiz.

F# Nedir?

Fonksiyonel programlama çözülmesi zor olan bilgisayar problemlerini basit yöntemler ile çözmemize yarıyor fakat genel programlama teknikleri ile yapılan çözümler için yeterince iyi değildi. Bu nedenle fonksiyonel programlama nesne tabanlı programlama mimarisinin mantıki yapısını da bünyesine katarak işlemlerin daha rahat yapılabilmesine olanak tanır. Nesne tabanlı mimari yapısını bünyesine katarken de fonksiyonel programlama prensiplerinden vazgeçilmeden bu hafif geçiş yapılmıştır. Birleşimlerin sonucunda da karşımıza diğerlerinin özelliklerini taşıyan fakat kendine özgü olan bir dil ortaya çıkmıştır. Bu dilin adı ise F# ‘dır. F#, fonksiyonel programlama dilinin daha da iyileştirilmiş halidir.

Diğer popüler fonksiyonel programlama dillerinden OCaml, Haskell, Lisp ve Scheme dillerinin içerikleri, geleneksel kullanım yapıları ve gereklilikleri F# dilinin içerisine çalışma prensibine zarar vermeyecek şekilde eklenmiştir. Ayrıca F# .NET dilinin gücünü de diğer dillerle birlikte bünyesine katmıştır. F#, yaratıcıları tarafından araştırmalar sonrasında kriterlere uygun ve düzgün görülen üç dilin birleştirilmesi sonucunda oluşmuştur. F# ile problemlerin üzerinden çalışılması ve çözüm yollarını ararken uğraştığımız metotların azalması avantajları arasında yer almıştır. F#, karmaşık fonksiyonların çözüm yöntemlerine getirdiği yaklaşımların çabukluğu açısından fonksiyonel programlamaya benzemesi ile birlikte günümüzün en iyi mimarisi olarak kabul edilen nesne tabanlı programlama tekniğini de problem çözümlerinde kullanabilmesi iyi kabul edilebilecek yaklaşımlarıdır. Üç farklı dilin birleşiminden oluştuğundan bahsetmiştik. F# oluşurken yararlandığı ilk yapı .net olmuştur. .NET ‘in temel sınıf kütüphanelerini kullanılmıştır. Kullanılan .net kütüphaneleri Base Class Libary(BCL) ‘dir. .NET bünyesinde bulunup da temel olarak kullanılan dillerde C# ve VB ’dir.

F# ‘ın nesnesel modelleri oluşturulurken ise OCaml ’i nesnesel programlama mimarisine aykırı olmayacak biçimde kullanılmaya çalışılmıştır. Tekniksel felsefisi ise .NET ‘ten alınmıştır. Derleme işlemleri için kullanılan mimaride Common Language Infrastructure (CLI) ‘dır. .NET ‘in genel yapı tipleri de F# ‘ın bünyesinde kullanılmaya devam edilmiştir.

F# ‘ı geliştiren kişi, England Cambridge üniversitesinden Dr. Don Syme ‘dir. Ayrıca Dr. Syme Microsoft Research Lab(MSL) ‘da da akademik programlama dilleri üzerine çalışma yapmaktadır. Fonksiyonel programlama dilinin .Net mimarisi ve Visual Studio IDE ‘si ile de uyumlu çalışması için oldukça fazla çalışması olmuştur.

F# ‘ı kimler kullanmalıdır sorusuna gelirsek, MSL çalışanlarının C# ile F# arasında yaptıkları testlerin sonuçlarına göre eğer finansal veriler, matematiksel işlemler ve matematik fonksiyonları ile yapacağımız işlemler var ise F# ‘ın performansının C# ‘a göre daha iyi olduğunu söylemektedirler. Ayrıca oldukça büyük verilerle veya Matlab de olduğu gibi matrisler ile matematiksel işlemleri yapmak istiyorsak yine C# yerine F# ile çalışmamız öneriliyor. Çünkü fonksiyonel programlama dilinin mimari yapısından ötürü F# ile yapacağımız karmaşık işlemlerin çözüm süresi oldukça kısalacaktır. Ayrıca .NET 4.0 gelişimlerinde matematik fonksiyonlarının daha ayrıntılı bir biçimde çözümlenebilmesi içinde Linear Algebra sınıflarının geliştirildiği bilinmektedir. Bu gelişimler esnasında yararlanılan yöntem yine fonksiyonel programlama teknikleridir.

Salı, Mart 18, 2008

Internet Explorer 8.0 Beta 'ya hata yaptırtmak

Merhabalar,

Can sıkıntısında beta ürünleri kurcalayan bir insan olduğum için bu seferki can sıkıntısında da internet explorer ile uğraşmaya başladım. Hata bulmak uğraştırır demiştim ama daha birinci dakika da internet explorer dan hata mesajı aldırabildim. :)

Bu işlem vista beta1 de bir haftamı almıştı. Daemon tools programı kurmak istediğimizde vistam çökmüş ve bir daha ebediye de kadar kendini açmak istememişti. :) Ama ilginç olan bir durum var. Bu yazılımın 3.x sürümünü kurmak istediğimizde SP1 yüklü vista pc lerde bile aynı hatayı vermeye devam ediyor. Demek ki hata bildirimlerimi dikkate alan olmamış. Olsun :)

Gelelim internet explorer 'in hatasını. Eğer kullanlarınız olduysa farketmişsinizdir. Bir metini seçtiğinizde bir hafif saydam biçimde buton gözüküveriyor. Bu buton da facebooktan google 'a pardon live search 'e kadar bir çok tag var. Bu taglarında arasında bir de live map servisi yer alıyor. Malum benim adım Tokat ilinin bir ilçesi olduğu için ( büyüklerimizin büyük isim koyma hatası sonucunda oluşan bir sonuçtur. Aslında İstanbul 'luyum. ) ben de adımın üstüne tutarak harita da Turhal ilçesini bulduruyordum. Bi ara canım çok sıkılmıştı ve dedim ben bu metnin hepsini seçeyim bakaım dünya da neresini bulmaya çalışacak. Ama normalde böyle bir şey yapmak istediğimizde bize herhangi bir sonuç vermemesi gerekiyor. Ama ie8.0 daha beta olduğu için o koca metni dünya üzerinde aramaya başlıyor. Sonuç mu? Kendini sonlandırma hatası:) Bende kendi kendime 1 dakika da hata buldum diye övünürken hata mesajını kapattıktan sonra saliseler (saniyenin 100 'de biri) sonra birden kapanan sayfa açıldı. Burda da kendime bu da sana ders olsun. Internet Explorer 'ı fazla kurcalama oldu.

Bu sorun ile ilgili ekran görüntüsü aşağıdaki gibidir. Bence sizde deneyin. Hatayı alması super. Ama karşı cevabı daha da super.

Ayrıca ie8.0 'ı kullanıyorsanız. Emulate 7.0 butonu basılı olarak kullanmanızı öneririm. Aksi taktirde Ajax ve CSS çağırmalarında bol bol hata alıyorsunuz ve çileden çıkabiliyorsunuz. Ama bu butonun Win. XP SP2 ile sorun verdiğini duydum. Zaten bu zamana kadar vistaya geçmemeye direndiyseniz biraz daha sabredin. Vista özellikli XP 'leriniz için SP3 Nisan da yayınlanacak. Bundan sonra ise Vista için yapılmış uygulamalarda XP 'de aldığınız hataları almamaya başlayacaksınız.

Untitled

Bir yazılımı ilk sürümlerinden itibaren takip ederseniz. Bu yazılım çıktığı zaman herkes öğrenmeye çalışırken siz bu yazılımı öğreten kişi tarafında olursunuz.

Herkese iyi çalışmalar...

Pazartesi, Mart 17, 2008

Bilsayayarımda kurulu olan Yazılımlar

Bu aralar bilgisayarınızı kullnırken hangi programları yüklüyorsunuz diye sorular almaya başladım. O yüzden buradan bilgisayarımda kurulu olan yazılımların listesi veriyorum. Ayrıca bilgisayara kurulmadan çalışan Java editörü Eclipse ve bu editörü kullanırken server olarak kullandığım apache-tomcat listede gözükmemektedir.

  • 2007 Microsoft Office Suite Service Pack 1 (SP1)
  • ADO.NET Entity Framework 1.0 (Pre-Release Version)
  • Adobe AIR
  • Adobe Anchor Service CS3
  • Adobe Asset Services CS3
  • Adobe Bridge CS3
  • Adobe Bridge Start Meeting
  • Adobe Camera Raw 4.0
  • Adobe CMaps
  • Adobe Default Language CS3
  • Adobe Device Central CS3
  • Adobe Dreamweaver CS3
  • Adobe ExtendScript Toolkit 2
  • Adobe Extension Manager CS3
  • Adobe Flash Player ActiveX
  • Adobe Flash Player Plugin
  • Adobe Help Viewer CS3
  • Adobe PDF Library Files
  • Adobe Setup
  • Adobe Type Support
  • Adobe Update Manager CS3
  • Adobe Version Cue CS3 Client
  • ATK0100 ACPI UTILITY
  • avast! Antivirus
  • Bilisim Sözlügü 1.0 b140
  • BisonCam, USB2.0
  • CCleaner (remove only)
  • Crystal Reports Basic for Visual Studio 2008
  • Dassault Systemes Software Prerequisites x86
  • FlashGet 1.9.6.1073
  • Foxit Reader
  • GDR 3054 for SQL Server Database Services 2005 ENU (KB934458)
  • GDR 3054 for SQL Server Reporting Services 2005 ENU (KB934458)
  • GDR 3054 for SQL Server Tools and Workstation Components 2005 ENU (KB934458)
  • Highlight Viewer (Windows Live Toolbar)
  • Hotfix for Microsoft Visual Studio Team System 2008 Team Suite - ENU (KB946344)
  • Hotfix for Microsoft Visual Studio Team System 2008 Team Suite - ENU (KB946581)
  • Hotfix for Microsoft Visual Studio Team System 2008 Team Suite - ENU (KB947173)
  • iTunes
  • K-Lite Mega Codec Pack 1.25
  • Map Button (Windows Live Toolbar)
  • MATLAB Family of Products Release 14
  • Microsoft .NET Compact Framework 2.0 SP2
  • Microsoft .NET Compact Framework 3.5
  • Microsoft .NET Framework 3.5
  • Microsoft ASP.NET 3.5 Extensions CTP
  • Microsoft ASP.NET Futures (July 2007)
  • Microsoft ASP.NET MVC Preview 2
  • Microsoft Device Emulator version 3.0 - ENU
  • Microsoft Document Explorer 2008
  • Microsoft Document Explorer 2008 (6001.18000.367)
  • Microsoft Expression Blend 2 December Preview
  • Microsoft Expression Blend 2.5 March 2008 Preview
  • Microsoft Expression Design SP1
  • Microsoft Expression Web
  • Microsoft Expression Web MUI (English)
  • Microsoft Expression Web Service Pack 1 (SP1)
  • Microsoft Office 2003 Web Components
  • Microsoft Office Access MUI (English) 2007
  • Microsoft Office Access Setup Metadata MUI (English) 2007
  • Microsoft Office Enterprise 2007
  • Microsoft Office Excel MUI (English) 2007
  • Microsoft Office Groove MUI (English) 2007
  • Microsoft Office Groove Setup Metadata MUI (English) 2007
  • Microsoft Office InfoPath MUI (English) 2007
  • Microsoft Office OneNote MUI (English) 2007
  • Microsoft Office Outlook MUI (English) 2007
  • Microsoft Office PowerPoint MUI (English) 2007
  • Microsoft Office Professional Edition 2003
  • Microsoft Office Proof (English) 2007
  • Microsoft Office Proof (French) 2007
  • Microsoft Office Proof (Spanish) 2007
  • Microsoft Office Proofing (English) 2007
  • Microsoft Office Publisher MUI (English) 2007
  • Microsoft Office Shared MUI (English) 2007
  • Microsoft Office Shared Setup Metadata MUI (English) 2007
  • Microsoft Office Visio 2007 Service Pack 1 (SP1)
  • Microsoft Office Visio MUI (English) 2007
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Visual Web Developer 2007
  • Microsoft Office Visual Web Developer MUI (English) 2007
  • Microsoft Office Word MUI (English) 2007
  • Microsoft Silverlight
  • Microsoft Silverlight 2.0 SDK Beta1
  • Microsoft Silverlight Tools Beta 1 for Visual Studio 2008
  • Microsoft SQL Server 2005
  • Microsoft SQL Server 2005 Backward compatibility
  • Microsoft SQL Server 2005 Compact Edition [ENU]
  • Microsoft SQL Server 2005 Reporting Services
  • Microsoft SQL Server 2005 Tools
  • Microsoft SQL Server 2008
  • Microsoft SQL Server 2008 Tools
  • Microsoft SQL Server Compact 3.5 Design Tools ENU
  • Microsoft SQL Server Compact 3.5 ENU
  • Microsoft SQL Server Compact 3.5 for Devices ENU
  • Microsoft SQL Server Database Publishing Wizard 1.2
  • Microsoft SQL Server Native Client
  • Microsoft SQL Server Setup Support Files (English)
  • Microsoft SQL Server VSS Writer
  • Microsoft VC Redist 2008 (6001.18000.367)
  • Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022
  • Microsoft Visual C++ Compilers 2008 Standard Edition - enu - x86
  • Microsoft Visual Studio 2005 Tools for Office Runtime
  • Microsoft Visual Studio 2005 Web Deployment Projects
  • Microsoft Visual Studio 2008 Performance Collection Tools - ENU
  • Microsoft Visual Studio Team System 2008 Team Suite - ENU
  • Microsoft Visual Studio Web Authoring Component
  • Microsoft Windows SDK .NET Framework Tools
  • Microsoft Windows SDK for Visual Studio 2008 .NET Framework Tools
  • Microsoft Windows SDK for Visual Studio 2008 SDK Reference Assemblies and IntelliSense
  • Microsoft Windows SDK for Visual Studio 2008 Tools
  • Microsoft Windows SDK for Windows Server 2008 (6001.18000.367)
  • Microsoft Windows SDK for Windows Server 2008 .NET Documentation (6001.18000.367)
  • Microsoft Windows SDK for Windows Server 2008 Common Utilities (6001.18000.367)
  • Microsoft Windows SDK for Windows Server 2008 Headers and Libraries (6001.18000.367)
  • Microsoft Windows SDK for Windows Server 2008 Samples (6001.18000.367)
  • Microsoft Windows SDK for Windows Server 2008 Utilities for Win32 Development (6001.18000.367)
  • Microsoft Windows SDK for Windows Server 2008 Win32 Documentation (6001.18000.367)
  • Microsoft Windows SDK Intellisense and Reference Assemblies (6001.18000.367)
  • Microsoft Windows SDK MDAC Headers and Libraries (6001.18000.367)
  • Microsoft Windows SDK Net Fx Interop Headers And Libraries (6001.18000.367)
  • Mozilla Firefox (2.0.0.12)
  • MSDN Library for Visual Studio 2008 - ENU
  • New York Times - Times Reader
  • Paint.NET v3.22
  • Picasa 2
  • QuickTime
  • Realtek AC'97 Audio
  • Security Update for Excel 2007 (KB946974)
  • Security Update for Office 2007 (KB947801)
  • Security Update for Outlook 2007 (KB946983)
  • Smart Menus (Windows Live Toolbar)
  • Update for Microsoft Visual Studio Team System 2008 Team Suite - ENU (KB949325)
  • Update for Outlook 2007 Junk Email Filter (kb947945)
  • VC Runtimes MSI
  • Virtual Earth 3D (Beta)
  • Visual Studio 2005 Tools for Office Second Edition Runtime
  • Visual Studio Tools for the Office system 3.0 Runtime
  • Winamp
  • Windows Live Favorites for Windows Live Toolbar
  • Windows Live installer
  • Windows Live Messenger
  • Windows Live Sign-in Assistant
  • Windows Live Toolbar Extension (Windows Live Toolbar)
  • Windows Live Tools for Microsoft Visual Studio CTP
  • Windows Live Writer
  • Windows Mobile 5.0 SDK R2 for Pocket PC
  • Windows Mobile 5.0 SDK R2 for Smartphone
  • Windows Mobile 6.0 SDK Standart for Pocket PC
  • Windows Mobile 7.0 alpha SDK
  • Windows SDK Intellidocs
  • WinRAR archiver
  • Yurtici Kargo - 1
  • Yurtici Kargo - 2

Çok karmaşık bir liste gibi gözüksede genel yoğunluğu Visual Studio, MS Office oluşturmaktadır.

Pazar, Mart 16, 2008

İnternet Explorer 8.0 Yenilik

İnternet Explorer 8.0 kullanmaya başlayanlar bu özelliğin farkına varmıştır. Varmayanlar için de ben haber vereyim dedim. Eskiden alışık olduğun iexplorer hatası sonucunda internet taraycımızın kapanması olayı internet explorer 8.0 ile devam ediyor. Tabii bu devamlılık sürerken güzel bir çözüm getirilmiş. Eğerki bu hatadan dolayı tarayıcımız kapanırsa tekrardan tarayıcımız açılarak açık olan sayfalarımız kurtarılmış olarak geri dönüyor.

Şimdi içinizden söyle bir şey geçebilir Mozilla ve Opera zaten bunu yapıyordu. Evet yapıyordu ama dünyada en çok kullanılmakta olan internet tarayıcısı yapamıyordu. Ama artık yapıyor. Basit kullanıcılar açısında çok büyük bir gelişim olacak. Ayrıca bir noktaya da değinmek istiyorum. Mozilla ile ie8 arasında ki bellek harcama performansı arasında 10 kata yakın bir fark var. Mozilla daha fazla harcıyor. ie isedaha hız. İlk gördüğümde ben de şaşırdım ama gerçek :)

Sayfayı geri kurtarma ile ilgili ekran görüntüsü aşağıdadır.

ie8

Cumartesi, Mart 08, 2008

Internet Explorer 8.0 Beta1

Greetings from the Internet Explorer Team! We are nearing the launch of Windows Internet Explorer 8 Beta 1 and we will be making it available for the general public to download and test. IE8 Beta 1 is focused on the developer community, with the goal of gaining valuable feedback to improve Internet Explorer 8 during the development process. We have identified you as a qualified beta tester and we would like to offer an opportunity to join our limited technical beta program for Windows Internet Explorer 8 Beta 1. Participation in the Technical Beta will enable you to evaluate a common release of Windows Internet Explorer 8, the ability to submit feedback, post bug reports, download software answer surveys on product quality as well as vote on top bugs filed by others from the technical beta program. This is a very exclusive program, by invitation only. The only way to submit feedback is to enroll in the Windows Internet Explorer 8 Technical Beta program. As such, we would be happy to have your participation.To accept this invitation and to apply to become a member of this program, follow this link: http://connect.microsoft.com/InvitationUse.aspx?ProgramID=2038 (If this link does not work for you, copy the full link and paste it into the Web browser address bar.) Follow the steps shown to you by that program to apply to become an active participant.
You may be asked to take a survey, or submit other preliminary information. To report a problem or to ask a question, visit the Contact Us page (found at the bottom of every page). We hope to see you in the technical beta!


Internet Explorer home page product image,



Best regards.

See you later...

Cumartesi, Mart 01, 2008

Internet Explorer 8 Beta gün sayıyor

Merakla beklenen Internet Explorer 8'in ilk betası yakında beta testçilere gönderilmeye başlanacak.

Kısa bir süre önce Microsoft'un beta testçilerine gönderdiği bir e-posta, Internet Explorer 8'in 1. betasının çok yakında dağıtılmaya başlanacağının ipuçlarını veriyor.

Beta'nın aynı zamanda tüm internet kullanıcılarına da açılacağı tahmin ediliyor. Activewin sitesinde Microsoft tarafından gönderilen bilgilerin tüm detaylarına ulaşmak mümkün. Sayfaya "http://www.activewin.com/awin/comments.asp?HeadlineIndex=42767" adresinden ulaşılabiliyor.

Microsoft'un Internet Explorer 8'in ilk tanıtımını Las Vegas'ta Mix'08 konferansında yapabileceğini zaten daha önce duyurmuştuk. Mart başında düzenlenecek olan konferansta tanıtılacak olan Internet Explorer 8'in güncel tüm web ve internet standartlarını destekleyeceği, alınan bilgiler arasında.