We had a chance to catch-up with Miguel de Icaza, founder of the Mono project and it’s new parent company, Xamarin. Some of the topics we covered include the future of ASP.NET MVC on Mono and the end of the Moonlight project.
Technically speaking, ASP.NET MVC has been open source all along. But as with most Microsoft projects it wasn’t “open development”, all work was done internally with occasionally drops. As of yesterday, that all changed. Everyone in the community is now able to contribute code and tests to ASP.NET MVC, Web Pages, and Web API.
There are several components in an ASP.NET MVC 3 web app – models, controllers, route-handlers, views, html-helpers, client-side code etc. Most of these can be unit-tested, others need integration tests, and several good practices can help you keep your tests more maintainable and avoid making them brittle.
GitHub was recently compromised by a vulnerability in Ruby on Rails know as mass assignment. This vulnerability is thought to not only affect a large number of Ruby-based websites, but also those using ASP.NET MVC and other ORM-backed web frameworks.
Michael Kennedy has released a small library designed to help ASP.NET MVC developers manage unwieldy Shared Views folders. This simple addition allows developers to use sub-folders for views.
While SharpDevelop had project templates for MVC 3 for several versions, until recently it has been missing a lot. Version 4.2, currently in beta, adds a few more pieces to the puzzle.
The ASP.NET MVC 4 beta includes an experimental project for developing “single page applications”. Known as ASP.NET SPA, this project type is based on a stack of open source libraries and the MVVM pattern made popular by WPF and Silverlight.
The first beta of ASP.NET MVC 4 has recently been released with a “go-live” license. This means that even though the release is not yet complete, Microsoft is confident enough to allow it in production use. Enhancements include improvements to the Razor view engine, asynchronous support, and more.
Model Binding is a feature that simplifies controller actions by using the request data to create strongly typed objects. Jess Chadwick takes a deep dive into this feature in an MSDN article and explores complex scenarios, as well as creating custom model binders when the default model binder is not enough.
For most types of applications dependency injection frameworks don’t make whole lot of sense. It is usually more than sufficient to manually wire up all of the dependencies during startup. But for ASP.NET MVC there are also session and request scoped dependencies. With so many competing lifecycles a DI framework quickly moves from needless distraction to an essential organizational tool.
S#arp Lite is an effort to make S#arp Architecture more accessible to all developers; this scaled-back version includes a project template set up to connect to a database via NHibernate, a set of reusable class libraries, a base repository, and a sample project.
When it comes to performance developers often need to turn to partial page caching. This report looks at the current state of caching in ASP.NET and introduces a new project for MVC 3 called MvcDonutCaching.
StackExchange is built on the ASP.NET and SQL Server stack. Recently, Sam Saffron and Marc Gravell blogged about their experience identifying and solving a performance problem that was finally traced to the .NET GC GEN-2 objects. There is a lot to be taken away from their experience for everyone tuning performance for applications in production.
ASP.NET MVC is designed with extensibility in mind and almost every part of processing pipeline is extensible using your own providers to replace the standard implementation. Simone Chiaretta, in his blog post “An Introduction to ASP.NET MVC Extensibility” gives an introduction to various stages in the ASP.NET MVC Pipeline, and a brief explanation of how extensibility comes into picture.