| Hakan's profileHåkan Forss BloggPhotosBlogLists | Help |
Håkan Forss Blogg |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
TechEd 2009 summaryAll in all it has been a good TechEd, not great but good. The content this year was a bit of a repeat from last year but I went to different kind of sessions this year. More architecture and less concrete technical sessions. I tried to broaden my knowledge instead of sharpening it. Having my colleague Tobias to discuss architecture with on a more general level was great. We had some great discussion about how we could improve our work as architects at Concordia Bus Nordic. It was satisfying to get my architectural recommendations validated by lots of different speakers, thought leaders and people at Microsoft. The main parts in these recommendations are:
The best of TechEd for me:
The worst of TechEd for me:
My biggest takeaways:
There are some many new influences that I need to think a little more about. I also realized that I need to learn more in some specific areas. Learning never stops and I like it. Hope to go to TechEd next year as well. See you then! Session summary for Friday at TechEd09WUX317 Easing ASP.NET Web Deployment with Microsoft Visual Studio 2010 and MSDeployThis session showed Visual Studio 2010 and MSDeploy in action. The session was good. Some of the highlights where: Web configuration transformation are a way to make changes to configuration files for different targets like test, staging and production. You define different transformation files for your configuration file and then depending on the build configuration the right transformation is used. You can change whole sections not just attributes and specific elements. MSDeply support database deployment. How ever there is no 100% integration with VSTS DB for adding db changes to the MSDeploy script. It looked like you could have both update and rollback scripts defined but I'm not sure. WUX307 Death of a Web Server: Crisis in CachingGood session about how to diagnose a website failing under load. When trying to solve a performance problem you should test, test and the do some more tests to confirm where the real performance problem really are. Performance monitor is one of the best tool and Richard recommender to begin looking at the following performance counters: On codeplex there is a tool, Performance Analysis of Logs (PAL) Tool, that help you with interpret the results. When writing code for reading and adding to a cache you should follow the following pattern. ARC301 An Introduction to the Application Architecture Guide 2.0This was a meta session. A session about the application architecture guide and not about architecture guidance. But the guidance provided was:
SOA206 Every Class As a Service: WCF As the New Microsoft .NET
Another great session by Juval Löwy. Juvals proposal is that all the added functionally you get from transforming every class into a WCF Service way overweighs the performance degradation. We showed some historical data that showed that every time you go to an higher level of abstraction and better tooling you get a performance degradation but the performance hit is nothing compared to the productivity boost you get with the new abstraction. Juval said: Ideally, all classes should be WCF services. He also realize this is not very practical. When combining his recommendations in session ARC315 Zen of Architecture and this session you get the suggested architecture:
This is basically the architecture we use in one of our applications except that we currently use ASMX web services that don't give you all the ilities that WCF do. It really feels good when you get parts of your architecture validated by some one like Juval. Session summary for Thursday at TechEd 09
DPR302 Test Driven Development TechniquesThis was a good session but did not contain anything new to me. I think it was more a 200 level session than a 300 level. Main take-away was: Maintainability is "ility" #1! Studies show TDD improves maintainability:
SOA302 Building RESTful Services Using WCFA very good session that was very useful for me. I'm not that into the RESTful architecture but this session showed me that adding RESTful functionality to a WCF based service layer is very easy so I see no reason why not provide RESTful and SOAP based services. DTL304 Agile Development with Team System 2010The low point of the day. Interesting content but poorly performed. The demos failed or was sooooooo slooooooooow. Nothing really new was presented that has not been showed before. The improved Excel integration, hierarchical work items, example use of reports and the refactoring to generate stub classes and methods are improved support for agile. Also the updated agile template could be useful. SOA319 Interconnect and Orchestrate Services and Applications with Microsoft .NET ServicesVery interesting session about the upcoming .Net Services in the Azure platform. The .NET Services provides a routing and queue service in the cloud that would make P2P communication between systems behind NATs and firewalls easier. This could be one of the most interesting parts of Azure if you don't want to put your data and application logic in the cloud. Will have to investigate more. Session summary for Wensday at TechEd09
ARC204 An Overview of the Azure Services PlatformThis session was interesting but hade some overlap with another session from yesterday. The session contained an overview of the architectural aspects of the Azure Service platform. It was nothing really new for me that I had not read before. All in all an interesting session but nothing special. ARC305 Architecture Refactoring: Improving the Design of Existing Application ArchitecturesThe content of this session was interesting but poorly communicated. A disappointment for me because I expected more. The use of Dependency Injection and Aspect Oriented Programming is really a good way to refactor your architecture in an existing application. WUX306 Building Scalable and Available Web Applications with the Microsoft Code Name "Velocity"Good session. It was more about using caching to scale out than on Velocity it self. Velocity do not replicate data it just do partitioning with the option to use HA that creates at least one secondary copy of the data. My basic comparison of Velocity to Ncache that we use today Velocity have fewer features but are performing the basic caching that we need. With ASP.NET 4.0 output caching will be opened up for other providers. DAT306 Building a High Availability Strategy for Your Enterprise Using Microsoft SQL Server 2008Again an excellent session for me to expand my lacking knowledge in the SQL area.
Today I also had some time to go to the vendors expo and talked to some vendors about continuous deployment and tools for job scheduling. The most promising right now are ActiveBatch and RepliWeb. The big question is if you really need these tools if you have SCCM ARC315 Zen of Architecture
Juval Löwy was good as usual. This time he talked about his method of producing an architecture for a system. Here are some of the main parts of Juvals method
Some of the design rules Juval talkes aboutOne of the most important part of the architecture is to isolate the areas of change and make the areas of change decoupled from the rest of system Systems are typically designed in layers, even simple systems Layers are used to layer encapsulation All cross-layer entities should be WCF services You only pass the following between layers:
Logic in data contracts should not cross layers A layer should always authenticate the caller. There is no need to pass the authentication thru layers. I agree in the most parts with Juval but I think a more domain driven design approach is more useful. Session summary for Tuesday at TechEd09ARC308 Patterns for Moving to the CloudVery good session that makes it clear that if you want to be prepared for scalability and flexibility you should really look at building your applications based on message passing thru some kind of queue interface. There is also a very good reason to decouple your application logic from the data storage to make it easier to move in to a cloud when needed. Simon Guest presented 5 patterns for moving to the cloud:
ARC314 Using LAAAM to Make Good Architectural Decisions, Fast!Very good session with a very good method of reaching well based decisions on different subjects such as choose of architecture style, selection of vendor, technical implications and so on. LAAM is a simple and flexible process with the following basic parts:
Read more about it at Jeromy Carriere's WebLog This has been the best session so far. BIN204 Introducing Microsoft SQL Server Analysis ServicesThis was good session that helped me fill in some of my knowledge gaps. ARC205 The Microsoft Application Platform: A PerspectiveThis session was thought worthy. But it did not really answer, at least my, question about what the platform really is. The option that SOA, in the term of Service oriented architecture, is not succeeding and the SOA, in terms of Service Oriented Applications, is succeeding and has a great future I strongly agree. David Chappells points about business strategy and application platforms:
and how to choose an Application Platform:
And his conclusions:
My conclution: SOA is dead long live SOA! WSV322 Web Application Deployment, Packaging, and MigrationThis was a session I has been looking forward to. We are currently looking at solutions for doing continues deployment from our TFS build machine and MSDeploy really looks promising. The session was really informative and answered most of my questions. For instance:
I think MSDeploy is the way to go for us. We will probably need to build some custom providers but that's ok because that means that I have to write some code :-) Session summary for Monday TechEd09KeynoteTotal focus on IT Pro stuff. Some interesting things were:
The biggest revelation for me was that you can't work with windows in the future without learning PowerShell. This leads me to believe you should always build your own apps to have PowerShell support. BIN203 Democratizing Business Intelligence: delivering BI to the massesThis was an interesting session even if it was mostly a sales demo. Sharepoint and Excel are Microsofts UI technology for BI. Visual Studio Team System 2010 Architecture Edition is targeted to reduce complexety in code, requierments and more. It attacks the problems of shared understanding, understanding existing systems and maintaning control of evolving systems. ARC201 A lap around Team System 2010 Architecture EditionWhat will Visual Studio Team System 2010 Architecture Edition aim at solving:
The current version is not supporting roundtrip engineering. It is possible to add .Net specific metadata to the logical class diagrams DGML is the way VS2010 are visualizing some of the diagrams, if not all. It is easy to add your own diagrams thru the extensibility. The session was good. I would have liked to see some more stuff but it almost seamed like they had scaled back the feature set from the version I did see last year. DTL301 Microsoft .NET-Connected Application DeploymentThis session was the disappointment of the day. Too much focus on .Net Framework deployment and detection and almost nothing on how to deploy your actual apps. Very thin on MSDeploy and how to do deployment when working with a build server. PRC07 A Day of WCF + WF + Dublin
Today it has been a day about WCF, WF and Dublin as the titles said. Michele Leroux Bustamante has a better speaker and presenter than Zoiner Tejada. The day was average to good. The demos was a little to simple. The tag line of the day was "The new middle tier" but my tag line would have been "The workflow middle tier" because most of the new stuff is in the workflow space. On the WCF side it looks like it is mostly deployment, management and monitoring enhancements for the 4.0 version. Routing based on content and some of functionality from the REST Starter Kit is also new WCF 4.0. Workflow Foundation 4.0 is really an totally new version. An updated sequential workflow type and the new flow chart type is the basic building blocks. No built in State Machine as of now. On the activity side WCF integration is the big thing and it looks good. Activities will even be generated from service endpoints for ease of use of services. The programming model has also changed concerning how variables and input/output arguments are handled. It now makes sense how you pass information around in WF. New is Declarative Workflows that really makes activities reusable between implementations. The new WF designer is built in WPF and it looks better but still the property window development model is not very user friendly. Please give us a more code based UI or something that does show more than 10 chars at the time! Lots of new features in persistence, tracking and monitoring. "Dublin" is an improved IIS hosting model for WF based services. Lots of good stuff for the IT Pros and the infrastructure. MSDeploy will be the deployment story and PowerShell the API for management with a GUI on top. Interesting day but my expectations was higher. Off we go to Tech Ed US 2009Technorati-taggar: Tech Ed 2009 Tomorrow I'm off to Tech Ed US 2009. I will try to post my notes on the sessions I will attend here as I did last year. I will also post updates on my twitter account @hakanforss. My way to see the light about Lean
Two to three years ago I started my knowledge journey in the area of Lean. I had at that time been into Agile in general and Scrum in particular for some time and was wondering what all this talk about Lean was and how it was related to Agile. In this post I will not try to explain my opinion about this but I will give you the main outline how I started my journey thru a list of books that I recommend. My Lean booklist in my reading order:
If you havn't read these yet my recommended order is: 2, 6, 1, 3 5. Lean Solutions is optional in my opinion. I have three more books that I'm about to read in the comming month:
Note:The reason why The Goal: A Process of Ongoing Improvement by Eliyahu M. Goldratt and Jeff Cox is not up there is because it is not for sale thru Audible.com in Sweden, DRM stuff stinks. I will try to get it on audio and if not possible dead trees will too. Anything you like to add? How to build ClickOnce applications with TeamBuild for multiple environments
In ths post I will show how to build ClickOnce applications with TeamBuild for multiple environments in Team Foundation Server. I have been trying to build ClickOnce applications in our TeamBuild for some time now and only after long ours of googling and trial and error was I successful. The most useful information I found on this blog: Publish ClickOnce project with Team Build? Made some modifications and refactoring and here are the code we currenlty use: This is how you call the ClickOnce build from you TeamBuild project file (line breaks added for readability): <Msbuild Projects="$(SolutionRoot)\ConfigFiles\BuildClickOnce.targets" Targets="BuildClickOnce" Properties="SourceDir=$(SourceDir);PublishDir=$(PublishDir); For every environment or configuration change you want you use this. Below you find the BuildClickOnce.targets file (line breaks added for readability): <?xml version="1.0" encoding="utf-8"?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets" /> <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> <Import Project="$(MSBuildExtensionsPath)\Microsoft\SDC\Microsoft.Sdc.Common.tasks"/> <Target Name="BuildClickOnce" DependsOnTargets=""> <PropertyGroup> <ClickOnceApplicationUrl>$(ClickOnceUrl)$(ClickOnceAppName).application</ClickOnceApplicationUrl> <AppPublishDir>$(PublishDir)</AppPublishDir> <SdkPath>C:\Program Files\Microsoft SDKs\Windows\v6.0A</SdkPath> </PropertyGroup> <BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" Message="Buildning $(ClickOnceAppName) ClickOnce version: $(VersionNumber)"> <Output TaskParameter="Id" PropertyName="StepId" /> </BuildStep> <CallTarget Targets="UpdateWebPage" /> <!-- ************************************************ Generate application manifest ************************************************ --> <Exec Command="mage.exe -New Application -TrustLevel FullTrust Lite länkar till nyheter från PDCTechnorati-taggar: PDC,Microsoft,Visual Studio Team Foundation Server,Visual Studio 2010,.Net 4.0,Oslo Tyvärr så är man inte på PDC:n men här kommer lite intressanta länkar för den som är intresserad. Presentation: Korta releasecykeln med smart .NET arkitektur och Scrum
Idag höll jag en presention på Valtech Days med följande beskrivning: Korta releasecykeln med smart .NET arkitektur och ScrumMed agila arbetssätt som automatiserade tester, kontinuerligt integration och en löst kopplad systemarkitektur så har SwebusExpress minskat sin release cykel från 8 till 2 veckor.Scrum var metoden, Lean värdegrunden och Visual Studio Team System systemstödet. Som vanligt så har jag svårt att hålla mig kort så det blev lite ont om tid på slutet men det känndes ganska bra. Hade hoppats på att jag skulle hinna med att visa lite kod också samt automatiska byggen i Team Foundation Server men det han jag inte med. Scrum for Team System version 2.2 är släppt
Idagarna har Conchango släppt Scrum for Team System version 2.2. Releasen innehåller bland annat:
Läs mer om releasen på Scrum for Team System Forum |
Mina bokrekomendationer
Mina favorit PodCasts och bloggar
Diverse länkar som jag ville spara
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|