September 2005 - Posts

Inspired by the key-note I went to the sessions about “LINQ” (.NET language integrated query) and “C# future directions in language innovation” to see more of the possibilities. So, here is a little summary of two sessions by Anders Hejlsberg.

Linq is the SQL integration for all classes which implement the IEnumerable<T>.In a demo Anders showed us the power of using a query language on a collection. For example; take a customer collection in mind, order them by name, select only one state and create a join with a different collection within … in just a few lines of code … not to mention that’s its all type safe.

DLinq (Date Linq) can be seen as the next version of ADO.NET. Using attributes above classes relate a class to a database model. DLinq can communicate directly to you’re database or with the help of classes. These classes can either been generated as a partial class or been written by you. You can choose to use SQL queries generated (efficient; only that columns are used which are selected) by DLinq or use stored procedures (no plans for automatic generation).

XLinq (Xml Linq) is the query language again XML DOM documents which makes it much easier the do queries on XML data. When you’ve a collection you can also create XML document in a very easy way. The current downloads contain a sample application where all the possibilities of Xlinq and Dlinq are expressed in scenarios.

One of the design goals for C# 3.0 is “Integrate objects, relation and XML”; pretty necessary when you are creating Linq. Anders went geeky on all this new features as Lambda (c => c.Name), Extension methods (static void Dump(this object o);), local variable type inference (var x = 5;), Object initializers (new Point { x = 1, y = 2 }), Anonymous types (new { c.Name, c.Phone }), Query expressions (from … where … select) and Expression trees (Expression<T>). I admit … at some points he lost me …

Linq resources from Barry Gervin, thx. Ramon

Excellent session by Jochem Seemann about DSL (Domain Specifiek languages) and the support in Visual Studio. He started with the statement: “We (MS) don’t think we can create all the designers you need. Some of them you need the buy from 3e party vendors or you can create designers yourself”. Yeah right … create yourself … if I have some time left … At this point I was a little bit skeptical about the possibilities until he showed a demo.

In his demo he created a activity designer based on the DSL tools (Beta 2 today available), customized it and used it in a project. It goes further, with the help of the DSL mapping tool you can create dependencies between the different diagrams and theoretically drill down from requirements to the actual source code. In beta2 of the DSL tool you can create/customize the use-case, activity, class diagram and simple architect designer

It seems very simple to customize an out of the box diagram for you’re project … awesome … Version 1 of DSL will be available Q1 2006, version 2 will ship the next release of VS. Ilske: start downloading beta2 for the upcoming project.

Links:

Labs.msdn.microsoft.com

I have to recall this session from my head because the slides are not yet available for download, and after the great party (as Rene mentioned) this is a little bit difficult. So here are some things for me to remember. I went to this session because of the use of Biztalk 2006 in the next project I mentioned earlier and because the confusion with WWF (Windows Workflow Foundation).

So first I saw some new features working in a demo. Creating a form in Infopath sending the form direct into Biztalk and trough email approved or rejected by some person. It all worked fine without to write one single line of code.

What about the correlation with WCF (Windows Communication Foundation). There is no need for a direct implementation of WCF because all the protocols WCF support already exists within Biztalk. But in further releases this part of Biztalk could partially been replaced by WCF.

So is the WWF (Windows Workflow Foundation) going to replace Biztalk ? It seems that the WWF is similar, in a functional matter, to the orchestration part of Biztalk. And in further releases this part of Biztalk is going to be replaced by the WWF. When to use Biztalk or WWF ? When you’re creating business apps which ‘stays’ within you’re organization, you’re workflow doesn’t contain long running processes and all the endpoints are supported in a familiar way use the WWF, otherwise use Biztalk.

Wendy … Manou … please help ….

 

Yesterday I followed some sessions about all new UI interfaces which can be created within the new Windows presentation foundation (WPF). During some demos and at the hands on labs sessions it seems that all new graphics had to be build with XAML by hand. Not by the use of a graphic interface, no just by writing the XAML by yourself. Well a little circle which makes nice 3d rotations can be done, but when you want a slicky interface it gets really complex … I don’t ant to do that … Rene and Erwyn did make fun out of me, because programming in XAML is the thing to do.

Today at the General session one new product was presented and demonstrated, namely Microsoft Expression with three editions Graphic, Interactive and Web designer. And you know what, while Rene and Erwyn are going to hack into XAML I will use Microsoft Expression to create the XAML files for me. There is only one problem; I am not graphical designer and I feel fine by that. The idea is that designers will create the user interface using Microsoft Expression, they can create their slicky, funcky, smoothy interfaces and expressions will create the XAML file for you. The designer passes the XAML file (actually they are in one solution) to the developer and voila; the developer only has to implement the things he is good as: CODE.

They showed this is a great demo (designer vs. developer) and is all looks very good.

Today we finally did receive the goods, 1 five pack DVD set with 30Gb of software. I'm trying to pretend as a good nerd, so when I finally arrived at my hotel at 8:30pm, first thing to do … installing the goods. Trying to install VSTS Beta 2 … damn … it needs SP2 for Windows XP. So looking into my own DVD library, found it, install it, 5,6,7,8, 9 percennnntttt …… (I fell asleep) …… 10:00pm I woke up … aahhh finally SP2 installation has been finished. Next thing: installing VSTS Beta 2, 10, 11, 14, 20 percennnnrrr … (I fell asleep again) … 11:09pm I woke up by the reset beep of my laptop … dawn fell asleep twice, what’s wrong with me. Normally I never fell asleep before 01:00am, what’s happening. This morning I all figured it out. I think it’s a hidden feature in Windows Vista. Al those flying, fading, scrolling and moving Windows are hypnotizing me … I don’t know what this new feature leads us to but it didn’t gave me more productivity … :-)

 

Not it’s not a typo, Ron Jacobs just prefers the term SO instead of SOA because all the hyping around it. Again an introduction to SO, boring ? No, not the way Ron is explaining it. He gave a very clear explanation in the four tenets of SO using a country with border as metaphor. After that 2 anti-patterns in SOA, namely 

1. CRUDy interface; crud operations on the webservice interface just as you did when designing components with stateful conversation and operations which require multiple messages to complete the operation.

2. Loosey-Goosy; Trying to build a flexible and extensible service (for instance a method to query the database at the interface, DON’T)

And naturally 2 patterns:

1. Document interface; How to define a simple well to use interface ? Simple; create a response and request document (message) for each method.

2. Reservation; Maintain data consistency across long running processes. Prefer not to use the composition patters because you can’t rely that a service will composite a transaction. Use reservation by sending confirmation after de operation toke place. Take care off all possible outcomes (confirmed, cancelled or timed-out)

After the intro Arvindra Sehmi and Beat Schwegler gave a presentation on Modeling & Messaging for Connected Systems based on real life cases. They added a service model (next to the business and technology model) in their modeling strategy. They showed how to use this model with the use of UML techniques; Looks very use-full.

VSTS integration of wizards which create a solution and files that you need for the best practices of a SO implementation, wizard is known as WS-BAT. Couldn’t find anything on the internet except for this link.

Last subject fot today “the composite UI application block” typically useful for composite smart clients. These are clients which have discrete independent yet cooperative functional pieces. Looking good for this type of application.

Bill Gates started the Key note at the PDC 2005 with al little movie where he shows the recruitment procedure at Microsoft. LOL … Bill Gates acting in his younger years with a cool dude besides him, even a dancing part … picture a dancing Mr. Bean … you have it … didn’t work … take a dancing nerd ... LOL

Very fast demo of Microsoft Vista … it’s just too much to write down, you’ll have to see it … one thing though; within our company we need more graphical designers to do this right (probably working with Macromedia right now). Jim Allchin gave a demo of a tool within Windows Vista which monitors the usage off all programs and collects this information. This information is used next times you start Windows and this tools starts loading most used programs, so when you start-up you’re programs there is a performance boost. Another nice feature; you can use use you’re USB memory stick to extend the memory of Widows Vista.

Office 12 with all its new features are based on the fact: “Features that users want are already in the current versions but they cannot find it” So they changed the UI (especially the toolbar and menu part) to let the user find the features much easier. And a lot of predefined set of

They showed us a very nice framework for reading date out of you're database, no more T-SQL, stored procs and creating a datalayer … No, just add some attributes above you're classes and fields which represent a table in the database and query them in C# code. Ready to go … very nice … they also gave is a name LINQ

Microsoft has assigned a team to create a real life demo using all new technologies. In this case Avalon for the UI a WCF for the communication, named Max (like my son, how nice). “Real life” not for my line of business. Anyway it worked pretty well with a very slicky interface. 

One minor issue at de keynote, Jim Allchin showed the i-mate JASJAR which we all could have form only $149 dollar in stead of $1000. Sold out under 2 hours, even before the key-note was ended. What was there stock … 100 … Look at the bright side, I can spend $149 dollar to something else ….

There are times at the PDC 2005 that you must visit the restroom, after lunch was such a moment and what happened … darkness … total power failure … when I was in the restroom ... 10 seconds later de emergency lights went on. I shall spare you the details except one; the soap dispenser still works but there was no water. The electronic device on the tap needs power to see my hands … no water … only soap. After one hour the power was restored in de conference center and we all went back to the sessions. So what do you do in the meantime … take some picture.

Dutch newslink on power failure

 

After the PDC I’m starting with a new project. At this project we’re going to use all new tools Microsoft has available (VS 2005 TS, SQL 2005, Biztalk 2006 and maybe Indigo). For this reason my first day is going to be all about Team systems (dawn, Team system is without the S) this time not the into’s but a real case scenario. Session was given from 3 point of view, namely Project manager, Architect and Developer (occasionally the tester was mentioned J)

Team system gives the project manager finally the control he was searching last years. No longer: my work is finished for about 80% which was the same last week and the week before that, but accurate productivity numbers from the project. Using his own tools (Excel, Powerpoint) to manage work items and some very nice report: such as:

  • Feature creep report a.k.a. planned and unplanned features. In a timeline you can when the unplanned features take overhead on you’re projects.
  • Code churn, based on (MS) statistics it risks you’re work-items and predicting code failure (see this blog. As somebody in the audience mentioned, what does this mean if it’s based on MS statistics … :-)

The architect is namely drawing his diagrams for the logical data center and application diagram. Adding constraints to this diagrams which will be checked when you are creating the deployment diagram.

The developer only may implement the application diagram created by the architect. However when the developer changes the code by adding a new public method, the synchronization of code and diagrams adjusts the application diagram without the notice of the architect ... Ouch … I don't like that. 

Some must have links/reads:

Rob Caron’s blog

VSTS OPML file containing dozens of RSS feeds

VSTS System Definition Model (SDM) SDK

First day at PDC 2005, first time visiting the US a lot impressions … One off them is the Starbucks coffee numbering system. My current project has some relation with numbers, namely www.burgerservicenummer.nl. So every time people are writing numbers to objects I am interested in the why. Today my Starbucks coffee mug was painted by a number so I ‘m wondering … why. I seem that they use a parallel message system to take an order; messages are separated into simple coffee and the complex coffee. Simple coffee is served directly and you’re charged for the total order. Complex coffee is numbered is a queue and after you paid you can wait for it … and wait … and wait (message queues don’t perform well) and there is you’re coffee out of the queue. I found a bug in this interface … as a customer I want coffee fast and have influence on this process. How to fix: change the pricelist by adding the complexity rate to a coffee item. Besides this minor issue the coffee is great.

Society says: Kids and video games are not going well together. The result of these are  lazy, fat and low on social skills kids. So as a good father of Max and Cas (7 and 3 years old) we introduced the house rule: “Only 1 hour gaming per day”, hoping that there lives will succeed.

Today I’m flying to Los Angeles … final destination Microsoft PDC … it takes a while so plenty of time the read all the magazines they put into to chair in front of you. I really did read one article, nl. Gamers Aren’t Weirdos, and they even make excellent employees by John Gaudiosi. Some statements from the article: 

  • The skills that are required to become a guild master [team leader] in a MMO (Massive Multiplayer Online) game are the same skills for quality middle and top managers in a company. 
  • Gamers are more willing to jump in and try rather than gathering lots of information, doing lots of analysis and than make a decision. 
  • Video game players spend more than three times the amount of time sports, reading, community work and cultural activities.

I still have to discuss this with my wife but maybe the 1 hour houserule is going to be changed to: “You must play 1 hour videogames”

 

 

 

Some people within our organization appreciate some old values. People who are always wearing there suit and tie. Let name an example: Rene Schrieken. I respect that. But I have some mixed feelings about today. I know it’s Saturday, he is my colleague what do you care. As a fact we are traveling together to Los Angeles (Microsoft PDC) and I was expecting a fully dressed up Rene this morning because he always says: ‘conferences are also work, so I am not dressing differently’. Today he is casual … surprised …well I was. He even didn’t take any suits with him, that means: a whole week casual Rene. I think it’s a good thing that he’s losing up, what’s bad: one statement of Rene has left the building.

 

In my last post I showed a possible scenario for the use off the authorization manager (AzMan). Last week this scenario was tested in a high load environment and guess what … problems … 

After proximally 5000 calls in 2 minutes sometimes a ComException occurred in the AzRoles.dll. I tried several workarounds to be sure that the problem was no my problem but an AzMan’s.

Fortunately that night I was meeting Deyan Lazarov from Microsoft and explained the problem I did encounter. I seems that AzMan internally caches the calls, so the behavior I described could cause AzMan some headaches reflected by the ComExceptions. Of course this is not correct, but … surprise … there is a work-around ... Just cash the different AzMan instances which by the way also gave me a better architecture, less calls to active directory for authorisation.

Deyan also gave me an interesting link of an Enterprise Development Accelerator For .NET whish has a piece of wrapper code for the AzMan com library.