The Emergence of Choice in the .NET Ecosystem

56
10 Open Source Tools You Should Use James Avery Infozerk Inc.

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 of The Emergence of Choice in the .NET Ecosystem

Page 1: The Emergence of Choice in the .NET Ecosystem

10 Open Source Tools You Should Use

James AveryInfozerk Inc.

Page 2: The Emergence of Choice in the .NET Ecosystem

James AveryInfozerk Inc.

Page 3: The Emergence of Choice in the .NET Ecosystem

10 Open Source Tools I Love

James AveryInfozerk Inc.

Page 4: The Emergence of Choice in the .NET Ecosystem

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

The Emergence of Choice in the .NET Ecosystem

James AveryInfozerk Inc.

Page 6: The Emergence of Choice in the .NET Ecosystem

Disclaimer:I like pragmatic simplicity

Page 7: The Emergence of Choice in the .NET Ecosystem

ASP.NET MVC

Page 8: The Emergence of Choice in the .NET Ecosystem

Wait… did you say ASP.NET MVC?

Page 9: The Emergence of Choice in the .NET Ecosystem

“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

But that isn’t an OSI approved license.

Page 11: The Emergence of Choice in the .NET Ecosystem

ASP.NET MVC IS IMPORTANT!

Page 12: The Emergence of Choice in the .NET Ecosystem

ASP.NET MVC Demo

Page 13: The Emergence of Choice in the .NET Ecosystem

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

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

NHAML

Page 16: The Emergence of Choice in the .NET Ecosystem

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

..and the rest of ASP.NET MVCContrib

Page 18: The Emergence of Choice in the .NET Ecosystem

NHAML Demo

Page 19: The Emergence of Choice in the .NET Ecosystem

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

Nhaml Alternatives

• Nvelocity - http://www.castleproject.org/others/nvelocity/index.html

Page 21: The Emergence of Choice in the .NET Ecosystem

JQUERY

Page 22: The Emergence of Choice in the .NET Ecosystem

jQuery makes JavaScript fun

Page 23: The Emergence of Choice in the .NET Ecosystem

jQuery Demo

Page 24: The Emergence of Choice in the .NET Ecosystem

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

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

Castle ActiveRecord

Page 27: The Emergence of Choice in the .NET Ecosystem

NHibernate

Page 28: The Emergence of Choice in the .NET Ecosystem

Active Record Demo

Page 29: The Emergence of Choice in the .NET Ecosystem

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

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

SQLite

Page 32: The Emergence of Choice in the .NET Ecosystem

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

SQLite Demo

Page 34: The Emergence of Choice in the .NET Ecosystem

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

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

MbUnit

Page 37: The Emergence of Choice in the .NET Ecosystem

Unit Testing for People Who Love Unit Testing

Page 38: The Emergence of Choice in the .NET Ecosystem

MbUnit Demo

Page 39: The Emergence of Choice in the .NET Ecosystem

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

Moq

Page 41: The Emergence of Choice in the .NET Ecosystem

Simple Mocking w/ Lambdas!

Page 42: The Emergence of Choice in the .NET Ecosystem

Moq Demo

Page 43: The Emergence of Choice in the .NET Ecosystem

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

Ninject

Page 45: The Emergence of Choice in the .NET Ecosystem

Dependency Injection / IOC

Page 46: The Emergence of Choice in the .NET Ecosystem

Ninject Demo

Page 47: The Emergence of Choice in the .NET Ecosystem

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

Watin

Page 49: The Emergence of Choice in the .NET Ecosystem

When you can’t use ASP.NET MVC

Page 50: The Emergence of Choice in the .NET Ecosystem

Watin Test Recorder

Page 51: The Emergence of Choice in the .NET Ecosystem

Watin Demo

Page 52: The Emergence of Choice in the .NET Ecosystem

Watin Resources

• Watin Test Recorder - http://watintestrecord.sourceforge.net/

Page 53: The Emergence of Choice in the .NET Ecosystem

Watin Alternatives

• WatiR - http://wtr.rubyforge.org/

Page 54: The Emergence of Choice in the .NET Ecosystem

Cruise Control.NET

Page 55: The Emergence of Choice in the .NET Ecosystem

It can be a pain, but it’s worth it

Page 56: The Emergence of Choice in the .NET Ecosystem

CruiseControl.NET Alternatives

• TeamCity (semi-commerical)