I had a wild thought today. I\'ve been discovering that my users like my web UIs more than my WinForms UIs...but there are good reasons to still write a \'smart client\' app
Yes, short answer: get the source for Cassini and it shows you how to host the web server.
I've used this technique to host web services (*.asmx). When the application is online, it can connect to the internet and use a web service there. When it's offline, it uses "localhost" to connect to it's local instance of the web service. This way you only need to write one data access layer.