Objective:

This is Part#1 of Dynamic Data article series. This article will give an introduction of Dynamic data and how to create a very basic data driven web application on North wind database using Dynamic data feature of ASP.Net 3.5 extension.

Introduction

  1. It is a feature of ASP.Net 3.5 Extensions.
  2. It allows easily building, customizing and maintaining a data driven web application.
  3. The core purpose of Dynamic Data is to make it is easy to write powerful and extensible data driven web application.
  4. It would ship as a complete release in .Net 4.0.


  1. It could be downloaded from Here
  2. Example shown below is created on North Wind data base. Which could be download from Here

Step 1:

Create a new Web application by selecting Dynamic Data Web Application. Feel free to give any name of the Web application.


After clicking OK, in solution explorer you could see, there is a Dynamic Data folder. This folder contains templates for different CRUD operations. This folder also contains .ascx for all different data types. (See the below image).



Step 2

Right click on Web Project and Add a New Item. From Data tab select Linq to Sql Class. Feel free to give any name for dbml class.


Click on Database Server explorer and drag the tables on designer of Linq to Sql class.

After dragging the tables .dbml file will look like below image. (For you this may be change because you might be using different database ,if you are using NorthWind and you selected all the tables then it would be exactly same ).


Step 3

Click on Global.asax file. Go to the Model.RegisterContext. See at the lines enclosed in rectangle below. We need to

  1. Uncomment that line of code
  2. Put DataContext name there.
  3. Make ScaffoldAllTables to true.

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.SessionState;

using System.Xml.Linq;

using System.Web.Routing;

using System.Web.DynamicData;

namespace BasicDynamicDatasample

{


public
class
Global : System.Web.HttpApplication

{


public
static
void RegisterRoutes(RouteCollection routes)

{


MetaModel model = new
MetaModel();


// IMPORTANT: DATA MODEL REGISTRATION


// Uncomment this line to register LINQ to SQL classes or an ADO.NET Entity Data


// model for ASP.NET Dynamic Data. Set ScaffoldAllTables = true only if you are sure


// that you want all tables in the data model to support a scaffold (i.e. templates)


// view. To control scaffolding for individual tables, create a partial class for


// the table and apply the [Scaffold(true)] attribute to the partial class.


// Note: Make sure that you change “YourDataContextType” to the name of the data context


// class in your application.


//model.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false });


// The following statement supports separate-page mode, where the List, Detail, Insert, and


// Update tasks are performed by using separate pages. To enable this mode, uncomment the following


// route definition, and comment out the route definitions in the combined-page mode section that follows.

routes.Add(new
DynamicDataRoute(“{table}/{action}.aspx”)

{

Constraints = new
RouteValueDictionary(new { action = “List|Details|Edit|Insert” }),

Model = model

});


// The following statements support combined-page mode, where the List, Detail, Insert, and


// Update tasks are performed by using the same page. To enable this mode, uncomment the


// following routes and comment out the route definition in the separate-page mode section above.


//routes.Add(new DynamicDataRoute(“{table}/ListDetails.aspx”) {


// Action = PageAction.List,


// ViewName = “ListDetails”,


// Model = model


//});


//routes.Add(new DynamicDataRoute(“{table}/ListDetails.aspx”) {


// Action = PageAction.Details,


// ViewName = “ListDetails”,


// Model = model


//});

}


void Application_Start(object sender, EventArgs e)

{

RegisterRoutes(RouteTable.Routes);

}

}

}

So, after updating model.RegisterContext, Global.asax will look like

model.RegisterContext(typeof(DataModelDataContext), new
ContextConfiguration() { ScaffoldAllTables = true });

DataModelDataContext -> Name of the Linq to Sql data context class.

Step 4

Web Application has been created. Just press F5 to run with debugging.


All tables are listed at home page. Just click on any table to navigate records of that table. I am navigating to table Products


You could filter on basis of all foreign keys. Let us filter on basis of Cateogry SeaFood.


This article talked about very basic of Dynamic data.

Happy Coding

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s