in

ExpressionBlog.com

Microsoft Expression Studio Community

This Blog

Syndication

Mirrored Blogs

Browse by Tags

All Tags » MVC (RSS)
  • ASP.NET MVC Preview 4 Release (Part 1)

    The ASP.NET MVC team is in the final stages of finishing up a new "Preview 4" release that they hope to ship later this week.  The Preview 3 release focused on finishing up a lot of the underlying core APIs and extensibility points in ASP.NET MVC.  Starting with Preview 4 this week you'll start to see more and more higher level features begin to appear that build on top of the core foundation and add nice productivity. There are a bunch of new features and capabilities in this new build - so much in fact that I decided I needed two posts to cover them all.  This first post will cover the new Caching, Error Handling and Security features in Preview 4, as well as some testing improvements it brings.  My next post will cover the new AJAX features being added with this release as well. Understanding Filter Interceptors Action Filter Attributes are a useful extensibility capability in ASP.NET MVC that was first added with the "Preview 2" release.  These enable you to inject code interceptors into the request of a MVC controller that can execute before and after a Controller or its Action methods execute.  This enables some nice encapsulation scenarios where you can easily package-up and re-use functionality in a clean declarative way. Below is an example of a super simple "ScottGuLog" filter that I could use to log details about exceptions raised during the execution of a request.  Implementing a custom filter class is easy - just subclass the "ActionFilterAttribute" type and override the appropriate methods to run code before or after an Action method on the Controller is invoked, and/or before or after an ActionResult is processed into a response. Using a filter within a ASP.NET MVC Controller is easy - just declare it as an attribute on an Action method, or alternatively on the Controller class itself (in which case it will apply to all Action methods within the Controller): Above you can see an example of two filters being applied.  I've indicated that I want my "ScottGuLog" to be applied to the "About" action method, and that I want the "HandleError" filter to be applied to all Action methods on the HomeController. Previous preview releases of ASP.NET MVC enabled this filter extensibility, but didn't ship with pre-built filters.  ASP.NET Preview 4 now includes several useful filters for handling output caching, error handling and security...
  • ASP.NET MVC Support with Visual Web Developer 2008 Express

    Last week I blogged about the ASP.NET MVC Preview 3 release .  One important thing I forgot to mention about this release is that you can now use it with both Visual Studio 2008 as well as the free Visual Web Developer 2008 Express edition.  The SP1 release of Visual Web Developer 2008 Express adds support for both class library projects as well as web application projects (previously only web site projects could be used with it).  This new support is useful in itself, as well as in enabling both ASP.NET MVC and Silverlight project support with VWD Express.  If you install the Visual Web Developer Express SP1 Beta you can start using ASP.NET MVC Preview 3 with it immediately. Important: ASP.NET MVC Preview 3 does not require SP1 to be installed if you are using Visual Studio 2008.  ASP.NET MVC Preview 3 will work with both VS 2008 and VS 2008 SP1 just fine.  You can learn more about the new VWD Express support for ASP.NET MVC from the VS Web Tools team blog here .  This post also includes a free web download that provides ASP.NET MVC Test project support for NUnit-based unit tests.  You can use these NUnit project templates with both Visual Studio 2008 as well as with Visual Web Developer Express 2008. Hope this helps, Scott
  • ASP.NET MVC Preview 3 Release

    This morning we released the Preview 3 build of the ASP.NET MVC framework.  I blogged details last month about an interim source release we did that included many of the changes with this Preview 3 release.  Today's build includes some additional features not in last month's drop, some nice enhancements/refinements, as well as Visual Studio tool integration and documentation. You can download an integrated ASP.NET MVC Preview 3 setup package here .  You can also optionally download the ASP.NET MVC Preview 3 framework source code and framework unit tests here . Controller Action Method Changes ASP.NET MVC Preview 3 includes the MVC Controller changes we first discussed and previewed with the April MVC source release , along with some additional tweaks and adjustments.  You can continue to write controller action methods that return void and encapsulate all of their logic within the action method.  For example: which would render the below HTML when run: Preview 3 also now supports using an approach where you return an "ActionResult" object that indicates the result of the action method, and enables deferred execution of it.  This allows much easier unit testing of actions (without requiring the need to mock anything).  It also enables much cleaner composition and overall execution control flow. For example, we could use LINQ to SQL within our Browse action method to retrieve a sequence of Product objects from our database and indicate that we want to render a View of them.  The code below will cause three pieces of "ViewData" to be passed to the view - "Title" and "CategoryName" string values, and a strongly typed sequence of products (passed as the ViewData.Model object): One advantage of using the above ActionResult approach is that it makes unit testing Controller actions really easy (no mocking required).  Below is a unit test that verifies the behavior of our Browse action method above:   We can then author a "Browse" ViewPage within the \Views\Products sub-directory to render a response using the ViewData populated by our Browse action: When we hit the /Products/Browse/Beverages URL we'll then get an HTML response like below (with the three usages of ViewData circled in red): Note that in addition to support a "ViewResult" response (for indicating that a View should be rendered), ASP.NET MVC Preview 3 also adds support for returning...
  • April 28th Links: ASP.NET, ASP.NET AJAX, ASP.NET MVC, Silverlight

    Here is the latest in my link-listing series .  Also check out my ASP.NET Tips, Tricks and Tutorials page and Silverlight Tutorials page for links to popular articles I've done myself in the past. ASP.NET Displaying the Number of Active Users on an ASP.NET Site : Scott Mitchell continues his excellent series on ASP.NET's membership, roles, and profile support.  In this article he discusses how to use ASP.NET's Membership features to estimate and display the number of active users currently visiting a site. ASP.NET Dynamic Data Update : The ASP.NET team last week released an update of the new ASP.NET Dynamic Data feature.  This update adds several new features including cleaner URL support using the same URL routing feature that ASP.NET MVC uses, as well as better confirmation, foreign-key, and template support.  ASP.NET Testing with Ivonna : Travis Illig blogs about a new testing framework named Ivonna that enables unit testing of ASP.NET web forms. ASP.NET AJAX ASP.NET AJAX UI Templates : Nikhil Kothari from the ASP.NET team has a cool post that shows off a prototype he has been working on that enables clean client-side AJAX templating of UI.  ASP.NET AJAX Control Toolkit TabContainer Theme Gallery : Matt Berseth has another of his excellent posts - this one shows off a bunch of cool themes you can use to style the TabContainer control in the ASP.NET AJAX Control Toolkit. Reducing Page Load Times with UpdatePanels and Timers : Paul Glavich posts of a cool trick you can use with tab controls to asynchronously load their content in the background in order to improve perceived page load time. Why do ASP.NET AJAX page methods have to be static? Dave Ward has a useful article that talks about the page methods feature in ASP.NET AJAX, and explains why they are static methods. JQuery Intellisense in VS 2008 : Brad Vincent posts about using the VS 2008 Web Development Hot-Fix we released in February to get a nice JavaScript intellisense experience in Visual Studio 2008 when using the JQuery AJAX library. ASP.NET MVC Inversion of Control, ASP.NET MVC and Unit Testing : Fredrik Kalseth has a cool article that talks about the concepts behind inversion of control (IOC) and how you can use this with ASP.NET MVC to better isolate dependencies and enable better unit testing of your code. Stephen Walther's ASP.NET MVC Talk: Stephen Walther delivered a many-hour ASP.NET MVC post conference talk at ASP.NET Connections last week. ...
  • Slides from my ASP.NET Connections Orlando Talks

    Last week I presented at the ASP.NET Connections Conference in Orlando.  I gave a general session talk on Monday, and then two breakout talks later that day.  You can download my slides+samples below: General Session The slides for my keynote can be downloaded here .  In the talk I demonstrated how to debug the .NET Framework source code.  You can learn how to set this up with VS 2008 here .  I also demonstrated building a site using the new ASP.NET Dynamic Data support - which you can learn more about here .  I also demonstrated using the new ASP.NET MVC Framework - which you can learn more about here . I also showed off the new Hard Rock Memorabilia site built with Silverlight 2.  You can try out the Hard Rock application yourself here .  You can learn more about Silverlight from my links page here . Building .NET Applications with Silverlight The slides + demos for Silverlight breakout talk can be downloaded here . You can learn more about Silverlight from my links page here .  In particular, I recommend reading my tutorial posts here and here . ASP.NET MVC The slides + demos for my ASP.NET MVC talk can be downloaded here . You can learn more about the latest ASP.NET MVC source refresh here .  Stephen Walther also just posted a really good set of slides + demos from his post conference tutorial on ASP.NET MVC here . Hope this helps, Scott
  • ASP.NET MVC Source Refresh Preview

    We recently opened up a new ASP.NET CodePlex Project that we will be using to provide previews (with buildable source code) for several upcoming ASP.NET features and releases. Last month we used it to publish the first drop of the ASP.NET MVC source code .  This first drop included the source for the ASP.NET MVC Preview 2 release that we shipped at MIX, along with Visual Studio project files to enable you to patch and build it yourself. A few hours ago we published a refresh of the ASP.NET MVC source code on the site.  This source refresh is not an official new ASP.NET MVC preview release - instead it is an interim drop that provides a look at the current state of the source tree.  We will ship the official "ASP.NET MVC Preview 3" release in a few weeks after we finish up some more work (more features and tweaks to existing ones, better VS tool integration, VS express edition support, documentation, etc).  If you are someone who wants a hassle-free installation of ASP.NET MVC to use that ships with documentation and full tool support you'll probably want to wait for this official preview release.  If you are someone who wants a chance to see an early "preview of the preview" and have the opportunity to start using and giving feedback on some of the features immediately, today's source refresh is probably interesting to look at. Improvements with this ASP.NET MVC Source Refresh This week's update (which you can download here ) includes a number of improvements to ASP.NET MVC.  Some of these include: In addition to posting the source code for the ASP.NET MVC framework, we are also posting the source code for the unit tests that we use to test it.  These tests are implemented using MSTest and the open source Moq mocking framework.  A VS 2008 project file for the unit tests is included to make it easy to build and run them locally within your VS 2008 IDE. Significantly easier support for testing Controller classes.  You can now unit test common Controller scenarios without having to mock any objects (more details on how this works below). Several nice feature additions and usability improvements to the URL routing system (more details below). Creating a New ASP.NET MVC Project You can build your own copy of the ASP.NET MVC assemblies by downloading the MVC source and compiling it locally, or alternatively you can download a VS Template package to get a pre-built version of them along with...
  • April 11th Links: ASP.NET, ASP.NET AJAX, ASP.NET MVC, Visual Studio, Silverlight

    Here is the latest in my link-listing series .  Also check out my ASP.NET Tips, Tricks and Tutorials page and Silverlight Tutorials page for links to popular articles I've done myself in the past. ASP.NET More ASP.NET Security Tutorials : The last three of Scott Mitchell's excellent ASP.NET security tutorials .  His final three articles cover how to select user accounts, recover and change passwords, and unlock and approve user accounts. Building a VS 2008 Styled Grid with the ListView and DataPager Controls : Matt Berseth has a great article that talks about techniques you can use with the new ASP.NET 3.5 ListView control to create a nicely styled Grid UI - while preserving total control over the HTML and CSS used.  Also read his follow-up post here that talks about how to achieve the same UI with the GridView control. 50 Useful CSS Tips and Tricks: A useful page that provides a nice listing of various CSS tips, tricks and tools you can use for common web scenarios. Using a DataPager with the GridView Control - Implementing IPageableItemContainer : Matt Berseth has a cool article that shows how to use the new IPageableItemContainer interface to implement paging support with the new ASP.NET 3.5 DataPager control. ASP.NET AJAX Accessible UpdatePanel : Bertrand Le Roy from the ASP.NET team has an article that describes how to make the ASP.NET AJAX's UpdatePanel control accessible for screen-readers. ASP.NET AJAX Meets Virtual Earth : Alessandro Gallo, author of the excellent ASP.NET AJAX in Action book, has a nice series of articles that talks about using ASP.NET AJAX with Virtual Earth to implement mapping on your site. Faster Page Loading by Moving ASP.NET AJAX Scripts after visible content : Omar Al Zabir (the co-founder of www.PageFlakes.com ) has a great article that describes a nice technique you can use to improve the perceived loading performance of an ASP.NET AJAX page.  I also highly recommend reading Omar's great Building a Web 2.0 Portal with ASP.NET 3.5 book to learn some of his other suggestions and techniques. 3 Tips for Working with ASP.NET AJAX's TabContainer Control : Matt Berseth continues his great articles on ASP.NET AJAX with some tips on working with the TabContainer control in the ASP.NET AJAX Control Toolkit. Building ASP.NET AJAX Components: Mike Ormond has written an excellent 8-part series that covers building re-usable ASP.NET AJAX components that work on both the client and server. ASP.NET...
  • March 28th Links: ASP.NET, ASP.NET AJAX, ASP.NET MVC, Visual Studio, Silverlight, .NET

    Here is the latest in my link-listing series .  Also check out my ASP.NET Tips, Tricks and Tutorials page for links to popular articles I've done myself in the past. ASP.NET Three New ASP.NET Security Tutorials Now Available : Scott Mitchell continues his great ASP.NET security tutorials . These three new ones cover creating and managing roles, assigning roles to users, and implementing role based authorization.  You can also find more security articles by reading posts on my blog tagged with security . .NET Libraries to Digg, Flickr, Facebook, YouTube, Twitter, and other Web 2.0 APIs : Scott Hanselman's latest "weekly source code" review looks at .NET APIs that you can use to call popular web 2.0 services. Hangs and how to Solve Them (Part 1) and (Part 2) : Tom has some useful posts that talk about deadlocks and request queuing in ASP.NET, and how to detect and debug what might be causing them. ASP.NET AJAX Building ASP.NET AJAX Controls (Part 1) , (Part 2) , and (Part 3) : Mike Ormond has started a nice blog post series that talks about how to build ASP.NET AJAX Controls.  Make sure to check out Part 2 - Components and Part 3 - Properties and Events as well. New ASP.NET AJAX "How Do I?" Videos : Joe Stagner has published a number of new ASP.NET AJAX "How Do I?" videos.  Learn about the re-order control , retrieving values from server-side AJAX controls , two techniques for triggering updates to update panels , and using the cascading drop down control . Real-Time Progress Bar with ASP.NET AJAX: SingingEels shows a technique for displaying real-time progress notifications using AJAX as a long-lived activity runs on the server. Using JQuery to Consume ASP.NET AJAX JSON Web Services : Dave Ward has a nice post that describes how to use the JQuery AJAX library on the client to call an ASP.NET Web Service on the server that is JSON enabled (using ASP.NET AJAX on the server).  ASP.NET MVC Kigg - Building a Digg Clone with ASP.NET MVC : Kazi Manzur Rashid published an excellent Digg-clone sample built with ASP.NET MVC last February.  He recently updated the code to work with ASP.NET MVC Preview 2 (full details here ).  You can download the latest version of his source code here . ASP.NET MVC In-Depth: The Life of an ASP.NET Request : Stephen Walther has a great post that details the exact steps that occur when an ASP.NET MVC request executes.  ASP.NET MVC Action Filters - Caching and Compression...
  • ASP.NET MVC Source Code Now Available

    Last month I blogged about our ASP.NET MVC Roadmap . Two weeks ago we shipped the ASP.NET Preview 2 Release . Phil Haack from the ASP.NET team published a good blog post about the release here . Scott Hanselman has created a bunch of great ASP.NET MVC tutorial videos that you can watch to learn more about it here . One of the things I mentioned in my MVC roadmap post was that we would be publishing the source code for the ASP.NET MVC Framework, and enable it to be easily built, debugged, and patched (so that you can work around any bugs you encounter without having to wait for the next preview refresh release). Today we opened up a new ASP.NET CodePlex project that we'll be using to share buildable source for multiple upcoming ASP.NET releases. You can now directly download buildable source and project files for the ASP.NET MVC Preview 2 release here . Building the ASP.NET MVC Framework You can download a .zip file containing the source code for the ASP.NET MVC Framework for the release page here . When you extract the .zip file you can drill into its "MVC" sub-folder to find a VS 2008 solution file for the project: Double-clicking it will open the MVC project containing the MVC source within VS 2008: When you do a build it will compile the project and output a System.Web.Mvc.dll assembly under a \bin directory at the top of the .zip directory. You can then copy this assembly into a project or application and use it. Note: the license doesn't enable you to redistribute your custom binary version of ASP.NET MVC (we want to avoid having multiple incompatible ASP.NET MVC versions floating around and colliding with each other). But it does enable you to make fixes to the code, rebuild it, and avoid getting blocked by an interim bug you can't work around. Next Steps Our plans are to release regular drops of the source code going forward. We'll release source updates every time we do official preview drops. We will also release interim source refreshes in between the preview drops if you want to be able to track and build the source more frequently. We are also hoping to ship our unit test suite for ASP.NET MVC in the future as well (right now we use an internal mocking framework within our tests, and we are still doing some work to refactor this dependency before shipping them as well). Hope this helps, Scott
  • March 14th Links: ASP.NET, ASP.NET AJAX, ASP.NET MVC and .NET

    I'm slowly recovering from keynoting at MIX last week, and have been digging my way out of backlogged email the last few days.  I'm going to try and finish catching up on blog comments this weekend - apologies for the delay in getting back to some of your questions. To kick-start my blogging again I thought I'd post a new link-listing series .  Today's post is mostly focused on ASP.NET and web related links.  I'm going to be doing more Silverlight and WPF posts soon. ASP.NET Tag Cloud Filters with ASP.NET 3.5's LinqDataSource and ListView Controls : Matt Berseth has a cool post that shows off using LINQ to SQL and ASP.NET 3.5 to build a tag-cloud navigation UI. Five New ASP.NET Security Tutorials Now Available : Scott Mitchell continues his great ASP.NET security tutorials .  These 5 new ones (all in both VB and C#) cover using the ASP.NET membership system. Building a Vista Style Folder Browser with ASP.NET 3.5 and a Custom Hierarchical DataSource Control: Matt Berseth continues his great posts with a nice one that shows how to build a custom HierarchicalDataSourceControl to implement file browsing functionality using ASP.NET. ASP.NET AJAX New ASP.NET AJAX Control Toolkit Release: David Anson blogs about a new ASP.NET AJAX Control Toolkit release that the team made right before MIX.  This release includes a number of patches (including a bunch from the community) with bug fixes and improvements in a bunch of areas. LinkedIn Style Theme for the ASP.NET AJAX Tab Container Control: Matt Berseth posts some cool new themes you can use with the ASP.NET AJAX Control Toolkit's tab control. ASP.NET AJAX In-Depth: Object Inheritance : Stephen Walther, author of the recently published ASP.NET 3.5 Unleashed book , posts an incredibly in-depth article about how object inheritance is handled with ASP.NET AJAX. ASP.NET AJAX In-Depth: Creating JavaScript Properties: Stephen Walther continues his series with an in-depth article discussing how JavaScript Properties are handled with ASP.NET AJAX. ASP.NET AJAX In-Depth: Application Events : Yes another Stephen Walther article discussing how application events are handled with ASP.NET AJAX. ASP.NET AJAX Localization Slides and Code: Joel Rumerman has a nice post with samples + slides about how the localization features in ASP.NET AJAX work. JScript Intellisense: working with Ext JS : The VS web tools team enabled JQuery intellisense last month with the VS 2008 Web Development...
  • ASP.NET MVC Framework Road-Map Update

    This past December we released the first preview of a new ASP.NET MVC Framework as part of the ASP.NET 3.5 Extensions CTP Release . I also wrote a number of blog posts that provide more detail on what the ASP.NET MVC framework is and how you can optionally use it: Introducing the ASP.NET MVC Framework ASP.NET MVC Tutorial (Part 1) ASP.NET MVC Tutorial (Part 2: Url Routing) ASP.NET MVC Tutorial (Part 3: Passing ViewData from Controllers to Views) ASP.NET MVC Tutorial (Part 4: Handling Form Edit and Post Scenarios) We've had great feedback on the framework since then, and had a ton of downloads and excitement around it.  One of the common questions people have asked me recently is "when will a new build be released and what will be in it?". The below post provides a few updates on what the ASP.NET MVC feature team has been working on, and some of the new features that will be available soon.  I'm going to do a separate blog post in the future that will cover the new ASP.NET Dynamic Data and ASP.NET AJAX feature work that is progressing along nicely as well.  All of these features (ASP.NET MVC, ASP.NET Dynamic Data, and the new ASP.NET AJAX improvements) will ship later this year and work with VS 2008 and .NET 3.5. Upcoming ASP.NET MVC MIX Preview Release We are planning to release the next public preview of ASP.NET MVC at the MIX 08 conference in a few weeks.  This build will be available for anyone on the web to download (you do not need to attend MIX to get it).  We have incorporated a lot of early adopter feedback into this release.  Below are some of the improvements that will appear with this next preview release: 1) The ASP.NET MVC Framework can be deployed in the \bin directory of an app and work in partial trust The first ASP.NET MVC preview release required a setup program to be run on machines in order for the System.Web.Mvc.dll assembly to be registered in the machine's GAC (global assembly cache). Starting with this upcoming preview release we will enable applications to instead directly reference the System.Web.Mvc.dll assembly from the application's \bin directory.  This means that no setup programs need to be run on a sever to use the ASP.NET MVC Framework - you can instead just copy your application onto a remote ASP.NET server and have it run (no registration or extra configuration steps required). We are also doing work to enable the ASP.NET MVC framework to run in "partial/medium...
  • MIX08

    MIX is a Microsoft web development conference we hold in Las Vegas each year.  MIX tends to be a pretty fun event, both because it covers cutting edge content (we used MIX07 to announce our Silverlight plans), and also because it tends to attract a really diverse set of attendees (including both those who use Microsoft technology today, and a large % of attendees who don't).  The conference structure includes a healthy blend of sessions and interactive panels, and the layout and organization is designed to facilitate great conversations. This year's MIX is being held March 5th-7th in Las Vegas.  Ray Ozzie and I are both giving keynotes the first day of the event, and Steve Ballmer and Guy Kawasaki will be doing a keynote the second day of the event. The conference (and especially my keynote) is going to cover a lot of new web technology.  Attendees will be able to attend sessions covering: IE 8 IIS 7.0 ASP.NET (including ASP.NET 3.5, ASP.NET AJAX, ASP.NET MVC, and ASP.NET Dynamic Data)  VS 2008 and Expression Studio WPF Silverlight 2 And much more.... Channel 9 recently did an interview with me where I talked about some of these new technologies.  In Part 1 of the interview I talked about IIS7, and in Part 2 of the interview I talked about ASP.NET, WPF and Silverlight 2. Register Soon Or You'll Miss Your Chance MIX is held at a smaller venue then some of our larger events like TechEd and PDC.  This gives the conference a more intimate feel (which is fun).  It also means that it sells out each year, and once it is sold out it is really sold out.  Last year I received about 50 emails from people begging for tickets after it was full, and many people even flew to the event hoping to somehow be let in at the door (only to be unfortunately told they couldn't get in).  Unfortunately because of size constraints (and fire marshal restrictions) once it is sold out there really are no more tickets to be had.  Even my own team members get turned away if they haven't registered in time. This year's registration is filling up faster than any of the previous MIX conferences.  If you want to attend I highly recommend registering really soon to ensure you can go.  You can learn more about the event and register online here . Hope to see some of you there - it is going to be fun.... Scott