Hopefully, you reached this page from the About Visual Basic ASP.NET Hub Page. If not, you might want to click the link above and go there.
Visual Studio is Microsoft's premier development environment and comes in multiple versions. If you're developing for the web, you can't do better than Visual Studio. It's state of the art! But as good as VS is, it's not designed to do everything. In particular, it's not the best place to design web pages - especially the graphics elements. For that, you might want to try Microsoft's "Expression Web" line.
Click Here to display the illustration
If you're on a budget (and who isn't watching every nickle these days), Microsoft also offers a free alternative that is actually quite good too! The free alternative is called Visual Web Developer (VWD) and you can read an introduction here.
One of the big improvements in VS 2010 (Framework 4.0) over previous versions is that the interface has been completely rewritten using WPF, Microsoft's new alternative to Windows Forms. The result looks and works well, and that's the reason for a lot of new flexibility in the way it can be used. For example, you can drag interior windows, like the Toolbox, completely outside the parent window now.
A problem that used to plague web developers was the fact that a web page is inherently a "two computer" thing. You have to have a web server to run the web client (the part you build). Years ago, you couldn't actually develop a web page without being able to upload it to a server, often paying for a hosting service. Visual Studio has a built-in web server, however, so you can debug your web pages right on the same machine. But if you choose to, you can also test your pages on IIS - Microsoft's web server product. It's actually easier than you might think because IIS is bundled with Windows. In fact, it's available in all editions of Windows Vista and Windows 7, including Home Basic, but some features are only supported on the server versions of Windows. If you don't see it, IIS is not turned on by default when Windows is installed. To make it available, it must be turned on in the list of Windows features.
Microsoft has heard the jingle of Euros, Yen, and Rupees. If English isn't your native tounge, you can code in the language of your choice using the same interface. You can even create web pages in different languages and include them all in the same web site. But you can't use more than one language in the same web page and you have to use the website development model rather than web projects.
Which brings up the fundamental classification of "website" versus "projects" in Visual Studio. If you just browse the templates, you might think that there are a lot more choices than there really are. But you have to divide the number of choices by two because Visual Studio is just giving you two ways to create an ASP.NET web application.
-> Project-based development:
A web project is almost exactly like the projects in Windows Forms applications. A .vbproj project file stores information about your web project.
-> Website oriented development:
With the website model, Visual Studio assumes that every file in the website directory tree is part of your web application. This is very similar to the way it actually runs in production.
In either case, however, the result is the same. If your web page is named "theWebPage" then it's represented by at least two files:
... and ...
This is called the "code behind" model. The .aspx file is an HTML file that the controls and web page elements are in. The .aspx.vb file is a "Partial Class" file that contains the Visual Basic code for the page. (If you've coded WPF applications, you've seen something similar. In WPF, each window uses at least the two files, "theWindow.xaml" and "theWindow.xaml.vb".) When you call up the web page on the real Internet, you ask for the .aspx file:
Although the .aspx page is an HTML page, most of what you'll see in it are ASP.NET controls. For example, in this code snippet from an .aspx file ...
<body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" /> </div> </form> </body>
... the body, form, and div elements are HTML. But the asp:GridView element is an ASP.NET control. The prefix asp: is a namespace identifier and tells the server to look for it in ASP.NET and the attribute runat="server" tells the server that this has to be turned into code and compiled. A more complete description of how that happens can be found in this page about ASP.NET server processing.
This makes coding a web page a lot like coding a regular Windows Forms application and even more like coding a WPF application. Just drag and drop controls from the Toolbox onto the form, add code to taste and bake in the compiler for ... ummm ... a few seconds.