Eskiye nazaran , şimdilerde geliştirdiğim projelerin Assemblys klasörü bir çok *.dll ile dolmaya başladı. Bir projede en az 7 tane component (Bileşen) kullanmışım. Tabi bu .Net ekosistemi’nin gelişmesiyle doğru orantılı oldu. Bir çok kaliteli ürün, işimizi kolaylaştıran Framework (Programlama Çatısı) open-source (açık kaynak) olarak dağıtılmaya başlandı bu developer’ın çok büyük bir kolaylık ve zaman kazancı. Esas amacım projelerde sıklıkla kullandığım ürünlerin neler olduğunu ve ne işe yaradığını paylaşmak. Bakalım neler kullanıyorum :)
Şu anda 3. Versionun yayınlandığı bu Framework web uygulamalarını Model View Controller mantığında bir istekeltle geliştirmemizi sağlıyor. Web Forms’a güçlü bir alternatif ve hatta bu Framework üzerinde uygulama geliştirmek çok daha eğlenceli benim için.
2. The Unity Application Block (Unity)
Microsoft’un patterns & practices takımı tarafından geliştirilen lightweight bir dependency injection container’ı IoC yaklaşımında providerlar geliştirmek için kullanıyorum.
3. SQLite
SQLite ufak bir SQL Database Engine’dir. Herhangi bir configurasyona, kurulma gerek duymaz ve transaction desteğide bulunur. Çoğu kişisel projemde bun motoru kullanıyorum henüz .NET 4.0 desteği çıkmadı ama .NET 2.0 runtime’ında kullanılabilyor. Ufak bir fikir vermesi açısında tweet.gen.tr projesinde SQLite kullandım, şuanda 540MB bir veritabanı var gerçekten performanslı çalışıyor.
log4net developer’ın uygulama içinde bir çok şekilde log tutmasını sağlayan yararlı bir araç. Configurasyonu zahmetsiz bir çok database desteği ve Ağ protokolü desteği (UDP, TCP) ile loglarınızı değişik ortamlarda kaydedebilmenizi sağlayan bir üründür. Kullanın.
5. Facebook Connect Authentication for ASP.NET
Web uygulamalarında Facebook Connect’ı kullanarak kullanıcı doğrulaması yapmanızı sağlar. Bir kere kullandım .NET 2.0 desteği mevcuttu ama hala çalışıyor.
Evde NoSQL konseptini anlamaya çalışırken dağıtık sistemlerde çalışan Cassandra‘yı keşfetmiştimtim. Bu yeni dağıtık database sistemini nasıl kullanabilirim diye araştırırken FluentCassandra’yı buldum.
7. iTextSharp
Esasen Java için yazılmış bu bileşen’ın .Net’e port edilmesiyle .NET dünyasına giren PDF dosyaları oluşturmamızı sağlayan açı kaynak bir araç. Projelerde PDF ile ilgili bir işlem olacaksa kullanıyorum.
8. Lucene.Net
Lucene çok özellikli bir test search engine’i. Statik bir sitenin arama motoru olarak çalıştırıp kullandım. Daha öncede bir data-mining projesinde kendi raporlarımı çıkarmak için kullanmıştım. Açık kaynak ve string’e bakış açısını değiştirebilecek bir ürün.
9. nvents
Fantastik bir publishing/subscribing olay yönetim sistemi. .NET 4.0 desteği olan bu araç WCF üzerinde çalışıyor, Events’ları serialize ederek network üzerinden gönderilmesini ve alınmasını sağlıyor. Kendi pub/sub framework’ünü geliştirdikren sonra keşfettiğim için çok kızıyorum kendime :)
10. Quartz.NET
Open-Source camianın bize verdiği nitmetlerden bir tanesi daha. Quartz.NET. Uygulamanızda zamanlanmış görevler mantığından geliştirmeler yapabileceğiniz bir araç. Hem ufak, hemde büyük ölçekteki projelerde rahatlıkla kullanabilirsiniz. Buda Java dünyasından .Net dunyasına devşirilmiş uygulamalardandır.
ASP.NET uygulamalarında HTML templateleri oluşturmanıza ve yönetmenize yarayan bu araç. Razor çıkana kadar bir kaç projede kullandım, kendine özgü syntax’ı var. Öğrendikten sonra html yazarak programlama yapmak zevkli oluyor. MVC3 ile birlikte gelen Razor’a bu ürüne alternatif oldu.
12. FluentValidation
Uygulamalarda girilen verilerin doğrulanması hem güvenlik açısından hemde uygulamanın stabilitesi açısından son derece önemlidir. FluentValidation’da tam burda devreye giriyor. Verileri doğrulamak için size kolay ve anlaşılır method’lar sunuyor validation için ek olarak bir geliştirme yapmanıza gerek kalmıyor.
13. NPOI
Başka bir Open-Source projede NPOI yine Java dünyasından devşirilmiş bu proje doc, ppt, xls gibi dosya uzantılarını açmanızı ve oluşturmanızı sağlıyor. Fakat sadece office 2003 desteği var ama yinede office 2010 bu dosyaları sorunsuz açabiliyor.
14. xmlrpcnet
Hosting firmasında çalıştığım için bir çok registrar ve diğer çözüm ortaklarımızla API’lerle haberleşiyoruz. Bu API’lerde genelde XMLRPC protokolünde haberleşiyor. Bu protokolü .NET üzerinde kullanmak için bu aracı kullanıyoruz.
15. FluentPath
FluentPath dosya işlemlerinizi (System.IO) Lambda kullanarak çok daha kolay gerçekleştirmemizi sağlayan bir araç. Path.Files(f => new[]{".aspx"}).Move( p => p.Parent()).Hide(); gibi.
16. Microsoft Web Protection Library (AntiXSS, SQLInjection)
Web uygulamalarında güvenliğe dikkat etmek lazım. Developer farkında olmadan XSS açıkları ve SQLInjection açıklarına neden olabiliyor. HTML , XML, CSS ve JavaScript bazında güvenlik açıkları vermemek için kullanabilirsiniz.
17. SharpZipLib
Gelişmiş bir e-posta yönetimi yapabileceğinz bu araç işlerinizi gerçekten kolaylaştırıyor. Tek satır kodla e-mail gönderebiliyorsunuz, e-mail tamplate yapılarını kolayca oluşuturup bir çok alıcıya tek bir seferde gönderim yapabiliyorsunuz. Ek olarak Open-Souce.
Linq2Sql ile bir proje geliştiriyorsanız sorgulamaları dinamik hale nasıl getireceğinizi ilk etapta bilememişsinizdir. Şahsen ben dedim. "Nasıl dinamik query oluşturacağız bu Linq’de" diye ama arkasından Micsoroft beni duymuş olacak ki "Dynamic Expression API" yi çıkardı.
20. AE.Net.Mail
POP3 ve IMAP protkollerini kullanarak e-postalarınıza erişmeyi sağlıyor. En son baktığımda SSL desteğinide eklemişler. Lazım olunca başvuruyorum.
21. FluentNhibernate
Efsanevi Nhibernate‘ın XML dosyalarına gerek kalmadan bir çok işi otomatize eden bir araç. Nhibernate’i herkes biliyor ve kullanıyor onun için listeye ayrıca bir madde eklemedim.
22. PayPal Helper
e-ticaret uygulamalarında ençok tercih edilen ödeme metodu olan paypal‘ı .Net Web uygulamalarınızda kullanmanıza yardımcı olur. Kullanmadım ama kenarda bekletiyorum.
HTML parse etmek için Regex kullanmayın. Regex bu işin doğasına aykırı o nedenle adamlar oturmuş HTML Agility Pack’i kullanmanız için geliştirmiş, kodlarını açmış. Son versionunda Linq desteği gelmiş güzelde olmuş.
24. Json.Net
Artık ajax işlemlerinde istek ve cevapları Json ile konuşturuyorum. Hem okunması hemde yazması daha kolay oluyor, ama bazen server tarafındaki objeleri Json’a, Xml’e çevirimem gerekiyor o zaman Json.Net’in nimetlerinden faydalanıyorum.
25. TwitterVB – A .NET Twitter Library
Twitter üzerinde bir uygulama geliştirecekseniz sizin için biçilmiş kaftan. oAuth desteği ve bir çok API fonksiyonunu destekliyor. Twitter uygulamalarında sürekli kullanıyorum. Birde geo-location’i tam çalışsa süper olacak.