I'll quote my answer from a similar thread here
  For database applications, starting
  from DB up to Application level You
  can have the DB of your choice, either
  SQL Server, Oracle, Access, DB2,
  Postgres ... etc Then the Data Access
  Layer, is based on ADO.net that
  basically can access your database
  using any suitable driver/provider
  like OLEDB, ODBC (is quite old),
  Oracle Data Provider (ODP) ... which
  gives native access to your database
  specific functionality such as stored
  procedures, which is not available if
  you are communicating over ODBC. Then,
  you can either use a code generator
  like Linq to SQL (which comes for free
  with VS 2008+) or other third party
  code generators like LLBLGen Pro, and
  others, or you can make O/R Mapping
  using NHibernate or using more
  sophisticated technology such as
  Entity Framework which was just
  release with .net 3.5 SP1 Then on top
  of that you can develop your domain
  objects using C# or the language you
  like that consumes the infrastructure.
  then on top of that, you can expose
  your domain functionality using a UI
  directly in this case ASP.net, or
  expose them in the form of services
  either SOAP or REST using WCF or
  ADO.net Data Services (Which was also
  released with .net 3.5 SP1, and were
  built on top of WCF), then in case you
  exposed the functionality in form of
  services, you might need to
  communicate with other services in a
  workflow where you can use Windows
  Workflow (WF), then you will need to
  build a client that consume these
  services, you can use develop as many
  clients as your situation demands, for
  example you can build AJAX client
  using (MS AJAX framework + jQuery +
  ASP.net) or you can build a RIA (Rich
  Internet Application) using
  SilverLight, or leverage the client
  desktop capabilities and build a very
  rich user interface using WPF/Windows
  Forms client. So basically as you can
  imagine from the long story above, how
  .net can be the tool of choice to
  build the end to end solutions from
  the most bottom database level, up to
  the server, down the wire to the
  client browser and client machine.