end feature release team testing





We recently announced the release of Feature CTP4 for the ADO.Net Entity Framework (EF). CTP4 contains a preview of new features that we are considering adding to the core framework and would like community feedback on. CTP4 builds on top of the existing Entity Framework 4 (EF4) which shipped as part of .NET Framework 4.0 and Visual Studio 2010.

CTP4 contains the first preview of a set of Productivity Improvements for EF that provide a cleaner and simpler API surface designed to allow developers to accomplish the same tasks with less code and fewer concepts. The Productivity Improvement effort is described in more detail in a recent Design Blog post.

In addition to a simplified API surface the Productivity Improvements also offer a streamlined Code First experience that takes care of common boiler plate code and uses convention over configuration to reduce the amount of code needed to start performing data access. You can then gradually start to override these conventions with your own configuration as you progress through the development lifecycle and ultimately deploy to a production environment. One example of these conventions is database location and provisioning which we will cover in this post.

This post is largely targeted at using the Code First approach with DbContext to generate a database, if you are mapping to an existing database then this is covered at the end of the post.

Default Conventions

First let’s look at the default behavior of DbContext and how it uses convention rather than configuration to reduce the amount of code we need to write to get an application up and running. Below is a complete application that uses DbContext to persist and query data using DbContext. No additional code or configuration is required; DbContext will automatically create a database for us based on our domain model. The database will be created on our localhost\SQLEXPRESS instance and will be named after the fully qualified type name of our derived context (in the following example this would be PI.DbDemo.ProductCatalog).

using System;
using System.Collections.Generic;
using System.Data.Entity;

namespace PI.DbDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var context = new ProductCatalog())
            {
                // Persist Data
                var food = new Category { Name = "Food" };
                context.Categories.Add(food);
                context.SaveChanges();

                // Query Data
                foreach (var cat in context.Categories)
                {
                    System.Console.WriteLine(cat.Name);
                }
            }

            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }

    public class ProductCatalog : DbContext
    {
        public DbSet<Category> Categories { get; set; }
        public DbSet<Product> Products { get; set; }
    }

    public class Category
    {
        public int CategoryId { get; set; }
        public string Name { get; set; }

        public ICollection Products { get; set; }
    }

    public class Product
    {
        public int ProductId { get; set; }
        public string Name { get; set; }
        public decimal UnitPrice { get; set; }

        public Category Category { get; set; }
    }
}

Of course this convention is useful to get up and running but it’s not going to get us all the way to deploying in a production environment, you probably aren’t going to be using a local SQL Express instance in production and if you’re an enterprise developer your DBA probably isn’t going to overjoyed at the idea of you application having permissions to create databases (with good reason). In the next sections we’ll look at how you can start to take control over the database as your requirements progress.

Connection Factories

Under the covers there is a convention that is taking the name of your context and turning it into a database connection, this is an AppDomain wide setting that can be changed via a static property; System.Data.Entity.Infrastructure.Database.DefaultConnectionFactory. Connection factories implement the System.Data.Entity.Infrastructure.IDbConnectionFactory interface which defines a single CreateConnection method. When you use the default constructor on DbContext the fully qualified name of your context is passed to the default connection factory to obtain a database connection.

public interface IDbConnectionFactory
{
    DbConnection CreateConnection(string nameOrConnectionString);
}

Changing the Database Name

If you just want to change the name of the database that is generated then you can control the string that is passed to the default connection factory by using the DbContext constructor that specifies the nameOrConnectionString parameter. Here is our derived context updated to specify a database name:

public class ProductCatalog : DbContext
{
    public ProductCatalog()
        :base("DemoProductStore")
    { }

    public DbSet<Category> Categories { get; set; }
    public DbSet<Product> Products { get; set; }
}

Changing the Database Server

If you want to have your database on another Microsoft SQL Server Instance then you can tweak the settings on the SQL Client connection factory that is included in CTP4; System.Data.Entity.Infrastructure.SqlConnectionFactory. This connection factory includes a constructor that allows us to override pieces of the final connection sting, such as username, password and server. We need to make changes to the default convention before any contexts are created in our AppDomain, in the case of our console application we can just do this at the start of the Main method:

static void Main(string[] args)
{
    Database.DefaultConnectionFactory =
         new SqlConnectionFactory("Server=MyDatabaseServer");
 
   ...

}

Changing to SQL Compact

Along with the SQL Client connection factory we also include the System.Data.Entity.Infrastructure.SqlCeConnectionFactory which will generate connections to SQL Compact databases. Because the SQL Compact providers aren’t backwards compatible you will need to specify the invariant name of the provider version you want to use. Currently the SQL Compact 4.0 provider is the only one that supports Code First database creation and it is available for download as a separate CTP.

static void Main(string[] args)
{
    Database.DefaultConnectionFactory =
         new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");

    ...

}

By default SQL Compact files will be created in the |DataDirectory| directory, for executables this is the same directory as the executable, for web applications this is the ‘App_Data’ directory. The SQL Compact factory also includes constructors to override the directory that databases are created in, or any other part of the connection string.

App.config/Web.config

All these conventions are great but if our database server changes between dev, test and production then we really want to be able to change it easily without having to recompile code. No problem, just add a connection string to your applications config file with a name that matches the name of your context (either fully-qualified or not). Because the shape of the model comes from your code rather than xml files this is just a plain connection string rather than an EntityClient connection string used in other areas of EF.

<configuration>
  <connectionStrings>
    <add name ="ProductCatalog"
         providerName="System.Data.SqlClient"
         connectionString="Server=.\SQLEXPRESS;Database=ProductCatalog;Integrated Security=True" />
  </connectionStrings>
</configuration>

Note that if you pass a string to a DbContext constructor (for the nameOrConnectionString parameter) then that string should match the name of the connection string added to your config file.

Database Initializers

So far we’ve looked at how a database is located, now let’s look at how that database is initialized. By default if the database does not exist then DbContext will automatically create a database for you without any data in it, but of course this can be changed. Database initialization is handled via a setting at the AppDomain level which can be tweaked or replaced for your context via the static System.Data.Entity.Infrastructure.Database.SetInitializer method. Initializers need to implement the System.Data.Entity.Infrastructure.IDatabaseInitializer interface, which contains a single method to initialize the database for a given context:

public interface IDatabaseInitializer<in TContext>
     where TContext : DbContext
{
    void InitializeDatabase(TContext context);
}

Having this very-generalized hook gives developers and third parties the opportunity to build custom solutions to help with initialization, in addition to the options provided in the box.

It is worth calling out that this is a very new feature that only just made it into CTP4 and we know it has some rough edges, but we really want your feedback so we decided to include it. As you’ll see when we look at evolving models there are some missing pieces in the CTP4 story but we feel like the database initializer hook is the right way to approach the problem and we just need to expand the abilities of the initializers and tooling that we provide.

Evolving Models

Of course it is unlikely that our domain model will remain the same forevermore after the first time we run our application. This in turn means our database schema is going to need to evolve along with our domain model, this scenario is going to highlight one of the big gaps in CTP4 and something we are working to improve. Ideally we would have a set of tools that help you migrate the existing database, either automatically or by generating migration scripts that can be tweaked and then saved for later use against test and production databases. We’re not there yet though, in CTP4 you need to drop and re-create the database with the new schema to match your domain model.

So let’s go ahead and change our domain model, I’m just adding a Description field to our Product class:

public class Product
{
    public int ProductId { get; set; }
    public string Name { get; set; }
    public decimal UnitPrice { get; set; }
    public string Description { get; set; }

    public Category Category { get; set; }
}

Now if we run our application we’ll get an InvalidOperationException because our schema doesn’t have a column for the new Description field:

“The model backing the 'ProductCatalog' context has changed since the database was created.  Either manually delete/update the database, or call Database.SetInitializer with an IDatabaseInitializer instance.  For example, the RecreateDatabaseIfModelChanges strategy will automatically delete and recreate the database, and optionally seed it with new data.”

As the exception suggests there is an initialization strategy in CTP4 that will drop and re-create the database for us when the model changes. We need to register the initializer before any contexts are created in our AppDomain, in the case of our console application we can just do this at the start of the Main method. Running the application again will cause the old database to be dropped and the new database with the Description column to be created, obviously this isn’t ideal for all situations but it’s where we got to for CTP4.

static void Main(string[] args)
{
    Database.SetInitializer<ProductCatalog>(
        new RecreateDatabaseIfModelChanges<ProductCatalog>());

    ....
}

Other Strategies

In addition to the RecreateDatabaseIfModelChanges strategy CTP4 also includes two other strategies, CreateDatabaseOnlyIfNotExists and AlwaysRecreateDatabase, the names are pretty self-explanatory. CreateDatabaseOnlyIfNotExists  is the default strategy. AlwaysRecreateDatabase can be useful in testing when combined with seed data, allowing you to reset the database to a clean state before each test run, this is shown in the next section.

Seed Data

All three of the strategies included in CTP4 can be derived from and have a virtual Seed method that is called after the database has been created. This allows us to insert some data into the database once it has been created, an instance of the context type is passed into the method so you can specify seed data in terms of your domain objects and use the context to persist them. Of course the underlying database connection is available from context.Database.Connection so you can always interact directly with the database if you want.

Let’s define an initializer for use in a test project that will recreate the database before each test run with a known set of test data. I’m sure some of you are cringing at the thought of running tests against an actual database all the time. It’s definitely not for everyone and you can certainly use interfaces and in-memory fakes rather than hitting the database (we created the IDbSet<T> interface for exactly this reason). This is simply another option for folks who don’t need/want to create a layer of abstraction between their application and data access layer.

public class ProductTestInitializer : AlwaysRecreateDatabase<ProductCatalog>
{
    protected override void Seed(ProductCatalog context)
    {
        var food = new Category { Name = "Food" };
        context.Categories.Add(food);

        context.Products.Add(new Product
        {
            Name = "Bread",
            UnitPrice = 2,
            Category = food
        });

        context.Products.Add(new Product
        {
            Name = "Butter",
            UnitPrice = 5,
            Category = food
        });

        context.Products.Add(new Product
        {
            Name = "Vegemite",
            UnitPrice = 4,
            Category = food
        });
    }
}

If we are using MSTest (included with Visual Studio) for our testing then we use a ‘Class Initialize’ method to register the initializer, this will run before we construct a context in any of our tests:

[TestClass]
public class MyTests
{
    [ClassInitialize]
    public void ClassInitialize(TestContext c)
    {
        Database.SetInitializer<ProductCatalog>(new ProductTestInitializer());
    }

    [TestMethod]
    public void MyTest1()
    {
    }
}

Schema Metadata

One of the challenges in database initialization is in knowing whether an existing database is compatible with the current domain model. In CTP4 we include an additional “EdmMetadata” table in generated schemas to help answer this question. The table includes some information about the model that was used to generate the database and is used internally to support the DbContext.Database.ModelMatchesDatabase method.

Of course not everyone is going to be happy with this table being included in their database so you can switch it off using the Code First ModelBuilder API, if you do turn it off then some of the initialization strategies will not be able to function correctly.

public class ProductCatalog : DbContext
{
    public DbSet<Category> Categories { get; set; }
    public DbSet<Product> Products { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.IncludeMetadataInDatabase = false;
    }
}

Customizing the Generated Schema

Not everyone is going to be happy with the database schema that is generated by default. It’s not really in the scope of this post but we’ll take a quick look at customizing the schema. Below is an example of using the Fluent API to control the table names for our two classes. The Fluent API provides many more knobs for controlling the schema including column names, splitting entities between multiple tables, inheritance patterns and many more. This is one area of the Fluent API that still has some rough edges and we are working to make the code required for mapping more succinct and intuitive for the next release.

public class ProductCatalog : DbContext
{
    public DbSet<Category> Categories { get; set; }
    public DbSet<Product> Products { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Category>()
            .MapSingleType()
            .ToTable("purchasing.CategoryLookup");

        modelBuilder.Entity<Product>()
            .MapSingleType()
            .ToTable("purchasing.ProductCatalog");
    }
}

Working with Existing Databases

Most of the content in this post has dealt with scenarios where Code First is responsible for generating the database. If you have an existing database then you don’t need database location or initialization. Here is the process to follow for using Code First against an existing database:

  1. Define the classes that make up you domain model
  2. Define a derived DbContext and use the Fluent API and/or DataAnnotations to tell Code First how your classes map to your database
  3. Add a connection string to you app/web.config file that has the same name as your derived context and points to your database
  4. Switch off the initialization functionality for your context by registering null:
        Database.SetInitializer<ProductCatalog>(null);

Summary

In this post we looked at how DbContext locates a database and initializes it for Code First developers. We covered the default behavior and how to tweak it or replace it with your own behavior, we also saw how to turn off the conventions when mapping to an existing database. There are some missing pieces in the database initialization space but we would like your feedback on the hooks we have made available and the general approach we are taking.

If you need assistance with EF Feature CTP4 we have an Entity Framework Pre-Release Forum.

Rowan Miller
Program Manager
ADO.Net Entity Framework

Each day across vast stretches of Iraq and Afghanistan, convoys leave the wire with a vital mission: route clearance. Soldiers assigned to this mission work to assure the mobility and resupply of forces. Riding in highly sophisticated and ultra-protected vehicles, route clearance teams go where others fear to tread, deliberately hunting for landmines and improvised explosive devices.

To protect route clearance specialists, the Army fielded the Buffalo Mine Protected Clearance Vehicle, a 13-foot-high, 26-plus-ton monster. This highly specialized, armored, wheeled vehicle's signature feature is a remote-controlled, 30-foot hydraulic arm used to handle suspected explosive devices and execute the delicate work of clearing routes of explosive hazards.

The Army's Product Manager Assured Mobility Systems, or PM AMS, oversees the development and acquisition of the Buffalo and its companion route clearance vehicles. While Mine Resistant Ambush Protected Vehicles and RCVs may look similar and share similar design concepts, the vehicles performing route clearance missions are outfitted very differently to support specific requirements.

By the time MRAPs hit the scene, the Buffalo had been operating in the field for more than three years. In 2002, four Buffalos were deployed to clear Bagram Airfield in Afghanistan. Not long after, the Army was working to find solutions to operational requirements arising from two theaters, while simultaneously managing the ongoing, more deliberate program of acquisition requirements.

The Buffalo program at the Army's Product Manager Assured Mobility Systems (which overseas development and acquisition of both the Buffalo and RCVs) has been very stable, with the same team directing both operational development and integration efforts since June 2005, and acquisition efforts since October 2006, when the Army formally approved the MPCV requirement. Testing for the Buffalo A2 began in September 2008.

The Buffalo's roots are found in the 1966-1989 South African Border War in Namibia. In that conflict, Soviet and Cuban landmines posed a lethal threat to South African troops along the Angolan border. Because of its policy of racial apartheid, the world had isolated the South African government, requiring it to develop its own solutions to military problems.

To combat the landmine threat, South African engineers looked at lessons learned by the Rhodesian military and designed armored vehicles with V-shaped hulls to deflect the force of an explosion around the crew compartment. Some of these vehicles, such as South Africa's Nyala, are the forerunners to the RG-31, a 4x4 multi-purpose mine-protected armored personnel carrier. The South African Casspir was used for mine detection during peacekeeping missions in Bosnia-Herzegovina in the late 1990s.

By 1999, under the auspices of the Ground Standoff Mine Detection System program, the Army began foreign comparative testing of two South African vehicles-the Casspir and the Lion II-to determine which would serve as the basis for the GSTAMIDS vehicle. In early 2001, the Army selected the Lion II, which, with further engineering development and design modifications, became the Buffalo A0.

The Buffalo's early success in Afghanistan in 2002 made it the logical choice when IEDs became a threat in Iraq. The GSTAMIDS program team was "on to something," said former PM AMS Deputy Dennis Haag. "If it could find mines, it could find an IED." As a result, the Army rushed its sparse route clearance equipment into Iraq and began procuring more early in the war.

With a small, handpicked team, PM AMS set to work designing vehicles that met battlefield requirements. Developing a new vehicle is a daunting task in peacetime, but the added pressure of war on two fronts motivated the team to often work 16 hours a day, six or seven days a week. Soldiers were in harm's way, and the team needed to deliver.

The PM AMS team repeatedly traveled to Iraq during December 2005 to observe the vehicles in operation. While there, Haag spoke with Soldiers to see how they used the Buffalos during route clearance operations. The Soldiers quickly realized the PM AMS team had the ability to deliver a vehicle tailored to their requirements. They began feeding the team a stream of useful suggestions as route clearance methods had to continually evolve to defeat an ever-changing threat.

A former member of the GSTAMIDS team explained that more than 25 add-on capabilities have been integrated into the Buffalo, including fire suppression, additional armor, an air digger and other survivability capabilities.

"When this effort was initiated, we hadn't been in touch with the user," Haag said. "No one had really sat down with the Soldiers on the ground."

Spending time with the end-users in real-world conditions changed that. Haag's copious notes, based on Soldier input, influenced the evolving design of the Buffalo and other RCVs and served as a baseline for production requirements.

The Buffalo program has led the way in developing solutions that apply to a wide range of vehicles. In 2004, the Buffalo was the first vehicle outfitted with bar armor, an upgrade to slat armor, which helps protect against rocket-propelled grenades. When explosively formed penetrators emerged as a threat, the Buffalo EFP kit was the starting point for EFP protection kits designed and installed on a range of MRAP vehicles.

Soldiers on the ground understand and appreciate the numerous cutting-edge protective capabilities of the Buffalo. Staff Sgt. Ryan Grandstaff, who performed route-clearance missions with the Ohio National Guard's 612th Engineer Battalion, told CBS News in 2005 that the Buffalo made him feel "100 percent safe," adding, "I've been through countless explosions, and I'm still here to tell about it."

So far, the Army has fielded 215 Buffalo MPCVs in three configurations (models A0, A1 and A2) in support of operational requirements, and continues to execute the acquisition of the Buffalo A2 vehicle, which will become a permanent part of route-clearance companies in the future. The Buffalo A2 features a host of add-on and field-identified improvements incorporated by the program management team. The goal is to complete all requirements to earn full materiel release by the end of 2010. Once testing is complete, PM AMS will begin the process of bringing all the vehicles in the field up to the final A2 configuration.

As a nonstandard vehicle, the Buffalo requires the use of contractor logistics support to keep it running. When the Buffalo A2 earns its full materiel release, it will be supported by the Army's own logistics systems. Army mechanics will learn how to maintain and repair the new vehicle, moving the maintenance mission in-house.

The Army hopes to procure 372 Buffalo A2s for use in engineer route clearance companies, brigade route clearance platoons, and maneuver training centers such as the Maneuver Support Center of Excellence at Fort Leonard Wood, Mo.

bengals cincinnati football team







Scott Boehm/Getty Images

Many will tell you that there is no battle for the Colts’ back-up signal caller, that it’s Curtis Painter’s job or that even if there is a battle, who cares?

I am of the belief that right now as it stands Tom Brandstater is more talented but Indy’s Jim Caldwell has faith in what he knows; Curtis Painter. For the most part, the Colts go with a two-quarterback approach, a starter and a back-up, rarely do they keep a third on the roster.

Tonight’s game could shed a little light on whether the Colts will continue that approach or if Brandstater has a chance to make this team. The rotation will likely be Peyton Manning for a series (if that), Painter for the remainder of the first half and Brandstater in the second half.

I want to be able to say Brandstater can overtake Painter but I’m not sure he’s been in Indy long enough to surpass Painter, in Caldwell’s mind. Some coaches tell you that the best players play and the best players make the roster but if Brandstater finds himself without a job, that won’t be the case for Indy.

Scott Boehm/Getty Images

For me, Painter in no way inspires confidence. After the second exhibition game against the Bills I had a reader comment that I should not have jumped on Painter after one game and that the Bills’ game proved that you can’t judge him solely based on a single performance. I retorted that his performance was due more to the opponent he was facing rather than his actual skill level.

The following week Painter was six of 11 for 97 yards threw an interception and fumbled the ball twice. As a back-up your job is to manage the offense, protect the ball and aid play makers with accurate throws that could lead to points. 

Painter in my opinion is not capable of doing that consistently. I’m not saying that Brandstater is a future hall of fame inductee or that he will be a Pro Bowler two years down the road, he’s just better right now. I believe it would have been beneficial for the Colts to give Brandstater more snaps this preseason than he has received.

If this were a real competition, Painter and Brandstater’s snap counts would not have such a large disparity. Brandstater could be a very good back-up in this league if given the opportunity, the real question is when will that be?

Curtis Painter 2010 Preseason Statistics

ATT/COMP: 20-36 CMP%: 55.6 Yards: 258 TD: 1 INT: 4 Rating: 47.9

Tom Brandstater 2010 Preseason Statistics

ATT/COMP: 8-13 CMP%: 61.5 Yards: 34 TD: 1 INT: 1 Rating: 59.5

Harry How/Getty Images

If you’re familiar with my work you’re more than likely aware that I am a fan of Donald Brown. I believe he has the type of versatility and enough burst to be a Pro Bowl runner sometime in the near future.

There are a couple of obstacles in Brown’s way; Joseph Addai is according to most cemented as the starter and the Colts are a pass-first and pass-heavy offense. If the running game is more productive this season, that should change somewhat.

To shoulder the burden of abuse Addai is likely to receive, Brown will likely get more touches this season and could improve on that 3.6 yard per carry average he had in year one.Those assumptions however can only be proved in the regular season, the question presently is whether or not Brown will get a lot of carries in tonight’s contest against the Bengals.

The final game of the preseason as I’m sure you’re aware, is a game for back-ups, rookies and veterans attempting to prove themselves and make the cut. Brown’s position is more than safe but it is customary for the second string back to get some work in this game.

It will be interesting to see how long Caldwell will keep the regulars out there and how soon and often they go to Brown.

Andy Lyons/Getty Images

The Colts’ second string offense has been unproductive to say the least. Will the offense perform any better now that jobs are on the line?

Tight ends Jacob Tamme and Brody Eldridge could be solid contributors to the Colts’ offense this season, especially if Dallas Clark’s injury issues linger.

Solid performances in tonight’s games could help affect the all important trust factor, which could lead to more playing time and more targets from Peyton Manning.

Receivers Blair White and Taj Smith are simply trying to make the roster, which is easier said then done, especially with guys like Reggie Wayne, Pierre Garcon, Anthony Gonzalez and Austin Collie ahead of them.

White caught four passes in the first game but only caught one pass since, an 11-yard gain last week against the Packers. Four catches for 41 yards isn’t exactly overwhelming, so if White plans on making this team he’ll need a strong performance against the Bengals.

Smith on the other hand is second on the team in receptions (seven) and has a healthy 19.0 yards per catch average. He won’t need a miracle to make this team, just enough to prove he could consistently produce solid numbers if an injury occurs.

Indianapolis Colts Vs Cincinnati Bengals: What Colts Fans Need To Watch



By Colts.com
Tuesday, August 31 2010

CINCINNATI BENGALS (2-2) vs. INDIANAPOLIS COLTS (0-3)


DATE:
 Thursday, September 2, 2010

SITE:  Lucas Oil Stadium

KICKOFF: 7:00 p.m. (EDT)

CAPACITY: 63,000

SURFACE: FieldTurf


Concluding 2010 preseason play, the Indianapolis Colts, 0-3, host the Cincinnati Bengals, 2-2, on Thursday, September 2 in Lucas Oil Stadium. Kickoff for the contest is 7:00 p.m. (EDT).

               
Thursday's battle marks the 19th preseason meeting between the clubs in the past 26 years. The lone time the teams have not met in preseason since 1992 was in 2000. This is the eighth consecutive year and the ninth time in the last decade the clubs have battled to conclude preseason play. Indianapolis reaches Thursday's game with after dropping a 37-17 home decision to San Francisco (8/15), falling, 34-21, to Buffalo (at Toronto, 8/19) and dropping a 59-24 contest last Thursday at Green Bay. Cincinnati dropped a 16-7 decision to Dallas on August 8 in the Hall of Fame Game. The Bengals earned two home wins (33-24 over Denver, 8/15; 22-9 over Philadelphia, 8/20), then lost last Saturday at Buffalo, 35-20.


The Colts are owners of the NFL’s best regular-season record (128-48) since the start of the 1999 season, while being the only team to earn 10 playoff appearances in the last eleven seasons, including a league-best eight consecutive post-season berths. Indianapolis has won 73 of its last 89 regular-season games. 
The Colts own a 98-29 record (counting the playoffs) since the start of the 2003 season and are 84-24 since 2004. From November, 2003 to December, 2009, the Colts produced a regular-season record of 81-19, tying New England (2003-09) for the NFL’s best 100-game regular-season mark. Indianapolis’ winning ways include a 38-10 record in AFC South play, while the club has owned or shared the lead in 112 of 136 weeks of the division’s existence. The Colts won five AFC South championships from 2003-07, the best divisional-title streak in club history. The Colts were wire-to-wire divisional leaders during the 2005, 2006, 2007 and 2009 seasons. The club’s nine playoff berths in the 2000-09 decade tied the NFL record set by Dallas (9) in the 1970s. Indianapolis is the only team since 2002 Realignment to earn annual double-digit victory totals and playoff berths. From 2008-09, the Colts set an NFL record with 23 consecutive regular-season victories (21, New England, 2006-08). The streak was the sixth 10+-game regular-season winning streak in franchise history (23, 2008-09; 13, 2005; 11, 1964; 11, 1975-76; 11, 1999; 10, 2005-06), the fourth since 1999. Caldwell became the only NFL rookie head coach to win his first 14 games in a season, surpassing Potsy Clark (8, Portsmouth, 1931), and he surpassed Wally Lemm (10, 1961 Houston Oilers-1962 St. Louis Cardinals) for the most consecutive wins to start a career. Caldwell also became the 2nd rookie head coach since the 1978 NFL move to a 16-game season to win 14 games (George Seifert, SF, 1989). Indianapolis extended its NFL record as the only franchise to win seven or more consecutive regular-season games in six consecutive seasons (8, 2004; 13, 2005; 9, 2006; 7 and 6, 2007; 9, 2008; 14, 2009). Additionally, the Colts posted their eighth consecutive 10+-victory season, setting the 2nd-longest such streak in NFL history (16, San Francisco, 1983-98; 7, Dallas, 1975-81). Indianapolis earned its seventh consecutive season with 11+ victories, surpassing the NFL record it had shared with Dallas (6, 1976-81). The Colts extended their league mark to seven consecutive seasons (2003-09) with 12+ victories. The Colts produced 115 victories for the 2000-09 decade, surpassing the league record of 113 by San Francisco from 1990-99. 

 

PERSONNEL REPORT:  Players last week who did not participate against Green Bay were QB-Tom Brandstater, TE-Dallas Clark, C-Jeff Saturday, OTs-Charlie Johnson and James Williams, WR-Austin Collie, RBs-Devin Moore and Allen Patrick, DBs-Jerraud Powers, Glenn Sharpe and Kevin Thomas.

 

TELEVISION/RADIO: WTTV-TV telecasts with Don Fischer, Mark Herrmann and Jeffrey Gorman (field reporter). 1070-The Fan/HANK-FM, 97.1 broadcasts with Bob Lamey, Will Wolford and Kevin Lee (field reporter). 

 

NEXT WEEK: Indianapolis visits Houston on Sunday, September 12. Kickoff is 1:00 p.m. (EDT).  

 

WWW.COLTS.COM: Please check the official website of the Indianapolis Colts for the latest in team information and merchandise.

 

HEAD COACHES

 

               
JIM CALDWELL
was named head coach of the Colts on January 13, 2009, and this marks his ninth season with Indianapolis. Caldwell joined the club in 2002 as quarterbacks coach before adding the title of assistant head coach prior to the 2005 season. Caldwell was promoted to associate head coach with the club prior to the 2008 season. From 2002-09, Caldwell has been a part of Colts teams that produced 10-6, 12-4, 12-4, 14-2, 12-4, 13-3, 12-4 and 14-2 records. Indianapolis is the only team to earn 12+ victories in seven consecutive seasons, setting the NFL’s all-time standard. Indianapolis has had eight consecutive 10+-victory seasons, setting the second-longest streak in NFL history (16, San Francisco, 1983-98; 7, Dallas, 1975-81), and the Colts have surpassed Dallas (1976-81) as the only franchise to earn at least eleven victories in seven consecutive seasons. The Colts also have earned an NFL-best eight consecutive playoff appearances, and Indianapolis is the only team to post double-digit victory seasons and playoff berths each season since the 2002 realignment. From 2008-09, Indianapolis set the NFL record with 23 consecutive regular-season victories (21 New England, 2006-08). Indianapolis also won 115 regular-season games from 2000-09, the most by a team in a decade in NFL history. From 2004-09, Indianapolis became the only NFL team to win at least seven consecutive games in six consecutive seasons (8, 2004; 13, 2005; 9, 2006; 7 and 6, 2007; 9, 2008; 14, 2009). In 2009, Caldwell became the 5th NFL rookie head coach to reach the Super Bowl.  Caldwell joined Chuck Knox (L.A. Rams, 1973), Red Miller (Denver, 1977), Mike Martz (St. Louis, 2000) and Josh McDaniels (Denver, 2009) as the only rookie head coaches in the Super Bowl era to start 6-0. He became the fourth coach ever to start 6-0 when succeeding a head coach who won 100+ games (Blanton Collier, Cleveland, 1963, succeeded Paul Brown, 111 wins; Jack Pardee, Washington, 1978, succeeded George Allen, 116 wins; Josh McDaniels, Denver, 2009, succeeded Mike Shanahan, 146 wins; Caldwell, Colts, 2009, succeeded Tony Dungy, 139 wins). Caldwell joined the Colts after serving as quarterbacks coach with Tampa Bay in 2001. Caldwell has more than 20 years of collegiate coaching experience. He spent 1993-2000 as head coach at Wake Forest. He served as an assistant coach at Southern Illinois (1978-80), Northwestern (1981), Colorado (1982-84), Louisville (1985) and Penn State (1986-92). Caldwell has coached in six bowl games and won a national championship with Penn State in 1986. In addition to serving on Joe Paterno’s title staff, Caldwell tutored under three other coaches who won collegiate crowns (Rey Dempsey, Southern Illinois; Bill McCartney, Colorado; Howard Schnellenberger, Louisville). Caldwell was a four-year starter at defensive back at Iowa and worked as a graduate assistant for Iowa in 1977. He holds a bachelor’s degree from Iowa. Caldwell was born on January 16, 1955 in Beloit, Wis.


MARVIN LEWIS
became the ninth Bengals head coach on January 14, 2003. Lewis joined Cincinnati after serving as defensive coordinator/assistant head coach with Washington in 2002. Lewis directed Cincinnati to 8-8 records in his first two seasons with the team, and the Bengals produced a record of 11-5 in 2005 in winning the AFC North. Cincinnati was 8-8 in 2006, 7-9 in 2007 and 4-11-1 in 2008. The Bengals amassed a 10-6 division-winning record in 2009. Lewis spent 1996-01 as defensive coordinator with Baltimore, a tenure that included a Super Bowl title during the 2000 regular season. Lewis’ 2000 defensive unit set the NFL record for fewest points allowed in a 16-game season (165) and ranked 1st in the NFL in rushing yards allowed (970), rushing average (2.7), takeaways (49), fumbles recovered (26) and shutouts (4). Lewis was LB Coach with Pittsburgh 1992-95. He started his career at his alma mater, Idaho State, as LB Coach from 1981-84. He served at Long Beach State 1985-86, New Mexico 1987-89 and Pittsburgh 1990-91 before entering the NFL. Lewis was a LB, QB and DB at Idaho State. He is a native of McDonald, Pa.            

                 

COLTS/BENGALS SERIES NOTES

 


The Colts and Bengals have met 18 times in preseason play since the franchises started meeting in 1985. Cincinnati leads the preseason series, 12-6. The teams last met in the preseason on September 3, 2009, with the Bengals earning a 38-7 home victory. On August 28, 2008, the Bengals took a 27-7 victory in Lucas Oil Stadium. The clubs met on September 1, 2007, when the Bengals earned a 14-6 home win. Cincinnati also earned a 20-3 win in Indianapolis on September 1, 2006. The clubs met in Paul Brown Stadium on September 2, 2005, with Cincinnati earning a 38-0 win. This is the tenth consecutive preseason the clubs have met. The rivalry was fought in Paul Brown Stadium on September 3, 2004, with Cincinnati gaining a 16-13 victory. The Colts topped the Bengals, 21-20, on August 29, 2003 for their last preseason triumph over Cincinnati. This is the ninth time in 10 years the clubs are meeting in the preseason finale. The teams met annually in preseason play from 1992-99. The league series stands 15-8 in favor of the Colts, and 1-0 in favor of the Colts in post-season play. The teams last met on December 7, 2008, with the Colts taking a 35-3 home victory. 
QB-Peyton Manning was 26-32-277, 3 TDs passing, teaming with TE-Dallas Clark (4-29, 1 TD; 4t) and WRs-Marvin Harrison (3-78, 1 TD; 5t) and Anthony Gonzalez (3-27, 1 TD; 2t) on scoring tosses. Indianapolis produced five sacks and four takeaways, including two interceptions by DB-Kelvin Hayden, the final one returned 85 yards for a score. The teams also met on December 18, 2006 in the RCA Dome, as the Colts posted a 34-16 win. Manning (29-36-282, 4 TDs) directed a potent offensive attack that included solid efforts from Harrison (8-86, 3 TDs) and WR-Reggie Wayne (7-84, 1 TD). DE-Dwight Freeney totaled three sacks as the club assumed a second-quarter lead it would not relinquish. The last series renewal in Cincinnati was on November 20, 2005, as Indianapolis forged a 45-37 win. Taking a 35-27 halftime lead with touchdowns on the first five possessions, the Colts earned an offensive shootout victory. Manning was 24-40-365, 3 TDs/1 int. Wayne was 5-117, 1 TD, while Clark was 6-125, 1 TD and RB-Edgerrin James was 24-89, 2 TDs rushing. Cincinnati produced 492 yards behind QB-Carson Palmer (25-38-335, 2 TDs/1 int.). Cincinnati rushed for 164 yards, while WR-Chad Johnson was 8-189, 1 TD receiving. The Colts posted a 28-21 victory over the Bengals on October 6, 2002. In that contest, Indianapolis raced to a 21-0 first-half lead and never trailed. Manning was 21-34-224, 2 TDs/1 int. and tallied on an 11t rush. He teamed with TE-Marcus Pollard (3t) and Harrison (9-145, 1 TD, 3t) on first-half scoring plays, while James’ (22-60, 1 TD) 3t fourth-quarter rush provided the winning points. The clubs met on October 24, 1999, with the Colts winning in the RCA Dome, 31-10. Cincinnati’s last win in the league series came on November 9, 1997, 28-13 in Indianapolis. The Colts won the only playoff encounter between the clubs, 17-0 in Baltimore on December 26, 1970. The teams met annually in league play from 1992 through 1999. 

 

INSIDE THE NUMBERS

 

2009 RANKINGS (denotes ranking is tied)

 

RANKINGS            OFFENSE                     RANKING                         DEFENSE                   RANKING

                         Total    Rush      Pass         CONF.       NFL              Total     Rush   Pass         CONF.         NFL

Colts                 363.1     80.9     282.2       4-16- 2    9-32- 2           339.2   126.5   212.7       9-11- 9     18-24-14

Bengals            309.1   128.5     180.6     12- 6-12   24- 9-26           301.4     98.3   203.1       3- 3- 4       4- 7- 6         

 

BEST NFL RECORDS DURING 1999-2009 REGULAR SEASONS

hoover steam cleaners





For almost any house, the best sort of vacuum cleaner that you can buy is a floor steam cleaner. But with so many varieties of steam cleaners available, how can you select which one is right for you? Here are the top steam cleaners available on the market today.

Hoover Steam Vac plus Steam Cleaner
This is a floor steam cleaner that is moderately priced and gives you robust cleaning for your carpets. Awfully user friendly, it makes clean up a snap. Whether you are cleaning your bare floor, your carpet, or your upholstery and car, the 5 brush heads give you the power that you need to get the job done!

Power Steamer Pro-heat plus Carpet Cleaner ( Bissell )
What sets this floor steam cleaner aside from others is the proven fact that it has got a heater that keeps solution warm while you are using it. It also has a nozzle that’s extra-wide that cleans in reverse as well as forward and a forceful brush that gets out the dirt that is way down inside and will adapt to the peak of the carpet immediately. The Bissell also has attachments for vehicle and upholstery cleaning and will work on bare floors with the exception of hardwood surfaces.

Big Green Clean Machine Steam Cleaner ( Bissell ) Floor Steam Cleaner
This model from the floor steam cleaner collection from Bissell is a canister model featuring a high pressure revolving brush which has a total of forty hi-pressure jets. It includes a tank which has the capacity for two gallons, which is twice the amount of the majority of models. It may also be used for both wet vacuuming and dry vacuuming.

The Clean Machine Steam Cleaner ( little Green by Bissell )
Another top floor steam cleaner from Bissell, this is a great cleaner for carpet spot cleaning and cleaning up splatter on upholstery. One of the features is a high pressure sprayer that helps loosen up dirt and a brush that is inbuilt for scrubbing spills and stains.

Mud devil straightforward Steamer Carpet Extractor Floor Steam Cleaner
A floor steam cleaner from dirt devil, this model is affordable and light weight. Although it does not include a brush that is motorized like other models, it cleans well and holds a gallon of solution. Eureka

Altlantis deluxe Steam Cleaner
This steam cleaner includes a handle that’s looped, making it better to control. It is also easy to store thanks to its folding handle. This model cleans bare floors, steps, upholstery, and carpets.

The above steam cleaners are said to be the best by the shoppers who’ve tried them. Of course, not all the conveniences of the different cleaners can be listed here. There is far more to each of the stories of these cleaners. For those that want to know more, they are encouraged to do a little research of their own and find out more. There is a floor steam cleaner for almost anyone, you have to investigate the different cleaners and see what they have to give.

Hoover vacuum cleaners are manufactured by Hoover, an American company founded in 1907.

Of all vacuum manufacturing companies, Hoover’s story must be the most interesting one. In 1907, Murray Spangler (a janitor who was suffering from asthma) created a new invention to help keep the dust away when he was sweeping. This invention consisted of a tin box, a pillow a fan and a broom handle and it was called the “suction sweeper”.

Murray immediately saw a the opportunity and one year later he partnered up with W.H. “Boss” Hoover, a leather goods manufacturing shop. The small shop soon become popular, due to the quality of their products and a smart marketing plan: the Hoover vacuums were being sold through small retails stores that were allowed to keep any commission they made.

Hoover vacuum cleaners characteristics

Hoover is one of the leading brands today in the vacuum cleaning industry because they invented many features that are found in any standard vacuum today.

The “beater bar” was first seen in Hoover vacuum cleaners. This feature combines suction with a metal bar. The bar “beats” the carpet and scatters the dust which is than absorbed. This technology allows the vacuum to remove more dust than any other vacuums.
The disposable bags were also invented by Hoover along with the front headlight, side-mounted house and self-propelling vacuum.

What Hoover vacuum cleaner to buy?

Hoover manufactures an extensive line of vacuum types, including uprights, canisters, hard floor cleaners, handled sticks, wet/dry, central vacuum and others.

The most popular Hoover vacuums are the uprights due to their unique “bagless wind tunnel” feature. This allows the vacuum to create the suction very close to the ground and trap any dust before it can escape back into the air. Uprights are light and very easy to maneuver, and are perfect for quick and efficient jobs.

Canister Hoover vacuums are also very sought after. They not only have the same “bagless wind tunnel” technology, but their suction power is actually better than that of an upright. Their nozzle is another plus, became it allows you to clean areas that are hard to reach.

Hoover steams do an excellent job removing any stains on your carpet. They’re also good for vacuuming any pet hairs, giving you carpet the cleaning it deserves. If you carpet is really in trouble, instead of renting an expensive commercial steamer you may want to take in consideration a Hoover carpet cleaner. It comes with a SpinScrub brush that provides a very deep down cleaning.

If you are still not convinced what Hoover vacuum to get, read what other owners have to say or continue reading our reviews on the most popular Hoover cleaners models: