Showing posts with label ASP.NET. Show all posts
Showing posts with label ASP.NET. Show all posts

Tuesday, February 24, 2015

"Top 10 Changes in ASP.NET 5 and MVC 6" [The post that has the WebForm/VB'ers in an uproar...]

Stephen Walther - Top 10 Changes in ASP.NET 5 and MVC 6

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



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

What about Web Forms?

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.

For a video about the new features in Web Forms 4.6, see Web Forms 4.6. For information about the many recent changes for Web Forms in Visual Studio 2013 Update 2, see Improvements to ASP.NET Web Forms.

VB? Again VB "IS NOT DEAD" but for ASP.NET v5 it won't be in the RTM.

Visual Basic Support? #236

paullyvenne commented on Dec 14 2014

I was interested in trying out vNext with VB.NET? It seems to be promoted on most of the news but I don't see anything but C#. What's the latest news?

matthewhancock commented on Dec 15 2014

Yeah, it's a little frustrating re-installing the latest versions of Visual Studio 2015 hoping VB will have vNext templates with no luck.

coolcsh commented on Dec 15 2014

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...

Don't take it from me, check out today's Scott Gu post;

Introducing ASP.NET 5

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

Rest easy with RESTier - Building your Web API OData feeds faster with RESTier

OData Team - [Announcement] RESTier - A turn-key solution to build OData services

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
  • RESTier wiki . Detailed document and samples are available here.


Please be noted

  • RESTier is still at a preview stage.
  • RESTier currently only supports Entity Framework data provider. Other data providers will be added in the future.



Mostly I liked the title... lol.

That said, I like the concept behind making it easier to create, though we've all learned to take claims like this with a grain of salt. Will be keeping an eye on this to see if it has any legs...

Tuesday, October 14, 2014

Want to help drive .NET forward? Here's your call to action and comment... - .NET Foundation: Forums and Advisory Council

Today, I want to share some news from the .NET Foundation.

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.

Please join us at We are using the powerful Discourse platform. Come join us!

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.


.NET Foundation - .NET Foundation Advisory Council Call for Public Comment

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.


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....


Think of it as where ASP.NET vNext lives... (So yeah, it's kind of a big deal)  Visual Studio "14" CTP 2 is now available. There's many more CTP's coming, ALL CAPS are not, no TFS "14" CTP's, don't side-by-side this CTP and more...

Tuesday, June 03, 2014

My ASP.NET MVC, how you've rev'd...

Shemeer's World of Programming - ASP.NET MVC Release History, Supported Visual Studio versions and .NET Framework

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

Cool Round-up of the Day: Rob's "Top 10 Microsoft Developer Links for Monday, May 12, 2014"

Rob Caron - Top 10 Microsoft Developer Links for 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

Web Camps Training Kit, March 2014 Edition

Microsoft Downloads - Web Camps Training Kit - March 2014

Version: March 2014

Date Published: 4/29/2014

WebCampsTK-Package-WebCampsTrainingKit.exe, 114 KB

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
  • 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...


Related Past Post XRef:
Web Camps Training Kit Updated
“Web Camps Training Kit” Don’t re-invent, re-use…

Monday, April 07, 2014

Visual Studio 2013 Update 2 lets you build your own Scaffolder

.NET Web Development and Tools Blog - Creating a Custom Scaffolder for Visual Studio

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:

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:

Creating a New Scaffolder Project Using Sidewaffle

  1. Go to create a new project.
  2. Click on the C#->Extensibility->Sidewaffle Node.
  3. Select new “Basic Scaffolder”.
  4. Input the desired name of your Scaffolder.
  5. Create the Project.



Next Steps

Now that you have the basics of creating a scaffolder down, here are some additional resources for what to do next:

Additionally you can look to create more complex scaffolders using the following services:

  • ICategoryRegistrationService – to add new Categories in the Add Scaffold Dialog

  • IServiceRegistrar – to add new ActionServices that you can invoke during scaffolding

  • IRollbackService – to make the services registered above be able to use the Scaffolding rollback feature

  • The Scaffolding.EntityFramework dll – to help with the processing of EF models (this is used by the MVC and WebAPI Entity Framework Scaffolders to create the controllers and for MVC the views)

ASP.NET Scaffolding in Visual Studio 2013


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.



To customize the generated files, see How to customize the generated files from the New Scaffolded Item dialog.

For an example of using scaffolding with Database First development, see EF Database First with ASP.NET MVC.

For an example of using scaffolding in an MVC project, see Getting Started with ASP.NET MVC 5.

For an example of using scaffolding in a Web API project, see Create a REST API with Attribute Routing in Web API 2.

This was pretty lost in the Build news stream, but I think this is going to spawn some very interesting Extensions in the near future.

Thursday, March 20, 2014

"Designing Evolvable Web APIs with ASP.NET" [Currently] free webook (web ebook)

Kris' blog - Designing Evolvable Web APIs with ASP.NET now as a free ebook

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

To get a grasp of what’s in there:


Designing Evolvable Web APIs with ASP.NET

by Glenn Block, Pablo Cibraro, Pedro Felix, Howard Dierking, and Darrel Miller

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

Need a little help cleaning up your code? CodeMaid will help with that developer dirty work... - CodeMaid extension for visual studio

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.

What is CodeMaid?

CodeMaid is an open source Visual Studio extension to cleanup, dig through and simplify our C#, C++, F#, VB, XAML, XML, ASP, HTML, CSS, LESS, JavaScript and TypeScript coding.


An open source visual studio extension to cleanup, dig through and simplify our C#, C++, F#, VB, XAML, XML, ASP, HTML, CSS, LESS, JavaScript and TypeScript coding


Code Digging
Visualize 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.

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

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

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

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

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

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

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

Find the current file in the solution explorer window.

and More!
Toggle read-only state, close read-only files, etc.

Download (Visual Studio Gallery) Go Straight to the Source

I dig the number of languages supported (and that it's OSS :) This is SO likely to see a Coding4Fun blog post in the near future... :)

Tuesday, February 18, 2014

Exceptionless Error Reporting Service is now Exceptional++ (as in it's now OSS!)

Blake Niemyjski - Exceptionless Error Reporting Service Goes Open Source

It’s a big day at Exceptionless.

We are super excited to announce that we are open sourcing the Exceptionless code! That’s right, now you can hack on our real-time error reporting tool yourself.

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?

Check out the Exceptionless Github Repository, and make sure to read about contributing if you plan on helping us improve the project.


Why Open Source?

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!

  • Error notifications, including critical and regressions

  • Easily see top errors and prioritize them

  • Intelligent .NET exception grouping into stacks

  • Dashboard with error stats and trends

  • Detailed error reports, including stacktrace

  • Add any custom objects to your error reports

  • Unlimited users per organization

  • Mark exceptions as fixed, monitor for regressions

  • Real-time view of exceptions as they happen

  • Ability to mark errors as being critical

  • Supports offline and occassionally connected scenarios

  • Easy setup in less than 5 minutes

exceptionless / Exceptionless

Getting Started

** NOTE: If you simply want to use Exceptionless, just go to and signup for a free account and you will be up and running in seconds.

  1. You will need to have Visual Studio 2013 installed.
  2. Start MongoDB and Redis by opening StartBackendServers.bat.
  3. Open the Exceptionless.sln Visual Studio solution file.
  4. Select Exceptionless.App and Exceptionless.SampleConsole as startup projects.
  5. Run the project.
  6. The app will automatically make the 1st user that is created a Global Admin and will also create a sample Acme organization and project.
  7. Send a test error from the sample console application and you should see it show up immediately in the website.

Alternatively, you can watch this short YouTube video showing how to get started with the project.

Using Exceptionless

Refer to the Exceptionless documentation here: Exceptionless Docs

Hosting Options

  1. We provide very reasonably priced hosting at Exceptionless. By using our hosted service, you are supporting the project and helping it get better!
  2. If you would rather host Exceptionless yourself, you will need to follow these steps:
    1. 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.
    2. Setup IIS and add the Exceptionless website.
    3. Modify the connection strings in Web.config to point to your Mongo and Redis servers.
    4. 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...

OWIN your own Helios - ASP.NET "Helios" project (Think "ASP.NET kind of rethought" or "ASP.NET Unbound")

.NET Web Development and Tools Blog - Introducing ASP.NET Project “Helios”

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.

I assume that the reader has a basic understanding of OWIN and ASP.NET Project Katana. If you are not familiar with these, a brief overview can be found at


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





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

Is it .Net? .net? .NET? ASP.NET? Dan's Microsoft Grammar Guide to the rescue...

Dan Fernandez's Blog - Correcting Grammar for Microsoft Products and Technology

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.

Sources: Internal site (brandtools) and the Microsoft Trademarks Web site.


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... ;)

Tuesday, January 07, 2014

"Building Real-World Cloud Apps with Windows Azure" code and eBook

Fix It app for Building Real World Cloud Apps e-book [Code]

This is a Visual Studio project that accompanies the e-book Building Real-World Cloud Apps with Windows Azure. The code demonstrates best practices for cloud apps as presented in the e-book, such as:

  • Storing automation scripts with code in source control
  • Using automation scripts for environment creation and deployment
  • Asynchronous programming
  • Dependency injection
  • Data partitioning
  • Blob storage
  • Transient fault handling
  • Instrumentation
  • Queue-centric work pattern

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:



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.



Building Real-World Cloud Apps with Windows Azure [ebook]


Tom Dykstra
Rick Anderson
Mike Wasson

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.

Category: Guide Applies to: Windows Azure Web Sites, ASP.NET, Visual Studio, Visual Studio Online, Windows Azure Active Directory, Windows Azure SQL Database, Source: ASP.NET site (source content)

E-book publication date: January, 2014


I thought this was an old'ish book, but in looking deeper, it's not (really). It's new, fresh and free. Having the code with the eBook is nice too... :)


Related Past Post XRef:
Going beyond demo-ware with "Real World Windows Azure Guidance" from MSDN
"Building Hybrid Applications in the Cloud on Windows Azure" free ebook RTW's
“Windows Azure Architecture Guide, Part 1 – Moving Applications to the Cloud” now available as an interactive guide.
Moving Applications to the Cloud 2nd Edition guide (and Hands on Labs)
"Building Hybrid Applications in the Cloud on Windows Azure" free ebook and code (RC)

Monday, January 06, 2014

Hosting your own, internal, Visual Studio Extension Gallery? Want too? Jakob's Inmeta Visual Studio Extension Gallery v2 is now available

Jakob Ehn - Inmeta Visual Studio Extension Gallery – version 2.0

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.

Note: The sourcecode is available at as a new 2.0 release. I have branched the original source code so that it is still available.


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 ( 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


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...


Related Past Post XRef:
Like your own, inside the firewall Extension Gallery for VS2012? Inmeta's Got Gallery (free and open source too)

Thursday, October 24, 2013

Jason's Spa (err... I mean, Jason Haley's new SPA, Single Page Application, Resource page)

Jason Haley - New SPA Resource Center on

I’m working on building up a Single Page Application (SPA) section on my site (sort of like the Reversing, Obfuscation, etc. sections).

The url is:

... - Single Page Application (SPA) Resources


Friend of the Blog, Jason Haley's got a new resource page for SPA's and if they are like his others, I'm sure this will come in handy in the future...

Wednesday, July 24, 2013

Katana? OWIN? What? Here's what and how to get started with them too...

In my last post I mentioned Katana, Katana Lifts Its License - Katana v2 nuget bins will not be restricted to Windows only..., but what IS it, you ask?

Pablo M. Cibraro (aka Cibrax) - Getting started with Owin and Katana

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.



There you go!

Katana Lifts Its License - Katana v2 nuget bins will not be restricted to Windows only...

CodeBetter - Howard Dierking - Katana License Lifts Windows-only Restriction

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."

Tuesday, July 02, 2013

"25 Secrets for Faster ASP.NET" Free [ Name and Email Ware] eBook from Red Gate

Michaela Murray - 25 Secrets for Faster ASP.NET: the Eagle has landed!

On Friday we launched our new free eBook, 25 Secrets for Faster ASP.NET Applications!

Heading for 1000 of you have picked it up already, but if you haven’t got your copy yet, you can grab it from

It’s the follow up to the wildly successful 50 Ways to Avoid, Find and Fix ASP.NET Performance Issues, which we released back in January this year (you can download from

Once again, we collected tips from some of the smartest brains in the ASP.NET community, but this time around, we’ve covered the latest stuff in the .NET framework – async/await, Web API, and more.


Red Gate - Free eBook: 25 Secrets for Faster ASP.NET Applications

  • 25 tips from the ASP.NET community for boosting performance in your web applications.
  • Learn the secrets of your fellow developers and read advice from MVPs and other experts.
  • Covers async/await, Web API, ORMs, interactions between your code and your database, and more...

Here's some snaps from the PDF; (BTW, I love that cover, very "Modern" ;)




Nice tips and the price is just right...

Monday, July 01, 2013

350 .Net Dev Interview Questions and Answers PDF from F5debug

F5debug - Releasing Printable PDF document on 350 Interview Questions and Answers on .NET Framework, C#, OOPS, ASP.Net, SQL, WCF

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.

  • .NET Framework
  • C#.Net
  • Object Oriented Programming
  • ASP.Net
  • SQL Server
  • Windows Communication Foundation (WCF)
  • XML Programming

Download Link:

...[GD: Click through to download it]

Here's a snap of the PDF:


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. :)

Friday, April 05, 2013

Nothing like a little LinqPad fun for a Friday - "Hosting ASP.NET Web API in LinqPad"

StrathWeb - Hosting ASP.NET Web API in LinqPad

Today I stumbled upon an interesting Stackoverflow question, where the user was asking how to go about self-hosting Web API in LinqPad.

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