Marc van Neerven


Marc van Neerven

The second life of XForms

Contrary to HTML 5 forms, which presents only a number of controls, XForms gives us a complete, MVC-style application model with built-in validation, support for multi-step forms (Wizards), repeating structures, a complete submission module (HTTP, Web Services, REST, and more), all using pure, fully self-contained, declarative XML. The W3C Forms Group initially designed XForms to be a replacement for the severely limited HTML forms specification. This plan was ambitious, and soon turned out to be unrealistic,...
Posted by Marc van Neerven on Friday, November 04, 2011 6:34:23 PM - 0 comments

How to check private sites directly using the W3C Validator

The W3C Validator service is tremendously handy for checking a site during development. The only drawback is that you have to copy and paste HTML code into the direct input field of the Validator, unless your site is being developed while being live on the internet (not very probable). There's a very simple trick however to be able to directly validate pages while surfing the site, and it comes as a standard feature in the 1.4 empty site. Create a restricted application page, call it 'W3C Validator',...
Posted by Marc van Neerven on Thursday, March 17, 2011 7:08:42 PM - 1 comments

Four new features that will make Smartlets even more powerful

Smartlets are modular, flexible building blocks. They make it possible to write fully self-contained, modular applications, have built-in Ajax support while being very suitable for scriptless environments, are localizable, and, last but not least, have a tremendous ease of deployment. Still, there was room for improvement on a number of levels. When developing Smartlets, you will have to decide what to parametrize (using Smartlet Properties). You will want to have consumers of the...
Posted by Marc van Neerven on Monday, August 09, 2010 11:41:54 AM - 1 comments

Must-read for jQuery Developers

Andy Croxall has written a great article about common misconceptions amongst jQuery developers: http://www.smashingmagazine.com/2010/08/04/commonly-confused-bits-of-jquery/  
Posted by Marc van Neerven on Wednesday, August 04, 2010 4:59:53 PM - 0 comments

Nice (Dutch) article about personalization

We're all into Smartsite Personalization these days, but let's not do so without a plan. This (Dutch) article on FrankWatching gives a nice overview and can help when implementing personalization in your sites: Het Persoonlijke Web: 4 manieren om je bezoeker gerichter te benaderen .  
Posted by Marc van Neerven on Saturday, April 10, 2010 5:18:20 PM - 0 comments

Creating a Twitter Smartlet

No matter if you like or use it, Twitter is hot these days. More and more sites use Twitter integration, either displaying a 'Follow me on Twitter' button or showing the latest 'tweets' on some subject or from some user. To accomplish this, you could simply take one of the jQuery Twitter Plugins . This approach is simple, but will simply fail when scripting is disabled. So what I wanted to do is create a Smartlet that uses jQuery/Ajax to refresh itself...
Posted by Marc van Neerven on Friday, February 05, 2010 8:55:27 AM - 0 comments

A note on jQuery releases

Since Smartsite iXperion 1.1, with Smartlets, Scf and the Web Toolkit, we include a version of jQuery with new releases. We are careful though in bundling the latest available jQuery version. At the time of this writing, jQuery 1.4 (and 1.4.1 only a few days later) has just come out. Obviously, this release looks  very appealing , but it also has a few breaking changes . What we have done in 1.2 is make it easier to update the jQuery version you wish to use in your site, by removing...
Posted by Marc van Neerven on Friday, January 29, 2010 6:28:08 PM - 0 comments

Include jQuery and Scf in the Smartsite Manager

For those of you who wish they had access to the powerful jQuery and Scf frameworks from within the Cms (the Smartsite Manager), here's a simple solution . Have fun!
Posted by Marc van Neerven on Friday, October 23, 2009 9:17:53 AM - 1 comments

New global storage layer coming in 1.2

Whenever you wish to store data globally and persistently in iXperion, you will either (1) create a Data Model on the Database Server, or (2) you will store the data as files on the server. In case 1, you are very lucky: you have enough database skills to create database tables, relations, views, stored procedures, and you are granted access to the database server by the db admin (or is that you?) In case 2, you're probably a bit lazy, or case 1 does not apply to you. In a database oriented CMS such...
Posted by Marc van Neerven on Friday, October 02, 2009 12:07:15 PM - 0 comments

Yes, iXperion 1.2 will come with rich personalization features

"A good web site will remember me. Perhaps the site will remember my favorite color scheme, or my preferred shipping address. Either way, if a site makes me feel like I’m not just another IP address on the web, I’m more likely to return in the future. Adding a personal touch for your end-users can make a difference." Scott Allen Smartsite iXperion 1.2 will have built-in personalization features. It will ship with a custom ASP.NET Profile Provider, using a rich datamodel for...
Posted by Marc van Neerven on Tuesday, August 18, 2009 11:07:47 AM - 1 comments

Building a Chat application in less than 100 lines of SXML code

The smartsite iXperion Smartlet Architecture and Client Framework (SCF) introduce new and exciting tools for developers to build state-of-the-art, flexible, robust and scalable applications. To prove this point, I have built an application that truly takes advantage of this new platform: a Chat Room. Read the article here or, dare to directly download the Chat Room (import xml) and figure it all out yourself.
Posted by Marc van Neerven on Friday, June 12, 2009 2:38:38 PM - 0 comments

jQuery namespaces: fixed

Writing jQuery extension methods is very popular, as you can see at http://plugins.jquery.com . As more and more extensions are being written however, the risk of having name collisions on extension methods is growing, and there is a need to be able to use namespaces to group functionality by company, area or type. Now, until the jQuery team decides to add native namespace support for extension methods, there is a nice plugin by Gilberto Saraiva, NameSpace . I tried it, but found that it does...
Posted by Marc van Neerven on Friday, January 30, 2009 4:33:49 PM - 0 comments

Some foundations for the upcoming Web Toolkit

As you will probably know by now, Smartsite iXperion is written with compliancy in mind, and the upcoming Web Toolkit should not be an exception to that rule. Having such an ambitious goal, a solid framework was needed that would help in rapid web development of Web 2.0-style components, whilst guaranteeing compliancy to XHTML 1.0 strict, WCAG and 'Web Richtlijnen'. It's time to reveal some of the features of this "Smartsite Client Framework" (SCF). The Smartsite Client Framework First,...
Posted by Marc van Neerven on Monday, December 15, 2008 9:08:23 AM - 0 comments

Smartsite embraces jQuery

Smartsite has recently chosen the  jQuery library as the foundation layer for its Client Framework. One of the main foundation layers for the upcoming "Web Toolkit" is currently being developed as jQuery extensions . According to the official jQuery site, "jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript"....
Posted by Marc van Neerven on Wednesday, November 12, 2008 9:50:06 AM - 2 comments

Targeting IE in CSS

When it comes to writing good CSS that targets the mainstream browsers, I feel your pain. We all know that IE 6 and 7 don't particularly conform well to CSS2, and lots of hacks and tricks exist to work around the quirks. There's one trick I came accross recently that is particularly efficient and simple to implement, using IE conditional comments and the #IEroot selector. Read more at http://www.positioniseverything.net/articles/cc-plus.html  
Posted by Marc van Neerven on Thursday, October 09, 2008 11:48:37 AM - 3 comments

Graceful Degradation vs Progressive Enhancement

In a nice article on ALA, Aaron Gustafson writes about the subtle differences between Graceful Degradation and Progressive Enhancement. "It's a matter of perspective" http://alistapart.com/articles/understandingprogressiveenhancement  
Posted by Marc van Neerven on Tuesday, October 07, 2008 1:59:27 PM - 0 comments

Intermediate caching

The sitemap macro has a minimumbrowselevel parameter for showing restricted content when users are logged on. However, when you use a sitemap in standard user-interface elements such as collapsible html menus, you may wish to cache the sitemap macro to minimize the overhead the menu causes. You will find that simply wrapping the sitemap macro in a cache macro is not feasible in this situation, because the cache knows nothing about the current login status and you will end up with a sitemap that doesn't reflect...
Posted by Marc van Neerven on Thursday, October 02, 2008 3:46:02 PM - 0 comments

If you can't beat them, join them!

Following up on two earlier articles I wrote (ASP.NET gets no Respect? and Script 2.0: making the right choices), I was pleasantly surprised to read a post by Microsoft's Scott Guthrie himself , stating that Microsoft is embracing jQuery and will even integrate it in Visual Studio 2008: "I'm excited today to announce that Microsoft will be shipping jQuery with Visual Studio going forward.  We will distribute the jQuery JavaScript library as-is, and will not be forking or changing the source from...
Posted by Marc van Neerven on Monday, September 29, 2008 9:15:38 AM - 0 comments

ELBA rocks!

Hidden away somewhere in the Smartsite iXperion Documentation is a page about ELBA, the Element Layout Block Approach for Site Building. But fear not, ELBA is actually quite nice. She won't bite you. What is ELBA? ELBA stands for a higher level of abstraction in Site Development, and creates a highly flexible and maintainable site architecture. Separate layout and style from content and functionality. Using ELBA, you create near-empty Render Templates, holding only a reference to a Layout block System...
Posted by Marc van Neerven on Thursday, September 18, 2008 11:42:40 AM - 0 comments

Use the defaulttype attribute on the publications element in the Smartsite.config.

When you add a Smartsite iXperion channel, the channel will not automatically be published and available for browsing. You will have to edit the smartsite.config and add the channel as an iXperion publication: That is, unless you specify the defaulttype attribute on the smartsite.config publications element: This way, new channels will directly be available. Save yourself some pain and add the defaulttype attribute right now!
Posted by Marc van Neerven on Friday, September 12, 2008 11:27:00 AM - 3 comments

ASP.NET gets no Respect?

Rick Strahl's Web Log provides a variety of .NET development topics with focus on ASP.NET and enterprise development. Rick has written an elaborate article on  why ASP.NET has a difficult time in being recognized as a great platform in the world of cool startups and social networking sites. There are many interesting points in his reflections, but one observation that immediately got my attention is that Microsoft is "stuck in the mud" with its "(...) bulky and clumsy ASP.NET AJAX framework which in a...
Posted by Marc van Neerven on Friday, August 15, 2008 9:24:11 AM - 0 comments

More on ASP.NET performance

In an award-winning article on CodeProject, Omar Al Zabir , the co-founder of PageFlakes ( http://www.pageflakes.com ), goes into great depths about how to "squeeze out every drop of performance out of" ASP.NET. Omar addresses the following topics:ASP.NET pipeline optimization ASP.NET process configuration optimization Things you must do for ASP.NET before going live Content Delivery Network Caching AJAX calls on browser Making best use of Browser Cache On demand progressive UI loading for fast smooth experience...
Posted by Marc van Neerven on Thursday, July 10, 2008 10:18:28 AM - 0 comments

Introducing Native ASP.NET pages

RC2 will come with a new ASP.NET integration solution: Native ASP.NET pages (NAP) . For those of you who did not have the opportunity to visit the last tech briefing, here's a quick overview: NAPsimply stores CMS itemsusing thefiletype field to specify the ASP.NET type, such as .aspx . How NAP works Now, let's assume we select .aspx as the file type. When a request comes in on the web server, the file extension will trigger the ASP.NET page HttpHandler , not the Smartsite one. Tomake ASP.NETcall into Smartsite,...
Posted by Marc van Neerven on Monday, May 05, 2008 2:54:46 PM - 0 comments

Script 2.0: making the right choices

One of the new concerns amongst CMS web developers in Enterprise environments is how to generate compliant output and follow web guidelines ( http://www.webrichtlijnen.nl/english/ ), while embracing all the new technology available to create rich user experiences. We're all keen on using AJAX, JSON, rich controls using lots of scripting and CSS, and many of us are deploying one or more of the scripting libraries such as prototype , jquery , mootools , ext and ms ajax , but how do we meet the standards defined...
Posted by Marc van Neerven on Monday, April 07, 2008 9:09:57 AM - 0 comments

Best Practices to Improve ASP.Net Web Application Performance.

Performance tuning can be tricky. It's especially tough in Internet-related projects with lots of components running around, like HTML client, HTTP network, Web server, middle-tier components, database components, resource-management components, TCP/IP networks, and database servers. Performance tuning depends on a lot of parameters and sometimes, by changing a single parameter, performance can increase drastically. Read the full article on http://www.dotnetfunda.com/articles/article45.aspx .
Posted by Marc van Neerven on Thursday, February 28, 2008 11:06:16 AM - 0 comments

Using the Region macro for late SXML execution from ASP.NET (updated)

We previously discussed using virtual Master Pages as a great way to re-use your Smartsite Site design from within ASP.NET applications. However, since ASP.NET compiles every page every time the source is modified, dynamic SXML instructions in Virtual Cms files are lost in the sense that their static result is used as the source for the ASP.NET compilation model. This is why we introduced the region ASP.NET webControl: This code in an ASP.NET page would make sure the Smartsite Page Processor was called during...
Posted by Marc van Neerven on Friday, October 19, 2007 8:02:49 AM - 0 comments

Page-local translations, reborn...

An old friend named PageLocal Translation is back in town. Although chances are that you will not recognize him (he's nothing like he used to be), friends will be friends, even more so after you've noticed what he's been through and what's become of him! Example 1 ...so we can use the following syntax: Example 2 ...resulting in: Conclusion Page-local translations are ideal for modularizing your business logic. They behave exactly like normal translations but are scoped to the current page rendering. Consider them...
Posted by Marc van Neerven on Friday, October 05, 2007 5:00:55 PM - 0 comments

Viper just got a boost

We all know about Vipers. Together with XML syntax macros, they make up the SXML language. Without Vipers, SXML would be a whole lot more verbose, since Viper syntax is "XML-neutral", i.e. can be used anywhere in XML, including attributes. Below the surface, each Viper method has a matching .Net class method doing the real work. This mapping takes place during runtime, since SXML is a very dynamic language. The most obvious technique used to invoke the actual .Net code has been Reflection , but we also know...
Posted by Marc van Neerven on Friday, August 31, 2007 9:21:22 AM - 0 comments

TestSuite: the next level

As small a change it might seem when you look at it, the TestSuite has recently undergone a major upgrade under the hood: it now hosts a full featured ASP.Net server. Finally, anything that would render under IIS will do so under the TestSuite, including postprocessing modules like the ImageProcessor and the PDF Generator. Still with me? Then let me tell you that what you just read is besides the truth. Due to the fact that an ASP.Net runtime can only be launched in a new, isolated...
Posted by Marc van Neerven on Thursday, August 23, 2007 3:24:36 PM - 2 comments

Everything you always wanted to know about ASP.Net integration but were afraid to ask

SmartsiteiXperion Publication Serverisbuilt from the ground upas a .Net application that can be hosted inside an ASP.Net environment. As you would probably guess,Smartsite requests are handled using an HttpHandler registered in the web.config. HttpHandlers are responsible for the complete handling ofthe request-response pipeline. ASP.Net web pages (mainly .aspx files) are handled using a different HttpHandler, mostly defined as a default in the machine.config. Now, let's talk about the options you have when...
Posted by on Wednesday, August 22, 2007 9:55:51 AM - 0 comments

Calling Vipers using XML

The Viper syntax is nicely concise, intuitive and flexible, and it has one other major advantage: it can be used within XML attributes. Sometimes however, you find yourself in a situation where you want to call some Viper method with parameters that contain XML/HTML, or at least large inline strings. In these cases, you can use the Viper macro: You can call any method, including translations, this way, so you don't need to first create buffers using macros anymore. Note This macro has beenremoved in RC1. In...
Posted by on Thursday, July 26, 2007 1:51:06 PM - 0 comments

Placeholders to the rescue

Smartsite iXperion offers a different model for delayed rendering using the Placeholder Macro. Placeholders can render in place or using the Viper method "render()", but they offer one big advantage: you can add data to them from anywhere using the extension Viper syntax "page.Xid>.<methodname>()". In the example shown below, a placeholder is used to collect all errors that occur during&amp;nbsp;rendering of the content data: Internally, the Placeholder macro works as a...
Posted by on Tuesday, July 24, 2007 4:44:01 PM - 0 comments

Viper Intellisense

Viper intellisense has just been added to the CodeEditor. It's a very cool productivity feature that you will immediately embrace: And, since Translations are also vipers, you get it there as well, provided that you add the call syntax to your translation code: To go even further, you can add remarks to your translation.arg() calls in the replacement area of your translations. These will translate into descriptions in the intellisense tooltip:
Posted by on Tuesday, July 24, 2007 4:02:09 PM - 1 comments
All Blogs
Johan Blok
Features, projects, ambitions
Ad van der Kolk
About van alles en nog wat
Vincent Baaij
Showing it, Making sites with it, Adapting it, Refining it, Telling about it, Selling it, Investigating it, Teaching it and Expanding it.
Johan den Ouden
Smartsite storyteller
Demian Buijs
The art of Smartsite iXperion
Marc Derksen
What is happening at Smartsite R&D.
Marc van Neerven
Marc's shared thoughts...
Twan Meijerink
About new projects, quality assurance and me ;-)
Douwe de Wilde
About security, maybe more...
Mike Perquin
About WCF, Outscaling, database maintenance (SQL server), etc.
René Pronk
while (true);
Erwin Rijss
About building sites and more...
Recent Blog Comments
Ruben Verschueren
30 January 2012, 15:31
I get an 'operation has timed out' error (even for the examples). however if I browse to the uri's...
Marc van Neerven
12 August 2011, 16:50
Added a new (Web-guidelines compliant) download.
Marc van Neerven
12 August 2011, 14:33
Just added an update (3.0) which produces compliant XHTML and has been adapted for strict Web Guidelines...
Johan den Ouden
10 August 2011, 10:38
Uiteraard is bovenstaande code ook in een virtual assembly te gieten zodat een dll niet meer noodzakelijk...
Marc van Neerven
02 August 2011, 14:56
Small update: data retrieved by the Twitter search query has to be encoded for presentation: Replace...

Stay in Touch
Profile
Latest additions
Workbench beta has expired
Hank Brandwijk, 11 January 2012, 16:53
Smartsite iXperion 1.4 build 4 has been released! locked
Twan Meijerink, 02 December 2011, 11:04
The second life of XForms
Marc van Neerven, 04 November 2011, 18:34
How to hide a property in a custom module? locked
Peter van der Waal, 17 October 2011, 09:31
Content, content, content...Waar halen we het vandaan?!
Ad van der Kolk, 07 October 2011, 17:48
Microsoft Certified Partner Logo