MVVM nedir?

Merhabalar, bu yazımda MVVM design pattern’i açık bir şekilde anlatmaya çalışacağım. Genelde bir uygulamayı yazarken geleceğini düşünmeden yazarız, buna bir çeşit alışkanlık diyebiliriz. Eğer ilk kez bir design pattern ile uğraşacaksanız ilk tepkiniz: “ne gerek var buna ya ben zaten aynısını daha kısa sürede bildiğim yöntemle yapıyorum” olacak, benim de olmuştu 🙂 Ama yazacağınız uygulama büyük ve geliştirilebilir bir uygulama olacaksa bu klasik yöntemden vazgeçmeniz gerekecek. Neden mi?

Çünkü;

  • Tüm uygulama mantıklarını sayfanın .cs uzantılı dosyasına yazacağınız için ileride geliştirme aşamasında kodlar içinde kaybolacaksınız.
  • XAML’i modifiye etmek veya değiştirmek için ekstra çaba sarfedeceksiniz.
  • Arkada çok fazla kod olacağı için , en ufak bir arayüz değişikliğinde gereksiz zaman kaybeceksiniz.
  • Sayfada gösterilecek bilgiler bir data servisten geliyorsa, bunun tasarım sırasında görünümünü göremeyeceksiniz, doğal olarak tasarımınızı çok fazla geliştiremeyeceksiniz.

 Peki nedir bu MVVM?

MVVM,  MVC’nin bir çeşit XAML’a uyarlanmış hali diyebiliriz. Bu yüzden MVC ile benzer yanları çoktur, eğer MVC ile uğraşanlarınız varsa MVVM’e adapte olmak o kadar da zor olmayacak. MVVM ‘i farklı kılan nokta ise, data binding, ViewModel ve View ile arasında olan çift taraflı iletişim. MVVM’i XAML ve .NET kullanılan her uygulamada kullanmak mümkün.( Windows Phone, Windows Store)

MVVM 3 yapıdan oluşmakta;

Model, business logic dediğimiz uygulamanın mantığını ve gerekli tüm servisleri kapsar.

View, arayüzdür, yani son kullanıcının gördüğü kısımdır.

ViewModel, bu iki yapı arasındaki iletişimi sağlar, ViewModel için en güzel yakıştırma orkestra şefi olabilir, uygulamayı koordine eden en önemli yapı dersek yanlış olmaz sanırım.

viewmodel

Genelde her bir View, bir ViewModel’a sahiptir. Böylece bağımlılık minimuma yaklaşmış olur. View-ViewModel arasında çift yönlü iletişim: Data Binding vardır, ViewModel-Model arasında ise klasik metot çağırmalar mevcuttur.

Bu 3 yapı sayesinde MVVM, business logic ile arayüzü birbirinden ayırır, bu sayede tasarımcı bir yandan tasarımını yaparken, developerda arkadaki işlemleri yapar. Bu aynı zamanda MVVM’in kullanım amacıdır. Böylece uygulamanın geliştirilmesi ve  test edilmesi kolaylaşır.

Bir sonraki yazımda, Windows Phone 8’de MVVM design pattern’in kullanılırlığını gösteren örnek bir uygulama üzerinden anlatıma devam edeceğim.

 

Reklamlar

Windows 8 ve Windows Phone ‘a Uygulama Geliştirmenin Kolaylığı

Microsoft’un en çok beğendiğim tarafı uygulama geliştirmek isteyenlere ve öğrencilere verdiği inanılmaz derecede yararlı kaynaklar. Üniversitelerde, çoğu üniversite C# dersi vermiyor, bu yüzden windowsa uygulama geliştirmek isteyenler öncelikle bu dili bir şekilde öğrenmesi gerekiyor. Ben de windowsa uygulama geliştirmek için okuldan bağımsız C# öğrenenlerden birisiyim. Peki nasıl öğrendim kaynakları nereden buldum? Hepsinin cevabını yazının sonunda öğrenmiş olacaksınız.

Dreamspark;

Microsoft’un öğrencilerin yazılım geliştirme süreçlerinde ihtiyaç duyduğu Microsoft yazılımlarını ücretsiz edinebildikleri bir platform. Buradan birçok Microsoft yazılımını indirip ücretsiz kullanabilirsiniz. Biz yazılımcılar için özellikle Visual Studio 2013 benim Dreamspark’ta ki favorim 🙂

Windowsa uygulama geliştirmek için olmazsa olmazımız başımızın tacı, Visual Studio’muzu buradan indirebilirsiniz.

dreamspark

Açık Akademi

Microsoft Türkiye’nin son dönemlerde en çok önem verdiği bir platform olan Açık Akademi’de sıfırdan başlayıp ileri dereceye kadar Microsoft ürünlerini öğrenmek isteyenler kolay bir şekilde temeli alıp ilerleyebiliyor. Ayrıca sanalsınıflarda da mvp’lerden ders alabiliyorsunuz, gayet eğlenceli geçiyor 🙂 Açık Akademi’nin sevdiğim özelliklerinden biri de arayüzünün çok kullanışlı olması. Yani siteye girdiğiniz zaman ne yapmanız gerektiğini hemen anlayabiliyorsunuz. Yapılan yarışmalarda da hediyeler kazanabilirsiniz.

http://www.acikakademi.com/

Buradan hangi alana yönelmek istiyorsanız o alanın içeriğini öğrenip uygulamanızı yazmaya başlayabilirsiniz. 🙂

acikakademi

Microsoft Virtual Academy

Microsoft Virtual Academy ingilizcesi olanlar için harika bir kaynak. Aslında Açık Akademinin global şekli de diyebiliriz. Fakat Virtual Academy ‘de (bana göre) anlatım çok daha açık ve ilerlemek daha kolay, çünkü herşey kodlar üzerinden anlatılıyor. İçerik olarak C#’tan HTML5’e Virtualization’dan Server Infrastructure’a kadar birçok konuda anlatım mevcut. Kurslar bölümünden istediğiniz kursun derslerini almaya başlayabilirsiniz, hem de ücretsiz. Virtual Academy’ de favorim C# kurslarını anlatan Bob Tabor, kendisi C# mvp si ve kendisine has güzel bir anlatım şekli var. Bakmanızı tavsiye ederim.

http://www.microsoftvirtualacademy.com

virtualacademy1

virtualacademy2

+13 KURS DAHA GÖRÜNTÜLE’ ye tıkladığınızda ileri düzey Windows 8 ve Windows Phone 8 kurslarını ve diğer kursları da göreceksiniz.

Windows 8 ve Windows Phone’a uygulama geliştirirken size SDK ‘lar lazım olacak.

Windows 8 SDK: http://msdn.microsoft.com/tr-tr/windows/desktop/hh852363.aspx

Windows Phone SDK: http://developer.windowsphone.com/en-us/downloadsdk

Son olarak faydalı bulduğum, Mertkan Elpeze’nin yazdığı bir yazıyı paylaşmak istiyorum. Uygulamanızı yazdıktan sonra markete yüklerken fail yememesi için okumanızda fayda var. : ( Uygulamayi Markete Göndermek – Yayınlamak )

Windows 8 Uygulama Geliştirme Yarışması

Uygulama yaz, Yaza tabletle gir !

17 Mayıs 2013 – 21 Haziran 2013

Kimler katılablir ?
-Üniversite öğrencileri

Nasıl katılırım ?
-Yarışma tarihleri arasında ilk kez yayınlanan uygulamanızın linkini dev2win@msakademik.net adresine eposta ile göndererek.

Ödüller nedir?
-En iyi uygulama ödülü: Windows 8 Tablet
-Eğitim uygulaması ödülü: Microsoft Wireless Notebook Presenter Mouse 8000 (Gönderilen ilk 10 eğitim uygulaması veya eğitici oyuna)
-En iyi 10 uygulamanın sahibine Microsoft Türkiye Yaz Okuluna Öncelikli Katılım Hakkı
-En iyi 10 uygulama için Microsoft Windows 8 Mağaza’da feature edilme imkanı

Detaylı bilgi için:
http://www.facebook.com/mskampus

Afiş:

microsoft

Windows 8 Neden Daha Hızlı ?

Windows 8’in en beğendiğim özelliği bilgisayarın açılma & kapanma süresinde gözle görülür bir artış olması. Linux’u bu yönüyle çok severdim şimdi aynı olay Windows 8 ‘de de mevcut. Peki neden daha hızlı ?

Hızlı Başlatma’nın sırrı aslında bilgisayarı başlatmada değil, bilgisayarı kapatmada gizli.Windows 7‘de (Ve önceki Windows sürümlerinde) bilgisayar kapatılırken basitçe;

  1. Kullanıcı oturumları kapatılır.
  2. Ardından Sistem katmanı, servisler ve donanım kapatılır.

Windows 8‘de ise bilgisayar kapatılırken basitçe;

  1. Kullanıcı oturumları kapatılır.
  2. Geri kalanlar tek bir dosya halinde diske kaydedilir.

Farklı bilgisayarda denenmiş bir karşılaştırma;

Comparing-boot-times-from-Windows-7-and-Windows-8_0E1B8E82

 

Aşağıdaki resim ise neden hızlı başlıyor sorusunun en güzel verilecek yanıtı..

Relative-time-needed-for-different-phases-of-startup_3FCAB3EF

“Documents.library.ms” artık çalışmıyor

Bilgisayarım – sağ kısımdan belgelerim, videolarım vs tıkladığınızda bu hatayı alıyorsanız çözüm şöyle;

– Windows Tuşu + E ‘ye basın

– Çalışmayanların üstüne sağ tıklayıp silin.

– Kitaplıklar’a sağ tıklayıp “Varsayılan kitaplıkları geri yükle” yi seçin.

Hepsi bu kadar:)

İngilizce kullananlar için;

Okumaya devam et

Casper Windows 8 Siyah Ekran Hatası ( Kesin Çözüm )

w8

“Aygıtlar hazır duruma getiriliyor…” yazısından sonra ekranınız kararıyor ve hiçbirşey olmuyorsa çözümü burda..

Aynı sorunu bende yaşadım ve sonunda çözümü buldum. Sorun, bios güncelleştirince tamamen ortadan kalkıyor. Yapmanız gereken tek şey Programlar- Utility- Winflash programını açıp aşağıdaki güncel bios’u yüklemek olacak. Winlash yüklü değilse, driverlarınızın bulunduğu dvd den yükleyebilirsiniz, içinde var.

NOT: Bios, A15 modeli Chipset’lere uygun. Chipset’inizi başlat’a dxdiag yazıp öğrenebilirsiniz.

Güncel Bios:

http://www.mediafire.com/?za2r5gp1gnv545a

ShiftDelete’den SerdarGul34 adlı kullanıcıdan alıntıdır.

Anlatım bana aittir.