views:

74

answers:

4

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' application.

Can I write my application UI in ASP.NET/MVC, host it inside my client exe, and locally access it using the IE control in my winforms app?

Is there a lightweight asp.net server I can host in-process or fork off? Has anyone tried this? Did the results flatter?

+3  A: 

You can use the Cassini web server.

http://www.asp.net/Downloads/archived/cassini/

3.5 download: http://blogs.msdn.com/dmitryr/archive/2008/10/03/cassini-for-framework-3-5.aspx

v2 download: http://blogs.msdn.com/dmitryr/archive/2006/03/09/cassini-update.aspx

Jim W
beat me to it, AND you got better links
Oplopanax
+1  A: 

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.

Oplopanax
+1  A: 

I think a wild thought is a understatement ;) I strongly urge you to consider if there isn't something you are missing, if there isn't a better solution but here it goes...

There is such a lightweight server. It's also being used by visual studio for developers. It was originally called Cassini which uses System.Web.Hosting (a low level API for creating a http server and hosting the asp.net process)

olle
You know, you're right. I really don't need the ASP.NET engine to achieve my goals. It would be better to give static html and javascript to the IE control, and then use ajax within the static page to communicate either with a WCF service or by direct DOM/js interop http://stackoverflow.com/questions/305915 http://www.west-wind.com/WebLog/posts/493536.aspx
JoshRivers
A: 

Though late to the party, check out the C# webserver