19 Mart 2009 Perşembe

INETA Professional Hit

24 - 25 Ocak 2009 tarihlerinde Microsoft İstanbul ofisinde gerçekleşen INETA (Uluslararası .NET Birliği) Professional Hit’e katıldım. Seminerin konuları şu şekildeydi;

Silverlight ile Veri Uygulamaları - Daron Yöndem - Level 300
ADO.NET Data Services - Burak Selim Şenyurt - Level 300

Derinlerde C# 3.0 - Burak Selim Şenyurt - Level 300
ASP.NET AJAX 4.0 - Daron Yöndem - Level 300
Asp.Net Application ve Page LifeCycle - Oğuz Yağmur - Level 300

Level konusunu açıklamak gerekirse; Microsoft, yazılım geliştiricileri seviyelendirmek için standart bir uygulama olarak bunları kullanıyor. Level 300: Anlatılan konuyu bilen, kullanmış, uygulamış ve tecrübe sahibi yani ileri seviye yazılımcıyı niteliyor. Tüm katılımcılar bu seviyeyi yakalayamamış olsada seminer çok güzel geçti. Üniversitelerde yapılan reklam amaçlı slayt gösterileri yerine toplu halde proje geliştirmeye benzeyen uygulamalı öğretimi sağlayan bu oturumlardan çok memmun kaldım. INETA Türkiye Başkanı Darom Yöndem’in blogunda yayınlanan yazıdan seminerde yapılan uygulamalara ve çekilen fotoğraflara ulaşabilirsiniz. (Fotoğrafların bir tanesinde elimde kağıt kalemle, dikkatle dinlerken görülüyorum)

Benim notlarım; Öncelikle mobil yazılım geliştiriciler Mobil Star yarışmasına bir baksınlar. Henüz duyurusu yapılmamış bir yarışma. Amaç yarışamadan daha çok workshoplar ile eğitim vermek.

Office 2007 dosya formatlarının sonuna “x” (.docx gibi) eklendiğinin farkındasınızdır. Bu şekilde uzantılı dosyaların uzantılarını “.zip” olarak değiştirip arşivi açtığımızda içinde dosyanın içeriğini (xml olarak) ve resimleri bulabiliyoruz.

Veritabanında tarihleri tutarken başka bir sunucuya taşınabileceğini ve yeni sunucunun bölgesel ayarlarının tarihleri etkileyebileceğini düşünmüyoruz. Böyle bir sorunu engellemek için veritabanı oluşturulurken tarih verilerini tamsayı(int) olarak saklamak gerekiyor. Uygulamamızda

C#

DateTime tarih = DateTime.FromOADate(39842);
double oaTarih = tarih.ToOADate();

VB.NET

Date.FromOADate(value)
CDate(value).ToOADate()

kodlarını kullanabiliriz. Sonuç ondalıklı(double) tipinde olmasına rağmen tamsayı seçmemizin sebebi virgülden sonraki kısmın saat ve dakika gibi bilgileri tutması. OLE otomatik olarak 30 Aralık 1899 geceyarısından başlayarak günleri sayar. Bugün, 39842 gün olmuş.

Silverlight’ta kullanılan Grid, bütün veri satırlarını önbelleğe atmaktansa sadece görünenleri atıyor ve bu şekilde 1000 satırlık bir Grid görebildiğimiz 10 satır kadar bilgisayarımızın performansını etkiliyor.

Disassembly için MSIL Disassembler (ILDasm) kullanıyordum. Seminerde sıkça gördüğüm Red Gate’in .NET Reflector daha kullanışlı gözüküyor.

Program tavsiyesi yaparken Fiddler‘ı unutmamak lazım. HTTP trafiğini kontrol etmek konusunda usta yazılımlardan.

SQL Server Profiler Bilge Adam Yazılım ve Veritabanı eğitiminde anlatılmayan bir konu. Sistem konusuna giriyor gibi gözükebilir ama uygulamaların etkinliği için buradan takip etmemiz daha sağlıklı olacaktır. Biraz kurcalamanız yeterli.

Visual Studio ile yazarken “prop” yazıp 2 defa tab tuşuna bastığımızda kodlar bizim için yazılıyordu. “propg” salt okunur bir özellik oluştururken “ctor” ise inşa(constructor) metodunu oluşturuyor. Bu tür diğer kolaylıkları şuradan öğrenebilirsiniz.

ASP.NET Dynamic Data ile yönetim panellerini saniyeler içerisinde hazırlayabiliyoruz. İngilizce kaynağımızı, Türkçe kaynağımızı ve düzenleme hakkında bir makeleyi izleyebilir veya okuyabilirsiniz.

Gelelim LINQ(Dil Dahilinde Sorgu) konusuna, aklımı çok karıştıran bir konu. LINQ programlama dili içerisinde T-SQL benzeri sorgular çalıştırmamızı sağlar. Yazılımcıya kolaylıklar sağlayan bir teknoloji. Bilge Adam’daki hocam SQL tablolarını LINQ kullanarak önbelleğe attığımız takdirde performansın aşırı derecede düşeceğini söylemişti. Eğer LINQ’in yeni sürümlerinde bunun önüne geçilirse o zaman LINQ kullanılabilir demişti. Seminerde “LINQ to SQL” bırakıldı ve “ADO.NET Data Services” geliştirilmeye başlandı denildi. Sonuç olarak “LINQ to XML” kullanın.

AJAX 4.0’da teknolojiye adını veren XML yerine JSON kullanılmaya başlanmış. JSON’un(JavaScript Object Notation) XML’den farkı, etiket(tag) isimlerinin bir kere yazılıyor olması. 1000 verinin 2000 etiketi olmasındansa 1000 etiketi olması tabiki etkinlik sağlar.

AJAX’da sıklıkla kullandığımız “Update Panel” bir sayfada birden çok olduğu durumda hepsi aynı anda tetikleniyor. Bunu önlemek için panllerin “Update Mode”larını “Conditional” yapmalıyız. Ayrıca sayfa üzerinde yapılacak küçük değişikliklerde “Update Panel” kullanmak yerine bize işlemin sonucunu veren bir WebMethod kullanmak daha iyi olacaktır. Daha önceden bildiğim bu konu, seminerde yapılan uygulamada 700B’a 7B ile muhteşem bir fark oluşturdu.

Son olarak Global.asax, HttpApplication’dan türemiş bir sınıf bilgisini ekleyelim.

Hiç yorum yok:

Yorum Gönder