First time here? You are looking at the most recent posts. You may also want to check out older archives or the tag cloud. Please leave a comment, ask a question and consider subscribing to the latest posts via RSS. Thank you for visiting! (hide this)

September 2011 Blog Posts

10 articles on ASP.NET MVC Extensibility to land on Simple-Talk in the next months

If you are following my blog since at least a few years you know that one of my main interest is the possibility to extend ASP.NET MVC and fine tune it to fit your (and your team’s) needs.

One of my most popular posts is 13 ASP.NET MVC extensibility points you have to know, which I published almost 2 years and half ago (and was based on ASP.NET MVC v1). Still on the same subject I gave a two hours long presentation at Umbraco CodeGarden ‘10 Mvc Pre-Conf: ASP.NET MVC Extensibility.

To try and push the concept that Extending ASP.NET MVC is a best practice and a must for all web applications that are more than a simple demo, I signed up with RedGate to write a series of articles about ASP.NET MVC; series that will be published on their developers’ portal Simple-Talk in the course of the next months.

The 10 articles will cover most of the extensibility points of ASP.NET MVC, following the processing pipeline: from the routing and till the view (and the design time customization possibilities).

The first article has been published last week: An Introduction to ASP.NET MVC Extensibility, and contains also a wall-chart with all the processing pipeline of ASP.NET MVC.

The titles of the articles are not final yet, but here is a list of the topics that will be covered during the next months:

  1. An Introduction to ASP.NET MVC Extensibility (21 Sept 2011)
  2. ASP.NET MVC Routing Extensibility (9 Dec 2011)
  3. How to modify the way your controllers are created
  4. Filters (Auth, Action, Results) and FilterProvider
  5. Action extensibility (Action Method selector and Action Results)
  6. Customizing how data is fed into the controllers
  7. Validation (client-side, server-side and IObjectValidator)
  8. Custom Templates
  9. View extensibility: Custom view engines and view helpers
  10. Design time extensibility

For the moment it’s based on ASP.NET MVC 3, but will switch to ASP.NET MVC 4 as soon as it is released (if this happens before the end of the series).

And a big thanks go to the editor, Chris Massey, that help a lot with the style of the article and Eilon Lipton, which, as happened the other times he was my tech reviewer, caught all non technically perfect or unclear statements and helped setting them right. And to Andrew Clarke, the editor of Simple-Talk, for helping with the chart.

Also thanks to Hadi Hariri for the inspiration he gave me with his 2 talks about ASP.NET MVC at BeLux TechDays: ASP.NET MVC Deep Dive and Getting the most out of ASP.NET MVC.

Let me know what you think about the first article of the series, and if there are some extensibility you would me to cover in particular or some questions you would like to ask.

Hope you will find the series interesting.

Agile .NET 2011 Europe happens in 3 weeks and discount code

Last week I registered to the Agile .NET 2011 Europe conference, held in Gent, on 10 - 11 October, and I’m really looking forward to it. I think that if you live in Belgium (or near Belgium) and are into .NET development this is a conference you cannot miss: 2 days of sessions about Agile Principles and Software Craftsmanship with .NET flavor, and at reasonable price (350€ till end of September and 450€ later, using the coupon code, 300€ till the end of September and 400€ afterwards) and good (IMHO, better and cheaper) replacement for the cancelled StackOverflow DevDays in London.

Agenda

Featuring prominent Belgian and international speakers, the agenda will cover many interesting topics, both via standard talks and via openspaces, coding dojos and workshops. There will be a talk on Kanban with TFS, NuGet for the enterprises, NoSql, RavenDB, Node.js, Agile UX, Windows 8 Metro, and Kanban, XP, agile planning workshops and “playing”. And most importantly, there will be a lot of talking and community, which is the best part of such events.

There are 3 tracks and it will be difficult to choose which session to follow as they are all very interesting (I already found a few overlapping sessions).

How to reach Gent

Even if you are not in Belgium, reaching the conference is a piece of cake, Gent is only 40 minutes by train from Bruxelles and easy to reach from all the main Western and Central European cities with many flights per day, both with standard and low-cost flights. And with high-speed train to London, Paris, Amsterdam, Cologne and Frankfurt; and since it’s on Monday, you can arrive early in the weekend and spend some time sightseeing, both Gent and Brugge, and if the weather is nice, could even go to the seaside or bike around the Flanders.

Discount code

And as I said above, if you register using the discount code simonech you get a 50€ discount over the full price (300€ instead of 350€).

Hope to see you someone of my reader at the conference: if you do attend, please contact me and we’ll have a beer together.

Microsoft dev stack vNext from Build

Unless you are living under a rock, you have probably heard that two days ago, at Build, Microsoft unveiled the new version of Windows, named Windows 8.

Windows 8

This is revolutionary both from the consumers’ and developers’ perspectives. The UI is deeply based on the concept of the tiles of Windows Phone 7.5 “mango” and the Metro design language, and the API are now allowing applications to be written either in C#/C++ and the usual .NET/Win32, or using WinRT, basically an Object Oriented version of Win32 or, as someone says, COM done right, and C#+XAML or JavaScript+HTML/CSS. Here is a (bit blurry) diagram taken from the keynote.

Windows8Architecture_485458D4

You can go and play yourself with the developer preview of Win8 and all the tools for building Metro style app by downloading the iso and installing it on your PC or using VirtualBox especially useful if you own a Mac.

But I don’t want to talk more about Win8 as, even if I have to admit this is a huge step toward the future of UI, at the moment I’m mainly interested in web applications and in development process. So the rest of this post will be a collections of link to other interesting products released at Build.

ASP.NET 4.5 and ASP.NET MVC 4

Above everything we have the new full .NET 4.5 web stack, with ASP.NET 4.5, ASP.NET MVC 4 and Web Pages 2. My favorite new features are: automatic minification and bundling of resources (both JS and CSS) and native support for WebSockets. Also pretty awesome is the new mobile layout support in MVC4 and the inclusion of jQuery.Mobile inside asp.net mvc4, and strongly typed models brought to webforms.

I encourage you to go and read the detailed release notes:

If you are an MSDN subscriber, you can download the previews now, otherwise you’d have to wait till Friday for the general availability.

Some other useful links related to ASP.NET vNext are:

Visual Studio 11 and TFS 11 (and Blend 5)

The other new products are Visual Studio 11 (beware, it’s v11, not 2011), TFS and Blend 5.

Starting from Blend 5, I have to say that it’s unfortunately not available as stand-alone application, but only as part of the Windows Developer Preview ISO. What it’s so great about it is that it will not only support XAML, but also HTML/CSS/JavaScript. You can read more about it in the the new BlendInsider blog by the Expression team.

Moving on to Visual Studio 11, the main big new feature is the ability to write Metro style applications, and great new tools to help developing games. Read more about that new features.

For what concerns web development, they completely re-wrote the JavaScript editor and IntelliSense should pick up referenced JavaScript files (finally, now that is a core language also for the desktop), added support for HTML5 tags, enhanced CSS editor and better code formatting. And Smart Tags if you use Design View.

Also, there should be local database available directly from inside Visual Studio and IIS Express will completely replace Cassini. More details on the new features of Web Dev are available on the web dev tools team blog.

And Page Inspector brings the IE dev tools directly in Visual Studio, and integrates them also with server side code (not just HTML)

Finishing up with ALM and code quality, they added a nice Clone analysis tool, and better integration with TFS for code reviews and code differences visualization.

Finally TFS: finally embracing Scrum (the real one, not MS Agile), the new TFS provides a web based UI for managing team projects. Highlights of the new release are the Metro style UI and the web based Scrum board. If you don’t have a spare machine with the horsepower required by the full installation (2.2Ghz CPU and 10Gb of RAM), and don’t want to bother with keeping up with the updates of the server, you can setup a preview team project in the cloud at http://tfspreview.com/. There are also some interesting videos for an overview of the new features of TFS11.

What Next?

I think all big announcements have been made. But Build continues till Friday, and more than 250 technical session are being held. If you did not attend, all the recording from Build are available online on Channel9.

Exciting time ahead!!

7 books for a .NET Summer reading list (2011 version)

In the previous years “n books for a .NET Summer reading list” used to be the title of the book list post. Now, in the last of my 4 posts with books suggestions I am back to the original title. In my introductory post I said I would have listed only a few web development on .NET books. In fact there are only 2.

Web Development on .NET

Professional ASP.NET MVC 3

While Professional ASP.NET MVC v2 was mainly an update of the original professional MVC1 book, the third remake, due to the nature of the new features introduced in MVC3, is much more than that. It obviously covers Razor, the new validation features, the view and controllers' scaffolding and so on. But also introduces NuGet, the new package manager introduced with MVC3, but not only for MVC, and some content that were missing in the previous edition of the book, like Dependency Injection, Unit Testing, Extensibility and Security. Seems like this is becoming a good MVC book at the end. Also available as Kindle ebook.

Umbraco User's Guide

This is the first book on Umbraco ever published, and targets both developers and the umbraco admins. It covers all the aspects of Umbraco development, from the installation, to the setup of the development environment, to the best practices for developing Document Types and organizing templates.

If you are like me, and need to get up to speed with everything you need to know to develop sites with Umbraco, this is the book for you. And even if you did something already, but want to make sure you are on the right track with the best practices, this book will teach you some new tricks. Also available as Kindle ebook.

NHibernate

NHibernate 3 Beginner's Guide

As the title says, this is really the Beginner's guide to NHibernate. Starts from the basics of an ORM and builds up till more advanced scenario. But if you already know about NHibernate, even if you might find some interesting concepts or maybe some theory, I recommend you read the next book, still published from PacktPub.

NHibernate 3.0 Cookbook

If already know NHibernate, and want to get deeper into it, this is definitely the book for you: covers FluentNH, ConfORM, best practices to use NH inside ASP.NET MVC, and even touches the NHibernate Contrib projests (cache, spatial, full-text). It think this the best book on NHibernate around. Also available as Kindle ebook.

UX, Presentation, Blogging

Designed for Use: Create Usable Interfaces for Applications and the Web

Lukas Mathis, probably more famous as the author of the blog IgnoreTheCode.net, is probably one of the few UX/UI designer that I read: why? Because he is the only I know that doesn't write obvious advices or complains for the sake of it. I know that writing tutorials and "poems" that cover basic UI concepts is what the average audience want to read, but for someone with a bit of common sense they are too obvious. The book follows the same approach: instead of giving obvious advices (at least to me and to developers that don't only care about writing one line of code after the other), like the overrated Don't make me think, he covers all the techniques and also a bit of theory needed for the design of an application from the usability standpoint; and you'll be able to autonomously come out with the same advices the other books give you.

Have you ever heard the sentence "Give them a fish and you'll feed them for one day, teach them how to fish and you'll feed them for the rest of their life"? This book is about teaching how to fish.

Confessions of a Public Speaker

Scott Berkun gives out proven techniques for delivering doing kick-ass presentations.
108 5-star out of 127 reviews (and the 19 remaining except 4 are 4 stars). Do you need more?
And finally, to avoid misunderstandings: this is not about how to structure your presentation, how to write slides and so on. Also available as Kindle ebook.

Technical Blogging

Still to be published, but available in “beta” (10 chapters out of 16 are ready) this book promises to teach you how to keep a technical blog that is also read by people and that can earn you some additional income. Buy the beta version and get updates as soon as they come out.

That’s all for this summer

During the last 2 weeks I published a list of the 22 books I liked reading or that I’m planning to read soon.

Hope you found some good books to read for the next months.

5 books for developing on Windows Phone 7

After the Node.js resource list and the list of book for Arduino, the third part of the 2011 summer book list is about Windows Phone 7. The platform is still pretty young, and there are no books that cover both the feature of the device together with some best practices and, something that is important in phone development, the developer/designer workflow. For that reason this list includes also books about Silverlight and WPF.

Core skills

Silverlight 4 Unleashed

Even if not specific to Windows Phone 7, this book is one of the best (if not THE best) book about Silverlight. One of Laurent’s interests, being himself a crossover between a developer and a designer, is making the designer/developer workflow easier, for both parts. And this is reflected in this book, where he covers the MVVM pattern, and pays a lot of attention of the "Blendability" of your application (that is making sure designers can work on it in Blend and actually be able to see data in it). A plus is that this book is printed in color, both screenshots and code syntax.

One little nuance is that sometimes the author refers back to the SL2 book. You get a free pdf copy of it, so not a cost issue, but referring back to another book is a bit annoying sometimes. Also available as Kindle ebook.

Building Enterprise Applications with Windows® Presentation Foundation and the Model View ViewModel Pattern

Written by my friend relocated to Bermuda, it’s more a dissertation about how to write a LOB with WPF and MS libraries (Unity and EF are used). But it lacks a bit the MVVM part of the title. But if you want an introduction on all the pieces and how they fit together in building a Line of Business app with WPF this is good book. The author acknowledged the problem and committed on adding the parts on the MVVM and composite UI for free, in digital format. Also available as Kindle ebook.

Still from the same author is Applied WPF 4 in Context. A bit more practical, a bit more of best practices. But on WPF, so code will not work and many features are not available on Silvlerlight.

Advanced MVVM

I wanted to get a quick overview of the MVVM pattern and how it is usually implemented, so I bought this eBook to read it on my iPad with the Kindle app. I probably should have not read this book at the beginning, but a lot later when I had already mastered the basics of MVVM (as the title says, it's advanced MVVM).

But even then I got some interesting info, especially from the first 4 chapters, which are about WPF, the MVVM pattern in general and the architecture of the BubbleBurst application. Also chapter 5, about animating transition was a good source of information. But then the other remaining chapters are a explanation of the implementation details of how the bursts happen, and how the undo/redo feature is implemented, using a task based architecture: probably a bit too specific for what I was looking for. All in all I would say this was a good 40 pages read.

Specific to Windows Phone 7

Microsoft Silverlight Edition: Programming Windows Phone 7

This was the first book on WP7 available on the market. It was available for free last year, and was both about XNA and Silverlight. Now there is also a Silverlight only, and more polished version available for sale. It's Charles Petzold approach, so love it or hate it: it looks into more basic programming stuff, like core graphic primitives and controls, and doesn't make a lot of use of Expression Blend. But that's the approach that worked for him in all his books. It won't cover other topics like notifications and generally what it makes sense to do on the phone vs on the desktop. Also available as Kindle ebook.

Professional Windows Phone 7 Application Development: Building Applications and Games Using Visual Studio, Silverlight, and XNA

If Petzold's focuses on basic and core skills, this one covers all the peculiarities that the MS Press book didn't cover. Also talks about the philosophy behind the WP7 design and UI language (Metro). It covers all the features available in WP7 in very easy to follow plot. And at the end even covers some external frameworks that make development a bit easier. Unfortunately doesn't cover more advanced design topics, like MVVM or other best practices. But so far it's the best WP7 book out there. Also available as Kindle ebook.

Any thing I missed?

I know there are also other books on WP7 around, but these are the ones I liked the most. But I haven’t found a good book that covers developer/designer workflow with Blend.

8 books (and 3 kits) to get started with Arduino

A few days ago, as part of my summer book list post, I posted the resources to get started with Node.js. Another of my area of interest since one year is also Arduino and the so called “Internet of Things”.

What Arduino is

For those of you who don’t know what Arduino is, the short answer, taken from the Arduino website, is:

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.

Thanks to the great ecosystem of modules and libraries you could build anything, from a simple blinking led demo (this is the hello world sample of microcontroller programming) to a full-fledged, UAV platform capable of autonomous take-off and landing. Probably you are going to build something in between, but you get the idea of its potentialities. Without further ado, here is the list of suggested books. Why am I interested in that? Well… I’m going to build the aforementioned UAV, Arducopter. And I have a nice art project going on, that is based on Arduino.

Beginner level

Getting Started with Arduino

This book is written directly by Massimo Banzi, the inventor of Arduino. If you want to start playing with Arduino, and you are short on time or just want to have a quick look at Arduino to see if it something that could interest you, this is book you have to buy: 128 pages that will guide you through all the major features of Arduino. Also available as Kindle ebook. I also recommend you buy the Getting Started with Arduino parts kit which contains all the parts needed to complete the exercises of the book.

Beginning Arduino

Next step up in the list of books about Arduino is "Beginning Arduino". Still covering the basics of Arduino, it also covers how to interface it with LEDs, motors, servos, sensors and how to talk over the internet. Not a "build together with me a cool project" kind of book, but a bit more in depth compared to Banzi's book. If you read Banzi's book, or are already convinced of the goodness of Arduino, go without hesitation and buy this book. Also available as Kindle ebook.

Getting Started with the Internet of Things: Connecting Sensors and Microcontrollers to the Cloud

If you want to stay on the .NET side of thing, this book explains how to get started with Netduino (similar in concept to Arduino, but programmable with .NET Micro Framework and not compatible with it). But instead of covering how to drive motors, LEDs, servos, it builds a web client that reads temperature and publish it online via a webservice.

If you are a .NET developer probably you already know how to write most of the code in the book (it is basically sending a web request to a web service using the low-level networking API), but overall it's a nice book, easy and quick to read, and costs less than 10€. One nice use of this book is to use it as porting exercise once you are familiar with Arduino. Also available as Kindle ebook.

Intermediate

Arduino Cookbook

The latest of the Arduino books, is a series of recipes on Arduino. Nicely written, with lots of illustrations, it’s a very practical reference of how to connect any kind of hardware and solve problems you are likely to encounter while designing and building your own practical application with Arduino. Also available as Kindle ebook.

30 Arduino Projects for the Evil Genius

On the same line of the CookBook, but with more electronics in it, it shows how how to connect and interface to various HW devices via small "mono-task" projects. Also available as Kindle ebook.

Getting deeper

Building Wireless Sensor Networks: with ZigBee, XBee, Arduino, and Processing

This is not an advanced book (actually is a pretty beginners level introduction to radio connectivity), but I put it at the end of the list, among the advanced books, because it's very specific to radio connectivity with ZigBee and XBee, which you might not need unless you want to build interconnected devices.
Probably you are wondering why one should need to use radio when there are GSM and WiFi connectivity kits and you could use general internet development. The answer is mainly cost (a XBee shield costs less than a WiFi and GSM one) and power consumption (Wifi and GSM will drain your battery much faster than a radio).
If you need to use radio, this book is a must read: covers all the steps needed to setup both a point-to-point and a mesh network. Also available as Kindle ebook.

Practical Arduino: Cool Projects for Open Source Hardware

Once you think you are ready for more challenging project, you want to build any of the projects presented in the book, like a USB keyboard or touch control system, or you simply want to take inspiration from what the author built, "Practical Arduino" is a good book. But since it's only about building projects, I recommend you first look at the table of contents to see if the projects might be useful for what you are building. Also available as Kindle ebook.

Arduino Robotics

Finally, at the top of the complexity scale, there this book about building robots based on Arduino. Building a robot is probably the project that puts together most of the skills learned in the previous books, together with control algorithm and autonomous guidance. This book covers all of them, shown with projects of increasing complexity.
A better toc is available in the blog of one of the authors, the one that build the lake surveying robot (and of course wrote the chapter about it in the book).

Kits

Arduino is a Hardware device, and books alone will not help you go anywhere, since you need the device, and all the components needed for the experiments. Here there are 3 kits I recommend.

Getting Started with Arduino parts kit

This kit includes all the parts needed by the exercise in the Getting Started with Arduino book. This kit doesn’t include the Arduino itself, which you need to buy separately.

Sparkfun Starter Kit for Arduino

Contains the Arduino, and a few components (Photocell, thermistor, flex sensor, leds, RGB led). A convenient package to buy the arduino and some components to start experimenting.

SparkFun Inventor's Kit for Arduino

That’s the best kit available: in addition to the Arduino, you get some interesting components like motor, temperature and servos. And you also get a printed manual that explain step by step all the 12 experiments you can do with the components in the kit. And of course, since everything is assembled without soldering needed, once you finish you can re-use all the components for your own projects.

Is this list useful?

This list of books was a bit unusual for my blogging topics. I think in the future we’ll be surrounded by all kind of smart devices, and development will not only be relegated to the web, or the desktop, but we’ll need to start planning on porting our development skills also to these kind of devices.

Have you ever developed on a HW platform? Which are you advices? Did you find any other good book on the topic? Please comment.