9 Eylül 2008 Salı

MS Yaz Okulu Windows Mobile Eğitimimiz

1 yorum
Sonunda Microsoft yaz okulunda öğrendiklerimi aktarmaya başlayabildim:) Öncelikle yaz okulu sürecinin tamamında bize neler anlatılmış, onların başlıklarını aktarayım, daha sonra da yaz okulunun 2. haftasinda Ekin Özçiçekçiler tarafindan verilen Windows Mobile dersini çok da ayrıntısına giremeyerek anlatayım.

Microsoft Yaz Okulu Süreci

Yaz okulunda ilk hafta, Infopark'tan Cem Bayraktaroğlu Windows Server 2008, BilgeAdam'dan Tamer Şahiner ise SQL Server 2008 ve Visual Studio 2008 anlattı.

İkinci hafta, Microsoft' tan Burak Sarıca ASP.NET 3.5, Ajax, LINQ, Metis'ten Tayfun Akçay SharePoint 3.0, BilgeAdam'dan Ekin Özçiçekciler Windows Mobile 6 ve İSKİ'den Hasan Aytis ile Can Temizel ise Windows Embedded CE 6.0 anlattı.

Üçüncü hafta, Deveload'un kurucu sahibi Daron Yöndem Microsoft Expression ve Silverlight, RobotTurk proje ekibinden Oğuz Bayraktar Microsoft Robotics Studio ve Microsoft'tan Tufan Erdinç ise Proje Yönetimi ile Microsoft Team Foundation Server 2008 anlattı.

Dördüncü hafta, Microsoft' tan Mehmet Tunçkanat Microsoft XNA Game Studio, Microsoft'tan Şeniz Ciritci kurumsal sosyal sorumluluk, Microsoft'tan Şevket Güler Microsoft ve açık kaynak, Microsoft'tan Nuri Çankaya ise Microsoft’un yeni teknolojileri ve geleceğin teknolojileri hakkında bilgilendirmeler yani "Woow Session" :) yaptı. Ayrıca sınıf 6 gruba bölünerek her grup kendi seçtiği bir projeyi gerçekleştirdi. Benim içinde bulunduğum grup, Microsoft XNA Game Studio'da geliştirilmiş 3 boyutlu bir araba yarışı olan Racing Game'i modifiye ederek Bas Gaza adlı oyunun oluşturulmasında çalışmıştı.

Windows Mobile İşletim Sistemi


Windows Mobile, Microsoft tarafından PDA ve akıllı telefonlar (smart phone) gibi mobil cihazlar için tasarlanmış olan bir işletim sistemidir. Windows CE çekirdeği üzerine temellendirilmiştir. Pocket PC 2000 işletim sistemiyle başlayan Windows Mobile, birçok kez güncellenmiş ve yeni sürümleri çıkmıştır. Şu anki en yeni sürümü Windows Mobile 6.1’dir. 2010’da ise Windows Mobile 7’nin çıkması bekleniyor. Tüm sürümlerinin sırası ise şöyledir: Pocket PC 2000, Pocket PC 2002, Windows Mobile 2003, Windows Mobile 2003 SE, Windows Mobile 5.0, Windows Mobile 6, Windows Mobile 6.1.

Telefon özelliği ve dokunmatik ekranı olmayan mobil cihazlar için olan işletim sistemi, 2007’den itibaren Pocket PC yerine Windows Mobile Classic olarak adlandırılıyor. Telefon ve dokunmatik ekran özelliği olanlarınkine Windows Mobile Professional, telefon özelliği olan fakat dokunmatik ekranı olmayanlarınkine ise Windows Mobile Standard deniyor.

Mobil Cihazlar

Windows Mobile işletim sistemleri, Pocket PC, smartphone, Portable Media Center ve otomobiller gibi birçok donanım üzerinde çalışmaktadırlar.

Pocket PC’ler, Microsoft'un PocketPC işletim sisteminin desteği ile piyasada yer bulmuştur. Renkli ekran ve güclü işlemci, multimedya işlemlerine (video gösterme müzik çalma) navigasyon ve cep telefonu olarak kullanılabilmesi nedeni ile yoğun ilgiyle karşılanmıştır. Pocket PC’ler telefon özelliği olan ve olmayanlar şeklinde karşımıza çıkıyor. Yeni bir sürüm olarak, Pocket PC’lerin telefon özelliği olanlarınkinde kullanılan Windows Mobile işletim sistemine, "Windows Mobile 6 Professional", telefon özelliği olmayanlarınkinde kullanılana "Windows Mobile 6 Classic" deniyor.


Smartphone (Akıllı telefon) lar, cep telefonunun sağladığı klasik özelliklere, bilgisayar dünyasının bir ürünü olan PDA’lerin özelliklerinin de eklenmesiyle tasarlanan gelişmiş mobil iletişim cihazlarıdır. Yeni bir sürüm olarak, genel olarak Smartphone’larda kullanılan Windows Mobile işletim sistemine, "Windows Mobile 6 Standard" deniyor.

PDA (Personal Digital Assistant), taşınabilir küçük cep bilgisayarlarıdır. Küçük boyutlu bu bilgisayarlarda isim ve adreslerin saklanabildiği bir veritabanı, not defteri ve iletişim kurmayı sağlayan bölümler yer alır. Gelişen elektronik ve bilgisayar teknolojisi cihazların boyutlarını küçültmüş ve özelliklerini arttırmıştır. Cep telefonu, video ve fotoğraf çekimi, GPS gibi özellikleri olan örneklerinin üretilmesi ile cep bilgisayarlarının kullanımı yaygınlaşmıştır. PDA'lar yaygın olarak Windows CE veya Windows Mobile işletim sistemleri ile çalışırlar.

Mobil cihazlara uygulama geliştirme

.NET Compact Framework ile cep bilgisayarları, smartphone, cep telefonları, taşınabilir dijital asistanlar ve Windows CE uyumlu cihazlara yönelik uygulama geliştirmek son derece kolay ve hızlıdır.

Microsoft yaz okulunda, Windows Mobile 6.0 ve Visual Studio 2008 ile çalıştık. Cihaza uygulama gelistirirken, uygulamayı test etmek için mutlaka cihaza yükleme yapmak zorunda değiliz. Cihazın tamamen aynısı olan Microsoft Device Emulator’ı kullanabiliriz. Örneğin emulator properties->display’den skin gibi birçok özellik seçimimizi belirtebiliyoruz. Emülatöre takılmak istenen sd kart için, emulator properties->general->shared folder’a verdiğimiz adres kullanılıyor. Hatta emülatör, battery kısmına yazılan degere gore pil durumunu o değere sabitliyor ve o değerden çalıştırıyor.

Mobil cihazlarda sürücü kavramı yoktur. Tek sürücü vardır ve kök hücre \ ile başlar. Mobil cihazlar her daim internete bağlı kalmayabilir. Ara sira bagli kalan bir sistem için veriler, local’de depolanarak surekli internete bagli kalınmak zorunda bırakılmaz. Verileri mobil üzerinde tutmamızı sağlamak için SQL Server CE (Compact Edition) gelisitirildi. Diger veritabanı sunucularından ayiran özelliği, mobil cihazlar için olmasıdır. Bir servis değildir, yani kaynak tuketmez.

Derste, Visual Studio 2008’de, Visual C# bölümündeki new smart device project seçeneğiyle .NET 3.5’u seçtik. Çıkan pencerede template olarak device application, target platform olarak Windows mobile 6 professonal sdk, .NET compact frameword version olarak da 3.5’u seçtik. Karşımıza bir mobil cihaz form arayüzü geldi. Bu formu bir Windows form gibi button, label gibi öğelerle doldurarak C# ile uygulamamızı geliştirmeye koyulduk. Visual Studio ana menüsünün altındaki target device kısmından pocket pc’miz için windows mobile 6 professional emulator’ı seçtik. Sonra options->device tools->devices->windows mobile 6 professional emulator seçiliyken properties->emulator options->general’dan ram boyutunu 256 olarak belirledik, yine emulator options->network’ten network card’ımızı seçtik. Bu bölümlerden çıkarak projemizi çalıştırmak üzere start debugging->windows mobile 6 professional emulator’ı seçtik. Karışımıza, geliştirmiş olduğumuz mobil cihazımızın görüntüsü geldi.

Formumuza buton eklemek en basit örneğimizdi. Cihazımızın menüsünü form design’dan kendimize göre özelleştirebiliriz. Veri tabanıyla uğraşmak istiyorsak add->new item->database file ile .sdf uzantılı veritabanı dosyamızı ekleyebiliriz. Daha sonra solution explorer’da veritabanı dosyamıza add table diyerek tablo ekleyebilriz. Null olamayan, birincil anahtar olan sütunlarda identity özelliğini kullanabiliriz. Tablolarımıza show table data diyerek veri girişi yapabiliriz. Projemize, references->add reference ->System.Data.SqlServerCe ile bu referansı ekledikten sonra bir SqlCeConnection ve SqlCeCommand nesnesi yaratarak, bu sql komutuna parametre ekleyerek, komutu çalıştırarak, gerekli diğer aktarma ve kontrol işlemlerimizi yaparak veri tabanımızı istediğimiz gibi kullanabiliyoruz.

Form.cs dosyamızın bir kısmı:

#region ObjectsAndVariables

System.Data.SqlServerCe.SqlCeConnection SqlCeConn;

System.Data.SqlServerCe.SqlCeCommand SqlCeComm;

#endregion

private void FormKullaniciGiris_Load(object sender, EventArgs e)

{

SqlCeConn = new System.Data.SqlServerCe.SqlCeConnection("Data Source=\\Program Files\\MSYazOkuluAnkara\\MSYazOkuluAnkaraSiparis.sdf");

SqlCeComm = new System.Data.SqlServerCe.SqlCeCommand("SELECT COUNT(*) FROM Kullanicilar WHERE Ad = @Ad AND Sifre = @Sifre", SqlCeConn);

SqlCeComm.Parameters.Add("@Ad", SqlDbType.NVarChar, 50);

SqlCeComm.Parameters.Add("@Sifre", SqlDbType.NVarChar, 50);

}

private void menuItem5_Click(object sender, EventArgs e)

{

try

{

SqlCeComm.Parameters["@Ad"].Value = TxtKullaniciAdi.Text;

SqlCeComm.Parameters["@Sifre"].Value = TxtSifre.Text;

if (SqlCeConn.State == ConnectionState.Closed) SqlCeConn.Open();

if (Convert.ToInt32(SqlCeComm.ExecuteScalar()) == 1)

{

SqlCeConn.Dispose();

FormAnaEkran frm = new FormAnaEkran();

this.Hide();

frm.KullaniciAdi = TxtKullaniciAdi.Text;

frm.Show();

}

else

{

MessageBox.Show("Kullanıcı Adı / Şifre Yanlış Girdiniz !", "Hata #1", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);

}