Arda Çetinkaya Yazılım ve arada kendim ile ilgili karaladıklarım…

Geliştirmiş olduğunuz uygulamanın ya da web sitesinin resimlerini ve Javascript dosyalarını, uygulama tarafında göremiyor ya da çalıştıramıyorsanız, IIS’i kontrol etmekte fayda var. IIS’in kurulumu aşamasında oluşan bazı sorunlardan ya da fark etmeden yapmış olduğunuz konfigürasyon ayarları bu tarz bir soruna yol açabilmekte. Bu sorunu aşabilmek için IIS’in özelliklerini belirlediğiniz kurulum ekranında “Common HTTP Features” altındaki “Static Content”i işaretlemeniz gerekecektir. Bu sayede IIS resim ve Javascript gibi statik dosyaları da sunabilecektir.

Visual Studio 2010’nun Service Pack 1 Beta’sı çıkmış bulunmakta. Buradan indirip, kurabilir ve test edebilirsiniz… Service Pack 1 Beta ile neler geliyor peki?

Öncelikle tabi ki bir kaç BUG çözümü bu Service Pack’de mevcut. HTML 5 desteği ve IIS Express desteği ise bence bu Service Pack’in en önemli yenilikleri. Öte yandan Silverlight uygulamaları için de Visual Studio’nun proofiling araçlarını bu Service Pack 1 ile kullanabilir hale geliyoruz.

Ayrıca bir Service Pack’de Team Foundation Server(TFS) 2010 için çıkmış bulunmakta. Şimdilik bu da Beta…Bu adresten indirebilirsiniz…

Entity Framework’ün Community Technology Preview 5 versiyonu çıktı. Bu versiyonu, Entity Framework’ün yeni versiyonunun son halinden önceki son CTP olduğu için incelemekte fayda var derim. Code First Programming Model’de gelen yeni özellikler sanırım bu CTP’nin en önemli yenilikleri. İlerleyen zaman içerisinde ayrıntılı olarak Entity Framework’ün yeni versiyonu ile ilgili ayrıntılı bir yazı yazıyor olacağım…

Ama şimdilik CTP 5’i bu adresten indirebilirsiniz…

Daha önce “Bakmakta fayda var” yazısı ile başlamaya niyet ettiğim link paylaşımlarının yenisi ile bu niyetimi biraz daha ciddileştirmiş oluyorum… .Net teknolojileri ile haşır neşir olanlara bir kaç güzel Türkçe kaynak…Mutlaka takip edin, okuyun derim…

If you are developing some applications with .NET Framework, you should familiar with some built-in sorting and paging methods of some user controls(for example, grids…)  in both web and Windows enviroments for your data which are stored in SQL Server. But to be honest, I do not like these methods so much. In some cases, they really rock and save life, but in some cases you really have to think about a better way for sorting ang paging.

Nowadays, I am in a case that I have to write some custom sorting and paging methods for my applications. The reason is because of some performance needs and also to have more control on these methods. So I gave these sorting and paging duty to SQL Server and create a simple pattern as stored procedure.

With this pattern, I am able to sort my data according to any column and also apply the paging according to this sort with preferred page size. And as you know that this is not so easy with some built-in control methods…

So here you can use this pattern. And if you have a better approach or idea, please let me know…

ALTER PROCEDURE SEARCH_SOMETHING
(
	@param1 nvarchar(50),
	@param2 int,
	...
	..
	.
	@skipedIndex int,
	@pagesize int,
	@sortColumn nvarchar(50),
	@direction nvarchar(1)
)
AS
SELECT  * FROM
(
Select 
Table1.Column1,
Table1.Column2,
Table1.Column3,
row_number() OVER (
		ORDER BY 
		CASE 
			WHEN @sortColumn='' AND @direction='' THEN  Table1.Column1
			
		END DESC,
		CASE -----D for desc
			WHEN @sortColumn='Column1' AND @direction='D' THEN  Table1.Column1
			
		END DESC,
		CASE ----A for asc
			WHEN @sortColumn='Column1' AND @direction='A' THEN  Table1.Column1
			
		END ASC,
		CASE 
			WHEN @sortColumn='Column2' AND @direction='D' THEN  Table1.Column2
			
		END DESC,
		CASE 
			WHEN @sortColumn='Column2' AND @direction='A' THEN  Table1.Column2
			
		END ASC
) AS rownumber
 from Table1
WHERE ---THESE ARE THE CONDITIONS FOR YOUR SQL QUERY
(@param1='' or Table1.Column1 = @param1) AND
(@param2=-1 or Table1.Column2 = @param2) AND
......
..
..

) as t ---THIS IS THE PAGING CONDITIONS
WHERE (
		(@skipedIndex=-1 and @pagesize=-1 ) OR
	    (t.rownumber between @skipedIndex+1 and @skipedIndex + @pageSize)
	   )