Veysel Uğur KIZMAZ’ın Asp.Net 4.5 kitabı sizlerle!

Bu yazımızda sizlere, Veysel Uğur KIZMAZ’ın kurucusu olduğu 2011 yılında kurulmuş, yazılım ve bilişim kategorisinde IT sektöründe hizmet eden bir bilgi paylaşım sitesinden bahsedeceğim. Sitenin içeriği çok zengin olup sektöründeki neredeyse her alana ait bir başlık ve yazarı mevcut. Üstelik yazarlar, sektörde tecrübeye sahip insanlardan oluşmaktadır. Yazılım alanında bilgisini geliştirmek isteyen herkese tavsiye ederim.

www.yazilimdilleri.net

Veysel Uğur KIZMAZ Asp.Net 4.5

Site kurucusu; Veysel Uğur KIZMAZ’ın ASP.NET üzerine yazdığı kitabıda bulunmaktadır. .Net 4.5 ile gelen yenilikleri ve Asp.Net ile proje geliştirme konusunu detaylarıyla anlatan bu kitap; sadece ilgili teknoloji ile kodlamanın değil, bir web projesinin başlangıcından son noktasına kadar neler yapılması gerektiğini de anlatmaktadır. HepsiBurada, Kitapyurdu ve diğer online kitap satış sitelerinden kitaba ulaşabilirsiniz.

Asp.Net ile yazılım geliştirme (kodlama) konusunda son olarak projelerinizi zenginleştirmek için JavaScript ve jQuery kavramlarını örnek uygulama ve örneklerle öğrenebileceğiniz bir kitap’tır. 
"Yazılım geliştirmek, sadece kod yazmak demek değildir." Kitabın genelinde de bu konu üzerinde durulmuş ve Asp.Net ile yazılım geliştirme (kodlama) konularının ardından, "bir yazılım geliştirirken hangi aşamalardan geçilir, nelere dikkat edilmelidir, bir yazılımı geliştirirken planlama süreci nasıl olmalıdır, yazılım geliştirmede katmanlı mimari neden önemlidir ve yazılım geliştirme standartları" konuları, güncel hayattan örnekler ve uygulamalarla detaylı olarak anlatılmış.

Kitabında içindeki konu başlıkları;

  • ASP.NET Nedir?
  • .NET Framework Nedir?
  • .NET Bileşenleri
  • ASP.NET Çalışma Mantığı
  • İstemci Taraflı Kodlama
  • Sunucu Taraflı Kodlama
  • ASP.NET Versiyonları ve Yenilikleri
  • ASP.NET ile Yazılım Geliştirmeye Giriş
  • Visual Studio 2012’ye Genel Bakış
  • Visual Studio 2012 Çalışma Ortamı
  • Web Form Kavramı Ve Kullanımı
  • Web Form Özellikleri
  • Web Form İçerisine ASP.NET Kontrollerini Ekleme
  • ASP.NET’te C# ile Kodlama Yöntemleri
  • ASP.NET 4.5 ile C# 5.0 Kullanımı
  • C# Nedir ve Neden C# Kullanmalıyız?
  • C#’ın Kullanım Alanları
  • ASP.NET Formu Geliştirilirken Kullanılan Diller
  • Asp.Net Formlarında En Sık Kullanılan C# Örnekleri
  • C# 5.0 ile Gelen Yenilikler
  • ASP.NET Kontrolleri
  • Standart Kontroller Ve Kullanımları
  • Veri Kontrolleri
  • Veritabanından Veri Getirme
  • XML Dosyasından Veri Getirme
  • Entity Framework ile Veri Sorgulama
  • LINQ to SQL ile Veri Sorgulama
  • Nesnel Veri Kaynağı
  • Site Haritası Veri Kaynağı
  • Grafiksel Rapor Oluşturma
  • Verileri HTML Tasarımıyla Listeleme
  • Verileri Listeleme
  • Kayıt Detaylarını Görüntüleme
  • Verileri Listeleme ve İşlem Yapma
  • Verileri Sayfalayarak Görüntüleme
  • Verileri Kontroller ile Sorgulama
  • Verileri Html Şablonu ile Görüntüleme
  • Doğrulama Kontrolleri
  • Navigation Kontrolleri
  • Menü Oluşturma
  • Site Haritası Menüsü Oluşturma
  • Ağaç Menüsü
  • Kullanıcı Giriş Kontrolleri
  • Gelişmiş Sihirbaz Oluşturma
  • XML Dosyasını Görüntüleme
  • Web Part Kontrolleri
  • AJAX Kontrolleri
  • ASP.NET ile Durum Yönetimi
  • Sunucu Tabanlı Durumlar
  • İstemci Tabanlı Durumlar
  • Çerezler
  • ViewState
  • QueryString ile Sayfalara Veri Gönderme
  • LINQ ve Entity Framework
  • Temel LINQ Sorgulama İşlemleri
  • LINQ Metodları
  • LINQ ile SQL Server İşlemleri
  • Tasarım İşlemleri
  • Master Page Kavramı
  • ASP.NET ile CSS Kullanımı ve Style Sheet Dosyaları
  • Tema Tanımlama
  • Skin Tanımlama
  • JavaScript ve JQuery
  • JavaScript ile Kodlama
  • jQuery ile Kodlama
  • URL Rewrite
  • ASP.NET ile Proje Altyapısı Hazırlama
  • Yazılım Geliştirme Yaşam Döngüsü
  • Yazılım Geliştirme Standartları
  • Katmanlı Mimari
  • Kod Yazma Standartları
  • Değişken, Sınıf ve Metod Tanımlama Yöntemleri
  • Proje Tanımlama Yöntemleri
  • Web Projesini Yapılandırma ve İnternet Üzerinde Yayınlama
  • Proje Yapılandırması
  • Temel Kavramlar
  • ASP.NET Web Projesinin Yayınlanma Yöntemleri
  • ASP.NET 4.5 Yenilikleri
  • ASP.NET MVC 4
  • … ve Daha Fazlası

Kitap iç sayfalar için tıklayınız..

Reklamlar

YazilimDevi.Com Profesyonel Eğitim Serisine Başlıyor !

Gerçekten C# öğrenmek ister misiniz?

 
Engin Demiroğ’dan C#’ı sıfırdan ama profesyonel bir yaklaşımla, bildiğiniz konularda bile “evet aslında halen öğrenecek şeyler varmış” dedirtecek detaylarla öğrenmek ister misiniz?
 
Bu eğitimde;
 
Kodu nasıl, ne için yazacağınızı öğreneceksiniz. Ezberci, buton altı, syntax bazlı kodlamadan uzak duracaksınız.
 
Asp.Net, Mobil veya Windows programlamanın bizim için aslında kullanıcı arayüzü kodlamaktan ileri gitmeyeceğini öğreneceksiniz. Böylece asıl önemli olanın arka planı(backend) sağlam kodlamak olduğunu göreceksiniz. Bu eğitim arka planı kodlamaya odaklanır.
 
Bugün yazdığınız kodu, uygulama yaşam döngüsünün her katmanında tekrar tekrar nasıl kullanacağınızı öğreneceksiniz.
 
Her konuyu gerçek hayat örnekleri ile detaylandıracaksınız.
 
Bu eğitim sonunda aslında işinizin bitmediğini, katetmeniz gereken bir yol olduğunu göreceksiniz. Fakat bu yolda doğru ilerlemeyi öğreneceksiniz.
 
Eğitim içeriği:
1.Saat: C# ve .Net Framework 4.0 Yeteneklerine Genel Bakış, Hedefler
2.Saat: Karar Yapıları ve Döngüler.
3.Saat: Değer(Struct,Enum) ve Referans(Class) Tipleri, Tip Dönüşümleri ve Bilinmeyen Yönleri
4.Saat: Metodlar ve C# 4.0,5.0 ile gelen mükemmel deneyimler
5.Saat: Temel ve İleri Hata Yakalama Teknikleri
6.Saat: Diziler, Koleksiyonlar
7.Saat: Generics
8.Saat:  OOP Teknikleri – Encapsulation,Inheritance,Interface,Abstraction,Polymorphism
9.Saat: Birkaç GoF Design Pattern ile OOP 1
10.Saat: Birkaç GoF Design Pattern ile OOP 2
11.Saat: Delegates and Events
12.Saat: LINQ
13.Saat: Reflection and Attribute
14.Saat: Asynchronous Programming
15.Saat: C# Memory Management
16.Saat: Çok Katmanlı Mimari Demosu
 
Eğitim Tarihi: 7-8 Nisan 2012 Saat: 09:00/18:00 arası Toplam 16 Saat.
Eğitim Ücreti: 300 TL + KDV
Eğitim Yeri: Ankara
Sorularınız için: info@yazilimdevi.com
 
Eğitime Nasıl Katılabilirsiniz?
Eğitim sınıfı 12 kişiyi geçmeyecekmiş. Bu açıdan info@yazilimdevi.com adresine eğitime katılmak istediğinizi belirten mail yollamanız gerekiyor. Adınızı ve soyadınızı ekleyiniz.
Sınıfta yer olmasına bağlı olarak olumlu veya olumsuz maili aldıktan sonra, size gönderilen banka hesabına 300 TL + KDV yatırmanızı isteyecekler.
 
Ayrıntılı bilgi ve kaynak için tıklayınız.

Bahçeşehir Üniversitesi Bilgisayar Mühendisliği Kulübü’nde ASP.NET Etkinliği

Yarın(20.04.2010) ilk günü olmak üzere Bahçeşehir üniversitesi bilgisayar mühendisliği Kulübü’nde  “ASP.NET ile MS SQL Veritabanı Tabanlı Web Uygulaması” başlığı altında bir etkinlikte konuşmacıyım. 5 hafta boyunca her salı 19:00 – 21:00 saatleri arasında gerçekleşecek bu etkinliğin içeriğini aşağıda görebilirsiniz..

 

 

Etkinliğe katılmak için kulüp üyesi olmak gerektiğini belirten kulüp üyeri ile haberleşerek hem kulüp üyesi olabilir hem de kulübün sunduğu etkinliklerden faydalana bilirsiniz..

 

Bahçeşehir Üniversitesi Bilgisayar Mühendisliği Kulübü tarafından “ASP.NET ile MS SQL Veritabanı Tabanlı Web Masraf Uygulaması” etkinliği düzenlenecektir.

Etkinlik Bilgileri:

ASP.NET kullanarak web tabanlı masraf yönetim uygulaması geliştirme.
–> Firma çalışanları için; yapılan firma harcamalarının yönetilmesi ve işlenmesi amaçlı yapılan bir uygulama.
–> Çalışan, yönetici, muhasebe vb. şeklide kullanıcı tipine göre masraf verisinin, çalışan yönetici onay mekanizmasına göre girilmesi. Masraf listeleme, yönetici onayı, reddetme, muhasebe onayı sisteminin oluşturulması.

MS SQL Server ile proje veritabanının oluşturulması ve MS SQL Server temel özellikleri.
–>Uygulama için gerekli veri tabanı, tablo ve diğer nesnelerin oluşturulması. MS SQL Server üzerinde veri sorgulama temelleri.

ADO.NET Entity Framework ile veritabanı nesneleştirme.
–>Veritabanı ile web uygulaması arasındaki veri alışverişi ve işlemlerinin yapılmasını sağlayan katmanı oluşturma.

LINQ(Language INtegrated Query) temelleri, veri işlemleri için integrated sorgulama yöntemleri.
–> Uygulama üzerinden elde edilen ya da istenilen verilerin nesnesel olarak sorgulanması ve kullanılması.

Etkinliğe katılmak isteyenlerin programlama üzerine orta düzeyde bilgi sahibi olmaları gerekmektedir.Aksi halde eğitim yararlı olmayacaktır.

XLINQ – Samples With TreeView



XLINQ ile oluşturulmuş LINQ örnekleri içeren basit bir Windows Uygulaması..

1) Run-time XmlDocument oluşturma ve Dosya oluşturup, dosyaya kaydetme ve TreeView ‘a aktarma.
2) Xml veri içeren dosyadan okuma ve TreeView’a aktarma.
3) Xml veri içeren dosyadan okuma ve filtreleme.
4) AdventureWorks database’inden ProductCategory tablosu verilerini XLINQ ile okuma ve XML oluşturma ve TreeView’a aktarma.
5) AdventureWorks database’inden ProductCategory tablosu verilerini XLINQ ile okuma, filtreleme ve XML oluşturma ve TreeView’a aktarma.

Projeyi indirmek için tıklayınız..

LINQ – SQL Database Erişimi, Select İşlemi ve Verileri XML Dosyaya Yazmak

Language Integrated Query (LINQ) , dil ile bütünleştirilmiş sorgu teknolojisi ile IEnumerable arayüzünden iplemente edilmiş dizi(array) nesneleri üzerinde SQL ifadeleri içeren sorgular ile filtreleme yapabilmenizi sağlamaktadır. Bu konuyla ilgili olarak internette bulunan makalelerin hepsini okumanızı tavsiye ederim. Bu teknolojinin kullanılmasını şiddetle tavsiye ederim. 🙂

LINQ ile IEnumerable arayüzünden iplemente edilmiş nesneler üzerinde SQL ifadelerini kullanarak sorgulama yapılabildiği gibi, Database nesnelerini temsil eden nesneler üzerinde de kullanabilir hatta XML nesnelerinde bile kullanabilirsiniz.
Yazdığınız kod daki netliği(okunabilirlik) ve sadeliği sizde kullanınca farkedeceksiniz.. Hatta sizi birçok rutin döngüden kurtaracaktır. Bu teknolojiyi kullandıktan sonra aklıma gelen ilk düşünce ,bence fazla uzak olmayan bir zaman sonra artık kod yazmayacağız ki bu teknoloji ile bile bu yönde çok büyük bir adım atıldığına inanıyorum. Bu teknolojiyi bile öğrenince bu teknolojinin kapsadığı alanda artık düşüneceğimiz tek şey; nasıl kod yazayım diye düşünmek değil, yapılacak iş nedir diye olacaktır. Bence bunu sizde farkedeceksiniz..
Güzel bir LINQ örneği ile bu yazıyı sonlandıralım 🙂
AdventureWorks isimli database’den “Production.ProductCategory” isimli tablodaki verileri çekecek ve üzerinde filtreleme yapacak ve ekrana verileri yazacak bir LINQ örneği düşünüyorum. Bunun için sırasıyla ilk önce bir console projesi oluşturalım. Ben ismini “CS30_CreateDLinq” oalrak adlandırdım. Projemizde kullacağımız LINQ nesneleri için projemize gereken referans’ları eklememiz gerekiyor. Referans listesi aşağıdaki gibi olmalıdır..

Projemiz de;
–> AdventureWorks database’ini temsil eden bir class,
–> Production.ProductCategory isimli tabloyu temsil eden bir class oluşturacağız..
İlk olarak Production.ProductCategory isimli tabloyu temsil eden bir class’ı oluşturalım. “ProductCategory.cs” isimli class’ı projemize ekliyoruz.

 

kmb-udemy-reklam


ProductCategory.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.Linq;
using System.Text;
using System.Data.Linq.Mapping;
namespace CS30_CreateDLinq
{
[Table(Name = “Production.ProductCategory”)]
public class ProductCategory
{
[Column(Name = “ProductCategoryID”, IsPrimaryKey = true, CanBeNull = false, IsDbGenerated = true)]
public int ProductCategoryID { get; set; }
[Column(Name = “Name”, CanBeNull = false)]
public string Name { get; set; }
[Column(Name = “rowguid”, CanBeNull = false)]
public Guid RowGuid { get; set; }
[Column(Name = “ModifiedDate”, CanBeNull = false)]
public DateTime ModifiedDate { get; set; }
}
}


Tablodaki her bir kolon için bir Property tanımladık ve kolonların özelliklerini property’lere attribute olarak ekledik.. Tablo ismini class’ın üstünde belirttik.
Şimdi database’i temsil eden class’ı oluşturalım. Bu class’da yukardaki tabloyu işaret eden bir property oluşturacağız.. Database’i temsil eden class’lar DataContext nesnesinden inherit edilir ve DataContext nesnesinin metodlarından faydalanacağız..

 


AdventureWorks.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CS30_CreateDLinq
{

[System.Data.Linq.Mapping.Database(Name = “AdventureWorks”)]
public class AdventureWorks : System.Data.Linq.DataContext
{

public System.Data.Linq.Table ProductCategories
{
get
{
return this.GetTable();
}
}

public AdventureWorks(string connectionString)
: base(connectionString)
{ }

}
}


Database ‘i temsil eden class’ın Constructor’ını oluştururken ConnectionString parametresi alıyoruz ve bu parametreyi inherit alınan DataContext nesnesine, base class’a geçiriyoruz.. DataContext nesnesi buradan gerekli bağlantı nesnelerini ve sorgulama nesnelerini hatta sorguları oluşturup çalıştırabiliyor.

Bu database nesnesine ProductCategory tablosunu temsil eden bir Property ekledik property’nin tipi ProductCategory class’ından oluşan bir Table ‘dır. Bu Property’in değeri okunmak istendiğinde yani kullanıldığında; GetTable extension(genişletilebilir) metodu ile belirtilen tip’te(ProductCategory tipinde) bir tablo elde edilir. Biz ProductCategory tablosundan veri okuyacağımız için bu tip ProductCategory tipi olmalıdır. Böylece elimizde ProductCategory class’larından oluşan bir tablo yani bir nevi bir liste elde etmiş olacağız.

Bu arada database’i temsil eden class üstüne bağlanmak istediğimiz database’in ismini attribute olarak geçmeyi unutmuyoruz..

Artık console verimizi çekmeye hazırız..

Program.cs class’ımıza şu şekilde yazıyoruz.. Kod açıklama satırları ile şöyle;


Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using System.Text;

namespace CS30_CreateDLinq
{

public class Program
{
static void Main(string[] args)
{

//Bütün veri çekilir..
var productCategories = GetProductCategoryData();

if (productCategories != null)
{
//Tüm veri listelenir..
foreach (ProductCategory pro in productCategories)
{
Console.WriteLine(
“\t” + pro.Name +
“\t” + pro.ProductCategoryID.ToString() +
“\t” + pro.RowGuid.ToString() +
“\t” + pro.ModifiedDate.ToShortDateString());
}
}

Console.WriteLine();
Console.ReadKey();

}

public static ProductCategory[] GetProductCategoryData()
{

//Database’i temsil eden nesne oluşturulur..
AdventureWorks adwentureWorksDatabase = new AdventureWorks(“Data Source=localhost;Initial Catalog=AdventureWorks;Integrated Security=True“);

//Tüm veri elde edilir..
var productCategories = from pro in adwentureWorksDatabase.ProductCategories
select pro;

//Veri yoksa uyarı verilir..
if (productCategories == null)
{
Console.WriteLine(“Database nesnesi null..”);
Console.WriteLine();
Console.ReadKey();
}

//Veri dizi olarak geri döndürülür..
return productCategories.ToArray();

}


Yukardaki kod ile ProductCategory tipinde bir dizi elde edip, verileri ekrana basıyoruz..

Peki verileri bir xml dosyaya yazmak istesek ve bunun için XLINQ ‘dan faydalansak, bunun için kodumuzu şu şekilde yeniden yazalım..

 


Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using System.Text;

namespace CS30_CreateDLinq
{

public class Program
{

static void Main(string[] args)
{

//Bütün veri çekilir..
var productCategories = GetProductCategoryData();

if (productCategories != null)
{

//Tüm veri listelenir..
foreach (ProductCategory pro in productCategories)
{
Console.WriteLine(
“\t” + pro.Name +
“\t” + pro.ProductCategoryID.ToString() +
“\t” + pro.RowGuid.ToString() +
“\t” + pro.ModifiedDate.ToShortDateString());
}

//Tüm veriyi XML dosyaya yazma işlemi başlatılır.
Console.WriteLine();
WriteProductCategoryDataToXmlFile();

}

Console.WriteLine();
Console.ReadKey();

}

public static ProductCategory[] GetProductCategoryData()
{

//Database’i temsil eden nesne oluşturulur..
AdventureWorks adwentureWorksDatabase =new AdventureWorks(“Data Source=localhost;Initial Catalog=AdventureWorks;Integrated Security=True“);

//Tüm veri elde edilir..
var productCategories = from pro in adwentureWorksDatabase.ProductCategories
select pro;

//Veri yoksa uyarı verilir..
if (productCategories == null)
{
Console.WriteLine(“Database nesnesi null..”);
Console.WriteLine();
Console.ReadKey();
}

//Veri dizi olarak geri döndürülür..
return productCategories.ToArray();
}

public static void WriteProductCategoryDataToXmlFile()
{

//Veriyi yazacak XML dosya oluşturulur..
string filePath = CreateXmlFile();

//XML dosyaya yazılacak veri elde edilir..
var productCategories = GetProductCategoryData();

//Veri varsa..
if (productCategories != null)
{

//Tüm veriyi XML dosyaya yazacak metod çağrılır..
WriteDataToXmlFile(productCategories, filePath);

//Yazım işleminin bitti§ini belirten uyarı verilir..
Console.WriteLine(“\nXML Dosya Oluşturuldu..\n”);
}
else
{

//Veri yoksa uyar verilir..
Console.WriteLine(“\nXML Dosya Oluşturmak için Gereken Veri Dizisi Yok !\n”);
}
}

private static string CreateXmlFile()
{

string path = string.Empty;

do
{
//Kullanıcıdan XML dosya konumu okunur..
Console.Write(“XML Dosya Konumunu Giriniz : “);
path = Console.ReadLine();

try
{

//Dosya oluşturulmaya çalıştırılır.. Eğer oluşturulamaz ise hata oluşur..
System.IO.File.Create(path).Close();

//Dosya oluşturulursa dosya konumu geri döndürülür..
return path;
}
catch (Exception)
{
//Dosyanın oluşturulamamasından dolayı uyarı verilir..
Console.WriteLine(“\nGeçerli Bir Konum Giriniz !\n”);
path = string.Empty;
}

//Dosya oluşturulana kadar işlem tekrarlanır..
} while (path.Trim() == string.Empty);

return path;
}

private static void WriteDataToXmlFile(ProductCategory[] productCategories, string filePath)
{

//Eğer XML ‘e yazılacak veri varsa..
if (productCategories.Length > 0)
{

//XmlElement’leri tutacak bir liste oluşturulur..
List productCategoryElements = new List();

//XmlElement’ler oluşturulup listeye atılır..
foreach (ProductCategory pro in productCategories)
{

productCategoryElements.Add(
new XElement(“ProductCategory”,
new XElement(“ProductCategoryID”, pro.ProductCategoryID.ToString()),
new XElement(“Name”, pro.Name),
new XElement(“RowGuid”, pro.RowGuid.ToString()),
new XElement(“ModifiedDate”, pro.ModifiedDate.ToShortDateString())));

}

//XmlDocument oluşturulur, Tanımlama bilgisi ve iç elementler XmlDocument’e eklenir..
XDocument xmlDoc = new XDocument(
new XDeclaration(“1.0”, string.Empty, “true”),
new XElement(“ProductCategories”, productCategoryElements.ToArray()));

//XmlDocument dosyaya yazılır..
xmlDoc.Save(filePath);

}
else
{

//Veri yoksa uyarı verilir..
Console.WriteLine(“\nXML Dosya Oluşturmak için Gereken Veri Dizisi Yok !\n”);

}
}
}

}

 


Yukardaki kodu çalıştırdığınızda ilk önce veriler listelenecektir. Ardından sizden bir dosya konumu istenecek ve belirttiğiniz dosya konumuna örneğin; “c:\test.xml” yada sadece “test.xml” yazarak programın çalıştığı proje klasöründeki BIN – DEBUG klasörü içine dosyanız oluşturulacaktır.. Eğer belirttiğiniz konum geçersiz yada belirttiğiniz konuma dosya oluşturulamazsa sizden tekrar geçerli bir konum istenecektir.

LINQ ile XLINQ kullanımını ve bir SQL database’den veri çekme işlemini nasıl yapacağımızı ve LINQ’nun sorgulama yapısını kısaca görmüş olduk. Konunun detayları için internette bol bol makale olduğundan çok detaya girmedim. LINQ ‘yu mutlaka kullanmanızı tavsiye ederim, bu basit örnekle bile avantajları ortadadır 🙂 Herkese iyi çalışmalar..

Uygulamayı indirmek için tıklayınız..