The series of MVC/C#/LINQ/Combres screen-casts (in Vietnamese) I produced for Microsoft Vietnam a while a go. Microsoft Vietnam recently allowed CiOne to distribute on their website so that everyone can access for free.
Last week, I conducted a training for customers of Microsoft about ASP.NET MVC 2. The training took place at Microsoft’s office in Ho Chi Minh city. The slides used for the training is below.
Last Tuesday, I spoke at the Visual Studio.NET 2010 launch in Hanoi. It was a big launch with about 400 attendees. I hosted 2 sessions, one about ASP.NET 4.0 (including web forms, MVC, AJAX and dynamic data) and another about C# 4.0 and PLINQ. On the following day, I spoke at Microsoft Vietnam’s office about building scalable .NET web applications to about 40 .NET architects and developers in Hanoi.
In general, it was a great trip to Hanoi and I had a lot of fun speaking and meeting many people there. The sessions by other speakers were really great. I was particular impressed with what Silverlight 4.0 and SharePoint 2010 had to offer.
You can find the slides and sample code I used for these sessions below.
Sample code can be downloaded here
Some pictures taken (click to view larger images)
This is truly a month of release. In fact, I released Fasterflect 2.0 and Combres 2.0 within the past 10 days. And now, it’s ASP.NET MVC Validation Library 1.3. It’s not like I suddenly have all the time in the world to push the releases of these libraries. Instead, code gets accumulated over the last 3-4 months until they happen to be done at the same time. Anyway, a couple of notes about this release of ASP.NET MVC Validation Library.
First and foremost, if you are using ASP.NET MVC 2.0, then you can stop reading. This library is not for you. Really, ASP.NET MVC 2.0 comes with a highly robust and flexible validation functionality built-in already, so there’s no reason to look for a 3rd-party library which has nothing more to offer. That said, if you are still stuck with some ASP.NET MVC 1.0 legacy apps, like me, then my library can be useful.
If you are not familiar with this library, please refer to this originally introductory post to learn how to use it. Because I haven’t taken the time to posted about the all of changes since the release mentioned in that post, I’m doing it now.
Changes in 1.3
- Support custom server-side validation
- Support remote validation (integrated with jQuery Validate’s remote method)
- The design of validation attributes is improved to make addition of new validation attribute much more intuitive
Changes in 1.2
- Support RegularExpressionValidatorAttribute (use the property ClientFunctionName to specify the corresponding jQuery Validate’s function)
- Allow specify a custom form validation function (i.e. instead of the default $(formName).validate())
- Support PropertyComparisonValidatorAttribute (equal operator only)
- EntityValidationException adds constructor to accept custom key-value pair (i.e. useful for non-model/custom validations)
- Support specifying custom ready function (i.e. useful when using a 3rd-party script loader, like Google’s, to load jQuery)
- Support specifying custom client ID (in case the client-side ID is different from the client-side name (used for posted value)
Changes in 1.1
- Eliminate the need to specify type parameter when invoking Validate() method
- Allow users to specify prefix when populating model state with error messages
That’s it for the post. That’s it? Yes, that’s it. The library is ridiculously easy to use, so you don’t need another 10 pages of tutorial here. Instead, the old introductory article, together with the above change notices, should be enough for you to start working with the library. Okay, it might not be that easy. Don’t worry yet, the download of ASP.NET MVC Validation Library comes with CHM API documentation and a sample application that uses almost all features of the library. So, download and explore the library yourself. And post here if you have any comment or feedback. Enjoy!
After a couple of months working on and off on this project, I was finally able to release the next major version of Combres, a .NET library which automates the application of many website optimization techniques in ASP.NET MVC or ASP.NET Web Forms applications.
Access to this CodePlex page to download Combres 2.0, together with source code, CHM API documentation, sample applications and config files.
For a full introduction to Combres 2.0, refer to this Code Project article.
Enjoy the improved performance!
Combres (i.e. Combine-Resources), is a very easy-to-use library which can be used to automate many steps that you would have to do yourself when applying many performance optimization techniques in your MVC and Web Form ASP.NET applications. This library is formerly known as ASP.NET MVC Client-side Resource Combine Library until I decided to retire that boring and lengthy name. Combres is also a major upgraded over the previous version. In a nutshell, the following features are supported by Combres:
- ConfigConfiguration settings are specified in an XML file which is monitored by Combres so that changes get noticed and applied immediately.
- Resource files can be static files in the web server, dynamically generated files, or remote files from external servers or web applications.
- Allow files in resource sets to be combined, minified, and gzipped before sending to browser. All is done using 1 single HTTP request per resource set. (Refer to Yslow’s performance rules #1, #4 and #10 to know why this is useful.)
- The minification part is performed by the great YUI Compressor library.
- Generate proper ETag and Expires/Cache-Control headers for every response as well as support server-side caching. (Refer to Yslow’s performance rules #3 and #13 to know why this is useful.)
- Integrated with ASP.NET routing engine and thus work equally well for both ASP.NET MVC and ASP.NET WebForm applications.
- Support Debugging mode, which won’t cache or minify contents at all to facilitate debugging.
- Extensibility via the filtering architecture. Anyone can easily add more functionality to the Combres engine by writing a custom filter. There are 2 built-in filters in the 1.0 beta release, which I will describe in this article.
I wrote about how to use and enhance this library in this Code Project article.
You can also get the binary, source code and sample from these links:
Refer to the project CodePlex page for detailed usage and binary/code download. The library uses the great YUI Compressor library for the minification part.
Hopes it helps!