Also on March 7th I saw the Developer Days sesssion: How to built interactive webapplications with ATLAS by Scott Guthrie, the General Manager of the .NET Developer Platform from Microsoft. I must say I already played some with an early verion of the ATLAS Beta and back then I was exited. After seeing Scott I was impressed. They really are doing a fine job enabling Microsft developers to use AJAX.
He told us ATLAS is built with two approaches to developing AJAX enabled webapps in mind:

  • Server-centric Ajax Web Development
  • Client-centric Ajax Web Development

Where Server-centric means add UI enrichment for key scenarios, enrich applications without lots of Javascript code required and enable you to keep the core UI/Application logic on server (VB/C#).

Server Centric ATLAS 

Client-centric Ajax Web Development however is meant for leveraging full power of script/DHTML, provide a richer and more interactive user experience and build mash-ups, gadgets and other new immersive experiences.

Client Centric ATLAS

What Server-centric ATLAS basically provides is a container control that enables “updatable” regions in a page. Atlas provides a XmlHttp based (asynchronous) postback infrastructure.

The UpdatePanel:

   1:  <atlas:UpdatePanel id ="u1" runat ="server">
   2:    <ContentTemplate > 
   3:      This content can be dynamically updated!
   4:      <asp:label id="Lablel1" runat="server"/>
   5:      <asp:buttonid=“"button1" text="Push Me!" runat="server"/>
   6:    <ContentTemplate>
   7:  </atlas:UpdatePanel>

Atlas intercepts post-back submit actions on client. Than it uses XMLHttp to fire a postback action to the server. The Postback events fire like normal on server
Only the content of the updatepanel regions are returned and the changed updatepanel regions are replaced on the client. All post-back actions for controls declared within an updatepanel control will cause Ajax-based post-backs with an incremental page refresh. But Post-back actions for controls outside of an updatepanel control will by default cause normal postbacks, so it is possible to use both on one page.

   1:  the below button will cause a normal full-page postback and update 
   2:  <asp:button id ="NormalPostBack" onclick ="btn1_click" runat ="server" / >
   3:  <atlas:UpdatePanelid="u1" runat="server">
   4:      <ContentTemplate>
   5:          Updatable content...
   6:           the below button will cause an Ajax postback and refresh
   7:          <asp:buttonid="AjaxPostback" onclick="btn2_click" runat="server"/>
   8:      </ContentTemplate>
   9:  </atlas:UpdatePanel>

Than the ATLAS framework makes use of what is called 'Triggers', these can be used to associate UpdatePanels on the page with postback controls declared outside of the UpdatePanel
   1:  <asp:ControlEventTrigger> Refreshes the UpdatePanel when a control event fires.
   2:  <asp:ControlValueTrigger> Update the UpdatePanel when a control value changes. 

For now I think this is enough for one article, so the only thing I want you to know is the ATLAS release timeframe I heard in this session:
  First public preview released September 2005  Early release to solicit feedback and comments
  March CTP will be released on the MIX Conference in Las Vegas
  Atlas CTP Go-Live License Coming Soon This will allow production applications to be deployed


Henry Cordes
My thoughts exactly...

On March 7th I attended some sessions at the Dutch Developer Days 2006. A session I attended was: Dynamics of Microsoft Solution Framework and Visual Studio Team System by Anko Duizer from A-Class.
He told about how he always worked with and liked MSF. He had the opportunity to see how Microsoft uses MSF in real life and told us how much he would like to share this knowledge. The reason why he wanted to talk about MSF and Team System was:

  • Software development is more than just good programming
  • Microsoft Solutions Framework is the result of many years of experience
  • Visual Studio Team System is a great enabler for the use of MSF 

There are a few methodologies that MSF supports: MSF for Agile Software development, MSF for CMMI process improvement.
Team System ofcourse is all about team development. Anko said he learnt a lot from reading a book written by Jim McCarthy called Dynamics of Software Development.
He claimed it opened his eyes and he thinks it still is a book that everybody in software development should read.
A few rules from this book where highlighted, because they are real important. In the book there should be much more. The rules I saw made sense and I think I will pick up this book one of these days. I must say Anko had a software problem, so I think a lot of the demonstation he had planned could not be shown, which in my opinoion was a shame. So I will  write down some rules from which I think they make sense (although some are really obvious):

  • Establish a shared vision (Make everybody aware of what they are doing and why)
  • Create a multi-release technology plan (Make  plans for the future, if you can not get features in this release, you can get them in future ones)
  • Don’t flip the bozo bit (Every department has got one, an employee from who nobody really knows what he is doing, we do'nt want 'bozo's' on our team, or become one)
  • Use feature teams (Use teams for small parts of an application)
  • Use program managers (but it is important to make the distinction that he is servant not master! He supports the team, not tells what to do)
  • Design time at design time
  • Remember the triangle: Features, Resources, Time (You can not get features, if you have not got the time and/or resources)
  • Don’t know what you don’t know (If you can not know something, aknowledge this)
  • Don't go dark (Don't let people get away with doing things without anybody specifically knowing what they do)
  • If you build it, it will ship (Make sure code will built!)
  • Get to a known state and stay there (It is better to release something, than trying to built new features that are late)
  • Don’t trade a bad date for an equally bad date (If you do not make a deadline, don't say we release a week later, but will include the new feature you need!)
  • Triage ruthlessly (Like the war movies, only in software development)

Henry Cordes
My thoughts exactly...

Developer Days 2006

Published 3/7/2006 by Henry in DevDays

Today I attended the Dutch DevDays 2006.
There were a few interesting sessions, it started with the traditional Keynote.

Rafal Lukawiecki Project Botticelli gave his opinions on why he thinks 2006 is going to be a more exciting year for IT then the past couple of years. In his view Team System is going to change the way we work together in the IT world. He is both enthousiastic and impressed that now MSF (the Framework used by Microsoft internally and according to Rafal the reason why they as a company are succesfull at creating Software) is going to be used by everybody who is going to work with Team System. He says Microsoft put as much of MSF in a box as they could put in and called it Team System. Also he talked about ADAM (Active Directory Application Mode) and AzMan (Authorization Manager). He is very much into Security and claims that this can be a very profitable specialty. In my opinion he is a very enthousiastic and likeable speaker, the only one I know who keeps his presentation interesting the whole time he speaks. On top of that his story is interesting also.

Furtermore we (again) got a Windows Vista demo, it was only 10 minutes long, so it only touched the surface. We saw IE 7 with the tabs like Firefox (extended with thumbnail view and saving one or more tabs in one favorite), along the credo "Extend and Embrace". We saw 'Gadgets', which are mini-applications with a wide variety of possible uses. They can connect to web services to deliver all kinds of information. Gadgets can also integrate with your applications to streamline your interaction with them. They are shown on what is called the 'Sidebar'. The Windows Sidebar gives quick access to gadgets. The richness of the User Interface and the way the modern graphic cards are used to their full potential is really cool.

The closing speaker for the keynote was Scott Guthrie the General Manager for the Client and Web Platform and Tools Team from Microsoft told us he was going to build a datadriven Ajax enabled Web app with Edit, Insert, Update and Delete functionality from scratch within a 20 minutes time frame, which he did. ASP.NET 2.0 makes it possible to code at this speed. The combination with ATLAS, the Ajax enabling Framework for ASP.Net 2.0, is really very impressive. Later in the day I attended a more in depth session of Scott.

Implementing Domain Specific Languages
The second session I attended was given by Edwin Jongsma from Avanade, his session was called 'Implementing Domain Specific Languages', he told about Software Factories overall and why the name is not as well chosen as could be with regards to how most developers and architects recieve it at first. The word Factory is associated with doing repetative tasks over and over and is not very appealing to most people. DSL's  however could be the way for the future. Most clients want more for less. Edwin stated that this could be achieved by adapting DSL's and Software Factories. He showesd us some examples of writing DSL's and generating code from it, which resulted in a wizard like Windows Forms app. I will try to tell more about it in the future, because in fact this whole concept is quite interesting. My colleguea Edward Bakker is deeply into this stuff, so if you want to learn more visit his blog.
At lunch time I attended a Infragistic's session where Jason Beres showed NetAdvandadge controls (Windows Forms and ASP.Net), this are really cool controls, every developer should have them!
After lunch I attended:

  •  MSF with Visual Studio Team System
  •  Building interactive webapplications with ATLAS
  •  Effectivly using Generics with C#

On these sessions I will write some more another time.
Henry Cordes
My thoughts exactly...