
Day 1
After arriving at Geneva, we drive to Neuchatel where all the DNN EU members are gathered in a nice restaurant by the Lac Leman. Great first impression as everyone speaks English and DotNetNuke! I seat next to Salar, founder of SalarO, a DNN business in London where he and his team develop great applications around Apple IPhone. Benoît Sarton – owner of Dotnetnuke.fr - joins us a bit later. After Peter has sorted out the bill issue, we all move to our hotel situated in the heights of Neuchatel. Time to go to bed! We crash as snow keeps falling down outside, promising great slopes in the coming days...
Day 2
Alarm rings at 8. Huuugh! No time to feel sleepy though. Swiss people have great breakfasts, especially their porridge. Only Jan gets unlucky with an egg that turns out to be raw. Time to make a move to the big room where Sebastian has already installed the beamer: the First European DotNetNuke Meeting is about to start. As we present ourselves, latecomers arrive. Erik welcomes Vicenç Masanas who came all the way from Barcelona.

Who are you? Why are you here? What outcome do you expect from this gathering? Such are the questions everyone starts answering. Seems like we have a common goal: bring DotNetNuke further thanks to our European insights and culture. Benjamin, Philip and Johanes from ITM Germany look pretty busy closing a deal. Jean-Sylvain fixes code issues with a client back in Paris. No surprise that even during the seminar, business remains everyone's priority.

Before lunch, everyone has presented himself and a decision is made. Localization being the main topic, we'll discuss it together and then split into smaller groups. Dutch, German, French, Spanish, Austrian… It is indeed the right place to talk about localization! The workshop has hardly started and people already discuss, react, agree or question.
Just before lunch time, Jean-Sylvain goes to the board to draw a scheme of main issues to address.

Localisation can be at many different levels between statically-localized content (well handled by the platform) and custom-localized dynamic content (the developer's responsability).
Everybody agrees that critical tasks should be prioritized for now.
Here's the data hierarchy as exposed by DNN and the specific content modules:
- Portal
- Page
- Module
- Record
- Record Field
At each level, the webmaster may choose for each language:
- to create a dedicated entity which offers localization at the current level
- to share the level's common entity, which involves localizing its fields and move the decision to lower levels
Everyone agrees the wokshop should focus on upper levels and address mainly DNN entities field localization.
A chicken curry and a few coffees later, we're back. "Time to split, gentlemen", announces Sebastian. As an architect of our core libraries, Jean-Sylvain goes to the Localization group where he can bring value. I join the Marketing group which must define a strategic approach for DNN-EU. The 3rd group will present evolutions and plans for the Store Module.
Night comes quickly. Time to have a break. Workshops will continue tomorrow. A break? What break? asks Peter who already has his snow rackets on. Indeed, tonight's dinner is fondue, a typical Swiss meal. And a good fondue is a fondue you have to deserve. So here we are, DotNetNukers in the snow, less at ease with our rackets than with our laptops. Soon, we're completely Snowcovered.

Exercise does some good and we all arrive in great shape to have a wonderful meal with melt cheese, bread and white wine. We all know each other now and conversations are all over the table.

Jean-Sylvain explains the principle of Aricie's URL Rewriter as I'm losing my bread into the fondue. Needless to say that the return is a bit more chaotic. The landscape covered with snow looks like a gigantic fondue where each one of us would be a lost piece of bread. We eventually manage to the hotel thanks to Peter's wife who is a great guide.

Day 3
Back to the basics: Porridge, eggs (boiled this time) and coffee. Today is the big day: every group will be presenting their work. As Marketing group, we identified key questions: Who is our main target? DNN Professionals? Future clients? What can the DNN European Network do for them? What are some real world examples of DNN ? Is DNN easy to use? How does it work? How do I get support? Our marketing strategy will have to answer these questions to present DNN as THE business solution for web applications in Europe. We feel confident in our technology and marketing looks pretty natural. Isn't DNN the #1 Microsoft platform?
Presentation time. Vincenç and his team present their results on localization:
- Dynamic content localization is left over to Charles and the core team's architecture revamp
- Focus is put on portal parameters, pages settings and module settings field localization to integrate most things that either Mauricio's DnnLocalizator or Erik's Apollo modules currently take care of
- Storage: 3 candidates structures. The last one is preferred for extensibility and flexibility:
- dedicated localized tables related to the core tables, with specific columns for the fields to be localized
- dedicated localized tables related to the core tables, unstructured, as a key/value storage
- A mutualized table, as a general "property bag", with a compound key composed of entity type, entity id, entitiy field name and locale, and content columns of various size for optimizations
- UI: left for further discussions though Jean-Sylvain propoes a possible implementation: extend PortalModuleBase with a new IFieldLocalizable interface, so that DNN takes care of wrapping the existing edit forms with language selection controls and corresponding command buttons, whereas the legacy form only need to implement the interface with collecting and binding the localized values.
- API: 2 possible solutions:
- Have a dedicated sql function in charge of providing the localization, and provide new specific sprocs which inject the extra selectsthrough function calls right within the current queries logic
- Leave the existing non localized db logic untouched, and have a dedicated .Net function in charge of performing a dedicated select and updating the entities at hydratation time. Jean-Sylvain pleaded for this solution

Then come Stefan and Benoît to present what the Store module should be like in the near future.

Timo and Vincent finish with the marketing ideas we'd like to develop in the future for the European DNN Network. How can we both benefit the DNN community and create a strong European Network of Professionals? Key strategic decisions are made round the table and we decide to continue our task force through the website: http://dnn-europe.net
Time for Sebastian to wrap it up. Given the productive work and the quality of presentations, this seminar definitely is a success and everyone goes back home with interresting insights to develop as a group. No doubt there will be a DotNetNuke Europe Meeting #2. Maybe in Barcelona - everyone seems to love the idea. Now some have to rush to catch a train, a plane or a bus. A few others are already on their way to the Alps. Great snow is expected tomorrow.