140 likes | 254 Views
Michael Paladino Lead Application Developer EagleOne. Easy Database Access with SubSonic. Who am I?. Lead Application Developer at EagleOne Experience and interests: Classic ASP .NET SQL Server Content Management Systems Open source software FSDNUG!. Outline.
E N D
Michael Paladino Lead Application Developer EagleOne Easy Database Access with SubSonic
Who am I? • Lead Application Developer at EagleOne • Experience and interests: • Classic ASP • .NET • SQL Server • Content Management Systems • Open source software • FSDNUG!
Outline • Problems with standard ADO.NET data access • What is ORM? • What is SubSonic? • Setup • Basics • Web Form Controls • Other SubSonic Goodness • Summary / Resources
Problems with standard ADO.NET data access • Demo 1: Data access in code-behind • Requires duplication • Lots of hand-coding • No compile-time checking • Demo 2: Custom objects • Lots of hand-coding • No compile-time checking
What is ORM? • Object-Relational Mapping • Wikipedia: • “…programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages.” • Typically automated • Example .NET Implementations: • NHibernate • Wilson’s O/R Mapper • ADO.NET Entity Framework • LINQ to SQL
What is SubSonic? • ORM tool – Provides .NET objects that allow access to the underlying database. • Designed for web development but can be used in Windows Forms apps • Collection of web forms controls to speed up web development • Provides ability to track database changes • Supports SQL Server 2000 and 2005, MySQL, Oracle (SQLLite, SQLCE, PostGres coming soon) • Open Source
Setup • One-Time • Download and install release 2.0.3 • Setup toolbar buttons in Visual Studio • Add controls to Visual Studio toolbox • Per-Project • Add reference to SubSonic.dll • Update Web.config • Create _DB and _Generated folders
Demo App • Basic blog engine • Multiple authors, only one per post • Multiple categories per post • Comments • Simple editing • Database structure • SubSonic conventions
SubSonic Basics • ActiveRecord pattern • Working with single objects • ViewPost.aspx • Working with collections • Default.aspx • Add comments to ViewPost.aspx • Updating and deleting • EditPost.aspx
Web Forms Controls • Calendar Control – EditPost.aspx • Radio Buttons – EditPost.aspx • Dropdown – EditPost.aspx • ManyManyList – EditPost.aspx • Scaffold – Scaffold.aspx • Auto Scaffolding – AutoScaffolding.aspx • QuickTable – Sandbox.aspx
Other SubSonic Goodness • Views – Sandbox.aspx • Stored Procedures – Sandbox.aspx • Query Tool – Sandbox.aspx • Partial Classes – Comment.vb • “Sugar” – Sandbox.aspx • DB Versioning • Template Customization
Summary • SubSonic has the potential to greatly speed up database-driven web development • Future possibilities?
Resources • Main Site: http://subsonicproject.com/ • CodePlex: http://www.codeplex.com/subsonic • Rob Conery: http://blog.wekeroad.com/ • Presentation Slides: http://www.fsdnug.org/previousMeetings.html
Contact Info • Michael Paladino • Email: mpaladino@goeagleone.com • Blog: www.mpaladino.com • Twitter: www.twitter.com/mpaladino • LinkedIn: http://www.linkedin.com/in/michaelpaladino • Fort Smith .NET User Group • www.fsdnug.org