Tuesday, February 24, 2015

I spent the last couple of weeks writing sample code for ASP.NET 5/MVC 6 and I was surprised by the depth of the changes in the current beta release of ASP.NET 5. ASP.NET 5 is the most significant new release of ASP.NET in the history of the ASP.NET framework — it has been rewritten from the ground up.

In this blog post, I list what I consider to be the top 10 most significant changes in ASP.NET 5. This is a highly opinionated list. If other changes strike you as more significant, please describe the change in a comment.

1. ASP.NET on OSX and Linux

2. No More Web Forms [GD: Click through and read the comment & comment]

3. No More Visual Basic [GD: Lots of comments about this. Click through for support links, comment & comment)

4. Tag Helpers

5. View Components

6. GruntJS, NPM, and Bower Support

7. Unified MVC and Web API Controllers

8. AngularJS

9. ASP.NET Dependency Injection Framework

10. xUnit.net

..."

WebForms is not going away, not any more than WPF is. It IS going to live in the 4.6 line though.

You can continue developing Web Forms apps and have confidence that Web Forms is an essential part of the .NET web development platform. We remain focused on adding new features to Web Forms to improve the development experience and keep the technology up-to-date with web practices.

Web Forms 4.6 includes the following new features for Web Forms:

HTTP 2

Async model binding

Roslyn CodeDOM compilers

Your existing Web Forms apps will continue to run without modification on IIS with .NET 4.6. You can’t use Web Forms apps with the cloud-optimized runtime.

ASP.NET 5 is C# only at this point and that will not change before we RTM. We plan to have extensibility points so other languages like VB, F#, etc can be added via the form of a support package or such.

Guys look, ASP.NET v5 is a complete, from the ground-up rewrite. It's a v1, but built by those that have decades of experience and have learned the many hard lessons that entails ad built for today's web, not the web of the late 99's...

The first preview release of ASP.NET 1.0 came out almost 15 years ago. Since then millions of developers have used it to build and run great web applications, and over the years we have added and evolved many, many capabilities to it.

I'm excited today to post about a new release of ASP.NET that we are working on that we are calling ASP.NET 5. This new release is one of the most significant architectural updates we've done to ASP.NET. As part of this release we are making ASP.NET leaner, more modular, cross-platform, and cloud optimized. The ASP.NET 5 preview is now available as a preview release, and you can start using it today by downloading the latest CTP of Visual Studio 2015 which we just made available.

ASP.NET 5 is an open source web framework for building modern web applications that can be developed and run on Windows, Linux and the Mac. It includes the MVC 6 framework, which now combines the features of MVC and Web API into a single web programming framework. ASP.NET 5 will also be the basis for SignalR 3 - enabling you to add real time functionality to cloud connected applications. ASP.NET 5 is built on the .NET Core runtime, but it can also be run on the full .NET Framework for maximum compatibility.

With ASP.NET 5 we are making a number of architectural changes that makes the core web framework much leaner (it no longer requires System.Web.dll) and more modular (almost all features are now implemented as NuGet modules - allowing you to optimize your app to have just what you need). With ASP.NET 5 you gain the following foundational improvements:

Build and run cross-platform ASP.NET apps on Windows, Mac and Linux

Built on .NET Core, which supports true side-by-side app versioning

New tooling that simplifies modern Web development

Single aligned web stack for Web UI and Web APIs

Cloud-ready environment-based configuration

Integrated support for creating and using NuGet packages

Built-in support for dependency injection

Ability to host on IIS or self-host in your own process

The end result is an ASP.NET that you'll feel very familiar with, and which is also now even more tuned for modern web development.

Monday, January 12, 2015

What is RESTier

RESTier is a RESTful API development framework for building standardized, OData V4 based REST services on .NET. It can be seen as a middle-ware on top of Web API OData. RESTier is built with the inspiration of combining simplicity of WCF DS with the flexibility of Web API OData.

The main exciting features of RESTier are:

Help developer quickly build an OData service within minutes. You need just one controller, no more than 100 lines of code to easily bootstrap an OData service.

Help developer easily add business logic into their services.

What about ASP.NET Web API OData?

As mentioned in the first part, RESTier is based on Web API OData. Web API OData will continuously be improved and RESTier will benefit from the improvements.

Getting started

The main getting started tutorials below show you how to user RESTier step by step.

...

Document and more samples

RESTier intends to be fully open-sourced, source code will be available on GitHub soon.

GitHub repository . We use GitHub to track issues. You can report bugs, provide improvement suggestion directly on GitHub

Forums: We are launching the official .NET Foundation forums to engage with the larger .NET community and to start the flow of ideas on the future of .NET, the community of users of .NET, and the community of contributors to the .NET ecosystem.

Advisory Council: We want to make the .NET Foundation open and transparent. To achieve that goal, we decided to create an advisory council. But we need your help in shaping the advisory council: its role, its reach, its obligations and its influence on the foundation itself.

To bootstrap the discussion, we have a baseline proposal that was contributed by Shaun Walker. We want to invite the larger .NET community to a conversation about this proposal and help us shape the advisory council.

Friends in the .NET community,

When the .NET Foundation was created, there was an important principle that the foundation and its work be transparent, open, and community driven. In order to ensure that the foundation delivers on this primary objective, the board of the .Net Foundation asked Shaun Walker, who has a long history leading and contributing to .Net open source projects, to develop an initial proposal for a community based advisory council to help guide the governance of the .NET Foundation. That proposal is now available for community comment.

There are many reasons we feel that an advisory council is needed. Our goal is to ensure that the foundations operation and governance is both efficient and effective when viewed from a community building perspective. Some of the practical reasons for the creation of the council are:

Providing a clear communication channel between the community and the board on the foundations community building activities. To provide a channel for community stakeholders to provide feedback and guidance on the foundations value proposition, governance model, and other important foundation level decisions.

Provide a set of known, high profile individuals who can advocate for and evangelize the benefits and services provided by the .Net foundation and evangelize the foundation’s mission.

Establishes a group of individuals, experienced in open source community cultivation and project governance, who can provide stewardship, education and leadership to open source .NET projects of all size, popularity, and stature.

To augment the capacity of the board, and distribute work of the foundation across more community members to increase the governance bandwidth of the foundation.

The proposal outlines the rationale for the advisory council, along with ...

What is the .NET Foundation?

We foster open development, collaboration and community engagement on the .NET platform. The .NET Foundation is the steward of a growing collection of open source technologies for.NET, Microsoft’s comprehensive development framework. The .NET Foundation includes popular open source .NET projects such as the .NET Compiler Platform (“Roslyn”), ASP.NET MVC, Xamarin's Mimekit and Mailkit, and many others.

Background

Announced at the Build 2014 conference, the .NET Foundation was created as an independent forum to foster open development and collaboration around the growing collection of open source technologies for .NET....

Tuesday, June 03, 2014

ASP.NET MVC is a web application development framework built on top of Microsoft’s .NET Framework. ASP.NET MVC framework is a lightweight, highly testable presentation framework that is integrated with existing ASP.NET features.

...

You do you remember when Scott Gu wrote MVC a the plane (or so the story went)? Now look at it... Not sure if it's me, but the cadence still seems to be picking up...! Guess it's hear to stay... lol

Monday, May 12, 2014

I think Rob's got the round-up cowboy title for the day... The only thing he's missing is the Azure stuff, more on the ASP.NET vNext story and the Office 365 API drop. But then again, he's trying to filter it down to 10, so I guess I can cut him a little slack... :)

Wednesday, April 30, 2014

The kit includes all the content presented around the world at the recent Web Camps events; presentations, demos, labs and more. Inside the new kit you’ll find content that covers the following technologies:

ASP.NET 4.5

ASP.NET MVC 4

ASP.NET Web API

jQuery

SignalR

Entity Framework

Visual Studio 2013

Internet Explorer 11 and HTML5

Building apps for Office with HTML5

Cloud application services

Internal or external, if you're doing any kind of Microsoft Web Stack Training, presenting or attending, this is a great resource...

Monday, April 07, 2014

With the release of Visual Studio 2013 last October, we introduced the concept of Scaffolding to Web Application projects. Scaffolding is the framework on which code generation for MVC and WebAPI is built. For more information on Scaffolding or the MVC Scaffolders check the following blog post: http://www.asp.net/visual-studio/overview/2013/aspnet-scaffolding-overview.

However, the true potential for the scaffolding framework comes from the new extensibility surface released in Update 2. With this new functionality, any VSIX can code against the Scaffolding API surface and have their scaffolds added to the Add New Scaffold Dialog. This blog post will walk through the creation of a custom scaffolder.

To get started make sure you have the following installed on your machine:

Overview

ASP.NET Scaffolding is a code generation framework for ASP.NET Web applications. Visual Studio 2013 includes pre-installed code generators for MVC and Web API projects. You add scaffolding to your project when you want to quickly add code that interacts with data models. Using scaffolding can reduce the amount of time to develop standard data operations in your project.

Thursday, March 20, 2014

If you’re interested to update your knowledge of simply get started with Web API then there are a bunch of decent books already out there. I noticed however that Glenn Block and others at Microsoft released a book as well and, at the moment, provide for free over at http://chimera.labs.oreilly.com/books/1234000001708.

With this digital Early Release edition of Programming JavaScript Applications, you get the entire book bundle in its earliest form—the author's raw and unedited content—so you can take advantage of this content long before the book's official release. You'll also receive updates when significant changes are made, as well as the final ebook version.

Build HTTP services that reach a broad range of clients—including browsers and mobile devices—with ASP.NET Web API. This practical guide shows you how to build evolvable HTTP services using Microsoft's new Web API framework. It included both real world design and technical guidance from members of the ASP.NET Web API team and it's early adopters. It will cover fundamentals of Web API design and how to apply them properly using the technology. You'll learn fundamentals like how to design and select a media type, how to build out your API, and then move on to more advanced topics like how to use content negotiation, leveraging hypermedia, securing and testing your API, and much much more.

While I really don't dig webooks (I love my kindle entirely too much... even Firing, as in Kindle Firing, my dev book reading...) free is a hard deal to beat.

Friday, February 21, 2014

Till now I’m a resharper fan boy and I still love using it. It is a great productivity tool. But it is not free for commercial use. So lots of my friends tell we want something open source or free which provide some kind of productivity over normal visual studio things and recently I came across CodeMaid extension of visual studio. It is a great plugin.

Code DiggingVisualize and navigate through the contents of your C# and C++ files from a tree view hierarchy. Quickly switch between different sorting methods to get a better overview. Drag and drop to reorganize the code. See McCabe complexity scores and informative tooltips.

ReorganizingReorganize the layout of members in a C# file to follow Microsoft’s StyleCop convention, or your own preferences.

CollapsingRecursively collapse nodes or the entire tree in the solution explorer window.

ConfiguringEnable, modify or disable many of the aspects of how CodeMaid does its work.

FormattingFormat comments to wrap at a specified column and arrange XML major and minor tags on separate lines.

ProgressingView the overall progress of a build within Visual Studio, or in the Windows taskbar, both with a green/red status indication.

SwitchingSwitch between related files, such as cpp and header files or xaml and code-behind.

JoiningJoin two adjacent lines, or a highlighted section of code onto a single line.

Too many apps are throwing too many errors out there, resulting in confused users, lost business, and endless frustration.

We believe Exceptionless can help the development community become more in-tune with their code by making those errors more transparent, trackable, and squashable. More importantly, we want to support developers building and shipping better code for their users.

Cool, Where Do I Start?

In short, we want to see what the community can do with our baby, which we consider a great development tool. The open source movement has provided innovation throughout the industry, and we cannot tell you how excited we are to be a part of it.

We hope you will take it, add to it, suggest great new features, and report bugs, but most of all we hope you will use it to build better apps for the world.

The Exceptionless Team will continue to work on a road map of features and improvements, all while providing support to developers that want to contribute.

Planned features/enhancements

What Is Exceptionless?

The definition of the word exceptionless is: to be without exception. Our product provides real-time .NET error reporting for your ASP.NET, Web API, WebForms, WPF, Console, and MVC apps. It organizes the gathered information into simple actionable data that will help your app become exceptionless. Best of all, it’s open source!

Using Exceptionless

Hosting Options

We provide very reasonably priced hosting at Exceptionless. By using our hosted service, you are supporting the project and helping it get better!

If you would rather host Exceptionless yourself, you will need to follow these steps:

Setup Mongo and Redis servers. We highly recommend that you run these on Linux systems because the Windows versions aren't as performant and reliable as the Linux versions. We also highly recommend that you setup Mongo in a replica set configuration.

Setup IIS and add the Exceptionless website.

Modify the connection strings in Web.config to point to your Mongo and Redis servers.

Change the WebsiteMode to Production in the Web.config appSettings section.

How is Exceptionless licensed?

The Exceptionless server is licensed under GNU AGPL v3.0. The client libraries are licensed under Apache License v2.0.

We want Exceptionless to be free for those of you who want to host the application and data internally or just simply do not want to pay for a hosted account. Our hope is that by making the application free and open source that more people will be aware of it and use it which will indirectly result in more people using our hosted service.

The server is licensed under the AGPL license to ensure that any modifications that are made will be contributed back to the community.

We chose to release the client libraries under Apache License v2.0 to remove any ambiguity as to the extent of the server license — you do not have to license any software that uses Exceptionless under AGPL and are completely free to use any licensing mechanism of your choice.

...

Take the easy way, and let them host it or you can host it yourself. I love that they provide this option...

In late 2013 we made available a prerelease NuGet package which allows running a managed web application directly on top of IIS without going through the normal ASP.NET (System.Web) request processing pipeline. This was a relatively quiet event without too much fanfare. At last month’s MVA Windows Azure Deep Dive, we spoke about this for the first time publicly to a global audience.

Today, I’d like to give a formal introduction to ASP.NET Project “Helios”. This post will talk about why we’re introducing this project, what we hope to accomplish with it, and how this might fit in to our ecosystem moving forward.

Why Helios?

When we look at our ecosystem, we’re pleased by the success of MVC, WebAPI, SignalR, and our other recent high-level frameworks. These are valuable tools, they have a low barrier to entry for most developers, and they’re deployed completely out-of-band. This allows us to innovate quickly. MVC and WebAPI have published new major releases annually; SignalR has approximately quarterly releases. It allows our customers to deploy immediately, even to shared hosters.

Yet because System.Web is part of the .NET Framework proper, the ASP.NET runtime itself cannot iterate as quickly as we would like it to. We are bound by the release schedules of the .NET Framework as a whole. If a developer asks us to add a feature to ASP.NET, he must wait for the entire framework to rev. And then he must wait for his hoster or IT administrator to update the .NET Framework version on the web server. And if there’s a bug he must again wait for us to provide a fix.

Our core runtime iterates on the scale of years. The state of web technologies is much more agile – much more nimble. A web technology can live its entire lifetime – conception to sunset – in the time that elapses between major releases of the .NET Framework. Our developer audience deserves a base on which they can build a new breed of modern web applications.

And it’s not just wanting more agile development. Recall the list of ASP.NET pain points from earlier: unwanted redirects, too-helpful security handholding resulting in requests being denied, and so on. We’ll never be able to make more than minor tweaks to these behaviors, as we can’t risk breaking customers who have deployed sites and are depending on the existing behaviors.

Finally, we’ll never be able to make the ASP.NET core runtime a “pay-for-play” model. We have experimented several times with moving Web Forms out of System.Web.dll and into its own out-of-band package. This would finally allow us finally fix bugs that have been plaguing us for years. But Web Forms defined ASP.NET for years. The ASP.NET core pipeline and Web Forms processing are inextricably linked.

...

Goals and non-goals

As with all things, we need to define our goals before we can determine whether we have been successful in this endeavor. It is not our intent to make a new framework that is everything to all developers. In particular:

It is not our goal to have screaming high throughput for “Hello World” scenarios. While Helios does in fact perform significantly better than the full ASP.NET pipeline for such scenarios, these metrics aren’t terribly useful for real-world applications.

It is not our goal to provide 100% compatibility with existing applications. In particular, Helios projects do not support .aspx or .ashx endpoints or other ASP.NET-isms.

It is not our goal to compete with self-host for developer mindshare. Each OWIN host has its own benefits and drawbacks, and developers should choose the host that meets their needs. We’ll discuss choosing a host later in this post.

On the flip side:

It is our goal to enable higher density on web servers. For a machine running a single application, this might be measured by allowing a greater number of concurrent requests on the machine. For a shared hoster, this might be measured by allowing more active sites on a single machine.

It is our goal to provide behavior that mimics self-host more than it mimics web-host. We’re trying to eliminate as much magic as possible from the new host.

It is our goal to make the Helios framework fully out-of-band. The framework should be able to run without requiring installation as long as the target machine meets the minimum system requirements called out below. Developers should be able to acquire bug fixes / feature additions by acquiring updated packages through NuGet and bin-deploying to their servers / hosters.

It is our goal to reduce the friction of deploying a web application built on the Helios host. It should be just as easy to deploy a Helios-hosted application as it is any typical ASP.NET application.

Getting started

...

...

Conclusion

We’re excited about what this could mean for the future of our platform, especially as more frameworks and components break their strict dependency on System.Web.dll. This new design promises to allow us to ship new functionality fully out-of-band and to avoid surprising developers with unwanted behaviors.

I also want to stress that this is strictly an option. The target audience for this package is a minority of our overall developer audience. The team has no plans to force our general developer audience on to this system.

Finally, there is a supplemental post available with further information available for more advanced developers. That post discusses performance and resource utilization in more detail. It also discusses using the Helios APIs directly without going through OWIN.

Sounds interesting and seems to mesh with hour the BCL team is also iterating faster. Will be keeping an eye on this...

Monday, February 17, 2014

I see book authors, editors, bloggers, press, team members, and occasionally even a VP misspell our products, technologies, and features that I thought I would build and maintain a list of the correct capitalization and spelling of the most commonly misspelled Microsoft products and technologies.

I was gently reminded today (Thanks Brian) that it's .NET, not .Net. I always seem to screw that up. Luckily Brain also directed me to this post by Dan that makes it so easy that even I can use it. (Damn, does that mean I don't have any more excuses? grrrr... ;)

Building the Sample

There are two versions of the app you can run:

The base version is designed to run in a Windows Azure Web Site.

The queues version has a front-end web site and a back-end service. The front-end communicates with the back-end via Windows Azure Storage Queues. The front-end is designed to run in a Windows Azure Web Site, the back-end is designed to run in a Windows Azure Cloud Service.

The following instructions apply to the base version:

...

Description

The sample app is a simple work item ticketing system called “Fix It!” When you need something fixed, you create a ticket and assign it to someone, and others can log in and see the tickets assigned to them and mark tickets as completed when the work is done.

It’s a standard Visual Studio web project. It is built on ASP.NET MVC and uses a SQL Server database. It can run locally in IIS Express and can be deployed to a Windows Azure Web Site to run in the cloud. For the queues version, the back-end code that processes the queue messages is deployed to a worker role in a Windows Azure Cloud Service.

Summary: This e-book walks you through a patterns-based approach to building real-world cloud solutions. The patterns apply to the development process as well as to architecture and coding practices. The content is based on a presentation developed by Scott Guthrie and originally delivered at the Norwegian Developers Conference (NDC) in June of 2013. Many others updated and augmented the content while transitioning it from video to written form.

This year at the second MVP summit I presented a new solution for hosting a private extension gallery. Since then I have finished up the code and put it up on the CodePlex site so you can use it as you want to.

In this blog post I will walk through the background and how you deploy and use the solution.

Little more than a year ago, I blogged about how to host your own private gallery for hosting Visual Studio extensions. The solution that I put up on CodePlex (http://inmetavsgallery.codeplex.com/) was a ASP.NET web service that scans a folder or share and generates the corresponding Atom Feed XML that Visual Studio expects when browsing extensions, using the Extension Manager. See the blog post for details on how this works.

Although this solution works fine (we are using it internally at Inmeta) there are some things that have been nagging me:

There is no easy way to upload or update extensions.

Since the file system is the data storage, the service rescanned the whole structure on every request, which could become a bottleneck when the number of clients and/or extensions increase

I miss some of the features that are available in the “real” Visual Studio Gallery, such as showing the number of downloads and the average rating of each extension

The last bullet is what made start looking at how this works in Visual Studio. As you know

...

Solution The new version of the Inmeta Gallery is a ASP.NET web application that consists of three parts:

A WCF service implementing the IVsIdeService interface

An ASP.NET web application where you can upload and rate visual studio extensions

A SQL database for storing the extensions.

This makes it easy to deploy, it is just one web application that contains both the service that VS communicates with and the web application where you can browse and upload the extensions.

The web application is simple, it shows the 10 most downloaded extensions together with the same information that you see in Visual Studio, and you can search extension by name or description.

Here is a screenshot:

...

This should make creating your own, internal Extension Gallery no only easy, but fun. And hey, the source is available too...

The .NET ecosystem offers today a lot of alternatives for developing web applications. You can either use any of the frameworks supported by Microsoft with ASP.NET such as Forms, MVC or Web API, or any other open source alternative like FubuMVC, ServiceStack, NancyFx or OpenRasta to name a few. From an architecture standpoint, all these frameworks have three main layers in common (in spite of the difference with the implementation details), hosting, middleware, and application.

The hosting layer is responsible for managing the underline process, where the http connections are established and managed, and also to materialize those connections into request/response objects that are sent to the upper layers. For example, the hosting layer could be ASP.NET running in IIS, or it could also be a console application that uses the http listener directly.

The middleware layer provides common infrastructure services, which runs at low level in the http stack, such as security, caching, or any other concern that can be handled at this level.

The application layer is where the applications or services are implemented using the features available in the framework.

However, the distinction between the middleware and application layers is not always clear, which causes that many of the middleware services end up being implemented in the application layer. For example, you could implement middleware services for security in ASP.NET MVC using filters, which rely on features specific to the application level in that framework. This make almost impossible to reuse all these services across all the available frameworks, so you will find different implementations of the same services for the different frameworks. To give an example, basic authentication is something that could be implemented as middleware service and reused, but today is implemented differently in each framework.

Someone would suggest that a ASP.NET Http Module could be a good option for implementing a middleware service, but that’s not necessarily true as it would only work when the hosting layer uses ASP.NET.

This exact problem is what OWIN specification tries to address by providing a common abstraction for any http-aware service or application with minimal dependencies on existing frameworks or implementations. At very core level, OWIN defines a handler, which is represented as an application delegate...

...

Katana is a Microsoft implementation of the OWIN specification, which includes handlers for the hosting and middleware layers. It’s an open source project, which can be found in this location. All the investment that Microsoft has done so far for ASP.NET in the different application frameworks (i.e. MVC or Web API), it’s now being refactored as OWIN handlers that can be reused across different application frameworks. For example, cookie authentication or even OAuth are being implemented as middleware services that can be reused not only by ASP.NET web apps but also for other application frameworks in the open source world.

Over the past few months, a great deal of attention has been paid to the following clause used in most of the licenses associated with the NuGet packages that we and other teams at Microsoft ship.

“ a. Distribution Restrictions. You may not … distribute Distributable Code to run on a platform other than the Windows platform;”

In the case of the ASP.NET-related projects, including project Katana, this license (and the associated restriction) does not apply to the source code, but rather to the compiled binaries that are distributed via NuGet (the Katana source code is released under the Apache 2.0 license). This means that even today, it is perfectly reasonable to build the source code yourself and run it on Mono on whatever platform you choose.

As Microsoft teams continue to take more and more components out of the traditional box products and deliver them as NuGet packages, the frustration over this restriction has grown proportionally. ...

So we changed the license.

With the release of Katana 2.0, which will accompany Visual Studio 2013, the Windows-only restriction will be removed from the Katana binary license. It’s important to note here that at this point, the exception applies only to the Katana packages.

While it may appear to be a small step, we’re very excited as we believe it to be a significant one in the right direction!

As I said in my last post, this isn't the Microsoft we grew up with, is it? Nice to see the team respond to this concern and to take steps, no matter how small, to make it "right."

Monday, July 01, 2013

Few months before I released a series on Interview Questions and Answers on .Net Framework, OOPS, C#.Net, ASP.Net, SQL Server and WCF which got attention to all the Job Seekers in Microsoft Stack. Many of the readers requested for a printable version of the document which can be used as a offline mode when they are on the move. So one of my friend and follower Mohit Chhabra consolidated all the questions and answers in one document which can be downloaded and used offline.

Topics Covered:

Below are the list of topics covered, you can navigate to this page to see the list of questions that are answered in this series.

Not that I'm job hunting, but still I thought this kind of, sort of interesting (only kind of, sort of, because I'm not a huge fan of SAT like, tie them to the chair and grill them till they cry, interviews). Heck worse case it's an interesting refresher resource. :)

The question has gone unanswered since December, and I’m guessing even the OP forgot about it. However, I’d like to elaborate a bit about the topic. You certainly can host Web API in LinqPad, provided you plug in a quick work around – and we actually did hit a similar issue with scriptcs.

Understanding LinqPad

LinqPad is an absolutely terrific tool, which allows you to write complex C# without Visual Studio. To be able to answer our original Web API hosting question, we need to understand what LinqPad does under the hood. Unfortunately, we won’t be able to dig much beyond the rough overview LinqPad offers on its about page, since it’s closed source.

However the page also features a nice chart explaining the high levels of LinqPad. I hope Joseph will take no offense if I hotlink it here:

...

Web API hosted in LinqPad.

Nothing like a little LinqPad Love. This is an officially cool LinqPad hack.

What can't you have LinqPad do? I wonder if I can get LinqPad to make me breakfast... :P