In the beginning, there was Active Server Pages (ASP)—a page-focused web development framework from Microsoft that enabled developers to build interactive web applications that could process form submissions and communicate with databases. The development model was a simple one: each page in a website was represented by a single file, which had a name and path that shared a one-to-one mapping with the URL for the page. Each file consisted of a mixture of HTML and a scripting language that executed on the web server to generate more HTML. However, as the complexity of an individual page grew, so did its content—often resulting in difficult-to-maintain spaghetti code. Scripting languages lacked any type checking, which easily led to the introduction of bugs that were only discovered at run time.