30 Mart 2011 Çarşamba

PhoneGap

PhoneGap Javascript/Html5/CSS3 kullanarak cross-platform mobil geliştirim için framework sağlayan open source bir projedir. Cihazın kamera, gps, storage… gibi donanımsal özelliklerini kullanabilmek için Javascript API sini kullanır. Temel mantık, Javascript/HTML5 kullanarak oluşturulan bir web sayfasına platform specific, native wrapper ler vasıtasıyla sanki gerçek native uygulamaymış gibi cihaz üzerinde run edebilmesini sağlamaktır. Javascript API leri sayesinde cihazın Geolocation, Accelerometer, Camera, Contacts, Database, File system.. gibi fonksiyonelliklerini de bu uygulamalara dahil etme olanağı sağlamaktadır.

PhoneGap geniş bir platform desteğine sahip. Android, İOS, Symbian, Windows Mobile, Palm gibi birçok platformu desteklemektedir. iPhone uygulama geliştirimleri için Mac OS üzerinde XCode IDE sinin kullanılması gerekmektedir. Android için ise Eclipse üzerinde Android Development Tools (ADT) plugini kullanılarak uygulamalar geliştirilebilmektedir.


PhoneGap in en büyük avantajı diğer porjelere göre daha fazla platformu destekler durumda olmasıdır. Tek sıkıntısı ise, oluşturulan web projesini native uygulama olarak wrap ederken platform specific çözümler sunmakta olmasıdır.
1
PhoneGap in platformlara göre desteklediği cihaz fonksiyonellikleri
Gültürk KARLI

29 Mart 2011 Salı

Property Grid-Bölüm 1

Bu makalemizde visual studio kullananların sıklıkla kullandığı ve esnek bir yapıya sahip olan property grid componentinden bahsedeceğiz. Property grid nedir, ne için kullanılır, nasıl eklenir, temel özellikleri nelerdir gibi konulara deyineceğiz. Makalemizin 2. Bölümünde ise complex data tiplerini nasıl gösteririz, gibi konulara deyineceğiz.

Visual Studio içerisinde bulunan form ve componentlere ait özelliklerin görüntülendiği “Properties” penceresi property gride bir örnektir. PropertyGrid ile objelerin özelliklerini görüntüleyebilir, üzerinde değişiklikler yapabilir, farklı editörler yardımı ile veri yapılarını görselleştirebiliriz.

Property grid componentini kullanabilmek için ”Toolbox” üzerinde sağa tıklayıp, “Choose Items” seçeneğine tıkladığımızda, karşımıza aşağıdaki (Resim-1) gibi component listesi gelecektir.
1
Resim-1
Bu listeden Property grid componentlerinin checkini işaretleyip “ok” butonuna tıkladığınızda toolbox’ımıza poperty grid componenti eklenmiş olacaktır.

Bu componenti toolbox’tan sürükleyip formumuzun üzerine bırakarak kullanabiliriz. Yazdığımız herhangi bir sınıfn instance’ını oluşturup property grid üzerinden gösterip, istediğimiz özelliklerini değiştirtebiliriz. Hemen hemen tüm sınıfları property grid üzerinden yönetebiliriz, bu anlamda property grid bize generic bir yapı sunar.


Property Grid üç ana bölümden oluşmaktadır.
1-Toolbar: Property gride set edilen sınıfın gösterilen özelliklerin sıralanması, kategorilere göre gösterilmesi gibi seçimlerin yapılabildiği butonların var olduğu alandır.

2-Class Properties (Sınıf özellikleri):
Property gride set edilen sınıfın özelliklerinin ve değerlerinin gösterildiği alandır.

3-Description (Seçilen özelliğin açıklaması):
Property gride set edilen sınıfın seçili olan property açıklamasının yazıldığı alandır.
2
Resim-2
Property grid, bilgileri kullanıcının rahatlıkla anlayabileceği bir formatta gösterebilmek için belirli attributelar kullanır. Kodlayan kişi bu attributelar yardımı ile daha anlaşılır bir gösterim sunabilir.

Bu attributelardan bazıları şunlardır:
DescriptionAttribute: Property grid üzerinde seçili propertynin, açıklama (description) alanında gösterileceği bilgidir. Kullanıcıya özellik hakkında bilgi verilebilir.

CategoryAttribute: Property grid üzerinde gösterilen özellikler bu attribute yardımı ile kategorilere bölünerek sınıflandırılabilir. Aynı kategiri adına ait özellikler bir grup olarak, ağaç mantığı ile gösterilir.

BrowsableAttribute:
Propertynin grid üzerinde gösterilip gösterilmeyeceğini belirtir. Bu attribute hiç verilmemiş ise default olarak özellik gösterilecek şekilde set edilir.

ReadOnlyAttribute:
Property grid üzerinde gösterilen propertynin readonly olup olmadığını belirtir. Bu attribute verilmemiş ise default olarak değiştirilebilir olacaktır.

DefaultValueAttribute:
Property grid üzerinde gösterilen propertynin default değerini gösterir.

DisplayNameAttribute:
Property grid üzerinde gösterilen propertynin adını belirtir. Kodlama aşamasında anlaşılır olmayan isimleri anlaşılır bir şekile getirilebilir.
Yukardaki grid üzerinde gösterilen sınıf şu şekildedir.
Public Class Urun

    Private objAd As String
    <Description("Ürün adı"), DisplayName("Ürün Adı"), Category("Genel")> _
    Public Property Ad() As String
        Get
            Return objAd
        End Get
        Set(ByVal value As String)
            objAd = value
        End Set
    End Property

    Private objBarkod As String
    <Description("Ürün barkod bilgisi"), DisplayName("Barkod"), Category("Genel"), [ReadOnly](True)> _
    Public Property Barkod() As String
        Get
            Return objBarkod
        End Get
        Set(ByVal value As String)
            objBarkod = value
        End Set
    End Property

    Private objFiyat As Decimal
    <Description("Ürün fiyatı"), DisplayName("Fiyat"), Category("Genel")> _
    Public Property Fiyat() As Decimal
        Get
            Return objFiyat
        End Get
        Set(ByVal value As Decimal)
            objFiyat = value
        End Set
    End Property

End Class
“<Description("....."), DisplayName("....."), Category(".....")>” Şeklinde “<>” işaretleri arasına yazılan bilgiler ilgili attribute sınıflarıdır, böylelikle kullanıcıya daha anlaşılır bir notasyonda bilgi gösterilir.
Armağan DÖKER

28 Mart 2011 Pazartesi

Bilişim Sektörü Dünyadaki Tarihsel Gelişimi

Tarihsel gelişimi açısından incelediğimizde bilişim sektörünün (“iletişimi” de içine katmak lazım) temellerinin MÖ 3000 yıllarından atıldığını söylemek yanlış olmaz. İlk girdi teknolojilerini (Kağıt ve Kalem) üreten Sümerler ve Mısır’a kadar bir çok ülkeden ve yenilikten bahsetmek mümkündür. Ekonomik açıdan bakacak olursak, Bilişim Sektörü’nün esas başlangıcını “Mors” alfabesinin geliştirildiği 1840’lar olarak nitelendirebiliriz. 19. Yüzyılın son çeyreğinde telefonun ve radyonun icat edilmesinden sonra, 1940’lı yıllarda ENIAC (Electronic Numerical Integrator and Computer) isimli ilk elektronik bilgisayar geliştirilmiştir. 20. Yüzyılın ortalarından günümüze bilişim sektöründe arka arkaya çok önemli gelişmeler olmuştur. Bu gelişmelere şöyle bir göz atalım.
- ABD İstatistik Bürosu ilk ticari bilgisayarı olan UNIVAC’ı (Universal Automatic Computer) 1951 yılında kullanmaya başladı. IBM firmasının ilk ticari bilgisayarı olan IBM 701’i ise 1953 yılında geliştirildi.
1_thumb[2]_thumb

- 1954 yılında ilk başarılı üst seviye programlama dili olan Fortran geliştirildi.
- 1959 yılında Amerikan Bankası bankacılık hesaplamalarında, Stanfor Araştırma Enstitüsü tarafından geliştirilen “ERMA (the Electronic Recording Method of Accounting)” bilgisayarını kullanmaya başladı.
- 1961 yılında ilk ticari tümleşik devre piyasaya sunuldu.
- 1969 yılında internetin atası olan “ARPANET (Advanced Research Project Agency Network)” kullanılmaya başlandı.
-1969 yılında Bell laboratuarlarında çok kullanıcılı, çok görevli yapıyı destekleyen işletim sistemi olan UNIX geliştirildi.
- 1969 yılında IBM firması yazılım ve donanım uygulamalarını birbirinden ayırmaya karar verdi.
- 1971 yılında ilk mikroişlemci yongası olan Intel 4004 piyasaya sürüldü.
- 1969 ile 1974 yılları arasında geliştirilen C programlama dili 1978 yılında çıkartılan bir kitapla yaygınlaşmaya başladı.
- 1972 yılında Nortel firması kodlayıcı/kod çözücü birimini yoncacık boyutunda tasarlamayı başarmış, 1975 yılında ilk sayısal santralini geliştirmiştir. Firma 1979 yılında 100,000 telefon hattına destek verebilen DMS-100 sayısal santrallerini pazara sunmuştur.
- 1973 yılında Nokia aldığı bir siparişle mikroişlemci kontrollü telefon santralini geliştirmeye başlar. DX200 adlı bu sayısal santral 1982 yılında kullanıma sunulur ve bir süre sonra Finlandiya sabit hat pazarının %50’sini ele geçirir.
- ITT BTMC ilk olarak 1981 yılında elektronik santrallerini kullanıma sunar.
- 1980’li yıllara kadar art arda gelen gelişmeler sonrasında 1981 yılında IBM firması ilk kişisel bilgisayarını piyasaya sunar. IBM’in sunduğu bu kişisel bilgisayarda Microsoft firmasının ilk MS-DOS işletim sistemi olan MS_DOS 1.0 yüklüdür.
- 1983 yılında onaylanan TCP/IP protokolü ile Internet kullanımı yaygınlaşmaya başladı.
- 1984 yılında Apple firması fare ve grafik ara yüzünü kullanan Macintosh bilgisayarını piyasaya sunar. 1985 yılında ise Microsoft firması kullanıcıya grafik arabirimler görsel iletilerle yaklaşan Windows işletim sistemini çıkartır.
                                               2_thumb[1]_thumb3_thumb[1]_thumb
- 1989 yılında yazılım süreçlerinin yönetilmesi kapsamında geliştirilen Yetenek Olgunluk Modeli (CMM) yayınlanır.
- 1991 yılında Unix tabanlı, açık kaynak kodlu ve özgür bir işletim sistemi olan Linux, Finlandiyalı bir bilgisayar mühendisi tarafından geliştirilmeye başlanır.
- 1994 yılında geleneksel dial-up sistemleri ile Internet erişimi sağlanmaya başlandı (CompuServe, AOL)
- 1994 yılında W3C konsorsiyumu oluşturuldu.
- 1996 yılında OECD, bu tarihten 30 yıl önce tanımlanan bilgiye dayalı ekonomi kavramını tanıtır.
-1999 yılından 2000 yılına geçiş problemi döneme damgasını vurur. Y2K bug olarak bilinen problem temel olarak yıl bilgisinin 2 dijit tutulmasından kaynaklanıyordu.
- 2001 yılında Japonya’da NTT DoCoMo firması tarafından ilk Üçüncü Nesil Mobil İletişim Sistemleri (3G) denemeleri başlar.
- 3G teknolojisi 2002 yılında Amerika’da ve 2003 yılından itibaren Avrupa’da kullanılmaya başlandı.
-2002 yılında DVD’ler tanıtıldı.
-2003 yılında broadband internet erişimleri sağlanmaya başlandı.
-2005 yılından itibaren Blog’lar oluşmaya başladı. HD DVD ve Blue Ray formatları/teknolojileri hızla ilerledi.
- 2008/2009 yılından itibaren Smartphone’lar iş süreçlerinde çok daha aktif kullanılmaya başlandı. Özellikle Google ve Apple, Symbian Pazar payına gözlerini diktiler.
4_thumb[1]_thumb
- 2009/2010 yılından itibaren Sosyal networkler, micro bloglar (facebook, myspace, twitter vs.) milyonlarca kullanıcıya ulaştılar.
5_thumb[1]_thumb
Referanslar
1. Nermin SÖKMEN, Türkiye’de Yazılım Üreticilerinin Yetkinlik Düzeyi, Firmaların ve Sektörün Gelişimi cilt 1, TUBITAK, BILGEM
Deniz KILINÇ

25 Mart 2011 Cuma

Sybase Unwired Platform (SUP)

Sybase Unwired Platform, mobil uygulamaların geliştirilme, kullanılma ve yönetilme safhalarını son derece kolaylaştırılmasını sağlayan bir platformdur. Son kullanıcılar, ihtiyacı olan bilgiye yerden ve zamandan bağımsız olarak her zaman ulaşmak istemektedirler. Bu bilgi birçok farklı veritabanı üzerinde bulunabileceği gibi SAP gibi uygulamalardan, çeşitli veri ambarlarından ve Web servisleri gibi birçok yoldan da elde edilebilmektedir. Kullanıcı ise Windows Mobile, BlackBerry ve IPhone gibi birçok farklı cihaz ve platform üzerinden veriye ulaşabilmektedir. SUP tam da bu noktada, yani mobil iş gücü ile ihtiyaç duyulan veriyi işleyecek uygulamaların geliştirilmesinde tüm platformlar için ortak bir çözüm sağlamaya çalışmaktadır. Aynı yapı üzerinde heterojen mobil cihaz uygulamalarının geliştirilmesine olanak sağladığı gibi bu uygulamaların güvenliğinin sağlanmasında, sürecin, kullanıcıların, cihazların ve uygulamaların yönetiminde de büyük kolaylıklar sağlamaktadır.
1

Sybase Unwired Platforma dair birkaç özellik şöyle sıralanabilir :
- Herhangi bir geliştiricinin ve yöneticinin ek işlemler yapmasına gerek kalmadan, verinin ve transactionların mobil cihazlar ve server runtime arasında güvenli bir şekilde iletimini garanti eder.
- Çeşitli network ve uygulama tipleri için messaging-based ve replication-based gibi iki tür cihaz ile merkez arasında veri senkronizasyonu yöntemi sunar.
- Veri kaynağı olarak (veritabanları, SOAP and REST web servisleri, SAP R/3 DOE veya Remedy sistemleri) standartlaşmış veri modelleri sağlar.
- Mobile Business Objects (MBO) adı verilen cihaz uygulama verisini ve transaction gereksinimlerini bünyesinde barındıran reusable modeller kullanır.
- Secure Sockets Layer(SSL) ve Transport Layer Security(TLS) kullanarak bire bir güvenlik sağlar.
- LDAP, Active Directory ve işletim sistemleri üzerinden sistemin güvenliğini sağlayabilir.
- Eclipse geliştirim ortamını destekler ve bütün farklı cihaz platformları için tek bir geliştirim yöntemi sunar.
- Server ve cihaz arasındaki iletişim için gerekli API ler sağlar.
Sybase Unwired Platfrom Ana Bileşenleri
Unwired Server
Unwired Server, Unwired Platformun ana bileşenidir. Hem consolidated database adı verilen bir tür cache yapısı olan veritabanına hem de arka taraftaki sisteme transactionları geçirir ve cihaz uygulamaları için veri iletimini sağlar. Unwired Server ayrıca datasource a girişleri optimize eder, mesajlaşma, güvenlik hizmetleri, çoklu kullanım desteği, süreci izleme ve geliştirim gibi durumlar için destek sağlar. Unwired Server mobil cihazlar ile Enterprise Information System (EIS) arasında hem online hem de offline veri senkronizasyonu sağlar.
Afaria Server
Afaria Server, Unwired Server ile beraber kullanılabilen uygulama ekosistemi içerisindeki kullanıcı, uygulama ve cihaz durumlarının takibi, yönetilmesi ve güvenliğinin sağlanması için kullanılan opsiyonel bir araçtır.
Sybase Conrol Center (SCC)
Sybase Control Center, Unwired Server ve ona ait araçları konfigüre edebilmek ve yönebilmek amacıyla kullanılılan web tabanlı bir uygulamadır. Unwired Server üzerinde loglama, paket deploy edilmesi, imzalar, roller ve kullanıcıların kontrolü gibi konularda destek sağlar.
Unwired Workspace (Application Development Environment)
Unwired Workspace, mobil uygulamalar geliştirebilmek için Eclipse geliştirme ortamı plug-in idir. Unwired Workspace EIS bağlantılarını standartda bağlayan soyut bir katman oluşturan ve bütün her çeşit enterprise veri ve transaction için tek tip nesne görüntüsü oluşturan geniş kapsamlı araçlar bütünüdür. Ayrıca hızlı uygulama geliştirme, BlackBerry, Microsoft Windows Mobile ve Apple iOS platformlarında cihaz veya emulator düzeyinde test edilmesi için gerekli araçları barındırır.
Mobil Uygulama Geliştirme Süreci
Sybase Unwired Platformda mobile geliştirim süreci Mobile Business Objects adı verilen yapıların oluşturulması ile başlar. MBO lar business işlem mantığını ve datayı üzerinde barındıran reusable birimlerdir. SUP MBO ların oluşturulmasını, test edilmesini ve run edilmesini sağlayan bir Eclipse geliştirim ortamını barındırır.
Unwired Workspace de geliştirim hem platform bağımsız hem de platform bağımlı olarak yürütülebilmektedir. Örneğin Windows Mobile uygulama geliştiricisi, geliştirim için C# ve .NET Compact Framework bileşenlerini kullanabilir geliştirim için. Aynı şey BlackBerry ve iOS platformları içinde geçerlidir.
Unwired Workspace enterprise veri kaynaklarına bağlanmayı ve bu veri kaynaklarına ait veri modeline göre Mobile Business Objects (MBO) lar oluşturulmasına olanak sağlayan bir ortamdır. Uygulama geliştiricisi dilediği zaman bu MBO lar üzeriden kod generate ederek platforma ait IDE üzerinde kullanıcı arayüzü geliştirimine devam edebilir. Ya da Device Application Designer vasıtasıyla farklı platformlar için kullanıcı arayüzleri (ekran tasarımı, ekran akış diyagramı) oluşturup cihaz üzerinde çalıştırabilir.
2
Sybase Unwired Platform mobil uygulama geliştirimi için üç yöntem sunar :
1. Object Code Generation: Geliştiriciye, MBO nesneleri üzerinden istenilen mobil cihaz platformuna göre Object API lerini generate etme imkanı verir. Daha sonra geliştirime platforma ait geliştirim ortamında devam edilir. Bu Windows Mobile için Visual Studio ya da BlackBerry için JDE olabilir.

2. Mobile Workflow Forms Editor: Basit iş akışı uygulamaları oluşturabilmek için kullanılır.

3. Device Application Designer: Geliştiriciye BlackBerry ve Windows Mobile platformları için prototipler oluşturma ve tasarlama imkanını sunar. MBO lar üzerinden de otomatik olarak gerekli ekranlar oluşturulabilir. Device Application Designer prototipi daha sonra ilgili platforma ait geliştirim ortamı için gerekli proje dosyaları olarak generate edilebilir. Geliştirici bu ortamlarda generate edilen projeyi istediği şekilde customize edebilir.
Gültürk KARLI