Hello it's old topic try to avoid such question you will get tones of posts from internet about this topic
Webform is simply a html form, basically a collection of DOM elements and functions as per the specifications of W3C. However asp.net added unique features to it like view state, postback etc., Webforms are platform independent i.e works on a thin client like web browser, stateless client server architecture.
Windows forms are used in desktop based applications which heavily rely on the GDI. Basically lot of differences between the two from state to the way it functions.
In view of similarity both are GUI components, but the basic framework concepts are same for both. ASP.Net has many additional concepts and vary from windows form development.
If you are thinking in view of portability always separate the UI from the underlying business logic. Which helps moving significant amount of code reuse.
In addition consider WPF where is it easy to portable from windows based development to web based, provided the clients need to have the framework installed.
Get more details from following link
http://msdn.microsoft.com/en-us/library/5t6z562c(v=vs.90).aspx[
^]