28 Ağustos 2009
Windows Vista SP2 ve Windows 7 İçin Yeni NetCFSvcUtil !
Merhaba,
Deneyenler ya da ilgilenenler bilecektir, .Net Compact Framework üzerinde halihazırda kullanıyor olduğumuz WCF Service proxy' lerini oluşturmak için "command line" üzerinden çalıştırılan "çok önemli bir araç" bulunmaktadır. NetCFSvcUtil.exe.
Bu araç vasıtasıyla WCF Service proxy' lerini oluşturmakta ve akabinde WCF Service çağrılarını yapabilmektesiniz.
Her nedendir ki bu araç Windows Vista SP2 ve Windows 7 üzerinde çalışmamakta, Proxy generation sürecinde hata vermekte ve çıldırtmaktaydı. Neyseki "uzuun" zamandır güncellenmeyen .Net Compact Framework Team blog' u üzerine 10 ağustos' ta eklenen çok önemli bir blog girdisini paylaşmak istiyorum.
NETCFSvcUtil.exe fix :
"Check out Manish’s blog on NetcfSvcUtil.exe crashing on some operating systems and the uploaded fix for it here."
Evet ! , bu işi "en sonunda" düzeltmişler. 7 Ağustos itibariyle adresinden güncellenmiş NetCFSvcUtil' i indirebilirsiniz.Devamını Oku...
27 Ağustos 2009
Microsoft Yaz Okulu 2009 | İzmir
Merhaba,
26 Ağustos 2009 günü Microsoft Yaz Okulu 2009 serisinin son durağı olan İzmir - İzmir Yüksek Teknoloji Enstitütüsündeydim. Havalimanından itibaren aşağı yukarı 1 saatlik "çeşme istikametine" doğru bir yolculuktan sonra (Evet Çeşme :) ) üniversiteye vardım.
Çok kalabalık, çok keyifli bir gündü. Özellikle kampüsün konumu ve havasının serinliği günün yorgunluğunu aldı götürdü.
Mobil teknolojiler üzerine bolca sohbet ettik, örnek uygulamalar geliştirdik.
Kısacası, güzel ve kalabalık bir gündü. Geliştirilen örnek uygulamayı buradan indirebilirsiniz.
Microsoft Yaz Okulu 2009 | İstanbul
Merhaba,
Fotoğrafların biraz geç ulaşması :) ve iş yoğunluğu sebebiyle gerçekleşen fakat blog' a bir türrlü ekleyemediğim bir etkinlikten bahsetmek istiyorum. Microsoft Yaz Okulu 2009 | İstanbul. 18 Ağustos 2009 tarihinde Microsoft Türkiye İstanbul ofisinde keyifli bir gün geçirdik.
Mobil cihaz uygulamaları hakkında bol bol sohbet ettik, vaktiğimiz elverdiğince örnek uygulamalar geliştirdik.
Eğitim kadrosu ! :)
Arkadaşlar Microsoft Türkiye ofisin terasın keyfini bolca çıkarttılar :)
Kısacası keyifli bir gündü. Geliştirilen örnek uygulamayı buradan indirebilirsiniz.
23 Ağustos 2009
.Net Compact Framework 3.5 – LINQ Uygulamaları – Linq To Dataset
Konu ile ilgili bir önceki yazımızda ifade ettiğimiz üzere .Net Compact Framework 3.5 ile birlikte artık mobil cihaz uygulama geliştiricileri bu platform üzerinde geliştiriyor oldukları uygumalarda “belirli sınırlar” içerisinde LINQ (Language Integrated Query) olarak ifade edilen altyapı ile “doğal yollarla” ellerindeki kaynakları sorgulayabilmektedirler. Bu bağlamda .Net Framework üzerinde LINQ üzerine onlarca farklı provider geliştirilmiş ve halen de geliştirilmeye devam edilmektedir.
Daha önce de ifade ettiğimiz üzere .Net Compact Framework üzerinde LINQ aşağıdaki sınırlar çerçevesinde desteklenmektedir ;
- Standart Query Operators
- Linq To Dataset
- Linq To XML
Bu yazımızda Linq To Dataset tarafındaki altyapıyı inceleyecek, LINQ ile mobil cihaz uygulamaları geliştirirken Dataset, DataTable ve DataRow’ lar üzerinde sorgulama işlemlerinin nasıl gerçekleştirileceğini örneklendireceğiz.
Dataset – DataTable – DataColumn - DataRow
Bilindiği üzere başlıkta yazan temel 4 kavram Ado.Net Disconnected (Bağlantısız) mimarinin temel yapı taşları olmaktadır. Bu noktada hedef herhangi bir x veri kaynağından gelen relational (ilişkisek) verilerin memory üzerinde konumlandırılması, ve verilerin herhangi bir t anında manipule (Add, Delete, Modify) edilmesi ve tekrardan merkezi verikaynağına gönderilmesi ise Ado.Net üzerinde tanımlı olan sınıflar (xxxDataAdapter, xxxDataReader, xxxCommand, xxxConnection v.b.) vasıtasıyla verilerin çekilmesi ve bu verilerin “memory üzerindeki veritabanımız” olarak kabaca ifade edebileceğimiz DataSet’ ler içerisinde oluşturduğumuz DataTable’ lara yüklememiz gerekmektedir.
DataSet genel olarak aşağıdaki hiyeraşri ile oluşturulmaktadır.
Resimden de anlaşılabileceği üzere DataSet provider bağımsız bir veri saklama, yönetme v.b. otamıdır. Siz DataSet’ in verilerini herhangi x bir veri kaynağı üzerinden çekebileceğiniz gibi örneğin bir web servis ya da bir WCF servis çağrısı sonucunda gelen XML üzerinden de yükleyebilmektesiniz. Genel olarak DataSet bir Container görevi görmekte, veriler DataSet içerisindeki DataTable’ lar üzerinde konumlandırılmaktadır. DataTable ise DataColumn (Sütunlar) ve DataRow (Satırlar) koleksiyonlarından oluşmaktadır. Ayrıca bu DataTable ‘ lar arasında DataSet seviyesinde DataRelation (İlişkiler) konumlandırarak ilintili kayıtlar arasında dolaşabilekteyizdolaşabilmekteyiz.
Bu noktaya kadar kısa bir DataSet – DataTable – DataColumn – DataRow kavramları hakkında bilgi sahibi olduk. Sıra geldi yazımızın asıl konusuna.
Normalde şartlarda DataTable üzerindeki bir verinin sorgulanması “çok sınırlı” olarak sınıf üzerindeki Select fonksiyonu ya da bu DataTable üzerinden oluşturulan bir DataView objesinin Filter özelliği vasıtasıyla “belirli sınırlar içerisinde” gerçekleştirilebilmektedir. Bu noktada daha kapsamlı bir sorgulama altyapısının olması, en azından halihazırda kullanıyor olduğumuz sql-tipi sorgulama altyapısının uygulanabilir olması uygulama geliştiricilere ciddi avantajlar kazandıracaktır.
Linq To Dataset bize bu altyapıyı sunmaktadır. .net Compact Framework 3.5 ile birlikte gelen System.Data ve System.Data.DataSetExtensions referanslarının projeye eklenmesinin sonusunda DataTable, DataRow ve DataView sınıfları içerisinde bu sorgulamaya altyapı sağlayacak konu ile ilgili birkaç Linq Extension Method’ u gelmektedir.
IntelliSense üzerinden DataTable’ a baktığımızda ise ;
İki adet çok kritik extension method gelmektedir. AsDataView Extension Method’ u DataTable üzerinden direk DataView oluşturmaya, AsEnumerable extension method’ u ise tablo içerisindeki DataRow’ ların içerisinde bulunduğu “içi dolu” bir EnumerableRowCollection
İşte tanıdığımız bir sürü extension method !
Bu noktada birkaç detayı daha netleştirelim. Bilindiği üzere DataSet’ ler “hazırlanışlarına göre” 2 farklı şekilde olabilmektedir ; typed ve untyped.
Typed DataSet’ ler “genellikle” bir code-generator tarafından oluşturulan ve içeriğine “daha hakim olabileceğimiz” cinsten DataSet’ lerdir. Örneğin, DataSet içerisinde 2 adet DataTable oluşturulduğunu varsayalım ; Employees ve Orders. Bu tablolara standart olarak ;
ulaşabilmekteyiz. Typed olan bir DataSet içerisindeki structure, veri kaynağına bakarak hazırlanacağından, yukarıdaki yönteme “alternatif” olarak şu şekilde de ulaşabileceğimiz bir model “code generetor” tarafından oluşturulmaktadır ;
Bu yöntem “eğer uygulanabiliyorsa” ciddi bir avantaj oluşturmakta, DataSet’ in yapısını anlamamıza ve işlem yapmamıza çok daha fazla olanak sağlamaktadır.
Genel olarak Linq To Dataset ile Typed ve UnTyped DataSet’ ler üzerinde sorgulama ya da filtreleme işlemleri gerçekleştirebilmektesiniz.
Gelelim uygulama örneklerine. Örneğimizde hem Typed hem Untyped DataSet’ ler kullanarak Linq To Dataset kod blokları geliştireceğiz. Bu noktada Typed DataSet’ i Northwind’ in Sql Server Compact Edition için hazırlanmış örnek veritabanı üzerinden “otomatik” olarak oluşturacağız.
Projemize bu örnek veritabanını ;
Patikası üzerinden ekliyoruz ; ve ekrana gelen Typed Dataset oluşturma sihirbazından Orders ve Employees Tablolarını seçiyoruz. İşlem sonucunda aşağıdaki şemaya sahip bir DataSet’ in projemiz içerisinde oluşturulmuş olması gerekmektedir.
Ayrıca, verilerin doldurulabilmesi adına her DataTable ile ilişkili TableAdapter’ ler ise otomatik olarak eklenmiştir.
Sıra geldi bu verileri sorgulamaya. Linq To Dataset içerisinde Standart Query Operators olarak ifade edilen operatörleri kullanabilmektesiniz. Sorgulama hem query expression yöntemiyle hem de extension method’ lar ile gerçekleştirilebilmektedir.
Uygulamamızın yüklenmesiyle birlikte veritabanı üzerinden Employees ve Orders tablolarını dolduruyoruz.
Ve sorgulamaya başlıyoruz. İlk örneğimizde Employees DataTable’ ı içerisinde EmployeeId değeri 5’ ten büyük olan DataRow’ ları seçelim ve Firstname değerlerine göre tersten sıralatalım.
Uygulama çalıştırılıp Button’ a basıldığında ise ;
Yukarıdaki sonuç kümesi elde edilmektedir. Id’ si 5’ ten büyük olan personellerin Firstname’ e göre tersten göre sıralanmış hali.
Bu noktada kod bloğunu biraz açıklamamız gerekmektedir.
Öncelikle dikkat edilirse sorgulama modeli Linq To Dataset’ te en ufak bir farklılık taşımamaktadır. Standart Query Expression modeli ile birebir aynıdır. Bu noktada dikkat çeken 2 adet nokta bulunmaktadır. Bunlardan ilki “r” sembolik adıyla anlık olarak temsil edilen DataRow sınıfı içerisinde normal şartlarda olmayan bir extension method’ un olmasıdır ; Field
Bu method, aranan kolon değerini, kendisine gönderilen kolon ismi üzerinden arayarak
Kod bloğunu incelemeye devam ediyoruz. Sorgu sonucunda elimize OrderedEnumerableRowCollection
Bu noktada hem IList noktasında hem de bir sonraki aşamada filtreleme yapabilmek adına en mantıklı çözüm DataView olmaktadır. Linq To Dataset paketi içerisinde gelen Extension Method AsDataView
Farklı bir örnek üzerinde çalışalım. Bilindiği üzere ilişkili tablolar sql tarafında Join sorguları ile ortaklaşa sorgulanabilmekte, birden fazla tablo üzerinden alınan veriler birleştirilebilmektedir.
Linq To Data üzerinde de join sorguları gerçekleştirebilmektesiniz ! Örneğimizde Orders tablosu ile Employees tablosu arasında Employee Id alanı üzerinden bir ilişki bulunmaktadır.
Hedefimiz ; Orders tablosundan satış bilgilerini almak ve bunun yanında Employee Id yerine bu satış ile ilişkili personelin Ad – Soyad (Firstname + Lastname) bilgilerini almaktır. Her iki tabloyu Load’ ta doldurduktan sonra aşağıdaki sorguyu çalıştırıyoruz :
Bu noktada sonuç kümesinin DataRow’ lardan oluşmamasından ötürü sonuç kümesini DataView’ e dönüştürememekteyiz. Fakat DataGrid IList implemantasyonunu sağlayan List
Peki, şu ana kadar tüm bu örnekleri Typed DataSet’ e uygun olarak hazırladık. Ya elimizde structure’ ı hakkında bu şekilde çalışamayacağımız, untyped bir DataSet olsaydı ? Yukarıdaki sorguyu UnTyped DataSet’ e uygun olarak tekrar yazıyoruz ;
Yukarıdaki kod bloğu dikkatlice incelenirse bir önceki kod bloğu ile arasında hem farklar hem de benzerlikler olduğu rahatlıkla anlaşılabilecektir. Gelelim farklılıklara ;
Bir önceki kod bloğunda TypedDataTable olarak DataSet’ in Employees özelliği üzerinden DataTable’ a direk ulaşıyor, join uygulayabiliyorduk. Bu noktada DataTable normalin dışında System.Data.TypedTableBase
Bunun dışında alanlara direk “özellikler üzerinden” ulaşamamakta (Örn : Employees.Employee_ID), DataRow içerisinde bulunan Field
İşte bu kadar !
Bütün bunların dışında gelen sorgu sonucu üzerinde diğer extension methodları kullanarak (sum, count v.b.) birçok işlemi gerçekleştirebilmektesiniz.
Bu yazımızda genel olarak Linq To Dataset kavramına değindik. Örnek uygulamayı sisteme aktardıktan sonra buradan yayınlayacağım. Bir başka yazıda görüşmek dileğiyle.
Devamını Oku...18 Ağustos 2009
.Net Compact Framework 3.5 – LINQ Uygulamaları – Standart Query Operators
Hiç şüphesiz .Net Compact Framework 3.5 ile birlikte gelen “sınırlı” LINQ (Language Integrated Query) desteği .Net Compact Framework managed mobil cihaz uygulama geliştiricilerin uygulama geliştirme sürecini ciddi anlamda kolaylaştıran en önemli yeniliklerin başında ifade edilebilmektedir. .Net Framework 3.5 ile birlikte uygulama geliştirme ortamında yerini bulan ve günümüzde bakıldığında üzerine onlarca “Provider” geliştirilen LINQ, birçok yazılım geliştiricinin yazılım geliştirme sürecini hızlandırmakta, okunması, anlaşılması ve yazılması her zaman daha sevimli ve daha kolay olan “sql-tipi” sorgulama modelini .Net ortamına getirmektedir. .Net Uygulama Geliştirme platformu üzerinde resmi dil olarak kabul edilen C# (C-Sharp) ve VB.NET (Visual Basit .Net) programlama dilleri kullanılarak, bu dillerin compiler (derleyici)’ ları üzerinde yapılan geliştirmeler sonucunda uygulama geliştiriciler birçok farklı “veri setine” “doğal yöntemlerle” ulaşabilmekte ve bu verileri “doğal yöntemlerle” sorgulayabilmektedir. Doğal yöntemler olarak katedilen metoloji, hali hazırda veri sorgulama işlemlerinde kullanıyor olduğumuz select, from, join, where v.b. gibi sorgulama kelimelerinin programatik ortamda kullanılmasıdır. LINQ (Language Integraed Query), temelinde bize bu olanağı sağlamakta, derleyicilere bu yeteneği kazandırmaktadır. Bir diğer bakış açısıyla LINQ, IEnumerable
Örneğin ;
kod satırları string bir dizi üzerinde dizi elemanlarının metinsel uzunluğu 3 karakterden fazla olan elemanları listelemesini öngörmektedir.
LINQ ile iki farklı metodoloji ile sorgulama gerçekleştirebilmekteyiz. Bunlardan ilki yukarıdaki ekran görüntüsünde ifade edilen ve “Query Expression” olarak tabir edilen native keyword’ ler ile sorgulama yapmak, diğeri ise “aslında yukarıdaki yazılanların da derleme zamanında otomatik olarak uygun olan Extension Method’ lara çevrildiği” metot çağrıları ile sorgulama yapmaktır. Örneğin yukarıdaki sorguyu ;
Şeklinde de çalıştırabilmekteyiz.
Evet, LINQ çağrıları derleme anında IEnumerable
Referanslardan ilgili referansı eklemeli ;
Ve System.Linq ‘ i kod ekranına “using” ile tanımlamamız gerekmektedir.
Peki IEnumerable
“LINQ Standart Query Operators” olarak adlandırılan bu fonksiyon seti, temel olarak bir veri seti üzerinde ihtiyaç duyulabilecek neredeyse tüm işlemleri gerçekleştirmeye yarayan “Extension Method" ' lardan oluşmaktadır. Bu setin içideki tüm fonksiyonların ne işe yaradığını http://msdn.microsoft.com/en-us/library/system.linq.enumerable_members.aspx adresinden detaylıca öğrenebilirsiniz.
Bütün bunların dışında yazının başında da belirttiğimiz üzere LINQ’ in bize sunduğu Iqueryable
Hızlı bir şekilde yazımızın ana konusuna dönersek, bu yazımızda .Net Compact Framework 3.5 ile birlikte “artık” desteklenen, mobil cihaz uygulama geliştiricilerin bu platform üzerinde kullanabilecekleri LINQ implemantasyonundan bahsedeceğiz.
.Net Compact Framework 3.5 ile artık masaüstü LINQ’ in “kısıtlı, belirli bir bölümünü” mobil cihaz uygulamaları geliştirirken kullanabilmekteyiz. .Net Compact Framework 3.5 üzerinde sadece ;
Standart Query Operators
LINQ To Dataset
LINQ To XML
desteklenmektedir.
Standart Query Operators
Yazımızın bir önceki bölümünde bahsettiğimiz üzere LINQ içerisinde Standart Query Operators başlığı altında IEnumerable
Hiç vakit kaybetmeden birkaç örnek üzerine çalışalım. Örneğimizde Sql Server Compact Edition 3.5 sürümü üzerinde hazırlanmış Northwind.sdf isimli veritabanı üzerinden Customers tablosuna ait veriler çekiliyor ve çekilen her satır uygulama içerisinde bir Customer entity instance’ ı olarak temsil ediliyor. Bu noktada hazırlanan alt yapıyı örnek kodları indirerek inceleyebilirsiniz.
Entity klasörü içerisindeki Customer sınıfı, veritabanı üzerindeki bir Customer kaydını temsil edecek şekilde modellenmiştir.
Business klasörü içerisindeki Customer sınıfı ise Northwind.sdf üzerinden tüm müşteri kayıtlarını Ilist
Bu noktada kodların tamamına örnek kodları indirerek ulaşabilirsiniz. Verilerin getirilmesinde SqlCe Provider’ ı kullanışmıştır.
Sıra geldi bu verileri çekip, üzerinde sorgulama yapmaya. Bu noktada bize yardımcı olması adına uygulamamıza bir Form ekliyoruz ve Form Load olayı tetiklendiğinde aşağıdaki kod bloğunu çalıştırıyoruz.
Ve verilerimiz artık elimizde. Bu noktadan sonra elimizdeki Customers list’ i üzerinde Standart Query Operators ‘ ı kullanarak birçok işlem gerçekleştirebiliriz. Sonucta IList
Form üzerine bir button yerleştirip bu button’ a tıkladığımızda açılan kod bloğu içerisinde Customers yazıp noktaya basıyoruz ve gerçekleştirebilecek olduğumuz işlemlerin bir listesini görüntülüyoruz.
İşte karşımızda Extension Method’ lar ya da bir diğer deyimiyle Standart Query Operators ! İkonunda aşağı doğru bakan mavi renkli ok işaratei bulunanlar Extension Method olarak ifade edilebilir.
Sıra geldi bu fonksiyonların etinden sütünden faydalanmaya. Bilindiği üzere LINQ üzerinde iki tip sorgulama yöntemi bulunmaktadır. Query Expressions ve Method Calls. Siz, bazı operatörleri method çağrıları şeklinde çağırmak yerine LINQ’ in “doğal yöntemi” ile sorgulayabilirsiniz. Bunu yazımızın başında ifade etmiştik.
Query Expression modelinde hangi keyword’ lerin kullanılabileceğini ise http://msdn.microsoft.com/en-us/library/bb882642.aspx adresinden inceleyebilir, yazdığınız kelimelerin compile time’ da hangi method çağrılarına dönüştürüldüğünü, hangilerini sadece methodlar kullanarak çağırabileceğinizi bu listeden görebilirsiniz. Ayrıca C#’ ta olmayan bazı keyword’ ler VB.Net üzerinde bulunmaktadır. J Microsoft’ un önerisi, okunması her açıdan kolay olan Query Expression’ ları olabildiğince kullanmamızdır. Sonuçta compile time’ da her ikiside aynı IL koduna dönüştürüldüğünden aralarında hiç bir performans farkı bulunmamaktadır. Ayrıca bilindiği üzere Query Expression’ lar çok sınırlı bir keyword listesini desteklemekte. Siz sıkıştığınız noktalarda bu expressionları method çağrıları ile birleştirip hibrit sorgulamalar gerçekleştirebilirsiniz. Örneğin ;
Yukarıdaki kod bloğunda Berlin şehrinde yaşayan müşterilerimizin ContactTitle bilgisini seçtikten sonra normal şartlarda C# üzerinden Query Expression yöntemi ile gerçekleştirilemeyen Distinct çağrısını Extension Method çağrısı ile gerçekleştirmiş bulunmaktayız.
Biraz sorgulama gerçekleştirelim.
Sorguda veri kaynağı üzerinden gelen müşterileri yaşadıkları ülkelere göre grupladık. Gruplamanın sonucunda ise anonim bir tip oluşturduk ve bu tipe 2 adet özellik tanımladık. Hangi şehir bilgisi ve bu şehirde yaşayan müşterilerin sayısı.
Örneğin yukarıdaki sorguda Adres’ i A harfiyle başlayan müşterileri listeledik.
Kısacası elinizdeki verilerin yoğunluğu, aralarındaki ilişkiler ve daha birçok noktayı da göz önünde bulundurarak, .Net Compact Framework 3.5 kullanarak geliştirdiğiniz Mobil Cihaz Uygulamalarında Standart Query Operators olarak ifade edilen bu keyword ve fonksiyonları kullanarak LINQ’ in gücünü hissedebilirsiniz. Bir sonraki yazımızda .Net Compact Framework üzerinde LINQ To Dataset kavramını örneklerle inceleyeceğiz.
Geliştirilen örnek uygulamanın kodlarını buradan indirebilirsiniz.
12 Ağustos 2009
LINQPad
Merhaba,
Birkaç gün içerisinde .Net Compact Framework 3.5 üzerinde LINQ uygulamaları ile ilgili bir yazı yayınlayacağım. Bu süreçte birkaç noktayı araştırırken karşıma çıkan "faydalı" bir ürünü sizlerle paylaşmak istiyorum ; "LINQPad"
LINQPad, isminden de anlaşılabileceği üzere hızlı ve kolay bir şekilde LINQ sorguları yazmak, projelerinde LINQ kullanmak isteyen uygulama geliştiricilerin hayatlarını ciddi anlamda kolaylaştırıyor. Uygulama üzerinden veritabanlarınıza bağlanabiliyor olmanızda aslında işin ayrı bir avantajı.
Uygulamayı "belirli özellikleri ile ücretsiz olarak" http://www.linqpad.net/ adresinden indirebilirsiniz.
11 Ağustos 2009
Microsoft Yaz Okulu 2009 | Ankara
Merhaba,
11 Ağustos 2009 tarihinde 1 tam günlük Microsoft Yaz Okulu 2009 eğitimi için Ankaradaydım. Hedefimiz ;
- Cep Bilgisayarları
- Windows Mobile 6.0 - 6.1 - 6.5
- Windows Mobile Mobil Cihaz Uygulamaları
- .net Compact Framework 3.5
- Sql Server Compact Edition 3.5

Bolca konuştuk, mobil cihazlar ve mobil cihaz uygulamalarını geliştirmek adına teknolojilerden bahsettik. Ve tabiki öğlen güzel bir yemek yedik ;

Kısacası keyifli bir gündü. Diğer seminerlerde görüşmek dileğiyle. Geliştirdiğimiz fakat tamamlayamadığımız örnek uygulamanın kodlarını bu adres üzerinden paylaşıyor olacağım. Uçağa yetişmem gerekiyor. :)
Edit : En sonunda dosyayı sunucuya yükledim. :) Buraya ! tıklayarak geliştirilen uygulamayı indirebilirsiniz. Devamını Oku...
8 Ağustos 2009
ASP.NET Mobile & Visual Studio 2008
Merhaba,
Uğraşanlar farkedecektir, önceki sürümlerinde standart bir ASP.NET Web projesi oluşturduğumuzda "Mobile Web Form" olarak ifade edilen mobil cihaz uyumlu Web Form' ları ekleyip, hazırlayabilmekteyiz.
Fakat Visual Studio 2008 "Add New Item" dialog penceresinde gördüğümüz üzere bu özellik Visual Studio 2008 üzerinden "nedense" çıkarılmıştır. Alınan bazı duyumlara göre mobil cihazların farklı Form Factor' lerinin olması bu sonucu oluşmasında büyük rol oynarken kimilerine göre de bu tip bir çalışma için "uğraşılmamış".
Visual Studio 2008 ASP.NET Mobile uygulama modelini halen desteklemektedir. Sadece Designer View olarak tabir edilen "Görsel Tasarım" ekranı bulunmamaktadır.
Bu işi gerçekleştirmenin iki farklı yöntemi bulunmaktadır.
Yöntem 1 :
Varolan bir Web Form' u Page yerine MobilePage' ten kalıtım aldırmak. Kullanacak olduğumuz kontrolleri ise UserControl yerine MobileUserControl' den kalıtım aldırmak. Ve son olarak sayfa üzerine ;
tanımlamasını yerleştirerek "Source View" üzerinden mobile kontrollere erişmek.
Yöntem 2 :
Visual Web Developer Group Program Manager Omar Khan tam ihtiyacımız olan bir Visual Studio template' i hazırlamış. http://blogs.msdn.com/webdevtools/attachment/4776222.ashx adresinden indirilebilecek bu template ile birinci yöntemde ifade edilen adımları otomatize edebilir, Add New Item penceresine kaybolan Mobile Web Form' u geri getirebilirsiniz.

Yanlız ifade ettiğim üzere, Designer View olarak ifade edilen tasarım ekranı ASP.NET Mobile kontrollerini görüntüleyemediğinden bu özellik çıkarılmış, sadece Source View desteklenmektedir.
6 Ağustos 2009
Windows 7 Sürümleri Türkiye Fiyatları

Microsoft’un bütün dünyada 22 Ekim 2009 tarihi itibarıyla tüketiciyle buluşacak yeni işletim sistemi Windows 7’nin farklı sürümleri için, Türkiye’de önerilen (kutu ürünler için) son kullanıcı liste fiyatları belirlendi. Paralel olarak PC üreticileri ile birlikte OEM Güncelleme Garantisi Programını başlattı.
Home Basic 123.00 US$
Home Premium 145.00 US$
Professional 236.00 US$
Ultimate 250.00 US$
Daha detaylı bilgi için ; http://www.microsoft.com/turkiye/haberler/win7.mspx
Ayrıca, Windows 7' nin yeniliklerini incelemek isteyenler için ;
http://www.microsoft.com/turkiye/windows/windows-7
Bu arada MSDN üyeleri için, bugün (6 Ağustos 2009) MSDN üzerinde Windows 7 RTM yayınlanacaktır. Bilginize :)
4 Ağustos 2009
Webiner Tekrarı ! | Windows Mobile 6.5 – Widget Geliştirmek Part 1
Arkadaşlar merhaba,
04 Ağustos 2009 ' ta gerçekleştirdiğimiz Windows Mobile 6.5 – Widget Geliştirmek Part 1 konulu webiner bağlantı problemlerinden dolayı maalesef tamamlanamadı. Webiner' in tekrarını yapacağız. Katılan arkadaşlara çok teşekkür ediyorum.
Yeni webiner gün / saatini mail grubu ve blog' um üzerinden paylaşacağım.
Teşekkürler,
2 Ağustos 2009
Windows Mobile Türkiye - Mail Grubu
Merhaba, Paylaşımın artması ve Türkiyedeki Mobil Cihaz uygulama geliştirici sayısının yükselmesi adına bir mail grubu kurdum ; Windows Mobile Türkiye !
Mail grubu genel olarak ;
- Windows Mobile
- .Net Compact Framework
- Visual Studio
http://windowsmobileturkiye.groups.live.com
adresi üzerinden gruba katılımını bekliyorum. :) Devamını Oku...