Ben iyi bir çalışanım.

Bunu buraya yazmak istedim, belki bir gün bakıp gülerim diye.

Çok açık ve net bir şekilde söylemeliyim ki; gözlemlediğim dünyada iyi bir çalışanım ben. Mallıklarım, saçmalıklarım yok mu? dolu var, artılarımdan çok eksilerim var, bir sürü temel eksiğimde var fakat kardeşim en azından stabil bir çizgimde var. Enerjimin %90 nını yaptığım işe harcıyorum, her gün kaynaklarımı redline seviyesinde kullanıyorum. Saygı duyuyorum işime, patronuma, aileme, hayatıma..

Yanlış anlaşılmakta istemiyorum ama insanlar bu kadar acayip nasıl olabiliyor? Gamsız, enerjisiz, iletişim özürlü..

İçimden geldi yazdım, belkide anormallik bendedir.

Asp.Net MVC’ ye Giriş – View

İlk yazıda View’ ın ne olduğundan bahsetmiştim, Controller dan gelen Modeli alıp gösteriyor, yani html kodlarımızı buraya yazıyoruz, hepsi bu kadar. Üzerinde hiç yük olmayan daha doğrusu üzerinde en az lojik bulunan katman burası, zaten hatırlarsanız MVC deki temel amaçlardan birisi buydu. View’ in içinde karman çorman döngülerden, veritabanı bağlantılarından, iflerden ve benzeri kodlardan kurtuluyoruz. Viev in içindeki kodlardan yüzde yüz  kurtulmak mümkün değil, sonuçta bir şeyleri göstermek için bir şeyler yazmanız gerekiyor. Okumaya devam et Asp.Net MVC’ ye Giriş – View

Asp.Net MVC’ ye Giriş – Controller ve Routing

Lafı uzatmadan konuya giriyorum. Önce boş bir Asp.Net Mvc projesi açıyoruz. Unutmadan, benim bilgisayarımda Mvc4 yüklü fakat şu anda ki en yeni versiyon Mvc5. Bu versiyon farkı bahsedeceğimiz konuyu etkilemiyor.asp.net-mvc-giris-figure1Projemizi oluşturduktan sonra Solution Explorer da (Şekil 3) Model, View ve Controller adında 3 farklı klasör görüyoruz. Bunlar bir önceki yazıda bahsettiğim düzeni sağlamak için ilgili yapının dosyalarını barındıracaklar. Hemen şunu da belirteyim elimden geldiğince konuyu küçük parçalar halinde anlatmaya çalışacağım. Bu sayede olayı kavramak çok daha basit olacaktır diye düşünüyorum ;) Okumaya devam et Asp.Net MVC’ ye Giriş – Controller ve Routing

Twitter #hashtag, @kullanici ve url biçimlendirme

Twitter, Friendfeed gibi sosyal ağlarda bir şeyi etikletlemek istediğimizde #(diyez) işaretiyle başlayarak etiketimizi yazabiliyoruz, buna hashtag (#etiketimiz) deniyor. Twitter’ da @ işaretiyle başlayıp herhangi bir kullanıcının adını yazdığımızda (@apostylee) o kullanıcıya bir uyarı gidiyor ve ekranda biz bu girdiyi kullanıcının profiline giden bir link olarak görüyoruz. Konuyla ilgili geçenlerde şöyle bir şey paylaşmıştım. Bu iki özelliğe ek olarak http:// yada www. ile başlayan bir girdi yaptığımızda otomatik olarak linke dönüştürülüyor. Okumaya devam et Twitter #hashtag, @kullanici ve url biçimlendirme

EntityFramework SqlMigrations ile Verileriniz Kaybolmasın

Başlıktan bir şey anlamamış olabilirsiniz ama eğer Ado.Net Entity ile ilgiliyseniz bu yazı çok hoşunuza gidecek ;)

3-5 dakika önce Google Reader dan Code First Migrations: Walkthrough of August 2011 CTP başlığıyla gördüğüm yazıyı hemen sizlerle paylaşmak istedim.

Bildiğiniz üzere eğer modelinizi code-first yaklaşımıyla oluşturmuşsanız ve projenizi çalıştırmışsanız veritabanı otomatik olarak oluşuyor ve sonrasında modelinizde yaptığınız değişikliği veritabanına uygulamak için context inizin içine “System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<Test.Models.TestContext>());” ifadesini ekleyerek modeldeki güncellemeyi veritabanımıza uyguluyorduk. Fakat bu yöntemde istenmeyen bir durum oluşuyor ve eğer veritabanında bilgi varsa bilgilerde gidiyordu çünkü bu kod veritabanını komple kaldırıp yeniden oluşturarak güncelleme işini yapıyordu. Artık bu can sıkıcı durumdan kurtuluyoruz !

Yapmamız gereken tek şey projemize “EntityFramework.SqlMigrationspaketini eklemek. Sonrasında yeni bir alanı güncellemek için paket yönetici konsoluna “Update-Database” komutunuı yazıp çalıştırmamız yeterli oluyor. Eğer varolan bir alanın adını güncellemek istiyorsak “Update-Database -Renames:”kullanici.Email=>kullanici.EmailAddress”” komutunu çalıştırmamız yeterli. SqlMigrations’ un diğer özelliklerine buradan bakabilirsiniz. Bu işlemler yapılırken veritabanı içindeki bilgi kaybolmuyor sadece ilgili değişiklikler yapılıyor.

Bu mekanızma sayesinde önemli bir açığın kapandığını düşünüyorum, yukarda da belirttiğim gibi can sıkıcı bir durumdu ve iki türlü iş ile uğraşıyorduk. Biraz alel acele yazmak zorunda kaldım fakat durum sanıyorum anlaşılmıştır :)

ADO.NET Entity’ e Giriş eKitabı

ADO.Net Entity’ e başlangıç yapmak için faydalı olacağına inandığım bir eKitap yazdım. Umarım konuya ilgi duyan arkadaşların işine yarayan bir kaynak olmuştur. Gelen istekler üzerine sürekli güncellemeye çalışacağım bu kitabı buradan indirebilirsiniz. Olumlu olumsuz görüşlerinizi belirtirseniz çok mutlu olurum ;)

Profil sayfası kişiselleştirme ve ComplexType

Başlık biraz karışık oldu sanırım, biraz açayım. Profil sayfası kişiselleştirme dediğim; Twitter, FriendFeed gibi sayfalarda arkaplan resmini, konumunu ve renkleri isteğimize göre düzenleyebiliyoruz, yani profilimizi kişiselleştirebiliyoruz. ComplexType ise ilk konudan bir hayli alakasız aynı zamanda ComplexType olayını anlamak için çok alakalı. En kaba tabirle; modelimizde ki belirli özellekleri kümelediğimiz ve kod yazarken bize çok büyük kolaylık sağlayan bir yaklaşım.

Okumaya devam et Profil sayfası kişiselleştirme ve ComplexType

PagedList kullanarak verileri sayfalama

Verileri sayfalamak iyidir :D Giriş için cümle bulamıyorum resmen, neyse siz girdik sayın :)

Sağa sola bulaşmadan Nuget Gallery den PagedList.Mvc paketini projemize ekliyoruz. Nasıl ekliyoruz sorusunun cevabını burada bulabilirsiniz. PagedList açık kaynak bir proje, github sayfasına buradan ulaşabilirsiniz.


Okumaya devam et PagedList kullanarak verileri sayfalama

Ajax ile daha fazla kayıt göster olayı (Load More Data)

Yine kullanımını ilk olarak Facebook ve Twitter’ dan gördüğümüz bu olayın temel mantığını bildiğimiz sayfalama oluşturuyor. Neden bu şekilde bir sayfalama kullanmak gerekiyor isterseniz bunlara bir bakalım.

  1. Sayfa komple yenilenmeyeceğinden daha işlevsel. Örneğin; kullanıcı video izlerken altında ki yorumları sayfa sayfa dolaşmak isterse, video yarıda kesilmeyecektir.
  2. Sayfanın sadece ilgili yerini, ilgili kayıtlar kadar güncelleyeceğimizden daha performanslı. Bu performans sunucu tarafında; daha az sistem kaynağı tüketimi, kullanıcı tarafında ise; sayfanın yüklenme süresi olarak gözlenebilir. Özetlersek sunucudan yapılan isteği minimize etmiş oluyoruz.

Çektiğim videoların birinde dile getirdiğim bir konu vardı, yukarıda ki maddeleri görünce yazılı olarak da eklemek istedim. Anlık çok fazla kullanıcıya, çok fazla isteğe cevap verme durumunda olan siteler ajaxı bizim kara kaşımıza yada şekilli olsun afilli olsun diye kullanmıyor. Örneğin Facebook her işlemde sayfayı yeniden yüklemeye kalkarsa altından kalkılamaz bir yükle karşı karşıya kalır. Anlık Facebook’ a yazılan yorum, mesaj yada benzeri girdileri düşündüğümüzde ajaxın hava yastığı görevi gördüğünü hayal etmek güç olmasa gerek. Özetlemek gerekirse, ajax yaklaşımı şekilden ibaret değildir ;) Konumuza geri dönelim.

Okumaya devam et Ajax ile daha fazla kayıt göster olayı (Load More Data)

Textbox içinde arama (Twitter Style)

Twitter da tweet yazarken @ işaretiyle başlayıp yazmaya başladığımızda, arkadaşlarımızı bulmamıza olanak sağlayan bir arama mekanızması bulunuyor. Geçenlerde lazım oldu epey bir aradım fakat tam olarak bu işi yapan bir betiğe rastlayamadım, bende isteğime en yakın örneği bulup üzerinde bir kaç ufak değişiklikle amacıma ulaştım. Faydalandığım örneğin adresini bir türlü bulamadım, bu yüzden paylaşamıyorum :S Olayın temelinde jQueryUi – Autocomplete‘ nin Multiple Values özelliği bulunuyor.

Bu işi yaparken jQuery ve jQueryUi yi kullanıyoruz, diğer dinamik kısım için php, asp, java vb.. diller kolaylıkla kullanılabilir. Ben asp.net mvc (c#) ile bu örneği gerçekleştirdim. Mekanızma şöyle çalışıyor; adres satırından aranacak bilgiyi gönderip, veritabanında aramamızı gerçekleştirip sonucu geriye json olarak döndürüyoruz.


Okumaya devam et Textbox içinde arama (Twitter Style)