Architecture Principles, ASP.Net, C# .Net

İyi Bir Developer Nasıl Olunur | .Net, Python, Go, Mobil, Web, Native, Yazılım

Yazılım dünyasının bir parçası olmak istiyorsanız kendinizi çok iyi geliştirmelisiniz. .Net, Python, Go, Mobil, Web, Native konularında kurumsal projelere dahil olmak için dikkat etmeniz gereken noktaları bu videoda izleyebilirsiniz. Bir çok firmanın dikkat ettiği konuları videoda bulabilirsiniz.

 

Algoritma ve Programlama, Genel

Youtube Kanalım ve Eğitim Videoları

Merhaba, artık Youtube.com üzerinden videolar yayınlayacağım. Yazılım dilleri ve metodolojilerii eğitimleri hakkında ve günlük yaşantılarımla alakalı videoları kanalımda bulabilirsiniz.

Kanal adresim : a developer

Şuan kanalımda neler var;

  • ASP.Net MVC Eğitim videoları
  • Python Eğitim videoları
  • Kişisel Videolarım

Örnek olarak bir video paylaşacağım seslendirmesini yaptığım bu video ilk programcı Ada Lovelace’in bilgilerini içermektedir.

Architecture Principles, Quality Programming

IQueryable ile IEnumerable farklılıkları

bisiklet_genel_IEnumerable ve IQueryable farklılıklarını ve kullanımını inceleyeceğiz, bu farklılık performans açısından projelerinize çok şey katacak.

Teorik olarak:

IQueryable, Database vb. veri depolarında yapılan sorgulamlarda işlevsellik sağlar.

IEnumerable, Bir koleksiyon üzerinde sorgulama yapmanıza olanak sağlar.

İşin ince ayrıntısı işte burada, IEnumerable data’yı çeker ve sorgulamanız var ise daha sonra bu işlemi gerçekleştirir. Data’yı Memory’de tutar ve kullanır.

Peki ya 1 Milyon datam var ise ? Vuuuuuuuuu !!!

Düşünsenize 1 Milyon data var ve IEnumerable ile sorgulama yapıyorsunuz

IEnumerable q = _context.UserList.Where(x=> x.Onay=1);

Yukarıdaki kodu çalıştırdığınızda aşağıdaki adımlar işliyor.

1. Memory IEnumerable için alan açıyor ve 1 Milyon datayı içine atıyor.
2. Memory’den o datalar Where ile sorgulanıyor. (Onay = 1 ifadesi sorgulanıyor)

IQueryable, Şartlara göre bir query oluşturur ve bu query ile birlikte database’e gider. O şartlara göre sonuç döner. Teorik olarak hızı farketettik bile 🙂

Yine de görelim;

Adım adım önce IEnumerable, IQueryable ve son olarak var tipine bakalım.

IEnumerable yapısı;IEnumerable

 

IQueryable yapısı;
Iqueryable

var yapısı;
Varq

List yapısı;list

 

Çalıştıralım;

console

 

Sql Profiler ile takip edelim;

IEnumerable sorgulaması ;
profie

IQueryable sorgulaması ;

profiq

42_EmoticonsHDcom

Neeeeeee ! 
IEnumerable tüm data’yı çekip daha sonra o çektiği data’dan tekrar mı sorguluyormuş?  Aman Allah’ımmmm

 

Sürelere baktığımız zaman var daha hızlı görünüyor peki bakalım breakpoint koyarak detayına inelim var neden bu kadar hızlıymış.

console1

Çalışma anında var, gelen değeri en iyi nasıl saklayacağını ayarlıyor ve yapısını o şekilde belirliyor. Yani şuan için en uygunu yine IQueryable.

Bir sonraki

Single Responsibility Principle, SOLID Architecture Principles

Single Responsibility Principle

Single Responsibility Principle Yazdiginiz kodun rahat çalismasi ve kolay okunulabilir olmasini saglayan bir prensiptir. Her katman, sinif ve metodun kendine ait isleri yapmasi ve bu kurala uymasi mantigi yeralmaktadir.  Örnek verecek olursak;  Bir Email.cs Class dosyanizda sadece Email ile ilgili isler yeralmalidir. SMS, Kargo vb. islemleride bu Class içerisine alirsaniz eger bu prensibe uymamis olursunuz. Kodunuz hem daha karmasik hale gelir hem de çalismasi o denli yavaslar.  Ufak bir pratik;  Projenizde Business(Is) katmani içerisinde asagidaki Class'lariniz olsun;  - EMail.cs - User.cs - Product.cs - Customer.cs  Email.cs Bu Class içerisinde sadece Email islemleri yer alacak. Gönderme,Alma,Denetleme gibi metodlariniz yeralabilir.  User.cs Bu Class içerisinde sadece User ile ilgili islemleriniz yer alacak. User olusturma, silme gibi metodlar yeralabilir.  Bu sekilde her katmaninizin kendine ait isleri yapmasi Single Responsibility Prensibi olarak kabul edilmektedir.Yazdığınız kodun rahat çalışması ve kolay okunulabilir olmasını sağlayan bir prensiptir. Her katman, sınıf ve metodun kendine ait işleri yapması ve bu kurala uyması mantığı yer almaktadır.

Örnek verecek olursak;

Bir Email.cs Class dosyanızda sadece Email ile ilgili işler yer almalıdır. SMS, Kargo vb. işlemleri de bu Class içerisine alırsanız eğer bu prensibe uymamış olursunuz. Kodunuz hem daha karmaşık hale gelir hem de çalışması o denli yavaşlar.

Ufak bir pratik;

Projenizde Business(İş) katmanı içerisinde aşağıdaki Class’larınız olsun;

  • EMail.cs
  • User.cs
  • Product.cs
  • Customer.cs

Email.cs
Bu Class içerisinde sadece Email işlemleri yer alacak. Gönderme,Alma,Denetleme gibi metotlar yer alabilir.

User.cs
Bu Class içerisinde sadece User ile ilgili işlemleriniz yer alacak.
User oluşturma, silme gibi metotlar yer alabilir.

Bu şekilde her katmanın kendine ait işleri yapması Single Responsibility Prensibi olarak kabul edilmektedir.

a Developer kanalımdan bu konu ile ilgili yakında bir video paylaşıyor olacağım. Takip edebilirsiniz.

Architecture Principles, ASP.Net, C# .Net, Design Patterns, Entity Framework, Microsoft, MongoDB, MySQL, NHibernate, Plesk Panel, RavenDB, SQL Server

ASP.Net MVC, vNext, Entity Framework, NHibernate, Design Patterns Nedir?

Herkese Merhaba, bugünden itibaren yeni eğitim videoları hazırlayıp Youtube Kanalımdan paylaşıyor olacağım. Tabii ki Blog’umdan da takip edebilirsiniz. İlk tanıtım videosunu aşağıda paylaşıyorum. İyi seyirler, başarılar..

LINQ Execution, Visual Studio Extensions

LINQ Insight Express (Write, Execute, Analyze)

Eklenti hakkında ufak bir kaç bilgi verip kısa bir örnekle tamamlamak istiyorum. ADO.Net’in SQLCommand sorgu calıştırma yapılarında sorgunun çalışıp çalışmadığını ve ya sorgunun hangi sonuçlar ürettiğini görmek için sayfanın derlenmesi ile birlikte çalıştırıp browser’da izlemek gerekiyor. Bu durum ilk zamanlarda bir engel olmamakla birlikte çokta hoşumuza gidiyordu çünkü; alternatif bir çözüm yoktu ! Microsoft bunun bir sorun olduğunu hissetmeye başladıktan sonra kolları sıvayıp bir şeyler yapması gerektiğini düşündü ve bir sorgu metodolojisi üretmeye karar verdiler. Sonuç olarak Language Integrated Query ismini taşıyan bir Metodoloji üretildi. LINQ, Ado.Net gibi string sorguları çalıştırmak yerine her bir terimi metod şeklinde dil ile entegreli kullanıp, kod daha derlenmeden hatayı bildiriyor. Bu şekilde hem zaman kaybından kurtuluyorsunuz hem de ADO.Net’e göre daha hızlı çalışmaktadır.

LINQ bildiğiniz gibi programlama dili ile bütünleşmiş bir yapıdadır. Çok hızlı ve esnek çalışmaktadır. Fakat kod blogunun verdiği sonucu nasıl izleyeceğiz ? Browser’da görmeden bunu anlayamayız tabii ki, Bunun bir eksiklik olduğunu düşünen bir firma kolları sıvayıp bir eklenti hazırlıyor. Bu eklentinin adı ise LINQ Insight Express, bu eklenti kod blogunu proje üzerinde çalışma anında execute edip platform üzerinde hızlı bir şekilde sonuç üretiyor. Bu mükemmel birşey 🙂 Hemen kullanalım..

LINQ Insight Express (Write, Execute, Analyze)

Visual Studio MSDN Sayfası : http://visualstudiogallery.msdn.microsoft.com/269e6da9-7f4d-4650-a327-c70b359dcfe0

Nasıl Çalışır ?

Eklentiyi aşağıdaki kurduktan sonra kod blogunu seçip sağ tuş yapıp Run LINQ seçeneğine tıklayın. Sonuç aşağıda ;
LINQ Nasıl Çalışır

1

2012 in review

WordPress.com istatistik yardımcı maymunları bu blog için bir 2012 yıllık raporu hazırladılar.

İşte bir alıntı:

2012 Cannes Film Festivaline 4.329 film gönderildi. Bu blog, 2012 içinde yaklaşık 20.000 kez görüntülenmiş. Eğer her görüntülenen bir film olsaydı, bu blog 5 Film Festivaline ev sahipliği yapardı

Raporun tamamını görmek için buraya tıklayın.

SEO

SEO ve Kalite-Güven çalışması

SEO(Search Engine Optimization) hakkında 8-10 yıl önceye baktığımızda kimse farkında değildi. Google ve benzeri arama motorlarının kuruluşundan buyana gelişen her algoritmayla birlikte SEO’da değişmektedir. Google kurulduğunda algoritmasından kimsenin haberi yoktu. Zamanla gelişen ve kendisini yapısal olarak devamlı değiştiren Google farkındaysanız ana sayfa tasarımı ile ilk kurulduğu zamanki tasarımı arasında pek fark yok. Buradan bazı kişiler şunu çıkartıyor; Google, sitelerin tasarımını değil alt yapısının güçlenmesine ve kaliteleşmesine önem verir. Bir fikirdir tabii ki. Bu makalemde SEO hakkında ufak bilgiler vereceğim. Zamanla SEO hakkında yazılar yayınlamaya devam edeceğim.

SEO çalışmasındaki amacınız sitenizin Google’da üst sıralara gelmesi olmamalıdır. Tabii ki çalışmalarınız sonucunda bu gerçekleşecektir. Fakat amaç bu olmamalıdır.

Amacınız;

  • Kaliteli
  • Güvenilir
  • Kişiye Hitab Eden (İstenilen veya yakın sonuçlar verebilmek)
  • Göze Hitab Eden (Gözü yoran tasarımlar ve renklendirmeler olmamalı)
  • Alternatif Medya (Çeşitli medya araçları ile içeriğinizi kuvvetlendirmelisiniz)
  • Sosyal Platformlara Yakınlık (Sosyal platformlar olmadan bu yolda yürüyemezsiniz)
  • Hakkınızda Çok Konuşulmalı (Backlink)

Amacınız sitenizi kaliteli,güvenilir vb listedeki işlemleri yapmak olmalıdır. Eğer bu konularda başarı elde ederseniz zaten Google ve benzeri arama motorlarında üst sıralara geleceksiniz. Bu ise çalışmalarınızın sonucu, bir ödülüdür. Siz sitenizi kaliteli yapın Google size istediğinizi versin 🙂

Kalite kavramını biraz inceleyelim, Kalite Nedir ? 🙂

Talepte bulunan kişi yada kişilere tam sonuç veya yakın sonuçları özgün bir bir biçimde sunmaktır. Kalite’yi en iyi ifade eden özellik ise özgünlüktür. Özgün sonuçlar Google için çok önemli bir etkendir. Güvenililirlik ve benzeri sıralamalar kaliteden sonra gelmektedir.Sizin siteniz eğer bir çok yerde konuşuluyor ise Facebook,Twitter gibi dev uygulamalarda yer edindiniz ise arama motorları size güvenebilir ve güven kazanmak bu kadar basit. Fakat siteniz hakkında kötü yönde bildirimler yayınlanmış ise, kopya içerik kullanıyorsanız bunun gibi durumlarda Google size güvenmeyecek ve sıralama algoritmasında sizi son sayfalara gönderecektir.(Dikkat)

Eğer ilk defa SEO çalışmasına başlıyorsanız veya yaptıklarınızda başarılı olamıyorsanız gelin bu yapının adını değiştirelim ve kendi yolumuzu kendimiz çizelim. SEO çalışması demeyelim de, Kalite ve Güven çalışması diyelim. Çalışmalarımızıda bu yönde geliştirelim. 🙂

Wordpress

WordPress.com kullanımı hızla artıyor. (Ya ne sandınız!)

Öncelikle aşağıdaki link’e girerek oradaki yazıyı okumanızı tavsiye ederim, Çünkü; Ne konuda konuştuğumuz hakkında malumatınız olsun 🙂

Link : http://www.wp-tr.org/wordpress-kullanimi-hizla-artiyor/

Öncelikle WordPress kullanmanın avantajlarından bahsetmek istiyorum.

  • WordPress’i kullanmak oldukça basit
  • Neyin nerede olduğu çok sade bir şekilde ortada.
  • Hızlı işlemler yapmak için bayağı bir uğraşılmış.
  • Gayet başarılı bir yönetim paneli var.
  • Yayın sürecinde hızlı bağlantı.
  • Bileşenleri pratik kullanım.
  • Aktif sayfalar oluşturabilme.
  • Sosyal Paylaşın Siteleri ile entegreli uygulamalar.
  • RSS bilgi akışı(Alış/Veriş)
  • Akismet denilen işlem blogu(Spam Yorumları Anlama ve Yönetime Bildirme)
    • En Güzel En Mühim yanı, İstatistiksel Raporlama
    • Kelime bazlı
    • Referrer(Nereden geliyor ziyaretçi)
    • Redirect(Nereye gitmiş ziyaretçi)
    • Adım Adım Takip
    • Tüm Zamanlı, Yıllık, Aylık, Günlük Gelişmiş Raporlama
  • Yazıları saniye saniye taslak halinde kaydetme.
    • Bu özellik çok önemli, emekleriniz artık boşa gitmeden en son halinde taslaklar bölümünde tutulacak. Sizde en baştan tekrar yazmak zorunda kalmayacaksınız.
  • En büyük avantajların başında tamamen yönetilebilir bir link ayarı bulunmakta,
    bu da SEO(Search Engine Optimization) açısından oldukça önemli.
  • Bileşenleri paket halinde indirip kullanabiliyorsunuz.Bazı kısıtlamaları var fakat bu kadar kusurda olsun deyip geçelim 🙂
  • En önemli özelliklerinden biriside düzenlenebilir temalar, wordpress size bir şık sunmuyor. Önünüzde binlerce tema var. İstediğinizi seçip kurabiliyorsunuz. Ücretli olanlarda var fakat ücretsiz olanlar da fena değil.
  • Wordpress.com ile hazır oluşturuyorsanız blogunuzu. 1-0 önde başlıyorsunuz web dünyasında. Neden mi ?

    • Blog adresinizin sonunda wordpress.com olacağı için (erkanguzelkucuk.wordpress.com gibi) Domain kalitesi bakımından %100’lük bir değere sahip olacaksınız bu da arama motorları açısından sizi badem gözlü bir ceylan gibi değerli kılacak 🙂 (Metafor güzeldi.)
    • Keywords ve Title gibi özellikler hakkında derin bir araştırma yaparsanız, bazı kelimelere özen gösterip çalışırsanız blogunuz tavan yapabilir.

Şimdilik bu kadar. ilerleyen zamanlarda yeni bir yazı daha hazırlayabilirim.

Teşekkürler

Erkan GÜZELKÜÇÜK
INETA K12 Speaker