Makale Özeti

Networke bağlı kablosuz cihaz sayısının 5-6 yıldan beri sürekli artmasının bir sonucu olarak şirketler akıllı cihazların kurumsal yapının bir parçası olduğunun farkına vardılar. Örneğin sahaya inen ekipleri olan şirketler (sigara, içki, yiyicek siparişi alan ve dağıtan), sigorta ve tütün eksperleri, masadan mobil cihaz ile sipariş verilebilmesini sağlayan lokantalar…

Makale


Mobil Cihaz Uygulamaları

Networke bağlı kablosuz cihaz sayısının 5-6 yıldan beri sürekli artmasının bir sonucu olarak şirketler akıllı cihazların kurumsal yapının bir parçası olduğunun farkına vardılar. Örneğin sahaya inen ekipleri olan şirketler (sigara, içki, yiyicek siparişi alan ve dağıtan), sigorta ve tütün eksperleri, masadan mobil cihaz ile sipariş verilebilmesini sağlayan lokantalar …

Internet ve intranet küçük, orta ya da büyük boyutlu her tür şirket tarafından kabul edilmiş ve neredeyse her şirketin bir web sitesi olmuştur. Geliştirilen uygulamaların altında ise kabul edilmiş iletişim standartları bulunmaktadır. Bunlar neler mi? TCP/IP, HTTP, XML ve SOAP. Kişisel bilgisayarlarda olduğu gibi mobil cihazlar da bu standartları kullanmaktadırlar.

Geliştirilen uygulamaların birbirleri ile entegre olabilmesi için ise XML Web servisleri kullanılmaktadır. Web servisleri ile sadece veriyi paylaşmakla kalmıyoruz aynı zamanda yazmış olduğumuz kodları da yeniden yazmaya gerek kalmaksızın (kaynak kodları göstermeden) paylaşabiliyoruz. Web servisleri, .NET Compact Framework sayesinde mobil cihaz uygulamaları içerisinden de kullanılabilmektedir. Web servisleri sayesinde şirket içindeki bilgileri sorunsuz olarak şirket dışına çıkarmak ve firewall engeline takılmadan mobil cihazlardan kullanabilmek mümkün hale gelmiştir.

Microsoft .NET Compact Framework, yönetimli (managed) kod ve XML Web servislerinin mobil cihaz üzerinde çalışacak uygulamaların geliştirilmesinde kullanılabilmesini sağlamaktadır. .NET Compact Framework, .NET Framework’un zengin bir alt kümesi olmasının ve .NET Framework ile aynı üstün özellikleri sunmasının yanı sıra özellikle kaynak sıkıntısı yaşanılan PDA ve smart phone dediğimiz yeni nesil telefonlar için geliştirilmiştir.

Smart Device Programmability ( önceki adı Smart Device Extensions), Microsoft Visual Studio .NET’i geliştirerek mevcut hızlı uygulama geliştirebilme özelliklerini de kullanarak mobil cihaz üzerinde çalışacak uygulamalar geliştirilebilmesini mümkün kılmaktadır. Uygulama geliştiriciler artık masaüstü uygulamaları, web uygulamaları, mobil web uygulamaları ve mobil cihaz üzerinde çalışacak uygulamaların geliştiriminde tek bir araç kullanabilmektedir. Bu da uygulama geliştiricilerin belirli bir alanda edindikleri bilgi ve deneyimlerini farklı bir uygulama türü geliştirirken kullanabilmelerini sağlamaktadır. Ayrıca geçmişte kullanılan araç ve yöntemlerden farklı olarak geliştirilecek olan uygulamanın türüne göre farklı bir araç, programlama dili ve alt yapının öğrenilmesi bir gereklilik olmaktan çıkmaktadır.

Mobil web uygulamalarından farklı olarak mobil cihaz uygulamaları sunucuya sürekli bir bağlantı kurmak zorunda değildir. Smart Device Application uygulamalarında uygulama mobil cihaz üzerinde çalışıyorken mobil web uygulamalarında uygulama sunucu bir bilgisayar üzerinde çalışmaktadır ve istemci cihaza sadece anlayabileceği türden çıktı gönderilmektedir.

Masaüstü ve web uygulamalarında olduğu gibi mobil cihaz uygulamalarında da veritabanlarını kullanabiliyoruz. Visual Studio .NET ile geliştirdiğimiz mobil cihaz uygulamlarımızda kullanabilmek için iki farklı veritabanı alternatifimiz bulunmaktadır. Bunlardan ilki verileri mobil cihaz üzerinde tutmamızı sağlayan SQL Server Ce, diğeri ise verilerin uzaktaki bir sunucuda tutulmasını sağlayan ve diğer uygulama türlerinde de sürekli kullandığımız SQL Server’dir.

SQL Server CE’yi yüklemeden önce uygulamalarınızı geliştireceğiniz makineye Microsoft Visual Studio .NET ve Microsoft ActiveSync 3.1 ya da daha yeni bir sürümünü yüklemeniz gerekir.

ActiveSync, geliştirilen uygulamaların kurulabilmesini ve debug edilebilmesini sağlar.

Daha önce Visual Studio .NET ile masaüstü uygulamaları geliştirdiyseniz mevcut bilgi ve deneyiminiz ile Pocket PC ve Windows CE .NET yüklü cihazlar üzerinde çalışacak uygulamalar geliştirebilirsiniz. Masaüstü bilgisayarları ya da mobil cihazların hangisi için uygulama geliştiriyor olursanız olun Visual Studio .NET size aynı paylaşımlı ortamı sunmaktadır. Ortak kullanılan özellikler şunlardır:

  • Nesneye yönelik dil seçimi (Visual Basic .NET ya da C#)
  • Zengin kullanıcı arayüzü geliştirebilmek için Visual Forms Designer
  • Veritabanı işlemleri için ADO.NET
  • Visual Database Designer (Görsel Veritabanı Tasarlayıcı)
  • Görsel ya da görsel olmayan kontrollerin yaratılması için Component Designer (Bileşen Tasarlayıcı)
  • XCOPY uygulama kurulumu

    Ayrıca geliştirilen uygulamaların gerçek mobil cihazlara gerek kalmaksızın test edilebilmesini sağlayabilmek için Pocket PC, Pocket PC 2002, Smart phone ve Windows CE .NET için çeşitli cihaz emülatörleri sunulmaktadır.

    Mobile Internet Toolkit’ten farklı olarak Smart Device Extensions ile geliştirilen ve mobil cihaz üzerinde çalışan uygulamalar network bağlantısının olmadığı durumlarda da çalışmaya devam edebilir. Tabi uygulamanın büyük bir bölümünün sunucu makinede çalışarak istemcilere sadece anlayacakları türden çıktının gönderilmesinin de daha fazla mobil cihaza hitap edebilme gibi bir avantajı vardır. Bu durumda Mobile Internet Toolkit, (mobil web uygulamaları) Smart Device Extension’un (mobil cihaz uygulamalarının) bir tamamlayıcısıdır diyebiliriz.

    .NET Compact Framework, .NET Framework’un bir alt kümesidir diyebiliriz. .NET Framework’un sunduğu üstün özelliklerin çoğunu sunmaktadır. Örneğin, common language runtime, just-in-time derleme, güvenlik, çöp toplama ve bellek yönetimi, ADO.NET ile veri erişimi, XML ve XML Web servislerini kullanabilme …

    .NET Compact Framework ve .NET Framework’te birçok şey ortaktır. .NET Compact Framework’un en önemli farklılıkları platform büyüklüğü ve performanstır. .NET Compact Framework için kısaca kaynak sıkıntısı çeken cihazlar için geliştirilmiş (son günlerin moda deyimi ile) light .NET Framework diyebiliriz.

    Her .NET Compact Framework uygulaması uygulama domaini denilen bir çalışma zamanı yapısı içerisinde çalışır. Uygulama domain sunucusunun kendisi aslında native bir uygulamadır, yönetimli (managed) kodu çalıştırabilmek için common language runtime’in bir örneğini başlatır. Managed ve native uygulamalar eş zamanlı olarak çalışabilirler.

    .NET Compact Framework’un en önemli özelliklerinden birisi işletim sistemi ve CPU’dan bağımsız olmasıdır. Geliştirilen bir uygulamanın üzerinde .NET Compact Framework yüklü fakat farklı CPU’lara sahip cihazlar için yeniden derlenmesine gerek yoktur. Bunu sağlayan şey ise uygulamaların derlendiğinde doğrudan makine bağımlı kodun oluşturulmaması, MSIL dediğimiz ara dilde çıktının oluşturulmasıdır. Ara dile derlenmiş uygulamalar çalıştırılacakları zaman JIT derleme sayesinde önce makine bağımlı koda (native kod) derlenir ve makine üzerinde bu kod işletilir.

    .NET Compact Framework, pil ya da batarya ile çalışan sistemler için optimize edilmiştir ve RAM ve CPU’nun yoğun kullanımını engeller. Cihazların bellek yönetim birimleri ve sanal bellekleri bulunmayabileceği için .NET Compact Framework mevcut kaynakları en etkin şekilde kullanır.

    Common language runtime altında çalışan uygulamaların kullandıkları kaynakların tümü uygulamanın işleyişi son bulduğunda işletim sistemine geri verilir.

    .NET Compact Framework, çöp toplama işleminin (garbage collection) ne zaman yapılması gerektiğine kendi karar verir. Çöp toplama, tek bir uygulama kapsamında ya da tüm uygulamalar kapsamında gerçekleştirilebilir. Böylece bir uygulamanın çok fazla bellek kullanmasının önüne geçilmiş olur.

    .NET Compact Framework, RAM ve ROM’u kullanarak uygulamaların düşük bellek kapasiteli durumlarda da çalışabilmesini sağlar. RAM yetersizse ya da mevcut değilse ROM, flash bellek ya da disk kullanılarak uygulamaların düşük performansta da olsa çalışabilmesi sağlanır.

    .NET Compact Framework, mevcut RAM ‘in cihaz tarafından belirlenen kadarını kullanır.

    Common language runtime’ı oluşturan makine bağımlı (native) kod ve MSIL kodları RAM ya da ROM’da saklanabilir.

    .NET Compact Framework’un .NET Framework’un zengin bir alt kümesi olduğunu daha önce söylemiştik. .NET Compact Framework’u oluşturan class’lar anlamsal olarak .NET Framework’u oluşturan sınıflarla uyumludurlar. .NET Compact Framework class’larının sunduğu önemli özellikler şunlardır:

  • XML Web servislerini kullanabilme
  • İlişkisel veritabanı yönetimi
  • XML
  • Görsel class’lar, örneğin image kontrolleri
  • Gelişmiş kullnıcı arayüzü yaratabilme

    Bazı sınıflar (class) .NET Framework içerisinde bulunmayıp sadece .NET Compact Framework içerisinde bulunmaktadır. Örneğin Infrared Data Association sınıfı. Bu sınıf sunucuya bağlantı kurulmasını sağlar. SQL Server CE sınıfları SQL Server CE veritabanı ile çalışılabilmesini sağlar.

    .NET Compact Framework, XML ile ilgili temel özellikleri sunmaktadır. .NET Framework’te olup da .NET Compact Framework’te platform büyüklüğünü azaltma amacıyla bulunmayanlar şunlardır :

  • XML schema geçerlilik kontrolü
  • XmlDataDocument sınıfı
  • Xpath sorguları
  • XSLT (Extensible Stylesheet Language Transformation)

    .NET Compact Framework içerisindeki common language runtime .NET Framework’tekinin yaklaşık yüzde 12’sidir.

    .NET Compact Framework’de native API’lere olan destek sınırlıdır. Native DLL’lere erişebilirsiniz fakat yönetimli ortamda COM objeleri yaratamazsınız. Yönetimli (managed) kod içerisinden ActiveX kontrollerini çağıramazsınız.