İlk Dynamic Data Web Site Sunumumu Gerçekleştirdim

by OMR 16. October 2009 04:23

Daha önce de bazı sunumlar yapmıştım ancak MSP olarak yaptığım ilk sunum olduğundan baya heyecanlıydım. 25 dakikada anlatmayı düşünüyordum ancak Agile Programming ve Rapid Application Development hakkında konunun tam olarak anlaşılması için bilgi vermem gerektiğini düşünerek anlatım süresini 45 dakikaya çıkarttım. ASP.NET Dynamic Data Web Site sunumu konusunda verdiği destekler için değerli Uğur UMUTLUOĞLU'na çok teşekkür ederim.

Tags: , ,

asp.net | Dynamic Data

ASP.NET Dynamic Data Web Sitesini Özelleştirmek - 2

by OMR 7. October 2009 03:10

Merhabalar, bu yazım da Custom Pages (özel sayfalar) kullanımı hakkında bilgi vereceğim. Dynamic Data Web sitesinin varsayılan şablonlarını bazı sayfalar için kullanmak istemeyebiliriz. Herhangi bir şablon için özel sayfa tasarlamak istiyorsak varsayılan Dynamic Data Web sitesi ile gelen ~/DynamicData/CustomPages klasörü içine TabloAdı/ŞablonAdi.aspx oluşturulması yeterli. Daha iyi anlaşılması için Product tablosu için özel sayfamızı tasarlamaya başlayalım.

Artık standart şablondan kopyala yapıştır ile   ~/DynamicData/CustomPages/Products/ konumuna yapıştırdığım List.aspx şablonu kullanımdadır. Şablon üzerinde özelleştirme yapalım. Product tablosundaki tüm alanların görünmesini istemiyorum. Bunun için MetaData'da yazabiliriz ancak DynamicDataField kullanımını da gösterebilmek adına GridView1 nesnesinin AutoGenerateColumns özelliğini false yapıyorum.

More...

ASP.NET Dynamic Data Web Sitesini Özelleştirmek - 1

by OMR 1. October 2009 02:13

Merhabalar, daha önceki yazımda Dynamic Data Web Site'ını özelleştirebileceğimiz konusundan bahsetmiştim. Bu yazı özelleştirme konusuna giriş amacı taşımaktadır.

Dynamic Data Web Site'ın oluşturulmasıyla birlikte gelen sayfa şablonları üzerinden yazıma devam ediyorum.

Bazı veritabanlarında tablo isimleri kolon isimleri vb alanlar firmanın kullandığı standartlar kapsamında belirleniyor. Bir tablo adlandırması çok farklı prefixler alabilir, kısaltmalardan faydalanarak kullanılıyor olabilir yada okunuşu çok anlamsız bir şekilde olabilir. Bu temelde yazılımsal olarak bir sııntı oluşturmuyor ancak bu isimlendirme standartlarından kullanıcıların anlamasını beklemek çok yanlış olacaktır. Dynamic Data Web Site'ın çözüm için üzerinde modifikasyon(lar) yapılacak tabloya partial olan farklı bir class yazıyoruz ve class'a MetaDataType özniteliğini atıyoruz. Zor gibi görünen bu yapı kodlaması oldukca basittir.

Employee tablosunun List.aspx şablonunda görüntüsü:

Bu tablo modifikasyonlar yapmaya başlayalım. Tanımalayacağımız class partial olduğundan LINQ to SQL Class'ında generate edilmiş tablo adı ile aynı isimi taşıması gerekiyor. Tablonun atandığı class adını LINQ to SQL Class'ından tespit edilebilir.

More...

Tags: , ,

asp.net | c# | Dynamic Data

ASP.NET Dynamic Data Web Site ile çalışmak - 1

by OMR 28. September 2009 23:33

 

Merhabalar

Sürekli genişliyen uygulamalarda yapılan veri tabanı geliştirmelerinde yaşanan en büyük sıkıntılardan biriside yazılım alt yapısının değişiklikleri hızla sindirememesidir. Değişiklik gerektiren kodlar bazen yalnızca bir methodun içindedir bazen tüm class bazende çok daha fazlası.

Veritabanı üzerinde yapılan her değişiklik yeni bir süreci başlatır. Temel düzeyde ele almak gerekirse Yapılan en ufak bir değişiklikte iş zekası katmanına ve sunum katmanına yansıtılmalıdır. Bu değişiklikler yapılırken yada yapıldıktan sonra ortaya çıkabilecek sorunlar canınızı sıkabilir. Oysa ki yapmanız gereken sadece CRUD(Create, Read, Update, Delete) işlemlerinden ibarettir ve bu işlemi defalarca yapmanız gerekebilir. Bu tür sorunları aşmak adına ASP.NET Dynamic Data yardımımıza koşuyor.

ASP.NET Dynamic Data .NET Framework 3.5 SP1 ile birlikte geliyor.

Visual Studio ile yeni bir Dynamic Data Web Site oluşturup keşfetmeye başlayalım.

 

More...

Tags: , ,

asp.net | c#

CodeSmith ile iş gücünüzü yükseltin

by OMR 9. September 2009 04:02

Çoğu yazılımcının yaptığı gibi "sürekli yapma alışkanlığı"nızdan kurtulun. Aynı kodu defalarca yazamaktan sıkılmadınız mı? Yada her yeni proje ile birlikte aynı şeyleri baştan yazmaya başladığınızı düşünmediniz mi? Tekrarlamaları farketmeye çalışın çünkü bunları otomatikleştirebilirsiniz. En basit örneği olarak bir tabloyu .net class'ına dönüştürme işlemini neden her seferinde baştan yazasınız ki? Yada bu tablo için gerekli CRUD operasyonlarının kullanacağı stored procedure'leri neden tek tek yazmanız gerekiyor? Bu ve bu gibi durumlar için okumaya devam edin.

Nedense bazı şeyleri otomatik yaptırmak tembellikle özdeşleştiriliyor. Bence bu tarz kendime standartlaştırdığım bazı işleri otomatik yapmamın hiçbir zararı yok çünkü bu tür işler çok fazla zamanımı alıyor ve asıl iş gücümü harcamam gereken aşamalar için daha az zamanım kalmış oluyor. Tembellik değil tasarruf edin. Bu noktada code generatorlar iş bitirir. Bu yazıda code smith neler yapabileceği hakkında bilgi vereceğim.

Code smith temelde generate edilecek kaynağın şemalarını barındıran bir programdır. .netTiers, CSLA, NHibernate, PLINQO, Wilson's ORMapper, APOSA ve daha bir çok frameworkle çalışabilecek kodlarınızı kolayca oluşturmanızı sağlar. Uygulamanın öğrenci sürümünü alabilmeniz de mümkün bunun için öğrenci belgenizi göndermeniz de yeterli oluyor. Visual studioya entegre çalışıyor. Tool menusunun altından yada view sekmesinin altındaki CodeSmith Explorer ile ulaşılabiliyor. Varsayınlan olarak tanımlanmış active snippet'ler sahesinde 3-4 kelime yazarak tüm kodu oluşturabilirsiniz.

Bu makalede basit bir veri erişim katmanını inceleyeceğim.Uygulama içinde hazır gelen TableProperties.cst şablonu üzerinde yapacağım geliştirmelerle devam ediyoruz.

TableProperties.cst dosyasını açtığınızda Visual Studio 2003'e çok benzer(aynısı olabilir) kod editörü ile karşılacaksınız. Kodlar şu şekilde:

<%--
Name: Database Table Properties
Author: Paul Welter
Description: Create a list of properties from a database table
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Description="Create a list of properties from database table." %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table that the object is based on." %>
<%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>

<% foreach (ColumnSchema column in this.SourceTable.Columns) {  %>
private <%= CSharpAlias[column.SystemType.FullName] %> _<%= StringUtil.ToCamelCase(column.Name) %>;

public <%= CSharpAlias[column.SystemType.FullName] %> <%= StringUtil.ToPascalCase(column.Name) %>
{
    get { return _<%= StringUtil.ToCamelCase(column.Name) %>; }
    set { _<%= StringUtil.ToCamelCase(column.Name) %> = value; }
}

<% } %>

More...

Tags: ,

asp.net | c#

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen