A very powerful feature of ASP.NET, and one of the few restrictions of using Managed C++ with ASP.NET, is the codebehind feature. This feature allows for the complete separation of HTML and logic code into different files, thus letting HTML experts and software developers specialize in what they do best. It's also possible (though I personally don't recommend it) to embed your code logic directly within the ASP.NET source with other languages such as C#, Visual Basic .NET, and JScript .NET, just as you would with earlier ASP.
I mention that codebehind is a restriction, because it's the only way to develop ASP.NET code with Managed C++. In other words, you must place the code logic in a codebehind file and precompile it into an assembly before you make the Web page accessible to the Internet. The languages C#, Visual Basic .NET, and JScript .NET don't have this restriction. With these languages, you can embed logic, as I mentioned previously, and you can also leave the embedded code to be compiled the first time the page is accessed. These features are nice, though potentially dangerous (it's possible to make coding mistakes that aren't caught until a user executes the code) and not really that essential to ASP.NET development.