Random Code Dribble (RSS)

This is a collection of random comments, notes, and rants about projects I am working on, or have worked on.

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).

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.

Project H General Update

We did a test code drop of The Hive on Friday, the same day we finally got a comleted spec document :) This week we are finishing off the administrative section of the site, performance testing, and debugging. We have to have another code drop on Friday, and the final code complete drop on 8/15/03. We have two primary challenges at this point:

1. We cannot get Passport to work on our dev machines (WinXP Pro) to implement and test the Passport Authentication. We have tried everything we can think of, but it seems MSFT did not design Passport to run on an XP dev machine.

2. We have to integrate a storage system that MSFT built. We will be interacting with it using Web Services, which is no big deal. We are still not entirely convinced this storage system is the correct choice, but it is what will be used, so we have to do our best with it.

On a related note, a read-only (i.e. no user uploads) version of The Hive can be found at: http://www.msnmessenger-download.com/themes. THis “Mini Hive” is intended for the promotions people to make “themed” image sets for MSN Messenger 6.0.

Project H Update

Here's a quick update on Project H (aka The Hive)

We have developed what we feel is a solid infrastructure for the application. We have to be able to handle millions of page views a day, hundreds of thousands of image downloads from the image library that have to be tracked, and a few thousand image uploads per day. We are planning on launching on a 15-20 web server farm, with 2-5 SQL servers on the back end. The site must support localization to 26 languages.

We have the image handling and most of the UI built. The project management has been passed through a few hands and the spec and launch date keep changing. Originally we were suposed to launch today (7/17/2003), but that has now been moved to 9/23/2003.

In response to Donny Mack's question on arcitecture (although he already knows this)...

Project H is made up of three projects (all in C#):
    TheHive (ASP.NET Web application)
    TheHive.Web (includes TheHive.Web.Controls and TheHive.Web.Templates)
    TheHive.Components (includes the DAL TheHive.Components.Data)

In the Components namespace agrivate Donny's pet peeve by puting a class and its associated strong-typed collection class in the same C# file - for example the FileInfo class and the FileInfoCollection class both reside in the FileInfo.cs file).

Many of the classes have static create/get methods that return a populated instance on the class:
    FileInfo fi = FileInfo.Get(fileID); // Returns the specified FileIno object.

That's a little teaser for now. We'll talk more later.

Tip (comment really):
The Safari browser is a much better MacOS browser than IE for MacOS - no wonder Microsoft quit making IE for MacOS.

Introduction to Project H

We were recnetly task to build an online image library (Project H). We'll reveal the details of the deployment later, but its fairly big.

Currently we're designing the physical and logical architecture.The idea right now is to build the system using 1-3 SQL Servers and 5-10 Web servers (running Windows Server 2003 of course). All of the image data will be stored in, and served from the database server(s).

The image library will have Passport integration. Users wanting to put images into the image library will have to have signed in with Passport and registered with The Hive. Users who are simply downloading images do not have to be registered. There will be several other features that will require registration, but that is the basic functionality.

We will be developing the system using a logical 3-tier approach. The Presentation layer will be built with ASP.NET server controls, and a collection of custom controls. The Business layer will consist of objects that represernt the data and enforce the business rules. The Data Access layer will be soley responsible for moving data using the SQL data provider.

As we architect and develop this I'll be posting more, but be aware that we have only 4-weeks to build this system.