Arda Çetinkaya Thoughts on software, with the occasional personal rambling…

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)
	   )

Finans sektörünin ihtiyaçlarını paketleyip, ürün geliştiren, geliştirirken öğrenmeyi, öğrendikçe de yeni ürünleri geliştiren bir yazılım firması için;
.NET Framework ile uygulama geliştiren, Asp.Net ile haşır neşir olan,bunları yaparken C# tercih eden, tüm bunları yaparken bir de araştırmayı seven, araştırırken öğrenen ve öğreten, fazla tecrübeden çok, öğrenme isteği yüksek çalışma arkadaşları arıyoruz.

Neyi neden yaptığını bilen veya sorgulayan, ya da neyi neden yapmamasını anlayabilecek, yazılım geliştirme süreçlerine ilgisi olan ve hatta yazılım mimarisi ile ilgilenen, bu konular hakkında konuşmayı seven, konuştuğu kadar da bir şeyler üretmeye çalışan, sorumluluk alabilecek kişiler CV’lerini gönderebilirler çekinmeden…

Şahane çalışma arkadaşları, rahat ama kesinlike deneyim kazandıracak ve bir çok şey öğretecek bir çalışma şekli, .NET Framework teknolojilerinin son yenilikleri ile çalışma imkanı(Visual Studio 2010, .NET 4.0 gibi) garanti…

İletişim kısmındaki e-mail adresine CV’lerinizi gönderebilirsiniz…

Geçtiğimiz ay gerçekleşen PDC10(Microsoft Professional Developers Conference 2010) yerel etkinlikler ile etkinliğin ana noktalarını sunuyor. Bu bağlamda Ankara,İzmir ve İstanbul’da çeşitli etkinlikler düzenlenecek. Bu etkinlikler kapsamında HTML5 ve Azure başlıkları ile, bu teknolojiler ile ilgili son gelişmeleri takip etme şansını bulabileceksiniz. İmkanınız olursa katılmanızı tavsiye ederim. http://www.inetatr.org/ adresinden katılım için ilgili başvuruyu yapabilirsiniz.

8 Aralık 2010 – Ankara

9 Aralık 2010 – İzmir

10 Aralık 2010 – İstanbul