Getting started with SubSonic.
Looks like less than a month. Rob Conery has listed some details on features to expect. The biggest ones are a command line executable, builders that will generate the site for you, a brand new starter kit and some solid many-to-many support.
Here is the announcement
Looks like my SubSonic document made it to the front page of the SubSonic project site.
Thanks Rob.
The details of the release can be found in these two blog posts: SubSonic 1.0.6 Released and I Saw Mommy Kissing SubSonic. The two features I am most excited to see are: ForeignKey tables and Properties/Methods are now generated for each object to help with Querying Stored Procedure Output Params Download SubSonic. Do it now ......
Here is the full article in PDF format. Complete with bookmarks to each section of the article. Summary SubSonic is an open-source toolset, created by Rob Conery, as an attempt to put the fun back into programming and just get the job done. Inspired by Ruby on Rails, SubSonic takes a minimalist approach to coding and emphasizes convention over configuration. While it takes its inspiration from Ruby on Rails, it is not a port of it. (Check out MonoRail it that's what you're looking for.) Instead, ......
SubSonic Starter Kit From the CodePlex site, you can also download the SubSonic Starter Kit. To use this, from Visual Studio, select New -> Web Site and pick SubSonic Starter Site. This will give you a good starting template for your own site that includes the following. _Dev\ASPNET_Membership - Web pages for user and role membership editing. _Dev\Generators - The same generators found in the sample web site plus a MigrationGenerator page. Run this page and it will create SQL scripts containing ......
The sample web that is downloaded along with the SubSonic source has been discussed periodically throughout this guide. The following is a list of what is provided. App_Code\Utility.cs - Miscellaneous functions commonly needed when building web applications. App_Themes - A default theme to get you started. Dev\CodeTemplates - Text file representations of the templates used to generate classes. Use these as a starting point if you need to create custom templates. Dev\DB - Sample database scripts for ......
Controllers Instead of accessing the data functions directly, the Controller design pattern is recommended. To implement this, create a Controller class in the App_Code directory. public class ProductController Then add methods to retrieve the data using collections. public ProductCollection GetAllProducts() And to update the data. public void UpdateProduct(Product product) While there is nothing enforcing these rules, it will make it easier to insert business rules and re-use methods from a single ......
There is one more way you can tweak SubSonic without changing the code. SubSonic creates the auto-generated classes by using standard text. By adding alternate text files to the templateDirectory defined in the configuration file, you can change this behavior. For a full sample list of these files, check out the CodeTemplates directory in the sample web site. Find the entire series of posts here ......
The scaffold control is used to quickly create developer level admin pages. By dropping a single control on the page, you get a GridView and update controls. This control should appear in your Toolbox under SubSonic Components. Just set the TableName property and you're ready to go. <cc1:Scaffold ID="Scaffold1" runat="server" TableName="Products"><... It is also possible to apply some visual formatting through the EditTableCSSClass, EditTableItemCSSClass, EditTableLabelCSSClass ......
Some tasks are just too complicated for dynamic query building and/or require a greater level of control. To handle this, SubSonic supports stored procedures. Each stored procedure will produce an equivalent static method in the class defined in the configuration file. By default this is SPs. Each method will have one parameter for each stored procedure parameter and return a StoredProcedure object. SubSonic.StoredProcedure sp = SPs.CustOrderHist(customerID); The stored procedure can then either ......