Events

TechEd Europe 2010 Day 4

I made it to the sessions this day, but memories of the Dutch country drinks kept coming back. Anyway, the most interesting part was a deep dive into the database performance of using the Entity Framework 4 as data access layer and LINQ. When you use these do you by definition make code that is less efficient than carefully coded stored procedures? The surprising answer is: No. You have to abide by the following rules though:

- Use the Entity Framework 4 and not earlier incarnations, because everything before EF4 sucks.

- Never use literals in your conditions, because this will result in less efficient (non-RPC) SQL queries

- Do not return whole entities unnecessarily, because in returning all internal entities the query suddenly bloats with LEFT OUTER JOINS

Bottom line is that the queries that EF4 queries easily outperform badly written stored procedures. Exceptions are queries affecting multiple records and stored procedures that process data in a way that is better expressed in SQL. Happy coding with EF4!


Published: 15-11-2010 by Wim The | 0 Comments | 0 Links to this post
 

TechEd Europe 2010 Day 3 Windows 7 Phone

A special post to mention a session by Robert Garfoot showing us end-to-end how to write a Windows 7 Phone app that accesses the Cloud to send and receive notifications to another Windows 7 Phone. Here we saw a piece of state of the art programming, leading the way to quality apps for the Windows 7 Phone. The use of various patterns, like MVVM and the Command pattern allows you to write fully testable code. This way the code can make excellent use of the Silverlight capabilities of the phone. Awesome. And did I mention the equally awesome Windows 7 Phone party in the Berlin brewery? I think I did.

Speaking of parties. Yesterday ended with a bang. The Dutch country drinks this time complely outdid every Dutch party of any previous TechEd for me. Shuberg Philis gave us DJ’s in a Back To The Future setting, complete with a Delorean and fully functional Commodore 64s and corner with Xbox 360 Kinect games. The lovely and funky dressed hostesses completed the party, making sure everyone had a good time. I say, keep up the good work and … ow my head hurts.


Published: 15-11-2010 by Wim The | 0 Comments | 0 Links to this post
 

TechEd Europe 2010 Day 3 SharePoint

This day was very much SharePoint 2010 themed. A session about SharePoint governance failed to make a real impression, but was useful nonetheless. I assume that you have a complete and very much alive governance document at your site (erm..). If not, you should start working on that now. On the one hand your end users expect miracles from your implementation and in your governance documents you can write down the promises you can keep. Oh, and that means for every web application of course.

The other thing is that extending SharePoint can also help you automatically keep your SharePoint running, instead of end in chaos. The extensibility of the new Health Analyzer in SharePoint allows you to keep track of sloppy installations or features being installed on your machine. Wouter van Vugt showed how you can go even beyond that fully control what users can and can’t do with features on your site. Interesting stuff, though the code of the Feature Blocker feature might not fully comply with my governance rules.

If you are looking for a way to make a succesful implementation in SharePoint speakers like Wouter van Vugt and Daniel McPherson , I must say I couldn’t agree more, stressed the following points:

- Make sure Search works such, that the user can find what they’re looking for and no, the out of the box solution is not good enough.

- Allow users to do stuff, instead of locking and blocking all SharePoint functionality. On the other hand, make sure that features like the social features are used sensibly.

- Remove friction. Like having to log on again and again. SharePoint 2010 has a fluent UI and you should keep the flow going.

Most sessions I attended suffered from the shorter time slots. Enterprise Content Management extensions can be the essential tools that make the business run like an oiled machine,  so it was a pity that a subject like In Place Record management almost got crushed. Imagine datasets with cover pages that allow you to make documents a record with the push of a button. Having a unique document ID across farms is useful, but less impressive. The cool thing here however is that Wouter got to show how to build a SharePoint service. Awesome template.

SharePoint online, or Office 365, sneaked into every SharePoint session. It is really fascinating how powerful it can be (on line around the world Intranet portal) and at the same time how limited it (still) is. Yes you can simply fire SP2010 Designer and do the funky stuff you can do with it. No, you do not have Central Admin access, BCS or fully trusted webparts. At Microsoft they are looking into ways to give access to Office 465 SharePoint services to external (cloud) services. By the way, there is always the option to use Silverlight or jQuery based webparts.


Published: 15-11-2010 by Wim The | 0 Comments | 0 Links to this post
 

Speaking at the Microsoft Developer Days 2010

Thanks to all the voters who voted for my wildcard proposal on Entity Framework 4.0, I will be speaking at the Microsoft Developer Days 2010, again. Last year, the whole wildcard thingy was a bit fuzzy, but this year, the organization has gone through great lengths to seriously include us wildcard speakers in the entire planning process.

I’ll be speaking on March 30st, at 11:05. I’m not sure about the room number yet, but I do know it should be able to handle up to 80 attendees. Check out the most recent schedule here.

Now I still have to decide whether to move to Visual Studio 2010 RC before the conference. I probably have to to evaluate CTP 3 which is essential when looking at the Code Only features (oh, sorry, Code First), so might have to. Shame that we don’t have SIlverlight 4 yet in the RC build.


Published: 12-03-2010 by Dennis Doomen | 0 Comments | 0 Links to this post
 

DevDays 2010 wildcard proposal: Is Entity Framework 4.0 ready for the real thing?

Introduced in the 2009 edition, this year’s Microsoft Developer Days is again offering wildcard sessions to anyone who posted a proposal on their Facebook site. Obviously I posted a proposal as well, and partly thanks to the community and partly because there were only eight proposals, my proposal is now available on the DevDays site for voting. Support me by going over here and voting for my session.

Published: 01-02-2010 by Dennis Doomen | 0 Comments | 0 Links to this post
 

Silverlight, Silverlight, Silverlight...and laptops

On the second day of the PDC, Scott Guthrie announced the release of the first beta of Silverlight 4. Well, I've been expecting Silverlight to replace WPF as the first-choice for line-of-business apps for a long time, and I was right. The number of new features is overwhelming. Just look at this comprehensive post written by Tim Heuer to get definitive prove. And as part of this release, they've renamed the RIA Services framework to WCF RIA Services and included it in the Silverlight 4 SDK. Check out this post to get some more info on what has changed since the last CTP. I spend the remainder of the day attending every Silverlight 4 session available. I'm so looking forward to using this in a real-life project.

One thing all attendees noticed this week is that the PDC was going through a crisis as well. There was no free breakfast, no party at Universal Studios and even no gadget. Well, the PDC organization has compensated for that big time. How? Well, because during the keynote, Steven Sinofsky announced that every attendee will receive a multi-touch convertible Acer Aspire 1420P tablet pc for free. Now that's what I call an awesome gadget! And it is fully installed with Windows 7, the Office 2010 beta and some nice showcase tools for its multi-touch support. I can tell you that the audience went wild when this was announced.


Published: 19-11-2009 by Dennis Doomen | 0 Comments | 0 Links to this post
 

TDD and BDD at the PDC 2009

In addition to the usual hot-of-the-press content, the PDC organization also introduced a new way for attendees to contribute to the event. They call it a birds-of-a-feather session where attendees can propose a subject and host a discussion in one of the break-out rooms. Obviously, I filed a proposal on one of my favorite subjects TDD and BDD, and unlike my expectations, I was actually selected as one of the proposals.

Well, yesterday, the first day of the PDC, it finally happened. At 16:30 I went to room 309 and found it exceeding its full capacity of 120 people in no time. Apparently, automated testing and Agile practices are just as hot in the US as it is in Netherlands. I started the sessionwith an inventory of questions people would like to get an answer to. BDD was important, but after a short discussion I got the impression that most attendees did not yet really grasp the essentials of TDD. But since it was a discussion session, Ididn't want to take control and explain it to the audience myself. Instead I tried to let individual attendees explain it to the rest. Unfortunately, since many interpretations exists, that didn't really work. I tried to steer the discussion to get a clear understanding of it, and I made sure I added my two cents as well, but I'm quite sure some attendees still left the session with some unclarity.

Nevertheless, a small group of developers kept lingering at the room's exit and we've been continuing the discussion for almost an hour. So from my point of view, it was a big success. Even if they did not all grasp the concepts and ideas behind TDD, they sure have been triggered to read more about it.


Published: 19-11-2009 by Dennis Doomen | 0 Comments | 0 Links to this post
 

First day at the PDC 2009

After waking up at 5:00 in the morning for the third night in a row, Tuesday was the first day of the PDC conference itself. As is common for any Microsoft conference, the first keynote is usually a bunch of marketing stuff, and this one was no different. Nevertheless, if you have watched it from the PDC site, you will agree that this whole cloud thing cannot be ignored anymore. I have to make sure I'll attend one of many cloud sessions in addition to all the architectural and Silverlight talks.

The keynote was followed by a talk by the team-formally-known-as-the-Oslo-gang, Chris Anderson and Don Box. It started with a short intro on the Entity Framework 4.0 which helped me confirm the ideas I've been forming for my next SDN talk. Right after that, they introduced the OData protocol that allows virtually any application and framework to exchange data. And while doing that, they used Quadrant as a 'nice visualization tool for showing data'. I really wonder what happened with all the Oslo tools and frameworks. One cool thing about OData is that you can retrieve the metadata in EDMX-format from any OData-compatible data source, even a Sharepoint list. By simply providing the URL to the data source in the Add Service Reference dialog of VS, it will generate code in similar way the Entity Framework does for you now.

The remainder of the day was filled with an additional EF4 session which didn't reveal anything new for me, some tips and tricks on Blend 3, and some nice demos showing some of things they have in mind for the next version of ASP.NET.

The official conference day was finalized by a moderate party in the main lounge amongst the many exhibitioners such as DevExpress, Infragistics and Telerik. Thomas was tired, but Ronald and I concluded the day with a drink in the Saddle Ranch at Sunset Boulevard.


Published: 18-11-2009 by Dennis Doomen | 0 Comments | 0 Links to this post
 

Teched 2009 – Berlin Day 1

Gruss aus Berlin allen! Sorry for the delay, but TechEd this year is a bit different to last year’s much more walking around to get your drinks, let alone find a PC to blog or collect my thoughts.

DEV305 - ADO.Net Entity Framework in Microsoft Visual Studio 2010 and Microsoft.NET Framework 4.0

Eric Nelsen started of by recapping the road Microsoft has taken so far in their efforts of supplying the community with their own ORM. The last efforts resulted in LINQ to SQL and Entity framework v1.0, the latter has yet to be adopted by many developers because of the short comings in the framework. e.a. the lack of “lazy”-loading, model first approach and the really bad support for stored procedures, Eric had a big list of these shortcomings and also told us a lot of the issues would be resolved in the next version (v4.0). He also had a lot of demos that showed us how Microsoft was resolving these issues. Two of the demos had so great takeaway value, the first showing the usage of T4 templates. If you don’t like the way Microsoft generates the POCO, you can very easily build you own template. In the other demo Eric showed us how they implemented “lazy”-loading (formerly known as deferred loading), but the real beauty of the demo was the usage of a third party tool called LINQPad. LINQPad enables you to load up your data access assembly, build a LINQ query on the fly, and view the SQL generated to query the database. No need for SQL profiler anymore! Furthermore the demo showed, just how dangerous “lazy”-loading can become for your performance, when not applied properly.

The expected RTM of the Entity Framework v4.0 will be around the time VS2010 ship, be a lot of the T4 template will be released later on in a separate download.

ARC301 - From the Trenches: Using architectural skills to increase solutions adoption success rates

This session actually  should have had another title, the term ‘architectural’ could have been swapped with ‘business’. The presentation actually focused on the business MBA lessons learned applied on software development.

The greatest technical solutions stay hidden from the public. But when a project fails, technology gets the blame because the Customer is Always right. The customer that is always right mostly end-up as the perfect disaster, it’s not technology’s fault but the expectations where way of due to a lack of education and communication. Jim Wilt showed us a perfect example of this where sharepoint 2003 got the blame, but in reality the expectations of what sharepoint 2003 good bring where way of. And that by just shipping in a newer version of a product isn’t the answer. People first have to be educated in what a product can or cannot do so that the expectations are clear and can be met!.   

Another important lesson learned is that you have to make sure who is taking responsibility, in an example Jim told us of a proposal where the clients name was used far less then the name of the product used to solve the clients problem. This makes it easy for a client to brush of responsibility as it looks like the solution to their problem is found in your product and because you are the force behind the product, their problem has become yours. So always use generic terms when making a proposal keep the technology to a minimum, let the client take problem ownership and there for responsibility. Business problems get solved by people NOT technology, technology is just a tool. 

 

INT301 - An overview and selected deep dive of Microsoft project code name “dublin”

Seeing as this years TechEd has a lot of quirks (more on that in a later post), I found myself at this presentation, not knowing what the heck I was going to see, the initials of the session tell me it’s something on the integration area so I was very curious. The presentation started and for the first 15 minutes I still wasn’t told what dublin really was. The presentation showed a lot of the new windows workflow foundation and a new section in IIS that gives you access to a dashboard, showing you metric for WCF and WF services. The demos where lengthy and at the end of the presentation we still weren’t sure what dublin really was, it look like an extension on IIS. Luckily for me I skipped the Key note session and ran in to the dublin session speaker Tony Meleg who was happy to answer my questions. on dublin. Dublin is actually more than just a dashboard in IIS for showing you metrics. It consist out of different services that enable you to host your WCF-WF service in IIS, but extend the capabilities. With the current technology set of WCF and WF hosting in IIS is a very tricky implementing long running workflows that run longer then the app domain recycle time. When hosting in dublin you can config your service that dublin keeps rehydrating your workflow until it’s finished, so if IIS decides it’s time to recycle and wait for request to load the appdomain again, dublin would already have fired up the service again. Hosting your services under dublin gives you lots of metrics in the dashboard on how services are running. For WCF-WF services it also shows you what activities are running, something you could previously only do when you had, the very hard to come by and even crappier to work with, workflowmonitor application. This is STANDARD OUT OF THE BOX!! with dublin, no need for setting up tracking databases, dublin does this all for you. It uses information out of the workfloweventing service that is part of dublin which is stored in a monitor database and the workflow persistence database. I essence dublin is a service host for WCF and WCF-WF services that should have been here two years ago!.

Dublin still lacks a proper product name and is a milestone behind  VS2010, which means it will be released a good time later then VS2010.

KEY01 – Tech-Ed keynote

Just like last years conference you had the choice to attend the keynote or hang around elsewhere and seeing that this year’s TechEd got combined with IT Professionals I opted to walk around the booths and the technical learning centre to get a lay of the land so to speak. I and a lot of other developers/software architects (all the non IT Pro people) like to see TechEd split for developers and IT Professionals so you can have more sessions and don’t stand in front  a closed to door because a session is full. At dinner one of my TechEd buddies who had attended the Keynote told me it was awful, just a lot of jibber jabber on IT Pro stuff, boy was I glad I did not attend!


Published: 14-11-2009 by Hans ter Wal | 0 Comments | 0 Links to this post
 

Teched 2009 – Berlin Day 2

OFS06-IS – Building custom e-commerce solutions – faster and easier with Microsoft Commerce server 2009

As I have always wondered what Microsoft Commerce server brings to the table when building an e-commerce solutions, I found myself at the my first interactive session. for those not familiar with techEd’s session types an interactive session is held in a small cubicle type room seating around 30 people where the audience can really interact with the speaker(s). During the session Scott Cairney gave us an overview of the 2008 R2 edition, he explained what the team has done so far to enable a developer to make better use of the API. What was kind of impressive to hear that they have tested MCS R2 with a store of 1 million profiles and 1 million products and achieving an average 22 orders per second. It might look trivial to some, but just imagine your company having to package and label 22 big plasma  screens a second, that 1320 plasma a minute, 79200 a hour etc. you’ll get the picture :-). These test get done in so called Technology Centre's, so my first question was: Can customers use these centre’s to test their products leveraging Microsoft technology; although Scott didn’t tell me how the answer was YES!. Simulation applications with these kinds of numbers is pretty hard/costly to do within own environment because you’ll have to set up a lot of hardware and most companies only have limited Test/Acceptance environment. Back to MCS R2, Scott showed us a couple of demos where they leverage Microsoft SharePoint with the numerous webparts that CMS R2 offers. The first question that popped in my mind was, what if I do not want to use Microsoft SharePoint? No, problem you can still use a lot of the webparts and use them in your own ASP.Net application, of course if you step out of the .Net scene and build and PHP frontend  you’ll be building your own interface against the MCS R2 Webservices layer. In one of the demos Scott showed us how you could easily make e-commerce site with lot’s of micro-sites, each having a different layout. The differences in layout were created by levering xslt templates. I’m not a hero in XSLT so this might be old news to you, but I learned that you can use xsltactions in your template to call backed code services! I also asked about the ability of MCS R2 to produce facet navigation, but no joy here it will still be up to you to integrate your solution with another search engine products like Solr,Fast, Autonomy etc, to enable facet navigation. In my opinion a big feature lack in MCS R2, because 9 out of 10 e-commerce sites offer you facet navigation.

ARC304 – Command query responsibility segregation

Udi Dahan, need I say more? Well maybe, after last year’s session on how to Leverage the internet to cache your application, I’ve been hooked. Udi presentation style is just perfect, it a perfect fit to the high level concepts that get conveyed in his sessions at first it might seem slow but you’ll be needing the time to fully grasp the concepts out of his talks. In an earlier talk this year by Greg Young, I already got an impression on what you can achieve with this pattern, but Udi gave some more examples on how and where to leverage this pattern. In most systems data has a varying amount of staleness, lots of data gets cached for performance reasons, but without realizing, with caching you have explicitly defined your data as being stale. But none of the end users is aware of this fact. So why not make this explicitly known to the user. Imagine a data grid with all kinds of editable user data, when an user starts editing  values on multiple rows he/she doesn't know if the edits that he/she performs can be saved. It might be that another user has already edited these values so these users will have an inconsistent save 1 record might succeed and another might not. Furthermore, from a domain perspective editing multiple records at once  is not very intend revealing. i.e. if the data grid would contain user data (name, address) for an e-commerce application and you would change the address you might want the system to update all shipping addresses on old orders to the new address (or not), how would the system know how to do so? So when putting up you user interface make sure to convey the systems functionality and let the user convey their intend explicitly, when doing validation you must always validate the business rules within the system, but it is also important to  validate the users commands not the users queries. When you have clearly split the commands from the queries in the system, why would one still need all kinds of layers of indirection to get data from the database? Just use DTO’s to read the data from the database, entities have no added value anymore. Furthermore when you have split the querying with the commands, why not split the data store into two data stores one for commands and one (or more) for querying. You can imagine the scalability improving significantly.  

ARC310 – Application architecture guide: The map to your journey

Because of the lack on session information provided in my TechEd bag, I ended up at this presentation with a high expectation, because of the speaker: Don Smith. Unfortunately  Don did a presentation on the 2nd edition of  the Application architecture guide and to be quit frank I’m not wasting precious TechEd time to listing to a book presentation. So I got the message, get the book when available (the did a rush job to get them printed for the PDC)and went out within 10 minutes. Later I heard that after 30 minutes lot’s more people left.

EMB204 Smart metering as an enabler for home automation and customer interaction

As an IT guy one is always interested in cool gadgets and fancy gizmos, home automation is like one of the big nerdy gadget extravaganza’s of all time. But home automation isn’t nerdy is coming to your home more quickly than one realizes. Just like the Internet was a platform for the select few so many years ago, almost everybody is using it today. The presentation showed how in Germany peoples houses are being fitted with all kinds of metering equipment and are provided with an IP based gateway that sends the house metrics to systems in the Cloud.  This information can then be accessed via a web portal so a user can view his or her energy consumption. As you can imagine the more sensors in the house providing data, the more information is available to the user. The sensors that can be used vary from simple how much current is running through me to measuring the amount of heat produces and lost in you house. The simplicity of installation, low cost of these sensors and controllers (and also funding from the government) and ease of access to a web portal, set a very low threshold for consumers to pickup home automation. Apart from the KEWL and WOW-factor involved it introduces a whole lot of new options, from turning on your coffee machine  from you mobile phone to reducing your carbon footprint. Some of the funny trivia given where that saving up on electrical energy is almost pointless, from an economic point of view in northern   Europe, but saving up on heating is the way to go. Although they expect only a 100.000 users by the end of next year, the infrastructure setup to receive and process all the information is highly scalable due to usage of cloud technology. 

Microsoft itself offers guidance and solutions to common integration issues on http://www.microsoft.com/utilities

 

WIA403 – Tips and tricks for building high performance web applications and sites

The content of the session was kind of a surprise to me, since I was expecting all kinds of tips and tricks on the ASP.Net server side of this. But a couple of eye openers for me and my fellow TechEd buddies. In the session Giorgio Sardo gave use the frontend side of performance dealing with HTML layout, CSS and JavaScript do’s and don’ts and bandwidth reduction on the wire.  One the train trip to Berlin my TechEd buddy Marko and I already talked about IIS gzip compression enabling. So it was pretty funny to hear Giorgio telling us about it and showing how turning on gzip compression can speed up the site performance. The default setting for gzip compression is turned and not everybody thinks about bandwidth reduction. The reason for this is historical, back in the day client computers just weren't that powerful to do decompression on the fly, but now a days almost everybody has got a xxxGHZ xxxcore computer. One of the things Giorgio didn’t mention which, I find kind of important is that you have to be aware of the fact that compression on the server side gives you a greater load on your server, so if you have a high traffic site be aware of the extra hit in performance. On the CSS part of gotcha’s, be aware of how you setup your CSS files. Use <link> tag  to include stylesheet but don’t use the old <include> tag inside of the CSS file to include other CSS files. Apart from minifying your resources files also try and keep them as simple as possible i.e. use “UL > IL” instead of “UL IL” . Clean up old CSS styles that aren’t in use anymore, for this task Giorgio build a browser JavaScript to detect obsolete CSS style called CSSChecker.

Due to how browsers work the rendering and layout part of the building  the page takes up to 67% of the time needed to present the page to the user (33% goes to DOM and JScript), the usage of link tags enables browser to spin up multiple thread to download resources in parallel with the include tags this gets done one at a time. All the old crap in your CSS files has to be parsed and the page is rendered only after parsing the whole chain of CSS files. Not to mention that errors are very expensive to handle. On the JavaScript part of the session Giorgio, had all sorts of tips and tricks one of the most notable being DOLOTO. DOLOTO improves application performance by splitting up the JavaScript code and only download JavaScript code as needed, a very cool advanced tool made by Microsoft Research.

 

INT201 The interoperability imperative

Due to a poor lack of resource planning on behave of the people of TechEd, the sessions we wanted to attend were full so we ended up at this session, nether less it was quite an interesting session. Sandra Schafer took us on a tour around the efforts Microsoft has taken to become  a more open and compliant company as to adhering to international standards. Noticeable are the more then 2000 communications protocols that have been documented are freely available, OpenXML and  the founding and sponsoring of the  codeplex foundation. Working at the ICTU has left me with a JIKES feeling every time I see an email with an ODF attachment, so it was good to here that Office SP2 supports ODF for reading and writing. Sandra also pointed out that there is a great whitepaper done by Fraunhofer Focus on the comparison between OpenXML and ODF. Sandra also addressed the importance of inter operability on different level, showing that communication between systems equally important as the data portability between systems. A great example I always like to use, and have trouble with at home, is photo library software. This software enables you to categories/tag your photos so that in the multitude of photo in you library you can always find the photo you want quickly. But most of these software packages use a proprietary data store from which you can not make an export to another software package. Sound familiar? 


Published: 14-11-2009 by Hans ter Wal | 0 Comments | 0 Links to this post
 
 Next >>