.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
 
Sign In
Register
 
Win Surprise Gifts!!!
Congratulations!!!


Top 5 Contributors of the Month
david stephan

Home >> Articles >> ASP.NET >> Post New Resource Bookmark and Share   

 Subscribe to Articles

An Overview of Dynamic Data in ASP.Net 3.5 Extension Part 1

Posted By:Dhananjay Kumar       Posted Date: December 08, 2009    Points: 25    Category: ASP.NET    URL: http://www.dotnetspark.com  
 

An Overview of Dynamic Data in ASP.Net 3.5 Extension Part 1.

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.



5.  It  could be downloaded from  Here
6.  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.

 Subscribe to Articles

     

Further Readings:

Responses

No response found. Be the first to respond this post

Post Comment

You must Sign In To post reply
Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend