Speed Test: A No-Code LINQ-Based ASP.NET 3.5 Page

How fast can you create a single-page, coding-free, AJAX-enhanced, Linq-driven Web application from scratch in VS 2008v2/VWD? Very fast, I'll bet.

I've prepared these instructional steps. Your challenge is to follow them closely and report back how many minutes/seconds it took. You only get one shot (after that you're not a newbie).

Please report any errors, bugs, missing steps, troublespots, or ways to make this shorter. The process bogs somewhat in the Create a Database section but mainly suffers in the Configure the ListView Columns section. (I'm not sure why the column alignment goes out of whack and needs repair.)

Anyway, have fun and let me know?

Prepare the Project

  1. In VS 2008b2, create a new Web site (File > New Web Site > ASP.NET Web Site).
  2. Delete the Default.aspx that uses code-behind.
  3. Add a new page called Default.aspx (File > New File > Web Form > (Uncheck Place code in separate file) > Add).

Create the Database

  1. Add a database into the App_Data folder (File > New File > SQL Database > Add).
  2. In Server Explorer, select the Tables node (Data Connections > Database.mdf > Tables)
  3. Add a new table (Data > Add New > Table).
  4. Add an ID column. (Column name [id] > Data Type [int] > Identity Specification > (Is Identity) > Yes).
  5. Set ID as the primary key. (Table Designer > Set Primary Key)
  6. Add a Title column. (Column name [Title] > Data Type [varchar(50)])
  7. Add a Description column. (Column name [Description] > Data Type [varchar(300)])
  8. Save the Table Designer (File > Save Table1 > OK).
  9. Close the Table Designer.

Create a LINQ to SQL Class and DataContext

  1. In Solution Explorer, add a LINQ to SQL Class to the App_Code folder (File > New File > LINQ to SQL Classes > OK)
  2. If DataClasses.dbml isn't already open, open it.
  3. Switch to Server Explorer.
  4. Drag Table1 from Server Explorer and drop it on the left-hand pane (the Object Relational Designer).
  5. Save DataClasses.dbml and close the designer.

Configure the LinqDataSource

  1. Open the ASP.NET page in Design view.
  2. From the Toolbox, drag a LinqDataSource control and drop it on the page.
  3. In the LinqDataSource Smart Tasks, click Configure Data Source.
  4. Choose DataClassesDataContext as the context object and click Next.
  5. Click Finish.
  6. On the LinqDataSource Smart Tasks, select Enable Delete, Enable Insert, and Enable Update.

Configure the ListView

  1. From the Toolbox, drag a ListView control and drop it on the page.
  2. From the Smart Tasks, choose the data source LinqDataSource1.
  3. From the Smart Tasks, click Configure ListView.
  4. Select Grid, Colorful, and enable Editing, Inserting, Deleting, and Paging.
  5. Click OK.

Configure the ListView Columns

  1. From the ListView's Smart Tasks, set the Current View to AlternatingItemTemplate.
  2. In Design view, put your mouse in the ID column header.
  3. Right-click, and from the context menu click Delete > Delete Columns.
  4. From the Smart Tasks, set the Current View to EditItemTemplate.
  5. In the Title column, delete idLabel1.
  6. Move the two Textbox controls one column to the left.
  7. From the Smart Tasks, set the Current View to ItemTemplate.
  8. In the Title column, delete idLabel.
  9. Move TitleLabel and DescriptionLabel one column to the left.
  10. From the Smart Tasks, select SelectedItemTemplate.
  11. From the Title column, delete idLabel.
  12. Move TitleLabel and DescriptionLabel one column to the left.

Configure ASP.NET AJAX

  1. From the Toolbox, drag an AJAX ScriptManager control and drop it above the ListView control.
  2. Drag an UpdatePanel and drop it to the right of the ListView control.
  3. Select the ListView control and drop it inside the Update Panel.

Run and Test the Page

  1. Browse to the page.
  2. Add a title and description.
  3. Click Insert.

Hey, playing with this new stuff sure beats working for a living!

 

Published 07 August 2007 02:10 PM by Ken Cox [MVP]

Comments

# Speed Test: A No-Code LINQ-Based ASP.NET 3.5 Page - WebLog of Ken Cox said on 07 August, 2007 02:51 PM

Pingback from  Speed Test: A No-Code LINQ-Based ASP.NET 3.5 Page - WebLog of Ken Cox

# Dave T said on 07 August, 2007 02:59 PM

Can you provide a screenshot of your result?

# Uwe said on 07 August, 2007 03:42 PM

Can you provide a test website with your results!

# Daniel said on 07 August, 2007 04:12 PM

Skim 15 minutes off this by creating the Linq-to-SQL first, then calling CreateDatabase() to create the db...

# FransBouma said on 07 August, 2007 04:13 PM

Why is everybody in such a rush? I mean, sure writing unnecessary code is useless and a waste of time, though stepping through steps which produce a page which won't be used in such a state in any production app is IMHO not realistic.

Yes, RAD is sometimes OK, but let's not overreact. In most cases, namely at work for real software, RAD is overrated.

# Kirk Allen Evans said on 07 August, 2007 04:35 PM

Booyah!  6 minutes, 22 seconds, and I've never touched the LINQ stuff at all... this was my first time ever touching it.  Probably could've shaved a few seconds if I had read through all of the directions before starting the exercise.

Great job, Ken, showing how quickly you can write real-world web applications!

# Kirk Allen Evans' Blog said on 07 August, 2007 04:40 PM

Ken Cox has a great web post, " Speed Test: A No-Code LINQ-Based ASP.NET 3.5 Page " that shows the power

# Noticias externas said on 07 August, 2007 04:48 PM

Ken Cox has a great web post, " Speed Test: A No-Code LINQ-Based ASP.NET 3.5 Page " that shows

# Mike P. said on 07 August, 2007 05:26 PM

How fast is macromedia studio 8? Betcha its probably faster and looks a hell of a lot nicer. I mean if RAD is your thing. I doubt Visual Studio is your tool.

# MSDN Blog Postings » Write an AJAX-Enabled Web Page with Sorting, Paging, Inserting, Editing, Updating, Deleting... in 6 Minutes?!? said on 07 August, 2007 07:29 PM

Pingback from  MSDN Blog Postings  » Write an AJAX-Enabled Web Page with Sorting, Paging, Inserting, Editing, Updating, Deleting... in 6 Minutes?!?

# Mueller said on 08 August, 2007 01:39 PM

Nice post, thanks!

Is anybody else starting to get annoyed by Frans Bourma's marketing campaign? He won't sell llblgen licenses by permanently whining about linq or by implying every other post that mattwarr is incompetent or scottgu a liar.

# andrew said on 08 August, 2007 01:55 PM

cool walkthrough.. editing the id completely out was a little cumbersome though

# simone_b said on 09 August, 2007 07:06 PM

Mueller, whether Frans is trying to sell his product or not he's right that you won't go far on a real project with this approach. It's not about the time it takes to show data in a table. Add logging, add transaction management, remove logging when in production, and what about testing? This is cool as long as you need to develop a 2-day application.

# snelldl said on 10 August, 2007 05:46 PM

17 minutes. Once my machine caught up with me, I went pretty fast.

# dap said on 22 August, 2007 04:05 PM

Great walkthrough answers many questions

# D_Rivers said on 29 July, 2008 02:42 AM

I love this stuff... Linq rocks. Today was the first day I had time to play with it... Awesome.

Leave a Comment

(required) 
(required) 
(optional)
(required) 

Search

Go

This Blog

Web Links

Syndication