the emergence of choice in the .net ecosystem
DESCRIPTION
The slides for a talk I delivered at the Triangle area .NET group about the emergency of choice in .NET and highlighting 10 specific open source tools.TRANSCRIPT
![Page 1: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/1.jpg)
10 Open Source Tools You Should Use
James AveryInfozerk Inc.
![Page 2: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/2.jpg)
James AveryInfozerk Inc.
![Page 3: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/3.jpg)
10 Open Source Tools I Love
James AveryInfozerk Inc.
![Page 4: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/4.jpg)
9 Open Source Tools I Love and 1 I kind of hate
James AveryInfozerk Inc.
![Page 5: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/5.jpg)
The Emergence of Choice in the .NET Ecosystem
James AveryInfozerk Inc.
![Page 6: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/6.jpg)
Disclaimer:I like pragmatic simplicity
![Page 7: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/7.jpg)
ASP.NET MVC
![Page 8: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/8.jpg)
Wait… did you say ASP.NET MVC?
![Page 9: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/9.jpg)
“Additional Use Rights” means a license to use the software, whether unchanged or (for the portions of the software that we supply in source code form) as modified by you, (a) within your company for the purposes of designing, developing and testing your products for use with the software, and (b) in a live operating environment to allow your customers to use, via a web interface, your products that need the software to run. “Additional Use Rights” specifically excludes the right to distribute the software outside of your company and, because the software is a pre-release version, also excludes the right to disclose the results of any benchmark tests of the software to any third party without Licensor’s prior written approval.
- http://www.codeplex.com/aspnet/license
![Page 10: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/10.jpg)
But that isn’t an OSI approved license.
![Page 11: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/11.jpg)
ASP.NET MVC IS IMPORTANT!
![Page 12: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/12.jpg)
ASP.NET MVC Demo
![Page 13: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/13.jpg)
ASP.NET MVC Resources
• Scott Guthrie’s Blog – http://weblogs.asp.net/scottgu
• Phil Haacked’s Blog – http://www.haacked.com
• Rob Conery MVC Storefront – http://blog.wekeroad.com/mvc-storefront/
![Page 14: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/14.jpg)
ASP.NET MVC Alternatives
• MonoRail - http://www.castleproject.org/monorail/
• Classic ASP.NET + URLRewriting.NET + MVP Pattern - http://msdn.microsoft.com/en-us/magazine/cc188690.aspx
![Page 15: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/15.jpg)
NHAML
![Page 16: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/16.jpg)
Haml is a refreshing take that is meant to free us from the shitty templating
languages we have gotten used to.- http://haml.hamptoncatlin.com/
![Page 17: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/17.jpg)
..and the rest of ASP.NET MVCContrib
![Page 18: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/18.jpg)
NHAML Demo
![Page 19: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/19.jpg)
Nhaml Resources
• Andrew Peter’s Blog (creator of Nhaml) - http://andrewpeters.net/
• MVCContrib Codeplex - http://www.codeplex.com/MVCContrib
• MVCContrib Google Group - http://groups.google.com/group/mvccontrib-discuss
![Page 20: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/20.jpg)
Nhaml Alternatives
• Nvelocity - http://www.castleproject.org/others/nvelocity/index.html
![Page 21: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/21.jpg)
JQUERY
![Page 22: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/22.jpg)
jQuery makes JavaScript fun
![Page 23: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/23.jpg)
jQuery Demo
![Page 24: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/24.jpg)
jQuery Resources
• jQuery.com• Learning Jquery -
http://www.learningjquery.com/• FlyDom Plugin -
http://plugins.jquery.com/project/FlyDOM
![Page 25: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/25.jpg)
jQuery Alternatives
• Prototype - http://www.prototypejs.org/• Scriptaculous - http://script.aculo.us/• Mootools - http://mootools.net/• ExtJS - http://extjs.com/
![Page 26: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/26.jpg)
Castle ActiveRecord
![Page 27: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/27.jpg)
NHibernate
![Page 28: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/28.jpg)
Active Record Demo
![Page 29: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/29.jpg)
ActiveRecord Resources
• ActiveRecord - http://www.castleproject.org/activerecord/index.html
• Nhibernate - http://www.hibernate.org/343.html
• Nhusers Google Group - http://groups.google.com/group/nhusers
![Page 30: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/30.jpg)
Active Record Alternatives
• SubSonic - http://subsonicproject.com/• Entity Framework -
http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx
![Page 31: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/31.jpg)
SQLite
![Page 32: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/32.jpg)
SQLite Kicks Ass
• < 250k, ADO.NET Provider + SQLite < 600k• Full ACID Transaction Support• Zero configuration• 2TB database size limit• Single file• Faster than the competition
![Page 33: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/33.jpg)
SQLite Demo
![Page 34: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/34.jpg)
SQLite Resources
• ADO.NET Provider - http://sourceforge.net/projects/sqlite-dotnet2
• SQLite Administrator - http://sqliteadmin.orbmu2k.de/
![Page 35: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/35.jpg)
SQLite Alternatives
• SQL Server Compact Edition - http://www.microsoft.com/sql/editions/compact/default.mspx
• NOT SQL Server Express
![Page 36: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/36.jpg)
MbUnit
![Page 37: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/37.jpg)
Unit Testing for People Who Love Unit Testing
![Page 38: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/38.jpg)
MbUnit Demo
![Page 39: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/39.jpg)
mbUnit Alternatives
• nUnit - http://www.nunit.org• xUnit.NET - http://www.codeplex.com/xunit• NOT MSTEST!
![Page 40: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/40.jpg)
Moq
![Page 41: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/41.jpg)
Simple Mocking w/ Lambdas!
![Page 42: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/42.jpg)
Moq Demo
![Page 43: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/43.jpg)
Moq Alternatives
• Rhino.Mocks - http://www.ayende.com/projects/rhino-mocks.aspx
• Typemock (commercial) - http://www.typemock.com/
![Page 44: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/44.jpg)
Ninject
![Page 45: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/45.jpg)
Dependency Injection / IOC
![Page 46: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/46.jpg)
Ninject Demo
![Page 47: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/47.jpg)
Ninject Alternatives
• Castle Windsor - http://www.castleproject.org/container/index.html
• StructureMap - http://structuremap.sourceforge.net/Default.htm
![Page 48: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/48.jpg)
Watin
![Page 49: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/49.jpg)
When you can’t use ASP.NET MVC
![Page 50: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/50.jpg)
Watin Test Recorder
![Page 51: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/51.jpg)
Watin Demo
![Page 52: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/52.jpg)
Watin Resources
• Watin Test Recorder - http://watintestrecord.sourceforge.net/
![Page 53: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/53.jpg)
Watin Alternatives
• WatiR - http://wtr.rubyforge.org/
![Page 54: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/54.jpg)
Cruise Control.NET
![Page 55: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/55.jpg)
It can be a pain, but it’s worth it
![Page 56: The Emergence of Choice in the .NET Ecosystem](https://reader036.vdocuments.us/reader036/viewer/2022062514/55894e46d8b42a6c328b46a1/html5/thumbnails/56.jpg)
CruiseControl.NET Alternatives
• TeamCity (semi-commerical)