First of all, you should understand that ASP.NET allows you to generate any content on the fly, in response to HTTP request. In particular, you can generate any thinkable controls as a part of HTML. That should close the problem of controls; all ASP.NET is designed to serve up such things.
With graphics, the problem is more complex; there can be different approaches. First, you can use
System.Drawing
to create bitmaps on request, draw any graphics on them and include them on the page. You can make it on the fly (without storing any image files in the file system of the server's host, which would be quite obvious) by prescribing appropriate
content type in the header of an HTTP response. Those types are standardized and supported here:
http://www.iana.org/assignments/media-types/media-types.xhtml#image[
^].
(See also:
http://en.wikipedia.org/wiki/Content_type[
^].)
Another approach would be using HTML5 Canvas feature. It would give you a lot more of flexibility and better performance. For further detail, please see my past answer:
how to make a drawing area in asp.net[
^].
—SA