For me, the first step in application development, is to define the domain in which the application will operate. I created a project in Visual Studio 2010 which is a class library. Within this class library I created interfaces and classes, which form an abstraction of the world of art. At this early phase of the project, my knowledge of the domain is very limited, so I have a very simple domain with just some very basic information. Here is the class diagram which represents an abstraction of the known domain.
Here is the C# class library which the class diagram is based on. The class library is shown in the Solution Explorer view of Visual Studio 2010. The source code of the ArtPiece class is displayed in the editor. You can see that the ArtPiece class implements the IArtPiece interface. Notice also, that the Artist type is a property of the Art piece. The class diagram illustrates how the Artist class also implements an interface, the IArtist interface. The classes define the objects that exist in the World of Art domain, while the interfaces, control how objects that exist outside of this domain will view it and interact with it. Here is a great article on C# Interface Based Development by Matthew Cochran.