Volkan Atasever

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve daha bir çok yazılarım...

Windows Phone 7&7.5 Mango kitabım çok yakında çıkıyor

clock Aralık 4, 2011 23:55 by author Volkan Atasever

Eser Hakkında Tanıtım:                             

Microsoft’un yeni işletim sistemi olan Windows Phone 7&7.5 Mango, devrim niteliğindeki yeniliklerle mobil dünyasında gücünü göstermeye başladı. Siz de Windows Phone 7&7.5 uygulamaları yapmaya ilk adımlarınızı bu kitap ile atarken, mobil platformlar arasında en gözde ve en yeni işletim sistemi olan Windows Phone 7&7.5 serisi ile programlamanın tüm ayrıntılarını bu kitapta bulacaksınız.  Yazılım geliştiricileri, bilgisayar programcıları, yazılım mühendisleri ve bilgisayar mühendisleri Windows Phone 7&7.5 ile programlamayı bu kitapla rahatlıkla öğrenebilecektir. Uygulama örnekleriyle dolu kitapta, en etkin çözümleri en kısa sürede öğrenebilecek ve projelerinizde kullanabileceksiniz.

Kitapta yer alan başlıca konu başlıkları şöyledir:

  • Windows Phone 7&7.5 Arayüz Dizaynı
  • Animasyonlar
  • Yeni Nesil Bilgi Girişi
  • Cihaz Uygulamaları
  • Sensörler
  • Navigasyon ve Haritalar
  • Bulut Programlama
  • XNA ile Oyun Programlama
  • Twitter Uygulaması
  • Acil Durum Bilgi Sistemi
  • Uygulamaları Markette Açmak
  • Kamera ile Çalışmak
  • Telefon Özelliği ile Çalışmak
  • SMS Özelliği ile Çalışmak
  • E-Mail Özelliği ile Çalışmak
  • Acil Durum Bilgi Sistemi
  • … ve Daha Fazlası



Mobil olmak terimi; son yıllarda çok sık kullandığımız bir terimdir. Tam sözlük karşılığı; hareket halinde olmak demek, yani bir cihaza veya bir sektöre verilen bir isim değil aslında. Mobil olan, yani diğer değişle gezgin olan bizleriz. Bizim gezgin bir hale gelmemizi sağlayan kolay taşınabilen araçlar ise mobil cihazlar. İşte bu cihazlardan olan cep telefonu için geliştirilen işletim sistemimiz olan Windows Phone, yepyeni özellikleriyle insanların iletişim ihtiyaçları için tasarlanmış bir platformu oluşturuyor. Yazılım geliştiriciler için bu mükemmel bir fırsat demek. Çünkü gelişmekte olan mobilite ile birlikte kullanıcıların uygulamalara her zaman ve her yerden erişme istekleri hızla artıyor. Bunun yanında daha bugün hayalini bile kurmadığımız birçok yeni iletişim ve etkileşim yöntemi için mobil cihazlar üzerindeki uygulamalar, yepyeni ufuklar açıyor olacak.
Tüm bunları üstü üste koyduğunuzda değerli Volkan Atasever tarafından yazılmış olan bu kitabın, geleceğe yönelik yazılımcılara ne kadar önemli bilgiler içerdiğini görmek mümkün. Maltepe Üniversitesi’nden bu yana kendisini yakından tanıdığım ve başarılarını hep takdir ettiğim Volkan Atasever’in bu kitabının da çok başarılı bir kaynak kitap olacağından hiç şüphem yok. Keyifli okumalar…

                                                                                              Mehmet Nuri ÇANKAYA
                                                                  Bölge Pazarlama Müdürü Microsoft Orta Doğu ve Afrika


Ülkemizde bilişim teknolojisinin geldiği son noktalardan biri olan Windows Phone 7 ile Programlama konusunda; gerek sektördeki gerekse akademik dünyadaki çalışanlara, öğrencilere, hali hazırda eksikliği hissedilen böyle bir kitabı yazmak kanımca önemli bir başarıdır.

Çünkü ülkemizde bilişim teknolojisi alanında kitap yazmak, iki açıdan diğer alanlara göre çok daha zor ve risklidir. Birinci risk, inanılmaz ilerleme hızı nedeniyle kitabın kısa sürede eskimesi. İkinci risk ise hem sektöre hem de öğrenci ve akademisyen kitlesine cevap verebilmenin zorluklarıdır.

Ülkemizin genç ümitlerinde biri olduğuna inandığım, mesleğinde başarı merdiveninin basamaklarını emin adımlarla çıkan, henüz daha öğrenci iken bu konudaki yeteneklerini çok yakından keşfettiğim Volkan Atasever’in böylesine zorluklara ve risklere göğüs gererek bilişim teknolojisi alanında bir kitap yazması, bence bilişim dünyasının da bir sevincidir.

Kitap, içerik açısından oldukça zengin uygulama örnekleri ile geliştirilmiş ve konuya ilgi duyan tüm kişilere kolaylıkla erişmeyi başarmıştır. Kitap, Bilgisayar Programcılığı ön lisans programına, Bilgisayar Mühendisliği lisans düzeyine ve ilgili sektörlerdeki çalışanlara cevap verebilir niteliktedir.

 

Son olarak söyleyebileceğim ve yaklaşımı olarak da son derece olumlu bulduğum nokta, Volkan Atasever’in yazdığı tüm eserlerinin arkasında durmasıdır. Bu kitabının da gelişen teknolojik ilerlemeler nedeni ile eskimesine izin vermeyecek, yeni versiyonlarını geliştirecektir.

Volkan Atasever’in Windows Phone 7 ile Programlama adlı yeni kitabının tüm ilgili kişilere yararlı olmasını diliyor ve eğitim dünyasına hoş geldin diyorum.

                                                                             Abdulkadir ERDEM
                                                Maltepe Üniversitesi M.Y.O Bilgisayar Teknolojileri Bölüm Başkanı


Yazar Hakkında:

Yazılım dünyasına BASIC ve C/C++ dili üstünde uygulamalar geliştirerek adım atan yazarımız; daha sonra C#, VB.NET ve Java dilleri ile uygulamalar geliştirmiştir. Bilgisayar Mühendisi olarak görev yapan yazarımız yazılım dünyasına mühendislik metodolojileriyle yaklaşarak, en verimli ve performanslı uygulamalar geliştirmeyi ilke edinmiştir. Ineta topluluklarında uzun zaman yazarlık ve editörlük yaptıktan sonra, DeveloperMania.Net sitesinin topluluk lideri olmuştur. INETA UG Lead olarak çeşitli çalışmalar yapmaktadır. Microsoft'un Akademik sitesi MSAkademik.Net’te VB.NET editörlüğü yapmıştır. Speaker olarak çeşitli üniversite ve eğitim merkezinde seminer vermektedir. Microsoft Sharepoint Server sertifikasını almıştır. AR-GE çalışmaları, mobil uygulamalar, ASP.NET, MOSS 2007, SQL Server, Windows ve yazılım içeren her teknoloji üstünde projeler geliştirmektedir. Bilgisayar ve teknoloji dergilerinde yazarlık yapmaktadır. Dünyanın en çok satan bilgisayar dergisi PCWorld'de 16 ay boyunca Mobil Programlama köşesinde yazmıştır. Ulusal Akademik Konferanslar’ında akademik bildiri ve makale yazmaktadır. Şubat 2011 tarihinde Inhoftec Solutions Yazılım Çözümleri’ni kurup, faaliyetlerini firma içinde sürdürmektedir.

Yazarımızın KODLAB’tan daha önce Mobil Programlama adlı kitabı çıkmıştır.

Barkod    978.605.420.5615
Eser Adı    WINDOWS PHONE 7&7.5 MANGO
Üst Başlık    Mobil dünyasının vazgeçilmezi
Eserin Dili    Türkçe
Yazar Adı    Volkan ATASEVER
Yayına Hazırlayan    Uğur GELİŞKEN
Grafik Sorumlusu    Mustafa Said ŞAHİN
Kategori    Mobil Programlama
Kâğıt Bilgisi    1.Hamur 70.gr
Çıkış Tarihi    12.12.2011
Sayfa Sayısı    312
Ebat X, Y, Z(mm.)    15 x 21
Isbn    978–605–4205–61–5

 

Basın bülteni ve tanıtım için: http://kodlab.com/#/detay&kitap=windowsphonemango




WP7 ile ilk XNA projesi

clock Aralık 1, 2010 03:09 by author Volkan Atasever

Windows Phone 7 bildiğiniz gibi temel olarak iki proje tipini sunmaktadır. Bunlar Silverlight proje tipi ve XNA proje tipi. Silverlight ile günlük, ticari ve eğlenceye yönelik uygulamaları yaparken XNA kullanarak Windows Phone 7 cihazları için eğlenceli oyunlar yapabilmekteyiz. Alt katmanda ortak kullanılan bileşenlerle birlikte yapabilecekleriniz aslında hayal gücünüzle sınırlı.

Nedir bu XNA ve nerelerde kullanılır ? Bunu bir grafikle açıklamak isterim XNA çoklu platform desteği sunmaktadır. Windows 7, Windows Phone 7 ve XBOX 360 desteklemektedir.

Bir XNA projesinin çalışma prensibini bilmek en önemli noktalardan biridir. Başlangıç değerleri ile başlanır, içerikler yüklenir ve durmadan bir Update – Load döngüsü devam eder. Bununla ilgili grafiği aşağıda görebilirsiniz.

 

Öncelikle bir XNA projesi başlatalım. Bunun için Windows Phone 7 SDK’sı yüklenmiş bir Visual Studio 2010 veya Visual Studio 2010 Express for Windows Phone kullanmanız gerekmektedir.

 

Bir proje başlatıyoruz. Windows Phone 7 için bir XNA projesi yapacağımız için XNA sekmesine gelmemiz lazım.

Burada Windows Phone Game (4.0) seçeneğini seçiyoruz. Bu arada projemizin lokasyonunu, ismini ve çözüm ismini burada belirtiyoruz.

 

Projemizi açtığımzıda bir dizayn penceresi göremeyeceksiniz. Bu oyun programlama prensibinin ilk adımıdır.  Projeyle gelen ilk kod aşağıdaki gibidir.

 

using System;

using System.Collections.Generic;

using System.Linq;

using Microsoft.Xna.Framework;

using Microsoft.Xna.Framework.Audio;

using Microsoft.Xna.Framework.Content;

using Microsoft.Xna.Framework.GamerServices;

using Microsoft.Xna.Framework.Graphics;

using Microsoft.Xna.Framework.Input;

using Microsoft.Xna.Framework.Input.Touch;

using Microsoft.Xna.Framework.Media;

 

namespace WindowsPhoneGame1

{

    ///<summary>

    /// This is the main type for your game

    ///</summary>

    public class Game1 : Microsoft.Xna.Framework.Game

    {

        GraphicsDeviceManager graphics;

        SpriteBatch spriteBatch;

 

        public Game1()

        {

            graphics = new GraphicsDeviceManager(this);

            Content.RootDirectory = "Content";

 

            // Frame rate is 30 fps by default for Windows Phone.

            TargetElapsedTime = TimeSpan.FromTicks(333333);

        }

 

        ///<summary>

        /// Allows the game to perform any initialization it needs to before starting to run.

        /// This is where it can query for any required services and load any non-graphic

        /// related content.  Calling base.Initialize will enumerate through any components

        /// and initialize them as well.

        ///</summary>

        protected override void Initialize()

        {

            // TODO: Add your initialization logic here

 

            base.Initialize();

        }

 

        ///<summary>

        /// LoadContent will be called once per game and is the place to load

        /// all of your content.

        ///</summary>

        protected override void LoadContent()

        {

            // Create a new SpriteBatch, which can be used to draw textures.

            spriteBatch = new SpriteBatch(GraphicsDevice);

 

            // TODO: use this.Content to load your game content here

        }

 

        ///<summary>

        /// UnloadContent will be called once per game and is the place to unload

        /// all content.

        ///</summary>

        protected override void UnloadContent()

        {

            // TODO: Unload any non ContentManager content here

        }

 

        ///<summary>

        /// Allows the game to run logic such as updating the world,

        /// checking for collisions, gathering input, and playing audio.

        ///</summary>

        ///<param name="gameTime">Provides a snapshot of timing values.</param>

        protected override void Update(GameTime gameTime)

        {

            // Allows the game to exit

            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)

                this.Exit();

 

            // TODO: Add your update logic here

 

            base.Update(gameTime);

        }

 

        ///<summary>

        /// This is called when the game should draw itself.

        ///</summary>

        ///<param name="gameTime">Provides a snapshot of timing values.</param>

        protected override void Draw(GameTime gameTime)

        {

            GraphicsDevice.Clear(Color.CornflowerBlue);

 

            // TODO: Add your drawing code here

 

            base.Draw(gameTime);

        }

    }

}

İşe yara birşeyler yapmamız için işe yarar bir kod yazmamız gerekmektedir. Yukarıdaki grafikte incelediğimiz gibi oyun esnasında Update ve Draw döngüsü geçmekte.

Fakat bizim yapmamız gereken bir iş yapabilen XNA projesi yapmak olmalıdır. Bunun için MSDN kaynaklarından faydalanıp biraz geliştirdiğim bir kod parçası üzerinden giderken MSDN üzerinde anlatılmayan hatalardan ve çözümlerinden bahsedeceğim.

using System;

using System.Collections.Generic;

using System.Linq;

using Microsoft.Xna.Framework;

using Microsoft.Xna.Framework.Audio;

using Microsoft.Xna.Framework.Content;

using Microsoft.Xna.Framework.GamerServices;

using Microsoft.Xna.Framework.Graphics;

using Microsoft.Xna.Framework.Input;

using Microsoft.Xna.Framework.Input.Touch;

using Microsoft.Xna.Framework.Media;

 

namespace XnaHelloPhone

{

    public class Game1 : Microsoft.Xna.Framework.Game

    {

        GraphicsDeviceManager graphics;

        SpriteBatch spriteBatch;

        Texture2D logoTexture;

        Vector2 logoPosition;

 

        public Game1()

        {

            graphics = new GraphicsDeviceManager(this);

            Content.RootDirectory = "Content";

 

            // Frame rate is 30 fps by default for Windows Phone.

            TargetElapsedTime = TimeSpan.FromSeconds(1 / 30.0);

        }

 

        protected override void Initialize()

        {

            // TODO: Add your initialization logic here

 

            base.Initialize();

        }

 

        protected override void LoadContent()

        {

            // Create a new SpriteBatch, which can be used to draw textures.

            spriteBatch = new SpriteBatch(GraphicsDevice);

 

            // TODO: use this.Content to load your game content here

            logoTexture = Content.Load<Texture2D>("volkanatasever");

 

            Viewport viewport = graphics.GraphicsDevice.Viewport;

            logoPosition = new Vector2(

                (viewport.Width - logoTexture.Width) / 2,

                (viewport.Height - logoTexture.Height) / 2);

        }

        protected override void UnloadContent()

        {

            // TODO: Unload any non ContentManager content here

        }

        protected override void Update(GameTime gameTime)

        {

            // Allows the game to exit

            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)

                this.Exit();

 

            // TODO: Add your update logic here

            TouchCollection touchCollection = TouchPanel.GetState();

            if (touchCollection.Count > 0)

            {

                TouchLocation t1 = touchCollection[0];

 

                double x = t1.Position.X - (logoPosition.X + (logoTexture.Width / 2));

                double y = t1.Position.Y - (logoPosition.Y + (logoTexture.Height / 2));

                double speed = Math.Sqrt(x * x + y * y) / 20;

 

                double angle = (float)Math.Atan2(y, x);

 

                logoPosition.X += (float)(speed * Math.Cos(angle));

                logoPosition.Y += (float)(speed * Math.Sin(angle));

            }

 

            base.Update(gameTime);

        }

        protected override void Draw(GameTime gameTime)

        {

            GraphicsDevice.Clear(Color.Red);

 

            // TODO: Add your drawing code here

            spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);

            spriteBatch.Draw(logoTexture, logoPosition, Color.White);

            spriteBatch.End();

 

            base.Draw(gameTime);

        }

    }

}

 

Bu program sayesinde arka planı kırmızı olan bir uygulamada hareket edebilen bir resme sahip olacağız.

Uygulamadan görüntüler:



WP7 ile Aldığım ilginç Hata!

clock Kasım 17, 2010 06:45 by author Volkan Atasever

Visual Studio 2010 Professional sürümüne SDK’yı yükleyerek WP7 projelerimi Express edition’dan bağımsız yapmak istedim. Bir kaç projeyle uğraştıktan sonra birden VS 2010 üstünde projeyi çalıştırmayı denediğimde “Zune software is not installed. Install the latest version of Zune software” hatası aldım. Hatta bu zune software’i indirmek için bir internet araması bile yaptım. Dikkatimden kaçan bu hatanın sonucunu ise biraz VS 2010’a dikkatlice bakınca anlayabildim. Uygulamayı yazdıktan sonra projenin çalışması için gerekli aygıt varsayılan olarak “Windows Phone Device” şeklinde seçili kalmış. Tabi durumu düzeltince emülatörde silverlight uygulamam açıldı. Projemi çalıştırabildim. Bunun için bu ufak ayrıntıya dikkat etmekte gerek var. Varsayılan olarak Device seçeneği size boş yere internette arama yapmaya götürebilir. Bu hata için endişelenmemin sebei ise önceki uygularımın varsayılan olarak emülatörle çalışırken birden device seçeneğine geçmiş olmasıydı. Bilinçli bir seçim değildi.

 



WP7 ile Ekran Görüntüsü Yakalama

clock Kasım 16, 2010 04:41 by author Volkan Atasever

Windows Phone 7 geliştirme yazımla herkese merhaba! Mobil dünyanın yeni çocuğu olan WP7 ile beta sürümleri ile geliştirmeyle ilgili bilgileri zamanında vermiştim. Peki final sürümü bize neler getirdi neler götürdü. Bu yazıda inceleyeceğimiz bu konu bizi oldukça heyecanlandıracaktır. Öncelikle bir iyi bir kötü haberim var.

İyi haber:

XNA ve Silverlight platformu mükemmel.

Kötü haber:

Native kod desteği ortadan kalktı.

 

Geliştirme yapısını MSDN üzerinden aldığım bir grafikle açıklamak isterim.

 

Üst katmanda iki seçenek görüyoruz. Silverlight projesi veya XNA projesi ile oyunlar adı altında. XNA eskiden sadece oyun geliştiricileri ilgilendirirdi ve genelde ben uzak durmayı tercih ederdim. Çünkü gerçek manada masaüstü platformu için oyun yazmak 80’lerdeki kadar kolay değil. Tek başına yapılacak bir işse hiç değil. Mobil platformlarda nispeten küçük oyunlar yazma konusu ise beni bu aralar cezbetmeye başladı. Fakat bizim asıl durmamız gereken ve en çok yazılım geliştireceğimiz proje tipi Silverlight olacaktır. Artık standart ve klasik windows kontrollerinden kurtuluyoruz. Uygulamalar, animasyonlar ve silverlight kontrolleriyle çok daha zengin uygulamalar yapabilceğiz. Bunun altında ise sensor API’lar mevcut nedir bu sensor API’ları derseniz bir IPhone’u yatay çevirdiğinizde verdiği tepkiyi sensörler gerçekleştirmekte. Aynı sensörler WP7 telefonlarımızda da bulunmakta. WM 6.x telefonlardaki en büyük zorluklardan birisi Media ve ses işlemlerinde ya 3. Parti yazılım kullanmak ya da oturup native kod yazma zorunluluğuydu. XNA API’ları ile bu çözülmüş durumda. Çekirdek kısımda ise her zaman bildiğimiz ve kullandığımız yeni versiyon bir .NET Comapct Framework durmakta. Yeni ve zengin kullanıcı arayüzü geliştirmek oldukça memnun edici bir durum olacaktır. En azından onca uğraş verdiğimiz uygulama son kullanıcı için daha cazip hale gelecektir. Önemli noktalardan biriyse artık yazdığımız kod satırları daha da azalıyor. .NET Compact Framework 3.5 ile karşılaştırdığımızda spesifik uygulamalarda yaptığımız kodların azaldığını görmekteyim. Çoğu zaman zaten native koda da ihtiyaç duymuyorsunuz. Herşeyin yönetilen kod olarak sunulduğu bu dünya oldukça eğlenceli. İsterseniz biraz WP7’nin deirnliklerine inelim. Bunun için bir uygulama yapıp neler olup bitiyor bunu inceleyelim.

Yapacağımız uygulama .NET CF üstünde 15-20 satırla yapabileceğimiz butona bastığımızda o anki ekran görüntüsünü yakalayabilen bir uygulama olsun. Bunun için uygulamamızda standart olarak gelen isim alanlarına aşağıdaki isim alanını ekleyelim.

 

using System.Windows.Media.Imaging;

 

Ardından formumuzun dizayn penceresine standar silverlight kontrollerinden olan buton kontrolü ve image kontrolü ekleyelim.

Uygulamamızın kullanıcı arayüzü:

 

Uygulamamızın C# kodu:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

using Microsoft.Phone.Controls;

using System.Windows.Media.Imaging;

 

namespace WindowsPhoneApplication12

{

    public partial class MainPage : PhoneApplicationPage

    {

        public MainPage()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, RoutedEventArgs e)

        {

 

            WriteableBitmap bmp = new WriteableBitmap((int)this.ActualWidth, (int)this.ActualHeight);

            bmp.Render(this, null);

            bmp.Invalidate();

            this.image1.Source = bmp;

           

        }

    }

}

 

Uygulamamızın çıktısı:

 



Volkan Atasever Kimdir ?

E-Mail: volkan(et)volkanatasever.com

Genel Müdür/S4G 
Bilgisayar Mühendisi

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve bir çok kategoride yazılarım...

Yazılım Kitaplarım

   

Şiir Kitaplarım

Dergi Yazılarım

 

Sosyal Ağlarım

 

 

 

 

Retro Bilgisayar Dergimiz

Türkçe Retro Bilgisayar dergimiz haziran 2016'da ilk sayısını çıkardı. ilk sayı yeni bir internet sitesinden tekrar yayınlanacaktır. Retro camiası tüm dünyada oldukça eğlenceli bir camia. Sizde katkıda bulunmak isterseniz bana mail atmanız yeterli. Dergimiz PDF formatında ve tamamen ücretsizdir.

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2004-2017

Sign In

Yazılım