Kısa Sınav - 17

Aşağıdaki kod bloğunu çalıştırdığımızda ekranda hangi sonuçlar yazar?

Console.WriteLine(26 % 4 * 3);

Console.WriteLine(4 / 3 + 2);

var fiyat = 4; var indirim = 5;

Console.WriteLine(fiyat - indirim++);

byte rakam = 255;

Console.WriteLine(++rakam);

Windows 8 Metro Style ilk uygulamamız

Windows 8 Programlama makalelerinde ilk uygulamamızı geliştirmeye başlıyoruz.

Windows 8 Başlangıç Ekranımızda (Start Screen) Visual Studio 2011 üzerine tıklayarak, yeni bir Visual Studio 2011 başlatıyoruz.

File / New / Project menüsünden Windows Metro Style kategorisindeki Application proje şablonunu seçiyoruz ve MetroStyleIlkUygulama ismini vererek projemizi oluşturuyoruz.

Proje oluşturulduğunda Visual Studio 2011 varsayılan olarak MainPage.xaml dosyasını açıyor. Uygulamamızın başlangıç ekranı varsayılan olarak MainPage.xaml dosyasıdır.

Grid elementi içerisine bir button, bir de label eklemek için aşağıdaki satırları yazıyoruz;

<Button Content=”Mesaj Göster” FontSize=”28” Width=”250” Height=”80” HorizontalAlignment=”Center” /> <TextBlock x:Name=”MessageText” FontSize=”48” Foreground=”White” /></pre>

WPF ve Silverlight‘ta Label nesnesi oluşturmak için TextBlock nesnesi kullanmamız gerekiyor. Bu elementler ile ekranımıza Mesaj Göster metinli bir button ve metin içermediği için ekranda gözükmeyen bir textblock nesnesi koymuş olduk.

Fakat bu kontrolleri ekranda ortalayabilmek için bir StackPanel içerisine koymamız gerekiyor;

<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
    <Button Content="Mesaj Göster" FontSize="28" Width="250" Height="80" HorizontalAlignment="Center" />
    <TextBlock x:Name="MessageText" FontSize="48" Foreground="White" />
</StackPanel>

StackPanel ve Button elemanlarına verdiğimiz Alignment özellikleri sayesinde elemanları ekranda ortalıyoruz.

Son olarak Button element’imize

Click="Button_Click"

özelliğini ekleyelim. Böylece butona tıklanma event‘i ile tetiklenen bir method‘umuz oluyor.

MainPage.xaml.cs dosyasına;

private void Button_Click(object sender, RoutedEventArgs e)
{
    MessageText.Text = "Windows 8 üzerinde çalışan\r\nilk uygulamamız!!";
}

method’unu ekliyoruz.

Son olarak F5 tuşuna basarak projeyi test amaçlı çalıştırıyoruz. Uygulama açılışında ilk önce bekleme ekranı ekrana geliyor.

Fakat çok kısa süre içerisinde ilk ekranımız açılıyor.

Butona tıkladığımızda TextBlock metin ile doluyor.

Kodların tamamı;

<UserControl x:Class="MetroStyleIlkUygulama.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="768" d:DesignWidth="1366">

<Grid x:Name="LayoutRoot" Background="#FF0C0C0C">
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <Button Content="Mesaj Göster" FontSize="28" Width="250" Height="80" HorizontalAlignment="Center" Click="Button_Click" />
        <TextBlock x:Name="MessageText" FontSize="48" Foreground="White" />
    </StackPanel>
</Grid>

</UserControl>


Dosya boyutu almak için Head isteğinde bulunmak

Uygulamalarımızda internet üzerindeki bir dosyanın boyut bilgisine ihtiyacımız olabilir.

Yapmamız gereken; dosyaya istekte bulunup Length özelliğinden dosya boyutu bilgisini almak.

var DosyaKonum = “/assets/uploads/2011/07/FPSOrnek.rar”;

WebClient wc = new WebClient(); var Dosya = wc.DownloadData(DosyaKonum);

int DosyaBoyut = Dosya.Length;</pre>

Bu yöntemin en önemli dezavantajı, dosyanın boyut bilgisini alabilmek için dosyayı gerçekten download etmemiz gerekiyor. Özellikle büyük boyutlu dosyalarda bu yöntem büyük problemlere yol açacaktır.

Aslında yapılan isteğin sonucunun Başlık (Header) bilgisinde dosya boyutu yer alıyor. Eğer Başlık‘tan (Header) boyut bilgisine ulaşabilirsek dosyayı download etmemize gerek kalmaz.

var DosyaKonum = "/assets/uploads/2011/07/FPSOrnek.rar";

var Request = WebRequest.Create(DosyaKonum);

Request.Method = "HEAD";

var Response = Request.GetResponse();

var DosyaBoyut = Response.Headers[HttpResponseHeader.ContentLength];


Öncelikle WebRequest sınıfının *static* Create() method'u sayesinde, parametresinde adresi verilmiş dosyaya bir **istek** oluşturuyoruz.

*Request* değişkeninin GetResponse() method'undan sonuç bilgisini almadan önce Method özelliğine **HEAD** değerini atıyoruz.

Böylece istek sonucunda, dosyanın içeriğinin değil **sadece başlık bilgisinin** bulunmasını sağlıyoruz.

HttpResponseHeader enum'ında yeralan **ContentLength** değeri ile *Response* değişkeninin Headers özelliğinden **dosyanın boyut bilgisine** ulaşabiliyoruz.

Windows 8 Programlama Ortamını Hazırlayalım

Windows 8 üzerinde geliştirme yapabilmemiz için öncelikle bilgisayarımıza Windows 8 ve Visual Studio 2011 kurmuş olmamız lazım.

Windows 8 Programlama makalemde kurulumlar ile ilgili bilgi vermiştim.

Eğer MSDN üyeliğiniz varsa, Visual Studio 2011 Ultimate Edition kurmanızı tavsiye ederim.

Kurulum penceresi sade hazırlanmış;

Kurulum tamamlandıktan sonra Visual Studio 2011‘imizi ilk defa çalıştırıyoruz;

Hemen hemen her Visual Studio sürümü ilk çalıştırıldığında bu ekrana benzer bir ekran ile karşılaşırız. Ben Visual C# Development Settings tercihini yaptım, Local Help Documentation seçeneğinden de None seçtim.

Kısa bir yapılandırmanın ardından Visual Studio 2011 Splash Screen ekrana geldi.

Başlangıç ekranımız Visual Studio 2010‘dan farklı değil, Visual Studio 2008‘den beri çok az değişiklik gösterdi.

Help / About Microsoft Visual Studio menüsünden Hakkında penceresini açtığımızda, bilgisayarımıza Visual Studio bileşenlerinin 11. versiyonlarının ve .Net 4.5 versiyonunun kurulu olduğunu görüyoruz.

File / New Project menüsünden yeni bir proje oluşturmak için New Project dialog kutusunu açtığımızda Metro Style proje şablonlarının geldiğini görüyoruz.

Bu ekranda Grid Application ve Split Application seçeneklerinden birini seçebiliriz.

Ofisten küçük bir görüntü; yeni proje şablonunu açtıktan sonra ilk dakikalar;

Windows 8 Programlama başlığını takip ederek özellikle Metro Style uygulama geliştirme konusunda daha ayrıntılı bilgiye sahip olabilirsiniz.

Windows 8 Programlama

Windows 8 henüz piyasa sürülmeden (aslında Beta sürümü bile çıkmadan) hayatımıza girmeye başladı.

Windows 8 Programlama başlığı altında Windows 8 üzerinde (özellikle Metro Style) uygulama geliştirme tecrübelerimi paylaşıyor olacağım.

Bu yazıyı yazdığım gün Windows 8‘in Geliştiricilere Özel sürümleri ücretsiz olarak Microsoft‘un kendi sitesinden indirilebiliyor;

Windows Developer Preview with developer tools English, 64-bit (x64) (4.8 GB)

Windows Developer Preview English, 64-bit (x64) (3.6 GB)

Windows Developer Preview English, 32-bit (x86) (2.8 GB)

Sistem Gereksinimleri

Windows Developer Preview, Windows Vista ve Windows 7 çalıştırdığınız tüm bilgisayarlarda performans kaybı olmadan çalışacaktır;

  • 1 GHz veya daha hızlı 32-bit (x86) / 64-bit (x64) işlemci
  • 1 GB RAM (32-bit) veya 2 GB RAM (64-bit)
  • 16 GB hard disk alanı (32-bit) veya 20 GB hard disk alanı (64-bit)
  • DirectX 9 veya üstü destekli ekran kartı
  • MetroUI Style uygulamaları çalıştırabilmek için en az 1024 X 768 ekran çözünürlüğü

Ben temiz bir bilgisayara Windows Developer Preview with developer tools English, 64-bit (x64) versiyonunu kurduktan sonra MSDN üyelerine açık olan Visual Studio 2011 Ultimate Edition‘ı da kurdum.

Böylece Windows‘un üzerine kurulu gelen Visual Studio 2011 Express Edition‘da henüz oluşturamadığımız proje şablonlarını da görebilmiş oldum.

Windows 8 Programlama makalelerimde yazacağım uygulamalar için Express Edition yeterli olacak.

Engin Polat hakkında

Chief Architect, Microsoft RD, Microsoft MVP

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 458

Creative Commons Lisansı