November 2010 - Posts

I got an e-mail from a company that wanted to know what I thought about TechEd and if I would consider going again and why and such.

IMG_8453

I have got to say this right off the bat. Some people that went to these spectacles before said that this year felt like “they” had cut down on everything.

For me, that had no such experiences, it felt like a week in heaven or how school really aught to be. Interesting people and topics, highly motivated students and teachers that go of out of the way to impress. Really, if school was like that I would have still been there.

Berlin

First time ever in Berlin and I really don’t know what to think about it. If you asked me I would say “different” but I am undecided. I don’t know if I like the fact that everything older then 60 years seems to be gone and all buildings since then have been built with total disregard to the surroundings. My home town Stockholm was just voted one of the most architecturally boring cites in Europe. Berlin is not.

IMG_8494

I took one of those tourist bus tours that take you round the city in two hours. €20 well spent if the weather is nice. Try it if you are in the mood. I also loved the S-bahn and the fact that you simply buy your ticket and just hop on. No guard/gate/fence or noting. I have never seen that before. I was in fact so taken away by it that I rode the system for three days before I discovered I never validated my week-ticket the first day (oops).

The conference

So the conference or tech-summit or what you would like to call it had (for me) only two bad features.

Firstly all sessions was published online 24 hours after the session ended. This is great if you is not a conference attendee but it made part of actually being there moot. Why should I bother to get out of bed if I can just watch the thing online tomorrow. Also one reason why you might want to go to TechEd is the gain a little bit of edge on the competition. Now that edge lasted 24 hours.

Secondly; it was a bit too much marketing in the sessions on Microsoft’s part. It was just way too good sometimes.

Good things, everything else! I am not kidding! I had no single complaint thru the week. Everyone working there was super-nice. Some complained a bit about the food but…hey you are in Germany. Food is not their forte. They make the stove and then let someone else cook the food Smile 

Special mentions

Mario Szpuszta (yes that is his real name), who held the last session of the conference. Check out the video, not only is the topic exiting but most of all; that guy types like you or I use copy/paste. Not only that but the “hack-thing” he uses in the end of the video had me laughing. It was just so brilliant.

The cleaning staff at my hotel that refused to take my tip that I left as a motivation for putting more than usual amounts of insta-coffee in my hotel-room. Also the hotel was, really good. I will try to stay there the next time I go to Berlin.

Ron Jacobs, for not only being a great presenter but he also seems to be a nice guy and let me have a picture taken with him.

Intel, that made me submit all my info (in order to win a tablet PC) using a French keyboard!

IMG_8472

Would I go back?

Hell yeah!

Ever asked this question: “I wonder if we access this table from any stored procedures?”.

Well here is how to find out:

SELECT distinct so.name, so.xtype
FROM syscomments sc
INNER JOIN sysobjects so ON sc.id=so.id
WHERE sc.TEXT LIKE '%TABLE/COLUMN/string%'

Nice! So now you can search all the procedure text for a reference to a table that is about to change or all “TODO”-tags.

Commenter, and much respected blogger, Thiago Almeida would like to point out the free and useful Red Gate tool SQL-search.
Try it, you might like it. Red Gate usually makes good software.

I guess that is what Visio is supposed to mean. Up until the current version I did not actually agree, as it was difficult to use and not that user friendly.

image

Now it actually is and I use it all the time to visualize the flow of information between different servers, both in CXO-documents but also in hard-core developer documents.

It is hard though to find good Visio shapes for BizTalk and as I cannot seem to find any standard collection of shapes I thought I would publish mine. Hope you find them useful.

You can download them from here.

Presented by: David Robinson & Lance Delano (not listed in catalogue)
Video here.

Basic info about SQL Azure

The best thing about SQL Azure is that in order to get database storage you do not have to provision servers in the, often expensive, data center at your local shop. It might also be that in order to actually get a database server and storage, you have to wait for weeks. (Mind you this is not often the case but used to scare little architects).

The worst thing about SQL Azure is that it does not have all the features of the proper thing. Microsoft are, however, working on that. Not only did they introduce SQL Azure Reporting but they are expanding the SQL Azure platform as well. They have also “promised” to bring out BI as a service and eventually analysis server. The last thing being the obvious “two thumbs up”.

In order to use all this functionality you do not only have to wait until they are done but you also need to store your data in the cloud. This is not something that everyone is happy about. I guess you could use the new sync features and export in premise data to the cloud just for some data but then what data would that be?

IMG_8463

New portal

So depending on how you look at it a big new feature of SQL Azure is the new Azure portal. That made David say that he felt like Steve J talking about “clean design”. I guess it looks nice and Silverlight (yes it is an adjective).

Introducing Juneau

The big thing is the new project codenamed “Juneau”. This is a new technology for having a common design surface for SQL Azure, SQL Server and BI. Juneau hooks into Visual Studio. You basically design a database, then script it for the target environment (2005/2008/SQL Azure) and just publish it. Like any other application that needs to be deployed, so that is familiar ground. This is also a nice and smooth way for working around the problem of developing against an Azure database but not being online. Also people have requested that it would be nice to know if a database design is “Azure compatible” before deploying to the cloud.

SQL Azure Federation

IMG_8465Now this is a concept that is better explained by those that are real database experts (I just pretend to be). However the main points are listed in the image and also this solves the 50 Gb database problem. That really must have an impact on the customer base.

 

Personally, I still think the main issue might not be the software or the level of security that (at least in my experience) has hampered the success of SQL Azure but rather that it’s still a big thing to migrate all your data and to “lose control” over it.

A much wiser person than me said that the shift to the cloud is a shift much like back when people stopped keeping all their money at home and started using banks instead. I guess the banks was not off to a flying start either.

Presented by: Jon Flanders
Video here.

Jon was back in his usual attire including shorts and he was still his usual self.

The session was really about hosting WCF services in AppFabric, something that comes highly recommended, or to quote Jon: “I can’t think of at reason not to run AppFabric if you use WCF 4.0”. He also talked a bit about that out of the box, AppFabric logs a lot of events. This works for both WCF and WF. The standard setting, health monitoring, logs what happened in a service as it happened in the service. The normal thing today might be that you get a report about something that wet wrong, turn on logging and make it happen again. That era is over! The really interesting thing about the logging is that is done by windows event tracing (ETW), and then posted to a service that handles the events asynchronously, away from the service. This makes the logging virtually work without impact on the service performance. Who can say that about their own service logging today?

Jon then went on to talk about workflow and said that the parallel shape is “totally multithreaded”, but it’s not actually. It just acts multithreaded. I learned this from Ron Jacobs today.

Jon said a very funny thing about airlines and food: “They don’t serve food on any of their flights. They might throw peanuts at you as they scoot down the aisle.

Lastly I learned something I did not know; you can host your WCF 3.5 services in AppFabric but you do not get very limited functionality.

Presented by: Ron Jacobs
Video here.

Me and Ron This is a presentation I really was looking forward to since I have been watching Ron’s show, enpoint tv, on channel 9. How much did I look forward to it? Enough for the this situation in the picture to happen.

As expected it was a good presentation but before the presentation started he stepped of the podium for a bit and started talking to people in the audience, just to get a grasp on people’s motivations’ for being there.

So the presentation was part introduction to workflow and part introduction to AppFabric, but there was also a short thing about the need for work flow and the rise of the need for a more declarative language, like WF. That way you can focus more on the What and not the How. Not only that, but WF really is a runtime, that runs on-top of a runtime (CLR), in the same way that ASP.net is a runtime. So if you use ASP.net for your web needs, you should use WF for your declarative needs.

Nowadays we also need our programs to be agile and see to it that “work should happen when data is ready and where resources are available” meaning that if you spread your work over a large number of servers, you should not have to worry about the correct recourse is being run. The work should be able to execute on any machine., within a group or cluster. Work must also be agile across 4 dimensions: Thread, Process, Machine, Time. You could also say that WF is a very good way to integrate that very unreliable and slow software called humans.

Ron preaching to the choir I really must digress at bit about Ron, because when he speaks you get this feeling that he first of all loves his job, but I also get the feeling that the reason why he is in the WF4 team is that he likes to see this kind of technology develop. It is like he does that just for himself.

Workflow problem

This is coming from me personally, and it’s that I think one of the reasons that WF might not be everyone’s first choice id that it' is ugly! The design surface is…well ugly and it does not look like a WF. I really wish that “someone” would design a skin for it, because it’s possible to skin and re-host.

Notes from the session

Here are some of my notes and take-aways from the session: Statemachine workflows was dropped from WF4 due to time issues but there is a version on codeplex right now, if you want it. There are also a couple of other interesting things there so check it out.

If you want to get a good example to really get you going with WF4 (and you should) you can point your browser to this address. This example does not only provide you with everything you need but it is designed to be displayed right there in visual studio! You get documentation and steps and code all in the same application. A great feature I think.

As things stand now technology-wise, Ron said it best: “There is no reason on earth to host as WCF or a WF service in anything but AppFabric". Guess I can say: I told you so!

One more thing is that the AppFabric and WF teams seem to like getting feedback and also makes it possible for you to stay informed:

http://endpoint.tv/ – Video podcast
http://blogs.msdn.com/b/endpoint/ – The team blog
http://blogs.msdn.com/b/rjacobs/ – Ron’s blog
http://msdn.microsoft.com/wf – WF developer centre
Ron’s Twitter: @ronljacobs

Presented by: Jim Wilt
Video here.

This was a bit of a surprise for me but it turned out to be one of the best sessions I've seen. The man presenting, Jim, sure knows what he is talking about and has years upon years of experience. But not only that; he can also convey this knowledge in a very nice and understandable manner.

The subject was the IASA's five pillars of Architecture. This is the organisation's (IASA) way of trying to determine what an IT architect is and by that, also trying to make it into a proper profession, like a doctor or a chef.

IMG_8416

Now as the video almost is up by this time I will just type some notes I made that I would like to underline.

"IASA likes definitions that fit on at t-shirt", he said and the official definition of an IT-architect is: "...is a technical strategist for the business". That would fit on a t-shirt but it does not have the proper "zing" to be on a t-shirt. Let me propose: "I'm an architect that was educated at F U" :-P

"You cannot be an architect without knowing economics". Now that's true. See if you can read these TLAs: TCO, ROI, CBD, TTM, NPV. Gawd I've got a long way to go to be good.

You have to use quality attributes to measure the success of an implementation, and in that the attributes must be useful. You cannot say "we need a 100% update 24/7", because that is not useful.

Good design is two things: Firstly that there is a reason why something is there and also that it is tied to a business requirement. Secondly good design is a series of trade-offs and decisions. To be good at good design you must also see to it that these requirements, trade offs and decisions are documented...well.

The last of the pillars is the most important according to IASA since it has the most influence on the finished implementation. Human dynamics breaks down into a set of subsections (click the picture for a better view).

IMG_8418

The wrap up I would say that pillars is a fair analogy. You need them all to build something really good and to be a good architect you have to be able to master them all.

Lastly he said something that I already know but never the less it's worth repeating: "Let's face it: If you are a BizTalk developer, you know everything!" Best thing said at TechEd so far.

Presented by: Jon Flanders
Video here.

IMG_8412

This is my rock star. He arrived only minutes before the session was about to start and after a quick check he started pacing back and forth on the podium, like an impatient “kaiser”. Then he started the exact second the clock hit 16:30. You’ve got to love him just for that.

The presentation was about the caching feature in AppFabric that Jon did not say was called “velocity” before bundled in AppFabric. Note that AppFabric in the post means “Windows Server AppFabric”.

The caching in AppFabric is a really cool feature because it handles caching of in memory data but distributed over several servers and the more servers you add, the more data can be cached. The nice thing  is that it has a level of abstraction to it so it’s easy to configure and to code against. All the examples regarding AppFabric cache is around a web application but it could also be used for other things such as storage of configuration-files for services, or maybe parameter names for stored procedures that the application access. The really is no limit to it as the cache can store CLR objects, xml-data or binary objects (like images on a website). Jon summarized this by stating that “Scalability is the reason to use caching”.

To fully understand the advantages of AppFabric caching, Jon showed showed a slide that lists the advantages per tier.

IMG_8414

User-tier: No stick load-balancing needed, all servers have access to all the data. Once a server enters a cache cluster it is aware of all the data on all the servers, so there is no lag needed for a lookup, for instance.

Web-tier: Easy access to the cache cluster. Programming against the cache is no different than it used to be when you stored something in the SESSION object back in ASP. It’s just the same.

Caching-tier: Multiple machines means scale and potential for high-availability. More machines == more memory for cache objects. This was not possible before on a Microsoft product and I would also like to remind you that caching servers can be quite cheap. You just need lots of fast RAM in it and you are good to go. To scale out a database, you need much more than that.

Database-tier: Reduces load on database. This is a good thing as it means you can lower the amount of, often expensive, hardware needed to run the data for a particular application.

It is worth noting that even if you have a lot of servers in the cache you access them from code in the same way as you would if you had a single cache. It’s also worth noting that the AppFabric cache is slower then the standard “on machine cache”, but by surprisingly little.

There is a session object for AppFabric cache, which to me is good news. During my web dev days I often heard that you should avoid using the session object to store data because it does not scale over different servers and also that it consumed memory on the machine processing the request. From now on there is nothing stopping you from using the object and that’s the good news because it was (and is) such a useful object.

Currently there is a Windows Azure version of AppFabric caching in the making but it has yet to reach any public version. It basically does the same things for your Azure apps as for the local ones.

Lastly a funny side note: Every time Jon started entering code, the room went totally quiet as everyone concentrated hard on not missing one single thing. Once Jon stopped typing and said something like “let’s compile” people moved and in some cases exhaled as if they where holding their breath while Jon typed. I did the same of course.

Presented by: Mads Torgesen (c#) and his VB counterpart that was not listed in the official schedule
Video here.

When talking to my “lunch date” after this session we shared the same though about it: Was that all? Are they going to upgrade the whole c# language just for that?

The future is:

Async programming made much easier. Now don’t get me wrong, I love this idea of making asynchronous programming easier but, is that all? Surely there has to be more than this in the future of c#. The call for this update to the language comes from the fact that many applications today depend on different, distributed, services. This hampers UI responsiveness, increases latency and poses scalability issues. The way to get around this is to use async programming. The cool thing here is that this is not some thing that is in the labs at Microsoft but is available right now as a CTP at msdn.com/vstudio/async. It was launched at PDC earlier this month but it’s still pretty hot. The usage is really summarized in the image below.

IMG_8410

You simply use the two new keywords ASYNC and AWAIT together with the TASK-object available today. You define a function as async and if you do that it must contain await. In the example two resources are called and then the main thread is waiting until the two returns. This is of course quicker than calling them sequentially on a single thread. What is not shown is that exception handling is wrapped into this so you have exception handling as you would in a normal, synchronous, execution. This is not at all possible in the current version. Download it! Try it! I know I will.

Other more off topic things

VB isn’t going away soon. The c# and VB-teams want to develop the languages in parallel so that a feature will be available in both languages. They even have design meetings together!

Another even more off topic thing is that the VB presenter (who coded in c#), told us what he was doing in the code he sounded as if he was reading from a story book :-) Not a story that is supposed to put you to sleep but rather to excite and entertain you. I think he has a future in voiceovers.

Presented by: Mikael Håkansson and Paolo Salvatori
Video here.

This is of course a session with an former colleague of mine; Mikael Håkansson, so I might be a bit biased.

Mikael and Paolo discussing a transformation issue. However I had the opportunity to talk with Paolo and Mikael before the presentation and I can’t really write what they were talking about because then Paolo will kill me, I think. However if I were a WF/BizTalk developer that wants to do transformations in WF, I would keep my eyes on Paolo’s blog.

The session

So if you haven’t seen this talk at the Swedish BizTalk user group (BUGS), I strongly encourage you to watch the video of this session at msteched.com. This subject is important and if you are planning to set up a new BizTalk environment or have the opportunity to test your current configuration, you really must watch this.

In the session Mikael demos the great and helpful tool; BizTalk Benchmark Wizard, but they also talk about the fact that tuning for performance is hard and progress does not come easily. So if you did something in the past to optimize BizTalk you should feel proud of yourself.

First of they showed how BizTalk is dependent on SQL for performance and that SQL is dependent of Storage for performance. To really make BizTalk run like the Hotrod it can be, you have to make all of these work together and that is not always the case as all three have different priorities. One slide quote that stood out was “the storage guy” that stated “I’ll let BizTalk share the disks with the SAP system”.

Mikael talking about an old moped

Cool things and hints

IMG_8407

There is now an SQL script that splits the MsgBoxDb into several different files. The point of this is to place these files on different disks and by doing that, performance increases. The script is available in the Performance Optimization Guide for BizTalk 2009. I think it might be on Paolo’s blog as well.

When processing messages in pipeline components do not use the XmlDocument class. This really is common knowledge by now but it is still worth repeating. I have seen what it can do to performance. Instead access the messages in a streaming fashion. BizTalk actually have some interesting predefined streams like NameSpaceTranslatorStream, that changes the target namespace of an incoming message, or XmlTranslatorStream that works well when transforming a message in the pipeline.

Some simple things for orchestrations: Define messages and variables at the lowest point possible. Use scopes and define the message only in scopes where it is needed, i.e. the lowest possible point. Another thing is to force certain persistence points by using Atomic scopes as these will persist only at the end of the scope, even if another point occurs (like a send message).

I personally would like to see Mikael hold more sessions at the Swedish BUGS as he is clear and very “to the point”. Paolo is much more “wordy” or “extensive”, depending on how you look at it, and this shows in his blog and in the way he is presenting. Overall they did a great job and if you are planning to upgrade your current environment or buy a new one; you have to see the video of this. It really is that simple.

I got a lesson before even getting there: Don’t listen to colleagues that make you arrive at the entrance of “die Messe” about two minutes before a session starts. That place i huge! I’m just glad I brought my running shoes and I think I might have set a new personal record for the kilometre.

One thing that you are supposed to try is to attend at least one of the featured speakers, because they are “the rock stars of IT”. Well I hope that it doesn’t mean that they have drug abuse problems and “really don’t know what city they are in”. Jon Flanders is not a featured speaker, but he will always be a rock star to me.

Then I also learned that all sessions will be available online at msteched.com within 24 hours after the session ends. So my simple question is: why am I here? Well there is the nice networking bits and also the included lunch but this only add to my friend’s objection about TechEd as a phenomenon: “there is nothing to be learned there that is not already online”. Now he is still wrong but one of the reasons why one goes to a place like this is to have an edge. An edge on competitors and younger, smarter guys and girls. Now that edge lasts 24 hrs…

So check out the videos of every session from today on Wednesday.

Keynote stage

The whole keynote can be found at: http://www.microsoft.com/europe/teched/

Brad Anderson was the keynote speaker but as it was played he more or less served as a master of ceremonies and brought other people on stage to showcase or demo the products. He did manage to go maybe two minutes before mentioning the buzz-word of the day: cloud. Of course the talk was going to be about the cloud but it was a bit of a let down after the pre-show demoed Kinect on three giant screens.

If there really is a key take away from the speak it is that cloud is coming regardless of if you or your customers like it or not. Microsoft and a lot of other companies bet the farm on this technology so they are really going to make us like it and use it. And, why not really? It really is a thing for the future and a good way forward. They are starting to focus more on platform as a service.

As an integration specialist the things that attracted my attention the most is that Windows Azure now comes with more flavours, one of them being reporting. Azure has grown beyond a point that you cannot call yourself an Azure specialist without having to specify the sub technology. As some projects already have proved that some of the heavier lifting in an integration solution, like complicated transformation, can be moved to the cloud we will soon see a future where the whole integration lives in the cloud. On that note it’s sad that there aren’t that many sessions about Azure at TechEd.

The key to all cloud hosting is virtualisation and there were some really cool new stuff that Microsoft showcased. One helped to setup and manage private clouds within an organisation and also how to manage the load from these applications. They also boasted that they have partnerships with six server manufacturers to support this cloud implementation technology. These six manufacturers deliver about 80% of the world’s servers. In my opinion there really is no technical excuse for a larger company not to have a private cloud.

The future also combines SSAS versions of Office, which in this incarnation is called Office 365, and stuff like RemoteFX. The things I’ve seen so far is very good. RemoteFX enables server hosted rich clients. This moves the cpu and gpu work to the server and the client can be very thin. They showed a client that measured about 15*15*4 cm and was completely solid state. Yet the desktop was, for lack of a better word, normal. A future where Microsoft hosts the whole desktop in Azure is not that far away.

There was also a thing about Windows mobile 7 and it seems to me that if you can develop using Silverlight you will have no problem developing for Windows Phone. Go ahead and try it.

One slide in particular that caught my attention, and it was about platforms as a service versus traditional platforms and it really shows what the benefits are going into the coming five years.

Platform today Platforms as a Service
You manage server, VM, network, storage, app You manage the app.
Patch, service release new version Maintained for you
Assembly required Ready-made services
Custom, inconsistent Standardised
Plan for peak load On-demand scale
Build to avoid and recover from failure Build to expect and withstand failure

If it isn’t clear that virtualization and software/platform as a service is the way forward for us who are working with Microsoft, then you might be without a job or at least an interesting one.

Post show glass of wine

Tomorrow the real fun starts.

The guys at PDC got a Win7 phone, or so I heard. This is what I got.

Bag contect

  • A bag that reminds me of the one I use to carry to school during the first 5 years when ever there was a PT class. In swedish we called it "gympapåse".
  • ONE warm and fussy glove. You have to visit the exibitor to get the other.
  • White "I was there" t-shirt
  • Water bottle
  • No less than 16 4-color leaflets, including 2 booklets.
  • 3 discs with software.

Not that I mind. Some leaflets are actually useful, like a chance to win a win7 phone, but I submit that PDC has better handouts :-)

Berlin is not greeting it's visitors with the best of weather. However I am supposted to stay indoors a lot the next few days. As the conference does not start properly until tomorrow I will probably do something involving maps and guide books (and no I will not install Oracle DB).