Hello! My name is Scott Mitchell and I am a web developer who has been working with Microsoft's ASP and ASP.NET technologies since 1998, when I founded the popular ASP resource site 4GuysFromRolla.com. I work as a freelance writer, trainer, and consultant from San Diego, California. If you are in need of my services, please check out my experience, skillsets and rates. Reach me at email@example.com.
This About Me Web page contains information on the following subjects:
I've authored eight books on ASP and ASP.NET, along with a book geared for those interested in creating their first website. I've also authored more than 1,000 articles for 4GuysFromRolla.com, as well as a number of magazine articles and online articles for Microsoft's ASP.NET Dev Center on MSDN and www.asp.net. A complete list of my writing accomplishments can be seen below:
Books / DVDs Teach Yourself ASP.NET 4 in 24 Hours (July 2010)
My latest installment in the Teach Yourself ASP.NET in 24 Hours series tackles the latest version of ASP.NET, version 4. This book walks the reader through key ASP.NET concepts and shows how to build useful, real-world websites using ASP.NET. Readers learn how to build data-driven websites and get experience using master pages, Ajax, Membership, and site maps. The accompanying CD includes Visual Web Developer 2010, a lightweight, easy-to-use and easy-to-learn web development tool, and all projects developed in the book's examples are available on the CD and online.
Teach Yourself ASP.NET 3.5 in 24 Hours (June 2008)
If you are looking for a fun and fast-paced way to learn ASP.NET, pick up a copy of my latest book, Sams Teach Yourself ASP.NET 3.5 in 24 Hours. This book walks the reader through ASP.NET fundamentals and shows how to build useful interactive web pages using ASP.NET. By the end of the book you will be building data-driven, AJAX-enabled web pages! The accompanying CD includes Visual Web Developer 2008 Express, a lightweight, easy-to-use and easy-to-learn web development tool, and all projects developed in the book's examples are available, too.
Teach Yourself ASP.NET 2.0 in 24 Hours (March 2006)
If you are familiar with creating HTML web pages but aren't familiar with creating dynamic, data driven web applications, you should consider learning ASP.NET. And Sams Teach Yourself ASP.NET 2.0 in 24 Hours, Complete Starter Kit is the perfect learning tool. The Starter Kit provides the unbeatable combination of programmer/author Scott Mitchell and the step-by-step learning method of the best-selling Sams Teach Yourself series. The accompanying CD includes Visual Web Developer 2005 Express, a lightweight, easy-to-use and easy-to-learn web development tool, and all projects developed in the book's examples.
Create Your Own Website (Using What You Already Know) (1st Edition: October 2004, 2nd Edition: October 2005, 3rd Edition: Sept. 2006, 4th Edition: August 2008)
With the ever-increasing popularity of the World Wide Web, more and more individuals are creating their first Web sites. Many more would like to, but are either unaware of how to get started, or feel that they do not possess the computer expertise required to accomplish such a feat. The purpose of this book is to show readers that creating a Web site is, (a) Easy, and (b) Fun. Building Web sites does not require that you be a computer whiz. Creating Your Own Web Site shows readers how to quickly and easily build a Web site using their personal computer. Specifically, this book examines creating five different types of Web sites: Family Web Sites Hobby Web Sites Community Web Sites Informational Sites eCommerce Sites.
In October 2005 a second edition of this popular selling book was released. The second edition includes chapters on creating an eBay Storefront, creating your own blog using Blogger, and sharing and ordering photos onine with Snapfish.
In September 2006 a third edition was released. The third edition added a chapter on the popular social networking site MySpace.com.
Beginner's .NET XML Web Services DVD (August 2004)
Web services are a set of standards that define how a computer can expose select data or functionality to client applications via the Internet, and are increasingly becoming more commonplace as a means for business partners to share information. The 14 lessons in this 8 hour two disk DVD set begins with an examination of the core Web service standards, and then quickly moves into showing you how to create and consume Web services in Microsoft's .NET Framework. There are in-depth lessons for each of the core Web service standards: XML, SOAP, and WSDL. Scattered throughout each of these chapters are extensive demos, depicting how to build, deploy, and access Web services using Microsoft's Visual Studio .NET. The DVD also contains a thorough examination of a real-world, end-to-end Web service application. This DVD also contains lessons on the Web Service Enhancements, or WSE, including a look at Microsoft's WSE Toolkit. In particular, the DVD presents an overview of WSE, the WSE Toolkit, and provides demos of sending attachments and providing UsernameToken authentication.
Teach Yourself ASP.NET in 24 Hours (June 2003)
Are you interested in learning ASP.NET? Are you relatively new to Web development? If so, my latest book, Sams Teach Yourself ASP.NET in 24 Hours, Complete Starter Kit is the book for you! This book is perfect for the person who needs to learn ASP.NET quickly and effectively in a relatively short amount of time. It doesn't matter if you've been developing Web applications for years, or are just getting started - this book explains ASP.NET in lucid detail for readers of all experience levels.
[Buy It!] | [Sample Chapter]
ASP.NET Data Web Controls Kick Start (February 2003)
Utilizing the more advanced features of the Data Web Controls has many developers stumped. These controls are fairly simple to use when it comes to simple data display. However, they can do much more than merely present data. For example, the DataGrid Web Control allows for sorting, paging, and editing of data. In addition, these controls allow for templating of data, which can be used to provide more complex views. ASP.NET Data Web Controls Kick Start is likely to be an indispensable item in every ASP.NET developer's toolbox.
[Buy It!] | [Sample Chapter]
ASP.NET: Tips, Tutorials, and Code (August 2001)
With a foreword by ASP.NET co-creator Mark Anders, ASP.NET: Tips, Tutorials, and Code consists of 19 chapters written by seven of today's leading experts in ASP.NET. These authors are professional developers who create ASP.NET applications, teach, run well-known ASP.NET Web sites, either within or outside of Microsoft. The tutorial framework for each chapter includes: A brief introduction, explaining the concept; a code example, illustrating the concept; and a piece-by-piece explanation of the code. Most examples employ VB.NET, but there are also additional C# examples within each chapter, and all of the example programs will be available at the book's web site in both VB.NET and C#. The code examples in this book are based upon the ASP.NET Beta2 specifications, a functionally complete version of the software.
[Buy It!] | [Sample Chapter]
Designing Active Server Pages (October 2000)
Designing Active Server Pages is written for developers who have already mastered the basics of ASP application development and are ready to take the next logical step. It is sure to become an indispensable part of every web developer's library!
[Buy It!] | [Sample Chapter]
Teach Yourself Active Server Pages 3.0 in 21 Days (February 2000)
If you are new to Active Server Pages (ASP), and wanting to learn more, this book, Teach Yourself Active Server Pages 3.0 in 21 Days, is definately for you! After having read this book, you will be a proficient ASP developer, able to create powerful data-driven Web sites with ease!
[Buy It!] | [Sample Chapter] Magazine Articles Toolbox Column (MSDN Magazine, January 2006 - January 2010)
Developers have a number of tools at their disposal, but which of these components do you really need to complete your project? This monthly column shared the latest software and developer-focused blogs, podcasts, and books that belong in every developer's toolbox.
2010 Issues: Jan. 2009 Issues: Jan. Feb. Mar. Apr. May June July Aug. Sept. Oct. Nov. Dec. 2008 Issues: * * Mar. Apr. May June July Aug. Sept. Oct. Nov. Dec. 2007 Issues: Jan. Feb. Mar. Apr. May June July Aug. Sept. Oct. Nov. Dec. 2006 Issues: Jan. Feb. Mar. Apr. May June July Aug. Sept. Oct. Nov. Dec.
* - column written by guest author James Avery
Syndicate Your Site (asp.net PRO Magazine, August 2004)
This article, a follow-up to the Displaying Syndicated Content article in the July 2004 issue of asp.net PRO, examines how to syndicate database content using the RSS 2.0 standard.
Displaying Syndicated Content (asp.net PRO Magazine, July 2004)
This article examines the RSS standard and how it is used to syndicate content. Specifically, the article delves into the RSS standard and then illustrates how to consume an RSS feed through an ASP.NET Web page. The article concludes with an examination of RssFeed, an open-source ASP.NET server control that displays an RSS feed on an ASP.NET Web page.
Edit an Entire DataGrid (asp.net PRO Magazine, May 2004)
This article looks at how to create a completely-editable DataGrid Web control. It examines two techniques: the first uses a series of TemplateColumns to hard-code TextBoxes in each column for each row. The second builds a custom server control that derives from the DataGrid class and provides a
Meet the Web Matrix Project (asp.net PRO Magazine, August 2002)
This article examined the then brand new ASP.NET Web Matrix Project. I had the opportunity to be an early alpha tester for this ASP.NET tool. You can learn more about the Web Matrix Project at two online articles I've authored: The ASP.NET Web Matrix Project and The ASP.NET Web Matrix Project Reloaded.
Creating Snazzy Web Charts and Graphics on the Fly with ASP.NET (MSDN Magazine, February 2002)
This article examined how to use the GDI+ library found in the
System.Drawingnamespace to create images on the fly in a .NET application. Specifically, the article looked at creating dynamic pie charts from database data and then streaming these images to the user's browser.
Online Articles Create Excel Spreadsheets Using NPOI (DotNetSlackers.com Web Site, June 6, 2011)
This article looks at using NPOI to programmatically generate Excel spreadshets. NPOI is a free, open-source library for creating and reading Excel spreadsheets and started as a port of the Java POI project.
CSS Sprites and the ASP.NET Sprite and Image Optimization Library (DotNetSlackers.com Web Site, April 27, 2011)
Because browsers limit how many concurrent HTTP requests they make to a website, a web page with many small icon images can result in a longer load time. This article shows how to combine many small images into a single larger image - a CSS sprite - using the free ASP.NET Sprite and Image Optimization Library available from Microsoft.
Creating an Up and Down Voting User Interface (DotNetSlackers.com Web Site, March 25, 2011)
This article shows how to build an up or down voting system using ASP.NET and jQuery. We'll build a website that allows users to share their favorite online articles. The website's homepage lists the 25 most recently shared articles, their current vote score, and arrows for casting an up or down vote.
Creating a Login Overlay (ASPAlliance.com Web Site, February 15, 2011)
This article shows how to implement a login overlay, which is an alternative user interface for signing into a website. In a nutshell, when a visitor chooses to log into the website they are not taken to a dedicated login page, but rather have the login user interface displayed on the page they are currently visiting, laid atop the existing page content.
Use ASP.NET and DotNetZip to Create and Extract ZIP Files (DotNetSlackers.com Web Site, February 11, 2011)
This article shows how to use DotNetZip to create and extract ZIP files in an ASP.NET application, and covers advanced features like password protection and encryption.
Range-Specific Requests in ASP.NET (DotNetSlackers.com Web Site, August 13, 2009)
The HTTP protocol defines functionality for resumable downloads via range-specific requests. While such functionality is built into IIS, when serving binary content directly from ASP.NET extra steps need to be taken to support range-specific requests. This article examines how range-specific requests works and presents an HTTP Module for implementing such support for content served by ASP.NET.
Hosting Tutorials (www.asp.net Web Site, April 2009-June 2009)
These 16 tutorials look at the steps involved in deploying an ASP.NET web application to a production environment managed by a web host provider, as well as exploring common challenges that might be encountered. These tutorials are concise and provide step-by-step instructions with plenty of screen shots to walk readers through the process visually.
How To Create a Syndication Feed For Your Website (DotNetSlackers.com Web Site, February 23, 2008)
A syndication feed is an XML file that summarizes the most recently published content and is commonly used in blogs, news sites, sports sites, social networking sites, and other content producing websites to provide a machine-readable format of the latest content. This article shows how to create (and consume) RSS 2.0 and Atom 1.0 syndication feeds using the syndication-related classes added to the .NET Framework version 3.5.
Four Helpful Features to Add to Your Base Page Class (DotNetSlackers.com Web Site, December 18, 2008)
Creating a custom base
Pageclass is a common way to extend functionality to all ASP.NET pages in your web application. This article looks at four useful features to consider adding to your custom base
Tracking User Activity (DotNetSlackers.com Web Site, November 5, 2008)
ASP.NET's Membership system makes it easy to build a site that supports user accounts, but the Membership system does not provide many features for tracking user activity. This article shows how to track user activity on your site so that you can display detailed information about those users currently online and drill down to see how a particular user interfaces with your website.
Implementing Search in ASP.NET with Google Custom Search (DotNetSlackers.com Web Site, September 15, 2008)
Google offers free tools for interfacing with its search index. One such tool is Google's Custom Search Engine (CSE), which can be used to quickly and easily add searching capabilities to your website. This article shows how I used CSE to add search to my blog, ScottOnWriting.NET.
Master Pages Tutorials (www.asp.net Web Site, May 2008 - Present)
Master pages are a technology introduced in ASP.NET 2.0 that facilitate creating a common look and feel across many pages in a website. This tutorial series looks at how to use master pages, explores common usage scenarios, and addresses typical pitfalls and traps.
Security Tutorials: Forms Authentication, Authorization, User Accounts, and Roles (www.asp.net Web Site, February - April, 2008)
This tutorials series walks readers through common website security matters, including forms authentication, URL authorization, user accounts, and roles. The tutorials focus specifically on ASP.NET's Membership and Roles frameworks, using the SQL Server-based providers.
Working with Data in ASP.NET 2.0 (www.asp.net Web Site, June 2006 - August 2007)
This tutorials series examines common patterns, tips, and tricks for accessing, displaying, and modifying data in an ASP.NET 2.0 web application. The first three tutorials build the architecture for the remaining tutorials, using a Typed DataSet as the Data Access Layer, custom classes for the Business Logic Layer, and master pages and site navigation features for the presentation layer. The remaining tutorials illustrate how to utilize the architecture to perform common data-related tasks, such as: sorting; paging; displaying master/detail reports; editing, inserting, and deleting data; working with the GridView, FormView, DetailsView, DataList, and Repeater controls; using the SqlDataSource control; caching; working with binary data; and more! 75 tutorials in total.
Supporting HTTP Authentication and Forms Authentication in a Single ASP.NET Website (MSDN Web Site, April 2006)
This article, coauthored by Atif Aziz, provides an overview of the Mixed Authentication Disposition ASP.NET Module (MADAM), and discusses how it overcomes the limitations of three common authentication schemes used by Web sites (Forms, Basic, and Digest), by allowing a single Web application to support multiple authentication schemes that validate against a common credential store.
Building a ContentRotator ASP.NET Server Control (MSDN Web Site, September 20, 2005)
This article examines the steps involved in creating a custom, compiled ASP.NET server control that randomly rotates through specified content, much like the built-in AdRotator control randomly rotates through a series of predefined banner advertisements. In examining the innards of the ContentRotator control this article touches upon several aspects of custom ASP.NET control development.
skmFAQs.NET: An ASP.NET FAQ Application (MSDN Web Site, May 7, 2005)
This article examines a free, open-source ASP.NET 1.x frequently asked questions Web application I created, skmFAQs.NET.
GridView Examples for ASP.NET 2.0 (MSDN Web Site, May 6, 2005)
This hefty article contains a plethora of examples of working with ASP.NET 2.0's newest data Web control, the GridView control. The pertinent concepts of data source controls, declarative data binding, and other new and exciting features in ASP.NET 2.0 are discussed at length, with complete code and screenshots available!
An Extensive Examination of Data Structures for .NET 2.0 (MSDN Web Site, February 16, 2005)
In November 2003 I started a six-part article series for MSDN Online titled An Extensive Examination of Data Structures. I have since updated the article series for the .NET Framework version 2.0. Part 1; Part 2; Part 3; Part 4; Part 5; Part 6.
Creating Dynamic Data Entry User Interfaces (MSDN Web Site, January 20, 2005)
This article illustrates how to use dynamically-loaded User Controls to create a dynamic data entry user interface. Specifically, the article examines a sample application that allows an administrator to create data entry forms through a Web-based interface, where the questions asked in a data entry form differ on the person filling out the form.
Using HTTP Modules and Handlers to Create Pluggable ASP.NET Components (MSDN Web Site, September 30, 2004)
This article, coauthored with Atif Aziz, examines how to use HTTP Handlers and Modules to create ASP.NET components that can easily and effortlessly be plugged into your Web site. In particular, a pluggable exception logging component - ELMAH (Error Logging Modules And Handlers) - is examined, dissecting how it utilizes Modules and Handlers to create a truly pluggable system.
Working with Client-Side Script (MSDN Web Site, August 18, 2004)
While ASP.NET performs most of its processing on the server, some actions are better served by client-side processing. This article examines how to extend the base
Pageclass to add common client-side functionality that can be invoked from server-side code with a minimum of fuss.
Understanding ASP.NET View State (MSDN Web Site, June 3, 2004)
View state is one of the most misunderstood concepts of ASP.NET. This article attempts to demystify the view state mystique, examining what role view state plays in the postback lifecycle, how view state is serialized and deserialized, and security considerations.
Making an ASP.NET Web Site Accessible (MSDN Web Site, May 27, 2004)
Did you know that there are over 21 million disabled Internet users in the United States? Is your Web site designed so that these individuals can have a user experience comparable to an abled-body person? There are a number of steps that you can take to make your Web site accessible, including a number of mandates outlined by the Federal government (as well as the governments of many other nations). In this article I examine a couple of ways on how to make a Web site accessible.
Serving Dynamic Content with HTTP Handlers (MSDN Web Site, May 5, 2004)
Whenever a request is made for an ASP.NET resource, IIS hands off the request to the ASP.NET engine. The ASP.NET engine eventually maps the resource's extension to a particular an HTTP handler; the HTTP handler then generates the content for the requested resource. This article examines how HTTP handlers works, and shows how to create your own custom HTTP handlers.
An Extensive Examination of Data Structures: Part 6 (MSDN Web Site, April 6, 2004)
This article is the sixth in a seven-part series. Part 6 examines the set and disjoint set data structures. A set is an unordered collection of items and is a common construct used in mathematics. In fact, many older languages provided an inherent set data structure; there was even a programming language (SETL) where sets were first-class citizens. This article also looks at how to efficiently maintain a collection of disjoint (non-overlapping) sets.
An Extensive Examination of User Controls (MSDN Web Site, March 23, 2004)
User Controls are a useful paradigm for user-interface reuse in an ASP.NET Web page. This article looks at User Controls in-depth, examining User Control basics, responding to events, providing public properties, creating and raising User Control events, and loading User Controls dynamically.
URL Rewriting in ASP.NET (MSDN Web Site, March 16, 2004)
This article examines how to use HTTP handlers and HTTP modules to perform URL rewriting using ASP.NET. Read on to examine a URL rewriting engine that utilized regular expressions for rewriting rules.
An Extensive Examination of Data Structures: Part 5 (MSDN Web Site, March 11, 2004)
This article is the fifth in a seven-part series. Part 5 examines the graph data structure, looking at ways to implement graphs in data structures, as well as common applications of graphs. Both the minimum spanning tree and shortest-path algorithms are dissected.
Building DataBound Templated ASP.NET Server Controls (MSDN Web Site, March 10, 2004)
This article, the follow up from Building Templated Custom ASP.NET Server Controls, looks at how to build a databound, templated control, like the Repeater. During the course of the article the reader's stepped through how I added templates to RssFeed, a free, open-source ASP.NET control I created for displaying content syndicated using RSS.
An Extensive Examination of Data Structures: Part 4 (MSDN Web Site, February 20, 2004)
This article is the fourth in a seven-part series. Part 4 looks briefly at self-balancing binary search trees, and how they guarantee sublinear running time in the worst case. The article then turns to examining the skip list, a linked list-like data structure designed to give sublinear running time without the implementation complexity inherent in self-balancing BSTs.
An Extensive Examination of Data Structures: Part 3 (MSDN Web Site, February 10, 2004)
This article is the third in a seven-part series. Part 3 looks at trees, focusing in on binary trees and binary search trees (BSTs). The article works through creating fully functional binary tree and BST classes in C#.
Building Templated Custom ASP.NET Server Controls (MSDN Web Site, February 6th, 2004)
This article examines how to create non-databound, templated custom ASP.NET server controls. It discusses adding templates to a custom control and the common issues and considerations that arise. The article steps the reader through building a custom, non-databound templated ASP.NET server control.
An Extensive Examination of Data Structures: Part 2 (MSDN Web Site, December 17, 2003)
This article is the second in a seven-part series. Part 2 looks at cousins of the ArrayList: the Stack and Queue. Part 2 also takes an in-depth look at hashtables, as well as the .NET Framework implementation, the Hashtable class.
Examining the skmMenu Server Control (MSDN Web Site, December 5, 2003)
In a previous article, Building an ASP.NET Menu Server Control, we looked at using skmMenu, an open-source Microsoft® ASP.NET menu server control. This second part of the article series delves into the nitty-gritty details of the server control's source code.
An Extensive Examination of Data Structures: Part 1 (MSDN Web Site, November 18, 2003)
This article kicks off a seven-part series that focuses on important data structures and their use in application development. The article examines both built-in data structures present in the .NET Framework, as well as essential data structures that developers have to build themselves. This first installment focuses on defining what data structures are, how the efficiency of data structures is analyzed, and why this analysis is important..
Building an ASP.NET Menu Server Control (MSDN Web Site, November 6, 2003)
This article, the first in a two-part series, looks at building an ASP.NET menu server control. The finished product is an open-source menu control available at the skmMenu Project page.
Building a Challenge/Response Spam Blocking System (October 2003)
This article examines my experiences with building a challenge/response spam blocking system. In this article I examine the system I created, evaluate it success, and discuss the positives and negatives of challenge/response anti-spam systems in general.
Moving from Visual Basic to ASP.NET (MSDN Web Site, August 2003)
This article explores the similarities and differences between Web application development using ASP.NET and classic desktop application development. This article is aimed toward Visual Basic 6.0 developers who are interested in getting started with creating ASP.NET Web applications, and examines the differences between creating desktop applications with Visual Basic 6.0 and creating ASP.NET Web applications with Visual Basic .NET.
Injecting Client-Side Script from an ASP.NET Server Control (MSDN Web Site, August 2003)
While, technically, all of an ASP.NET server control's functionality can be performed on the server-side, often the usability of a server control can be greatly enhanced by adding client-side script. This article examines two means by which server controls can emit client-side script.
Creating a Pageable, Sortable DataGrid (MSDN Web Site, August 2003)
The DataGrid Web control allows ASP.NET developers the ability to quickly and easily display data. In addition to being able to simply display data, the DataGrid also allows for sorting, paging, and editing of its data. While adding sorting or paging support to the DataGrid is relatively straightforward, creating both a pageable and sortable DataGrid is a bit more challenging. This article looks at how to create a pageable, sortable DataGrid.
Creating an Online News Aggregator with ASP.NET (MSDN Web Site, August 2003)
Learn about displaying XML data in an ASP.NET Web page using the XML Web control to retrieve remote XML data, and about using the Repeater control to emit XML data from a database. With the ever-increasing demands of data sharing among disparate platforms, the use of XML has exploded over the past few years. Realizing this trend, Microsoft made sure to include robust XML support throughout the .NET Framework. For ASP.NET developers, this means that displaying and working with XML data in a Web page has never been simpler. Throughout this article we'll learn about XML and ASP.NET by building an RSS 2.0 syndication engine and an online news aggregator. This article assumes the reader is familiar with ASP.NET and XML.
Deciding When to Use the DataGrid, DataList, or Repeater (MSDN Web Site, July 2003)
When displaying data in an ASP.NET Web application, developer's have to decide what data Web control to use in order to display the data. This article examines the three data Web controls - the DataGrid, DataList, and Repeater - and looks at metrics to evaluate when deciding what control to use.
Using the TreeView IE Web Control (MSDN Web Site, July 2003)
Learn about the TreeView Web control and how to start using it in your ASP.NET Web applications. In addition to the standard ASP.NET Web controls (like the TextBox, DropDownList, DataGrid, DataList and so on) Microsoft has released an additional set of Web controls designed to take advantage of features inherent in Internet Explorer. These new Web controls, dubbed the Internet Explorer Web Controls, or IE Web Controls for short, contain four new controls that include the TreeView Web control.
Converting ASP to ASP.NET (MSDN Web Site, November 2001)
This article begins with an examination of a typical data-driven ASP application and then discusses porting the ASP application to ASP.NET.
Server-Side Scripting Shootout (WebMonkey, November 1999)
This article series compared and contrasted five popular server-side scripting technologies: ASP, ColdFusion, JSP, Perl, and PHP. I authored the piece focusing on the pros and cons of using ASP as a server-side scripting language.
Marketing Through Personalized Emailing (15Seconds.com, October, 1998)
This article demonstrated how to use ASP to create a personalized emailing application. Namely, through a Web interface users could create a form email, and then send it to recipients in a database, auto-populating the form fields in the email with each user's personal information.
I've spoken at numerous ASP and ASP.NET user groups across the country, and at .NET conferences as well. Below are a list of my past speaking engagements and their presentations, where available.
User Group Talks ASP.NET MVC 3: Tips and Tricks (San Diego Architecture SIG, September 14, 2011)
This talk looked at a variety of ASP.NET best practices and extension points, including using: AutoMapper; custom display and editor templates; and custom ActionFilters and ActionResults.
MVC and Razor: Getting Started with ASP.NET MVC 3 (San Diego .NET Developers Group, August 2, 2011; San Diego .NET Users Group, August 23, 2011)
ASP.NET MVC provides developers an alternative programming model for creating web applications. This talk explored the pros and cons of ASP.NET MVC, compared and contrasted it to Web Forms, and showed how to get started building ASP.NET MVC 3 web applications using the new Razor syntax.
ASP.NET Tips, Tricks, Traps and Tools (San Diego .NET User Group, August 2010)
Take Control of Your Website's URLs with ASP.NET Routing (San Diego ASP.NET SIG, August 2010)
This talk explores the ASP.NET Routing system and how to use it to create SEO-friendly, human-readable URLs in both MVC and Web Form applications.
Content Syndication With ASP.NET 3.5 (San Diego ASP.NET SIG, August 2009)
The .NET Framework version 3.5 added a number of new classes for creating and consuming syndicated content using the Atom 1.0 and RSS 2.0 specifications. This talk examined how to get started using these classes in an ASP.NET application.
Storing Binary Data in a Web Application (San Diego ASP.NET SIG, February 2008)
While many data-driven web applications store simple scalar data that can be easily modeled in a database, it's not uncommon for an application to need to store binary data. Perhaps you're building an application where each record can have an associated image file; or maybe each work order in your system may have one or more PDF files associated with it. Whatever the case may be, there are a lot of design decisions, tradeoffs, and potential performance gotchas when working with binary data.
Handling Errors in an ASP.NET Web Application (San Diego ASP.NET SIG, January 2007)
Errors will always happen in an application, even from bug-free code. The database might go offline or the permissions on the server might be incorrectly configured. What's more important is how you respond to an error. When an error arises, it's important to provide an informative user experience, log the error for inspection purposes, and notify the developers about the error. Fortunately, all of these tasks can be easily accomplished in ASP.NET, and is the focus of this talk.
Working with Data in ASP.NET 2.0 (San Diego .NET Developers Group, September 2006)
Nine times out of ten, an ASP.NET website is merely providing a web-based interface to backend data. ASP.NET 2.0 offers new, declarative controls for accessing and working with data, along with enhanced Web controls for displaying data and allowing end users to page, sort, update, insert, and delete data. In this talk we'll explore ASP.NET 2.0's new features and build a complete, real-world data-driven web application through the course of the talk.
The Ins and Outs of ASP.NET 2.0's Site Navigation (San Diego ASP.NET SIG, March 2006)
Any website that is composed of more than one page needs some sort of navigation user interface. A navigation user interface might be as simple as static hyperlinks to the other pages in the site, or might involve the use of menus or trees. Prior to ASP.NET 2.0, developers typically rolled their own site navigation solutions. ASP.NET 2.0, however, makes defining a site's structure and implementing it using common navigation user interface elements a walk in the park. In this talk we'll look at ASP.NET 2.0's site navigation features, the navigation-related Web controls, and how to customize the site map provider piece of site navigation.
What are Web Services? (San Diego Beginner's .NET SIG, July 2005)
This talk examined the fundamentals of Web services from a beginner's perspective, focusing on the goals of Web services and common uses of Web services. Icluded was a high-level look at the core Web service standards, along with live demos illustrating how to create a Web service and client application with Visual Studio .NET.
Examining the Microsoft Enterprise Library (San Diego ASP.NET SIG, April 2005)
This talk examined Microsoft's Enterprise Library, focusing on the Data Access Application Block (DAAB). An overview of the Enterprise Library, and its enhancements over previous versions of Microsoft's application blocks, was discussed, along with a live demo illustrating how to use the DAAB in a data-driven ASP.NET application.
An Introduction to the ASP.NET DataGrid (San Diego Beginners .NET SIG, November 2004)
This talk was presented to the Beginners .NET SIG, and focused on the basics of the ASP.NET DataGrid Web control. The DataGrid is the most commonly used data Web control in ASP.NET 1.x, and easily provides rich display of data. This talk examined how to bind data to the DataGrid, how to format and customize the DataGrid, and how to enable the end user to sort and page the DataGrid's contents.
Adding Client-Side Script to ASP.NET Web Pages (San Diego ASP.NET SIG, September 2004)
This talk examines the
Pageclass methods designed for injecting client-side script into an ASP.NET Web page. The talk also looks at how to accomplish a number of common client-side tasks, such as opening popup windows, setting focus to a form field, confirming on postback, and so forth. These common tasks are implemented through a custom code-behind class.
A Look at WS-Security (San Diego .NET Developers Group, March 2004)
This talk begins with a cursory look at the Web Service Enhancements and then delves into a discussion of WS-Security. Specifically, UsernameToken authentication and asymmetric encryption via X.509 certificates were discussed.
Syndicating Content with RSS (San Diego ASP.NET SIG, February 2004)
In this talk I discussed how to programmatically syndicate content from a Web site using RSS. (RSS is a standard that spells out an XML-format for syndicating online content, such as articles, blog entries, news, and so on.) This talk also examined how to programmatically consume RSS, and looked at using RssFeed.
Examining the Microsoft Data Access Application Block (San Diego ASP.NET SIG, October 2003)
In this talk I showcased Microsoft's Data Access Application Block, a wrapper class quite useful for data access in ASP.NET Web applications. Specifically, this presentation focused on the latest version of the DAAB (Version 2), showing examples of issuing various queries. Version 3, which was still in progress at the time of this presentation, was also discussed, and compared and contrasted to Version 2.
Examining the ASP.NET Forums (San Diego .NET User Group, July 2002)
In this talk I presented the ASP.NET Forums, an open-source software project run by Microsoft's ASP.NET team. (In July 2001 I had started work on software dubbed WebForums.NET. In March 2002, Microsoft purchased the rights to this software, added a number of features, and turned it into the ASP.NET Forums.)
Converting ASP to ASP.NET (San Diego .NET User Group, February 2002)
In this talk I demonstrated how to port existing classic ASP Web applications to ASP.NET.
Caching in ASP.NET (San Diego .NET User Group, July 2001, and Seattle ASP.NET User Group, May, 2001)
In this talk I demonstrated ASP.NET's caching features and how these caching features could be utilized to optimize Web application performance. Specifically, I examined output caching, partial-page caching, and data caching.
Introducing ASP+ (San Diego ASP User Group, October 2000)
This talk examined ASP+ when it was in the very early Beta stages. Specifically, I looked at the primarily differences between ASP and ASP+. (ASP+ was eventually renamed to ASP.NET.)
Conferences In Depth ASP.NET MVC Training (September 2011)
Presented two talks over the course of a full day on ASP.NET MVC 3 and Razor. The first talk examined the ins and outs of ASP.NET MVC. The second talk examined more advanced ASP.NET MVC topics.
LADOTNET Master Series: ASP.NET MVC3: Tips, Tricks, and Best Practices (August 2011)
In conjunction with the Los Angeles .NET Developer's Group presented a full day, hands-on lab and training event on best practices for ASP.NET MVC 3 and Razor. Attendees were given a simple, pre-built ASP.NET MVC application. Then, over the course of the day, we looked at ways to improve the application, from using AutoMapper to crafting our own custom ActionResults and ActionFitlers.
LADOTNET Master Series: ASP.NET MVC3 (May 2011 and June 2011)
In conjunction with the Los Angeles .NET Developer's Group presented a full day, hands-on lab and training event on ASP.NET MVC 3 and Razor. Attendees explored MVC fundamentals, stepped through the process of building an ASP.NET MVC application, and learned how to implement common web application scenarios, such as: creating master/detail reports; working with forms; and building Create/Read/Update/Delete screens (CRUD).
In Depth ASP.NET Training (September 2010)
Presented two talks over the course of a full day. The first talk examined how to get started using ASP.NET MVC. The second talk explored building responsive web applications using Ajax, jQuery, and ASP.NET.
SoCal Code Camp - San Diego (June 2010)
In this free, two-day conference, I presented two talks. The first examined how to use ASP.NET Routing to decouple the URLs used by a website from the physical ASP.NET pages. The second talk introduced and explored the key aspects of ASP.NET MVC.
ASP.NET 2.0 BlackBelt Training (February 2007 / April 2007)
I presented a full-day talk that covered a variety of real-world tips, tricks, and techniques for building data-driven ASP.NET 2.0 web applications. Over the course of the day, I built a fully-functional web application that involved creating an application architecture, implementing logging of unhandled errors, using Membership to manage user accounts, using Themes and Skins, and so on.
SoCal .NET Technical Summit - ASP.NET Tips & Traps (September 2006)
In this one-day conference, I presented a talk on an assortment of tips and traps in ASP.NET 2.0. These tips and traps were divided into four main topics: caching, performance, client-side enhancements/issues, and design-time enhancements/issues.
[Download Presentation Materials]
SoCal Code Camp - San Diego (June 2006)
In this free, two-day conference, I presented two talks. The first examined the site navigation in ASP.NET 2.0. The second stepped through the entire, end-to-end process of building a blog engine application in ASP.NET 2.0, including creating the data model, building a tiered architecture, and implementing the website front-end.
[Download Presentation Materials]
SoCal Code Camp - Fullerton (January 2006)
In this free, two-day conference, I presented two talks. The first examined the HTTP pipeline for ASP.NET pages, looking at how to serve custom types of content with HTTP Handlers and how to respond to request-level events using HTTP Modules. The second one examined the RSS standard and the role of syndication. Examined techniques in both ASP.NET 1.x and ASP.NET 2.0 for syndicating and consuming RSS content. Showcased the open-source ASP.NET control RssFeed.
[Download Presentation Materials]
.NET 2.0 University - A Look at ASP.NET 2.0 (September 2005, January 2006)
In this one-day conference on .NET 2.0, I presented a talk examining new features of ASP.NET 2.0. The talk showcased the provider model, adaptive rendering, MasterPages, and many of the new ASP.NET 2.0 Web controls, including the Site Navigation, DataSource, Login, and GridView controls.
SoCal .NET Technical Summit - Working with HTTP Handlers and Modules (May 2005)
Examined the HTTP pipeline for ASP.NET pages, looking at how to serve custom types of content with HTTP Handlers and how to respond to request-level events using HTTP Modules. Dissected two live demos: an HTTP Handler for color-coding code snippets and an HTTP Module for logging unhandled exceptions.
[Download Presentation Materials]
ASP.NET Connections (March 2005)
I presented three sessions during this four-day conference:
[Download Presentation Materials]
- Working with Client-Side Script
Examined techniques for injecting client-side script from server-side code. Examined a base page class that provided methods for accomplishing common client-side tasks. Looked at upcoming ASP.NET 2.0 features for working with client-side script.
- Syndicating and Consuming RSS Content
Examined the RSS standard and the role of syndication. Examined techniques in both ASP.NET 1.x and ASP.NET 2.0 for syndicating and consuming RSS content. Showcased the open-source ASP.NET control RssFeed.
- Working with HTTP Handlers and Modules
Examined the HTTP pipeline for ASP.NET pages, looking at how to serve custom types of content with HTTP Handlers and how to respond to request-level events using HTTP Modules. Dissected two live demos: an HTTP Handler for color-coding code snippets and an HTTP Module for logging unhandled exceptions.
Day of .NET Conference - Creating Accessible ASP.NET Web Sites (April 2004)
This talk looked at the Section 508 and WAI guidelines for creating accessible Web sites. It demonstrated techniques for extending the base ASP.NET Web controls to make them conform to accessibility guidelines mandated by the U.S. Federal government.
.NET Developer Conference & Expo - What Makes .NET Different? (March 2002)
This talk examined the key differences between .NET and pre-.NET. Specifically, it focused on the fundamental differences between ASP.NET and classic ASP, demonstrating the numerous benefits ASP.NET offers over its predecessor.
Over the years I have taught a number of classes on ASP, ASP.NET, and .NET in general. Furthermore, I have worked as a private instructor for a number of small businesses and individuals.
Classroom Experience ASP.NET Programming II (University of California - San Diego, University Extension, November-December 2003 / February-March 2004 / May-June 2004 / August-September 2004 / February-March 2005 / May-June 2005 / July-August 2005 / November-December 2005 / February-March 2006 / May-June 2006 / August-September 2006 / November-December 2006 / February-March 2007 / November-December 2007 / February-March 2008 / May-June 2008 / February-March 2009 / May-June 2009 / November-December 2009 / May-June 2010 / November-December 2010, May-June 2011 / November-December 2011)
This six-week, 24-hour class was the second in a two-course series on ASP.NET programming. In this class, students examined the ASP.NET page object model in detail, studied advance features for displaying data with the data Web controls, studied and created common Web application software architectures, learned the ins and outs of builing compiled, custom server controls, and many other topics.
ASP.NET Programming I (University of California - San Diego, University Extension, June-August 2005 / January-February 2006 / June-July 2006 / September-November 2006 / January-February 2007 / March-April 2008 / July-August 2008 / January-February 2009 / April-May 2009 / July-August 2009 / September-October 2009 / January-February 2010 / April-May 2010 / July-August 2010 / September-October 2010 / January-February 2011 / March - May 2011 / July-August 2011 / September-October 2011)
This six-week, 24-hour class was the first in a two-course series on ASP.NET programming. In this class, students learn about the fundamentals of ASP.NET application development, mastering Web Forms, the myriad of built-in Web controls, state management, and a plethora of other Web development-related topics.
.NET Web Services (University of California - San Diego, University Extension, November-December 2003 / January-February 2004 / May-June 2004 / August-September 2004 / November-December 2004 / February-March 2005)
This six-week, 24-hour class was the second in a two-course series on .NET Web Services. In this class, students looked at creating and consuming Web services using .NET and studied the fundamental Web service standards, such as SOAP, WSDL, XML, HTTP, and others. Students also learned about the Web Service Enhancements (WSE) standards, and used Microsoft's WSE Toolkit to implement these standards.
Fundamentals of Web Services (University of California - San Diego, University Extension, September-October 2003 / January-February 2004 / April 2005 / July 2005)
This six-week, 24-hour class focused on the rudimentary concepts of Web services, with extensive examinations into the standards and protocols employed. Significant time was spent examining the Web Service Enhancements (WSE) specifications. The class was presented as platform-neutral, demonstrating Web services with different frameworks and platforms, and highlighting the inherent interoperability of Web services.
In April 2005 this class's format was changed from a six-week, 24-hour course to a one-day, eight hour course...
XML for .NET (University of California - San Diego, University Extension, June 2003)
This 12-hour class focused on XML in .NET. In this class, the students examined reading and creating XML documents with the .NET Framework classes. Students also examined XML Schema, XML serialization, and a variety of other XML-related technologies. This course consisted of three lab assignments and a month-long final project.
ASP.NET Fundamentals (University of California - San Diego, University Extension, June, 2001 / July to August, 2001 / November to December, 2001)
This 24-hour class focused on teaching ASP.NET. Students entered the class with experience in classic ASP, and quickly learned the ins and outs of ASP.NET. Some of the topics covered included: Web controls, data binding, data Web controls, security, configuration, deployment, and others.
Training / Tutoring Experience EXYM Corporation (August 2003 - Present)
I have been working with EXYM, providing ASP.NET training and consulting, since August 2003.
EDU Business Solutions (August 2006 - Present)
Provide weekly training and consulting sessions to developers at EDU Business Solutions.
NAUI Worldwide (May 2008 - Present)
Provide weekly training and consulting sessions to developers at NAUI Worldwide.
iArchitex (May 2002 - 2006)
I worked with iArchitex, providing ASP.NET training and consulting, from 2002 through 2006.
PINT (March 2004)
Provided a two-day ASP.NET course to PINT's software engineers, highlighting the important concepts of ASP.NET and its similarities and differences among competing server-side Web development technologies.
COX Communications (July 2004)
Provided an intensive, one-week training class on ASP.NET to COX Communications at their Orange County location. This week of instruction examined a myriad of ASP.NET topics.
I have worked on a number of ASP and ASP.NET consulting projects for a variety of small to medium-sized businesses over the years. This consulting work has varied from short-term jobs, where I was asked to solve a particularly challenging problem, to longer-term jobs, where I completed an entire Web application from the ground up. Listed below are the longer-term consulting projects I have completed.
Consulting Projects EXYM Corporation (August 2003 - Present)
I have been working with EXYM, providing ASP.NET consulting services, since August 2003. This has included building a rich, multi-featured application used by multiple hostpitals and clinics for managing patient-related information, from informational collection and retrieval, to scheduling activities, to billing.
Creative Advantage, Inc. (March 2005 - 2008)
I have been working with Creative Advantage, providing ASP.NET consulting services, since March 2005. This work has included building a localized survey application architecture using custom questions and scoring models. Included development of survey taker and administrator reporting features.
Custom DataGrid Applications (IngeniousSoft, February 2004 - Present)
Provided an advanced, Web-front data entry system using by taking advantage of the features inherent in the ASP.NET DataGrid Web control. Data entry system included batch updates/edits/inserts, bidirectional sorting, filtering, searching, and multiple interdependent inputs.
Medical Publication Aggregator (University of California - San Diego Medical Center, July 2004)
The UCSD Medical Center needed a way to index publications authored by faculty. This project involved creating an aggregator program that periodically queried a public database of medical publications, aggregating the publication information in a local database.
Mass Email Tool (California School District, May 2003)
This project involved building a mass email tool that allowed the California School District to selectively send form-letter emails to a user-defined subset of teachers and parents based on a variety of criteria. The end product utilized Advanced Intellect's aspNet Email component to send the email messages.
WebForums.NET (July 2001 through March 2002)
Starting in July 2001, I began working on an online ASP.NET messageboard site dubbed WebForums.NET. My intent was to market this product, but in January 2002, Microsoft expressed interest in acquiring the source code and rights to the application. In March 2002, Microsoft officially acquired the rights to WebForums.NET and, with some additions and feature enhancements, released the ASP.NET Forums in July 2002. This forum software, which can be downloaded for free, powers a number of Microsoft Web sites - such as The XBox Forums - as well as hundreds of non-Microsoft Web sites.
Prior Work Experience
For the majority of my professional career, I have worked for myself. In fact, immediately after completing my undergraduate education, I started my own business as an independent writer, trainer, and consultant. Prior to graduation, though, I worked at two companies: Empower Trainers & Consultants and Microsoft.
Software Engineer - Microsoft (Internship: May 1999 through August 1999)
In 1999 I worked as a summer intern at Microsoft's Redmond campus. I worked with the Office Release Group, a team of seven individuals that were responsible for facilitating the Microsoft Office build process. During my time at Microsoft I created an internal tool from the ground up. This Web-based tool allowed Office developers and testers to subscribe to various events in the Office build cycle. Upon completion of an event, those subscribers would automatically receive an email indicating that the event had transpired. (Upon graduation I was offered a job with Microsoft's Hotmail group, but turned it down to pursue self-employment.)
Consultant - Empower Trainers & Consultants (January 1998 through August 1998)
At Empower I worked on a number of consulting projects for small to medium-sized businesses. The two longest projects involved developing an all-purpose intranet application to streamline everyday business processes for Technology Education Network, and building an eCommerce site for Swingster, Inc. I also worked on some internal intranet projects for Empower, including a time-tracking application and report generation tool.
Over the course of my education and professional career, I've worked with a variety of technologies. The following table lists these technologies. My primary experience lies in ASP.NET and database development. I am fluent in both C# and Visual Basic.
|Web Technologies||Data Technologies||Programming Languages/Platforms|
|ASP.NET MVC||SQL Server 2000/2005/2008||Visual Basic|
|Web Services||Microsoft Access||.NET Framework|
During my professional career I have received a number of recognitions, honors, and awards.
Microsoft MVP (Since 2002)
The Microsoft MVP program is a worldwide award and recognition program that strives to identify amazing individuals in technical communities around the globe who share a passion for technology and the spirit of community. Microsoft MVPs are recognized for both their demonstrated practical expertise and willingness to share their experience with peers in Microsoft technical communities.
ASPInsider (Since 2003)
ASPInsiders represents exceptional Authors, Developers, and Community leaders who are accomplished in their pursuits and passionate about the ASP.NET and ASP platforms. The ASPInsiders and Microsoft have shared and common goals for the furthering the ASP.NET/ASP development community. The Microsoft ASP.NET team is the primary sponsor of the ASPInsiders.
Recognized Alumni of University of Missouri - Rolla (now named Missouri University of Science and Technology) (Fall 2002)
In September 2002 I was recognized as one of the "Top 40 UMR Alumnis" under age 40.
My education has been comprised of both classroom experience through top universities as well as through professional classes, seminars, conferences, and meetings.
Formal Education Masters Degree in Computer Science (University of California - San Diego, September 2001-June 2003)
In June 2003 I completed my Masters Degree in Computer Science, with an emphasis on Database and Information Retrieval Systems. Graduated with highest honors (GPA 3.92).
Bachelors of Science in Computer Science (University of Missouri - Rolla, now named Missouri University of Science and Technology, August 1996-May 2000)
In May 2000, I completed my undergraduate degree with a major in Computer Science and minors in both Mathematics and Psychology. Graduated with highest honors (GPA 3.98).
Professional Education Invite-Only Meetings with the ASP.NET Team at Microsoft's Campus
- May 2001
- November 2000
- May 2000
Writing Solid Code (Microsoft Campus, 1999) Microsoft SQL Server 6.5 Implementation and Design (1998) eCommerce Strategies Using Microsoft Site Server 3.0 (1998) Developing with Microsoft Foundation Classes and C++ (1998) Conferences Attended 2011 SoCal Code Camp (San Diego) 2010 SoCal Code Camp (San Diego) 2006 SoCal .NET Technical Summit 2006 SoCal Code Camp (San Diego) 2006 SoCal Code Camp (Fullerton) 2005 Microsoft MVP Summit 2005 SoCal .NET Technical Summit 2005 ASP.NET Connections Conference 2004 Microsoft TechEd 2004 Microsoft MVP Summit 2002 Jupitermedia .NET Developer Conference & Expo 2001 ASP Connections Conference 2000 ASP Connections Conference 2000 Wrox ASP Developer's Conference 1999 Wrox ASP Developer's Conference 1998 Microsoft Web TechEd
Over the past several years I have worked with a number of clients, serving as either a consultant, trainer, or both. My rates vary based on if the work is on-site or off-site, and what type of services you need.
If you have any questions or would like to utilize my services, please contact me at firstname.lastname@example.org for a quote. Past clients and referrals are available upon request.
I live in San Diego, California and work for myself, writing, training, and consulting. I have been quite active in the ASP/ASP.NET community since 1998, back when I started 4GuysFromRolla.com. Since then I have authored numerous books and magazine articles, spoken at many user groups and conferences across the country, and have taught numerous ASP.NET and .NET classes at the University of California - San Diego - University Extension. My primary work day consists of writing and consulting. I am usually either busy writing on a magazine article or book, or working on a project for a client. I have a technology-related blog up at ScottOnWriting.NET, where I talk about technical writing, technology, and ASP.NET. For non-technology matters, I post to my personal blog, Scott On Life.
I have been working with computers since a young age, and started programming with GW-BASIC at age 10. I soon moved onto QuickBASIC while in junior high, and then TurboPascal in high school. After high school, I started work on a Bachelors of Science in Computer Science at the University of Missouri - Rolla (now named Missouri University of Science and Technology). During my years at Rolla, I worked for Empower Trainers and Consultants, a consulting company based in Kansas City that is now out of business. It was at Empower where I first learned ASP. At the time, there were only a handful of informational Web sites on ASP, so, upon returning to school, I cajoled three good friends into starting 4GuysFromRolla.com. (A more detailed history of 4Guys can be found at The History of 4GuysFromRolla.com.) While at UMR I also wrote my first two books: Sams Teach Yourself Active Server Pages 3.0 in 21 Days (coauthored with James Atkinson, one of the other "four guys"), and Designing Active Server Pages.
After graduating from UMR, I moved to San Diego. Since then, I've obtained my Masters degree of Computer Science at the University of California - San Diego. I've also managed to write another seven books, along with a training DVD. For a complete list of my accomplishments - both books and otherwise - be sure to check out the Experience section. The most important accomplishment in life has been meeting and marrying my beautiful wife, Jisun, and raising our daughter, Alice.
If you are interested in learning more about me, check out my blog at ScottOnWriting.NET, and my assorted code projects.
The contents of this page are copyright © Scott Mitchell, 2013