Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

Yeni Bir Update

Gözüm gibi baktığım bloğuma an itibari ile yeni bir update yaptım. İlk aşamalarda herhangi bir sıkıntı çıkabilir siz değerli ziyaretçilerimin bunları anlayışla karşılayacağını düşünüyorum.

4. Yılı doldurduğum şu günlerde destekleriniz için teşekkürler.


MVC Partial Sayfa Kullanımı

Asp.Net de alışık olduğumuz UserControl olayımızın MVC'deki karşılığıdır. Birden fazla yerde kullanılabilecek sayfaları Partial sayfa olarak oluşturup ilgili alana eklenmesi ile çalışan bir yapıdır.

Öncelikle Shared klasörümüze sağ tıklanır ve New Item denildikten sonra MVC sekmesinde ki Partial Page seçilir. Önümüze boş bir sayfa gelecek artık bu bizim kullanımımıza açık bir UserControl yeni adı ile Partial sayfamızdır.

Bunun içine html olarak gelmesini istediğimiz şeyleri yazarız.

Tabi birde bunun çağırlıma kısmı var. Bunun birden fazla kullanım tarzı var ama katmanlı yapılarda genel olarak kullanılan şeklini göstereceğim.

Öncelikle kullanacağımız sayfanın neresinde çıkmasını istiyorsak o kısma;

@Html.Action("PartialDeger", "Home")


yazıyoruz. Bu kod bize Home controller altında ki PartialDeger actionresult kısmına git orada ne söyleniyorsa bana onu yap demek. Şimdi gelelim PartialDeger actionresult kısmını yazmaya.

O kısımda;

public ActionResult PartialDeger()
{
     return PartialView("_osmankurt");
}


Kod okuyucumuz bu kısma geldiğinde geriye _osmankurt adlı partialpage döndüreceğini anlıyor ve bana PartialPage sayfamda ne varsa onu döküyor.

Bu yapıda model kullanımıda mevcut tabi ki ama o da diğer yazımıza kalsın ;)

Görüşmek üzere,

Osman KURT
Yazılım Uzmanı

Json Veriyi Serializer ve Deserialize Etme

Projelerimiz de bolca kullanmakta olduğumuz json veri alışverişini sağlarken kullanmamız gereken bir method. Göndereceğimiz veriyi json formatına çevirirken yada gelen json veriyi istediğimiz formata çevirirken kullanmaktayız ve olmazsa olmazlarımızdan.

Örnek kod parçası;

        public static string JsonSerializer<T>(T t)
        {
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            MemoryStream ms = new MemoryStream();
            ser.WriteObject(ms, t);
            string jsonString = Encoding.UTF8.GetString(ms.ToArray());
            ms.Close();
            return jsonString;
        }

        public static T JsonDeserialize<T>(string jsonString)
        {
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
            T obj = (T)ser.ReadObject(ms);
            return obj;
        }

 


Görüşmek üzere,

Osman KURT
Yazılım Uzmanı

 

ASP.Net'de Encoding ve Decoding Yapımı

Kullanım yerleri farklılık gösterebilir fakat daima işimize yarayacak bir kod bloğu. Özellikle QueryString ile veri gönderirken açık olarak parametre göndermek ciddi bir güvenlik zafiyetidir. İşte tamda bu alanda kullanmamız gereken bir özellik.

public static string Encode(this string str)
        {
            byte[] toEncodeAsBytes = UnicodeEncoding.Unicode.GetBytes(str); 
            return Convert.ToBase64String(toEncodeAsBytes);
        }

 

public static string Decode(this string str)
        {
            byte[] encodedDataAsBytes = Convert.FromBase64String(str);
            return UnicodeEncoding.Unicode.GetString(encodedDataAsBytes);
        }

Görüşmek üzere

Osman KURT
Yazılım Uzmanı

MVC 5 İLE GELEN ROUTE YENİLİĞİ

.Net platformunda mvc'nin bize kattığı en büyük değerlerden diyebileceğim route özelliği her geçen gün yazımcılar için daha akıllıca bir hal almaya başladı. Arama motorlarının son 8 yıl içinde trendinin hızlıca arttığını düşünecek olursak, aramalarda çıkma ihtiyacı bir o kadar arttı ve tendi yüksek bir hal almaya başladı.

Arama motolarlarında çıkmanın en iyi yolu ise özgün bir içerik ve bunu arama motorlarına sunabilecek iyi bir altyapı yani route da diyebiliriz bunun içinde. Siz her ne kadar iyi bir içerik oluştursanız da bu kullanıcılara ulaşmadığı sürece başarı kazanılmış sayılmaz. Kullanıcı ise size büyük oranda arama motorları üzerinden gelecektir. Unutmatalım ki biz facebook.com'a google'a face yazarak giren bir milletiz.

Eğer ki uzun zamandır bu işi yapıyosanız benim ne demek istediğimi anlıyorsunuz demektir.

Gelelim yeniliğimize, bildiğiniz üzere mvc'de route özelliği default olarak Controller/Action/id şeklinde çalışmaktadır. Merak etmeyin yine aynı şekilde devam ediyor. Bu tanımla genel olarak yaptığımız birşey. İstediğimiz gibi editleyebiliyor ve çoğaltabiliyoruz.

MVC 5 ile gelen yenilik ise bunu action'a göre tanımlama. Evet yanlış duymadınız her action için ayrı bir route yapısı tanımlamadan bahsediyorum. Yani Home/Contact altında olan bir sayfaya action adını değiştirmeden osmankurt/banaulasin yazarak gitmekten bahsediyorum.

Kullanım alanını siz bulacaksınız hangi amaçla nerde nasıl kullanırsınız size kalmış.

Alt kısımda örneğini paylaşıyorum. Tek yapmanız gereken,

 RouteConfig dosyasına yeşil yazı altında ki kodu ekliyoruz.

 

Örnek kodun kullanımı ise;

görüşmek üzere,

Osman KURT
Yazılım Uzmanı

Android Telefonlar İçin Artık Microsoft Office Mobile Ücretsiz

Evet yanlış okumadınız microsoft android telefonlar için office mobile uygulamasını ücretsiz olarak yayınlamaya başladı. Telefonunuzdan google play'e girerek sizde uygulamayı telefonunuza yükleyebilirsiniz.

Bu konuya gerçekten sevindim diyebilirim onedrive ilede senkornize çalışan uygulama bence 5 yıldızı hak ediyor.

Görüşmek üzere

Osman KURT
Yazılım Geliştirme Uzmanı

Entity Framework Çoklu Orderby Kullanımı

Entity framework kullanırken işimize en çok yarayacak sorgulardan biride Select yaparken Order çekmek.
Normal kullanımda tek yazacağımız zaman;

var Detay = (from a in entity.KonsolLog orderby a.KonsolLogID descending select a).ToList();

Çoklu kullanımı ise;

var Detay = (from a in entity.KonsolLog select a).OrderByDescending(m => m.KonsolLogID).ThenBy(m => m.Tarih).ToList();

 

Görüşmek üzere

Osman KURT
Yazılım Uzmanı

Entity Framework İstenilen Türde Liste Döndürme

Son projelerimde sıkça kullanmakta olduğum entity framework’ de yeni yeni şeyler öğrendim ve bunlardan birini sizler için paylaşmak istedim.
DB’den çektiğimiz bir veriyi liste olarak almak için var bir değişken tanımlıyoruz ve entity cümlemizi yazarak db’den gelen listeyi değişkenimize aktarıyoruz. Daha sonra forech döngüsü ile kullanmak istediğimiz formata getiriyoruz kendi listemize dolduruyoruz.


Örnek Kullanım;

List<Konsol> konsollist = new List<Konsol>();
var Detay = (from a in entity.KonsolLog orderby a.KonsolLogID descending select a).ToList();
foreach (var item in Detay)
{
konsollist.Add(new Konsol { KonsolLogID = item.KonsolLogID, Icerik = item.Icerik });
}
return konsollist;


Şimdi bu olayımızda yapılan 2 ana işlem var. Öncelikte Db’ye bağlanarak çektiğimiz verileri değişkene aktarıyoruz . İkinci olarak çektiğimiz bütün veri sayısı kadar tek tek dolaşarak yeniden listeye ekleme yaptırıyoruz. Buda verinin boyutuna göre hatrısayılır bir zaman alıyor ve kod israfı yaratıyor. Programcılar arasında kod ameleliği. Gelin yeni öğreneceğimiz sistem üzerinde bu kodun daha kolay kullanımı nasıl oluyor hep birlikte görelim.

Örnek kodumuzun kolay kullanımı alt kısımda ki gibi;

var konsollist = (from a in entity.KonsolLog orderby a.KonsolLogID descending select new Konsol { KonsolLogID = a. KonsolLogID, Icerik = a. Icerik }).ToList();
return konsollist;


Görmüş olduğunuz gibi yeni uygulanan kod ile tek seferde işlemi tamamlıyoruz. Emin olun büyük ölçekli projlerde bu konu sizinde canınızı yakabilir.



Görüşmek üzere
Osman KURT
Yazılım Uzmanı

5 Yıllık Canavar vs SSD Serüveni

Başlıktan da anlaşılacağı üzere bilgisayarıma ssd aldım. Hepsiburada.com'dan 128 GB'lık aldığım sandisk sdd beklentilerimi ilk günkü performansıyla hayli hayli karşıladı. Gerek açılma hızı olsun gerek işlem hızları gerekse kurulum hızı olsun 10 numara 5 yıldız.

Biliyorum Notebook için 5 yıl uzu bir ömür hele ki Windowslar için gerçekten uzun. Ama yaşadığım sıkıntıları bir ssd çözdü diyebilirim.

Aradaki farkı kısaca cümlelerle açıklamak gerekirse;

Arkadaşımın 2,5 saat süren kurulumu 20 dk inebildi. Tabi ki boş bir bilgisayar olmanın avantajı da yok değil.

Açılma hızı keza 18 saniye kadar sürüyordu bu hız 10 sn kadar düştü.

Ayrıca benim bilgisayarımın sata girişi eski olduğu için tam performans sağlayamıyor makine sizin yeni nesil pc'lerde uçar bunlar :)

Paranızın cebinizde kalmasını istiyor ve perfomans yaşamanın tadına varmak istiyorsanız SSD ilk ve tek çözüm derim.

Görüşmek üzere,

Osman KURT
SSD Sever

Bootswatch ile Kolay Web Tasarımları Hazırlamak

Daha önceki yazılarımda paylaştığım bir örneğe yenisini eklemek istiyorum "Bootswatch".

Web tasarımın geçmişten günümüze birçok trendi oldu. Başlatılan akımar ve farklı tasarımlar kullanıcılar tarafından her zaman ilgi çekti.

Sizde kolay ve yeni trende uygun tasarımlar ile web sayfaları hazırlamak istiyorsanız ki eminim istiyorsunuz o zaman http://bootswatch.com/ adresi sizin içi diyebilirim. Projenize ekleyeceğiniz css ve js dosyaları le hızlı ve bir o kadar kolay güzel tasarımlar hazırlayacaksınız.

Faydalı olması dileğiyle,

Osman KURT
Yazılım geliştirme uzmanı