Speaking Notes (RSS)

This is a collection of announcements, follow-up and downloads related to presentations I have done.

Test Driven Development with Visual Studio Team System

On Monday, February 27th I gave a presentation at the DotNetUsers.org User Group meeting in Redmond, WA. The slides and demo code are here.

The demo in the session was taken from Test Driven Development with Microsoft .NET (MSPress), by my co-worker, Jim Newkirk (and Alexei Vorontsov).

Here is the session abstract:
In this session you will learn how to use the unit testing features built in to Microsoft Visual Studio Team System. You will learn how to set up a project for unit testing, write a variety of unit tests, and see how they help ensure code quality for developers. This session will be presented in C#.

I will be presenting this again on March 18th at the Boise CodeCamp.

Open Call for Speakers - .NET Developer's Association

Are you an expert in the .NET Framework? Has Visual Basic .NET got you all excited? Does your knowledge of VSTS scare the average passer-by? You should come speak at our User's Group!

The Redmond/Seattle .NET Developer's Association is looking for speakers. We have a meeting each Monday at 7:00 PM on the Microsoft main campus. We are in need of speakers through the rest of the year (see our schedule). Each month we have a meeting for Web Developers, Beginners, Database Developers, Visual Basic Developers, and a general meeting. You can speak at any one of these. Just contact the Event Coordinator. While we can't pay you, we can honor you with free pizza and a beer or two (after the meeting).

ASP.NET 2.0: Building Data-Driven Web Sites (Slides and Demos)

Last night I gave a presentation at the .NET Developer's Association in Redmond/Seattle. Following is a description of the session, and a link to download the slides and demo code. All code is using Visual Studio 2005 Beta 2 build.

ASP.NET 2.0: Building Data-Driven Web Sites

This session discusses the fundamentals of data access and how to render data in a Web site using the new data-source and data-bound controls in ASP.NET 2.0. Topics covered include binding to a SQL database; performing sorting, paging, update, insert, and delete operations; building data access and business object layers; rendering customization using templates; and improved performance through caching.

Slides & Demos: http://www.dougseven.com/samples/DataDrivenWebAppsASPNET20.zip

Special thanks to Bradley Millington for providing the sample code.

Slides from .NETDA Meeting with Brian Goldfarb

Here is a link to Brian Goldfarb's prenestation at the 5/2/05 meeting of the .NET Developer's Association entitled Visual Studio Team System for Web Developers.

Sample Code: ASC251 Working with the Security Controls in ASP.NET 2.0

Here is sample code and slides from my session at ASP.NET Connections.

ASC251: Working with the Security Controls in ASP.NET 2.0
Server controls are great for abstracting typical functionality in your application, so where are the security server controls? In this session, you will be introduced to each of the new security controls in the ASP.NET v2.0 Framework – Login, Login Status, Login View, and Password Recovery. You will learn how to implement these controls as part of the authentication schema of your applications.

Sample Code: APM251 Applied ASP.NET 2.0 Membership Programming

Here is the sample code and slides from my session at ASP.NET Connections.

APM251: Applied ASP.NET 2.0 Membership Programming
Authentication is one of the great assets of the ASP.NET v1.x Framework – but can it get better? In this session, you will be introduced to the new Membership API feature set in ASP.NET v2.0. You will learn how the membership providers abstract user authentication and how to set up a membership provider in your applications. You will learn how the Membership API enables you to include rich credential storage with very little code.

Sample Code: ASC302 Implementing Role-based Security with ASP.NET and SQL Server 2000

Here is the sample code and slide deck from my session at ASP.NET Connections.

ASC302: Implementing Role-based Security with ASP.NET and SQL Server 2000
Security in Web applications is paramount, and a current hot topic. In this session, you will learn how to implement a complete role-based security model for a Web application. You will learn how security plays a role in the ASP.NET Framework, how to set up user roles in a SQL Server database, and how to use them effectively. Through this presentation, you will learn how to quickly and effectively implement a role-based security model using ASP.NET and SQL Server 2000.

ASP.NET Connections - See you there!

I will be in Orlando from March 18 - March 23 for Visual Studio Connections and ASP.NET Connections conference.

ASP.NET Connections   VS Connections    VS Connections

PRECONFERENCE WORKSHOP - APR302: Service Oriented Architecture (SOA) with Visual Studio .NET (9:00 AM - 4:00 PM)
Add'l Fee $389.00

Doug Seven with Russ Nemhauser
In this intensive one-day workshop, you’ll cut to the core of how to design, implement, and deploy service-oriented, N-tier Web solutions using Visual Studio .NET. Unlike object-oriented solutions that rely on smart objects to handle both data and processing operations, service-oriented solutions take advantage of standards-based, platform independent XML messages to share data between various applications without requiring those applications to use the programming languages or even the same operating system. This workshop will take you through the process of designing and architecting a sample service-oriented application. You’ll also learn how to use SQL Server to store and access application data, how to create business objects that can send and receive XML messages to handle all the required operations of your solution, and how to design user-friendly secure data display and entry forms. Prerequisites: Programming experience with ASP.NET.

APM251: Applied ASP.NET 2.0 Membership Programming
Authentication is one of the great assets of the ASP.NET v1.x Framework – but can it get better? In this session, you will be introduced to the new Membership API feature set in ASP.NET v2.0. You will learn how the membership providers abstract user authentication and how to set up a membership provider in your applications. You will learn how the Membership API enables you to include rich credential storage with very little code.

ASC302: Implementing Role-based Security with ASP.NET and SQL Server 2000
Security in Web applications is paramount, and a current hot topic. In this session, you will learn how to implement a complete role-based security model for a Web application. You will learn how security plays a role in the ASP.NET Framework, how to set up user roles in a SQL Server database, and how to use them effectively. Through this presentation, you will learn how to quickly and effectively implement a role-based security model using ASP.NET and SQL Server 2000.

ASC251: Working with the Security Controls in ASP.NET 2.0
Server controls are great for abstracting typical functionality in your application, so where are the security server controls? In this session, you will be introduced to each of the new security controls in the ASP.NET v2.0 Framework – Login, Login Status, Login View, and Password Recovery. You will learn how to implement these controls as part of the authentication schema of your applications.

DevDays 2004 Session Videos Online

OK, I'm a little slow sometimes, but I just found out that the DevDays 2004 sessions from the Seattle DevDays are now online. I presented three of the sessions in the Web Developer track.

Here is the URL for the session videos: http://msdn.microsoft.com/events/devdays/sessions/default.aspx

Other Presenters:

Jim Blizzard, SR. .NET Developer Evangelist, Paul Murphy, Developer Evangelist Manager, Paul Litwin, Keith Pleas, William R. Vaughn, Jeff Levinson, Chris Kinsman, Stephen Walther

Tech-Ed & My Dress Rehearsals

Its about a month and a half before Tech-Ed 2004 and I have now practiced my “SOL Server Data Access Developer Don'ts (10 Things You Currently Do That You Shouldn't)” talk that I will be doing in Tech-Ed 2004. My live practice sessions were in Tampa, FL, San Diego, CA and Olympia, WA. The attendance for each session varied, but it was between 35-75.

I got some really great feedback and tweaked the session a bit each time. Last night in Olympia, one of the attendees pointed out that one of my slides showing a stored procedure would actually not work as I was explaining it. The slide showed how to implement error handling in a stored procedure.

Here is the SPROC on the slide:

CREATE PROCEDURE dbo.Users_Insert
@Username VarChar (20)
AS
SET NOCOUNT ON
DECLARE @Error Int
SET @Error = 0 -- Success

INSERT Users (Username) VALUES (@Username)

IF (@@ERROR <> 0)
  BEGIN
  IF (@@ERROR == 547)
    BEGIN
      SET @Error = 32 -- Failed. Username already in use
      GOTO abort
    END 
   ELSE
    BEGIN
      SET @Error = 1 –- Unspecified error
    END
  END
abort:
SET NOCOUNT OFF
RETURN @Error
GO

The problem is that when I reference @@ERROR in the IF evaluation, it resets @@ERROR, so the rest of the error handling will fail.

Here is the corrected version of the slide:

CREATE PROCEDURE dbo.Users_Insert
@Username VarChar (20)
AS
SET NOCOUNT ON
DECLARE @Err Int
DECLARE @ReturnCode Int
SET @ReturnCode = 0 -- Success

INSERT Users (Username) VALUES (@Username)

SET @Err = @@ERROR
IF (@Err <> 0)
  BEGIN
    IF (@Err == 547)
    BEGIN
      SET @ReturnCode = 32 -- Failed. Username already in use
      GOTO abort
    END
  ELSE
    BEGIN
      SET @ReturnCode = 1 –- Unspecified error
    END
  END
abort:
SET NOCOUNT OFF
RETURN @ReturnCode
GO

In the corrected procedure I set the @@ERROR value to my own variable, @Err. This enables multiple references to the error value without inadvertently resetting @@ERROR, or getting a new @@ERROR value where there are multiple statements.

My thanks to Lam for catching this mistake and letting me know about it.

TechEd 2004 Is Coming

That's right, I'll be there. This year at TechEd I will be presenting 3 sessions as part of the Data Management track.

My sessions are:

DAT337  SQL Server Data Access Developer Don'ts (10 Things You Currently Do That You Shouldn't)
May 27 1:30PM - 2:45PM
Speaker(s): Doug Seven
Track(s): Data Management, Developer Tools and Technologies
Come face-to-face with ten (10) different data access methods that you probably have used, or still do. Learn why these methods are not recommended--from performance reasons to security reasons--and what you should be doing in your code instead.
 
DAT356  Hackers Paradise: SQL Injection Attacks
May 28 9:00AM - 10:15AM
Speaker(s): Doug Seven
Track(s): Data Management, Developer Tools and Technologies, Security
Learn what a SQL injection attack is and why you should be concerned about one. Through demonstrations, witness different types of SQL injection attacks, how to find them, and how to block them.
 
DAT465  Implementing Role-based Security with ASP.NET and SQL Server 2000
May 27 5:00PM - 6:15PM
Speaker(s): Doug Seven
Track(s): Data Management, Developer Tools and Technologies
Security in Web applications is paramount, and lately quite the hot topic. In this session attendees will learn how to implement a complete role-based security model for a Web application. Attendees will learn how the security plays a role in the ASP.NET Framework, how to set up security roles in a SQL Server database, and how to use them effectively. Through this presentation attendees will learn how to go back to their Web solutions and quickly and effectively implement a role-based security model using a SQL Server back-end.

The last session will be in one of the new TechEd Lounges (designed for a more intimate session?).

You can see a list of all of the TechEd sessions here: http://www.msteched.com/content/breakouts.aspx

DevDays is Over (for me)

Well, my DevDays run is over. I was fortunate to have sopoken at the first one (New York) and the largest one (so far - Seattle), as well as Newark (no special stats here). Be the time it was all over I had given three different presentations. It culminated in Seattle at what was jokingly called “DougDays” - since I ended up presenting 3 of the 4 Web track sessions (filling in for an ill Carl Prothman).

I plan on posting some follow-up on my tracks and my impressions, but let me say this now. A lot of Microsoft people kept asking me what I thought of the content vs. the audience - how appropriate was the content for the audience. IMHO it was perfect. Some more advanced developers I know had complained about it (like Tim), but the fact is DevDays is not intended to satisfy advanced developers - it is intended to satisfy the largest possible cross section of developers. Lets face it, that means beginning- to intermediate-level content, not advanced-level.

Based on the kinds of questions I was being asked after each session, and the number of people that were asking them, I believe the content hit its target. If you are an advanced developer, pay the money to go to PDC and attend the higher-level sessions. You will be happier in the long run. Ultimately I think Microsoft should do a better job at telling people when they should NOT be attending an event (like saying, “You know too much to go to DevDays - save you $100 and put it toward PDC”), and telling attendees what level the content really is.

More to come soon.

ASC302 Exploring ASP.NET Security, Part II - Authentication & Authorization

The Visual Basic .NET source code for the demo's in my ASC302 Exploring ASP.NET Security, Part II - Authentication & Authorization session can be downloaded here.

Thank you all for attending.

Doug

ASC301 Exploring ASP.NET Security, Part I - Preventing Malicious Input

The Visual Basic .NET source code for the demo's in my ASC301 Exploring ASP.NET Security, Part I - Preventing Malicious Input session can be downloaded here.

Thank you all for attending.

Doug

AWF301 Advanced User Controls

The C# source code for the demo's in my AWF301 Advanced User Controls session can be downloaded here.

Thank you all for attending - I'm sorry not all of this code was available during my session.

Doug

 

TechEd 2003 Day 3

Ah, Day 3 - Wednesday. I am actually posting this several days later but here's my recap.

I spent a little time in the Exhibit Hall - I was suposed to be at the INETA Ask the Experts booth, but Stacey G. pulled me out for a focus group meeting. Bumped into Tim Huckaby on the way to the meeting. He has managed to get everyone callinng me "Señor Siette."

Our evening was booked up - first, the Developers Party at Eddie Deens Ranch (a theme restaurant), which we were at long enough to get an INETA group photo. We left there in 6 taxis to the CoDe Magazine party at the Dallas Aquarium.

Kudos to Malcom, Michelle and the CoDe Magazine group for throwing an excellent party. We mingled with all our good friends for a couple hours then we gathered a group of people and headed for The Bone, where the MSDN Party was going on. This time it took 13 taxis to get there.

The MSDN Party at The Bone was the hot spot of the night. We were there until the wee hours drinking, dancing and having fun with all sorts of people. We have some great photos of Stephen F. and Brian R. slam dancing to Def Leppard's "Pour Some Sugar on Me." (I'll post some of the photo's soon, I promise).

TechEd 2003 Day 2

Well today was interesting; I managed to go to only one session - a SQL XML over HTTP session by Asli Bilgin. I had originally planned for more, but caught up meeting with people.

I chatted with lots of poeple - Brian Randell, Matt Nunn, Ken Getz, Kieth Pleas, etc. DotNetJunkies hosted an after-party party at the Velvet Houka. It was a bit ad hoc -  we went to a .NET Academia party followed by a desire expressed by several people to drink more. So of course the DNJ's had to step-up. Pictures will be addeded soon. It was great time - lots of friends-of-DNJ were there, including Paul Litwin, Mike Admunsen, Bill Evjen, Kristin McGuire, etc. I'll put some of the photos up as soon as I have a few minutes.

TechEd 2003 Day 1

Day 1 was interesting. In usual form I didn't make it to the Keynote or the first session of the day. I did make it to the Exhibit Hall in time, though. We gave away 40 t-shirts and 20 dotnetjunkies shot glasses in record time. After that it was pretty boring. Most people we interested in what crap they could get (a ball with a logo, a t-shirt, etc). We are giving away 8-hours of .NET Consulting from Atomic Consulting - it is amazing to me how many poeple say "No" when asked, "Would you like 8-hours of free .NET consulting?" Sheesh! We're hoping on Day 2 poeple are over the swag and more interested.

The Exhibitor's Reception was from 6-9pm. Donny Mack brought Littles (a mini Chihuahua), which drew lots of attention. Lots of beer was consumed, and a ggod round of mingling. Erika and I went to the AMD booth (E works for Intel ya know). We didn't tell them where she worked, and asked what they had to compete with Centrino. Basically they talked in circles and when confronted they admitted that Intel processors were faster and that their model number scheme (1700+, etc.) was a way to appear to be more like Intel.

Late night was mellow - drinks and dinner with Amy Sorokas from Sams Publishing. Mostly catching up on old times.

TechEd 2003 Day 0

Erika and I arrived in Dallas for TechEd 2003 yesterday (6/1/03). We got checked into out hotel, then went and registered at TechEd. We took a look around the Exhibit Hall as they were setting it up. Will checking e-mail we bumped into Stacey G. so we got the finall confirmation on the "Community Influencer" party.

We headed back to the hotel, got cleaned up and got ahold of Donny Mack, who had just arrived in Dallas. E and I headed back to the convention center where we met dropped into the Software Legends panel to say "Hi" to Eric Ewing, Billy Hollis, Yassuer, Juval, Don Box and Kieth Pleas.

We caught a bus to the Hyatt Hotel where we met up with Paul D. Sheriff, Jonathan Goodyear, Dene Welsch, and a host of others, including the overly energetic Steve Forte. From there we headed to the Circle R Ranch for a real live Texas BBQ.

Post BBQ we headed to a hotel for a bash. The hotel suite was packed with poeple, champagne, wine and beer - and we felt right at home :).

Made it back to our Hotel around 2:00 AM (other went to the Dragon Fly bar). Now its off to the first "real" day of TechEd.