NDC magazine - NDC 2010

Document Sample
NDC magazine - NDC 2010 Powered By Docstoc
					                                                                            the Developer 2nd issue

                              For software developers and leaders

                                                            Team Leadership Skills
                                                               – The Missing Link
                                                                             by Roy Osherove
                                                                                          Photo: Typemock

                                                                                 The Whole
                                                                                 by Billy Hollis

                                                         On Building
                                                       a Data-Driven
                                                               by Chris Sells




                    Oslo Spektrum, Oslo
                           June 16-18th
                                                               L O
                                                         VA ING -
   AN AmAzING                                    h N
                                                      JU IS
                                                         LL AN J -
                                              CO Ly hON-G mA

                                        IkE BIL
   LINE-UP!                      E
                                       m S        Ik
                                                     BE hIL LIN
                                   Ry hER ITz Ey S ANk ES

                           C  ON EAT PIN ENN L FR JAm S
                         B EL F CRIS N h CAR EN VAN
                      RO hA              I             R      E ER
                   N     C LI   SA EVL ELL LEE RIC
              R SE mI h          E
                                    k PB
                                                 C     E AUCh N
        TO . mA mC ShE RD ARE G yO AND OCC BL
      S               O      A           E             T       m
m E
    B ER k O R Sø           B NTE ATT IO TIE hIN ER
R N                    U            y      N            A
RG JON A                             D            S      m
         h IChE hEU RIS h FRIE EN h TER RJE mOR Ak-
LIk AN                        y       B     S     E             B
    R Ry m TIm T Ch ShA LEN S VA G T øVIk IAN hB-
Gø GO LLS ER IN              AL EN RON LD S LD F CUT E
    E    E     h     D    T
GR IS S hUC EJAR COT CLEm E ST ARA ARA NIE                        R
                                                               TO é
C T        U    E     m     I       E    D      E      C       N    -
  k A                                                 O     F     N
S           JU AD P V         O ST ND ETh IJhO ARI
  ICh GILB RT h FILI ERG N ø D A ALS k N                    k
R          E    I      B    E      N     k AR        IA SS
TOm LIPP VAC NNE økk øLA Ik                 m ATT
ER RI      kA IL               R      N
    E    G    T       UN S F RAV RPE
TIB FAN kJE SON TUE LA              hA
    R    N    T      S AD ON
FO kE ER          VE    V     S
                     Oslo Spektrum, Oslo
                            June 16-18th

              Buy tickets NOW! – visit
                                                                                   The success of this strategy was soon evi-                       plication, all from an agile perspective.
                                                                                   dent. Interest in submitting proposals for                       As the organisers of NDC, we are proud
                                                                                   talks has exceeded expectations. This has                        of what we have achieved. Programut-
                                                                                   allowed us to refine the content further,                        vikling AS is one of the course centres to
                                                                                   with even keener focus on agile develop-                         have trained up the most ScrumMasters
                                                                                   ment, know-how and ways of using Mi-                             and Scrum Product Owners worldwide,
                                                                                   crosoft technology in your projects.                             and at NDC we want to show both devel-
                                                                                                                                                    opers and managers how to succeed with
                                                                                   Not everyone made it in the competition                          projects in an agile way.
                                                                                   to address our audiences, but the techni-
                                                                                   cal quality of the proposals was consis-                         At NDC you will experience great talks on
                                                                                   tently high. The evaluation criteria also                        architecture, design and technology, ap-
                                                                                   took account of the profile we want for                          propriate for all developer platforms.
                                                                                   the conference. As a result of the excellent
                                                                                   contributions received, this year we have                        The NDC programme is available here in
NDC2010 organizing committee - Photo: Thomas Bjørnflaten
                                                                                   expanded the conference with an extra                            this magazine. There is plenty to choose
                                                                                   track. We would like to take the opportu-                        from. We also hope you will enjoy and
          Announcing NDC 2010                                                      nity to thank everyone who submitted a                           benefit from all the articles by many of
                                                                                   proposal. And we also hope to hear from                          this year’s speakers. A big thank-you to
          Our mission is to organise the world’s                                   you again next year!                                             all the contributors – this year’s edition is
          best conference for developers. This is                                                                                                   all down to them.
          why we put huge effort into creating an                                  NDC has become one of the year’s big
          agenda that really hits the spot. This year                              events in the developer industry. As a                           We hope you have an exciting and
          we issued a call for papers from develop-                                participant, the conference brings you                           rewarding conference.
          ers at home and abroad. The idea was to                                  fully up to speed in the latest Microsoft
          get conference content determined more                                   technology. The great thing about NDC is                         Welcome!
          closely by the developers themselves, on                                 that it offers you a wide-ranging insight
          the basis of specific wants and needs.                                   into the technology’s many areas of ap-


The Whole Brain Developer...................................... Billy.Hollis. ........................ 4

The Role of Leaders on a Self-Organizing Team. ... Mike.Cohn. ........................ 6

The Compassionate Programmer. ............................ Scott.Bellware..................... 8

C# 4.0........................................................................ Gill.Cleeren.......................10
On Building a Data-Driven E-Commerce Site........... Chris.Sells. .......................12.

Frictionless ORM with Fluent Nhibernate ................ James.Gregory. ..................14

Get Social                                                                                                     .
                                   ............................................................... Anders.Norås. ...................16

Team Leadership Skills – The Missing Link............. Roy.Osherove....................18

Learning for Testers.................................................. Lisa.Crispin......................                                                                                 20

The Grand Unification Theory of hosting                                                                                                        .
                                                                                                                    . .............. Juval.Löwy. ...................... 24

Failure........................................................................ Greg.Young. .....................
                                                                                          .                                                                                               26

Self Organisation....................................................... Geoff.Watts....................... 28
All-At-Once Operations.............................................. Itzik.Ben-Gan....................                                                                                    30

Geeks Should Manage Geeks................................... Jurgen.Appelo...................                                                                                             32

97 Things Every Programmer Should know.
                                      ............ Kevlin.Henney...................                                                                                                       34

SharePoint 2010: Client Side Technologies.
                                         ............. Sahil.Malik.......................                                                                                                 36

Utgiver: ProgramUtvikling AS, Postboks 1, 1330 Fornebu. Telefon: 67 82 72 38 • Trykk: Printall AS • Foto: iStock • Design/layout:
                              The Whole
                              Brain Developer
    by Billy Hollis

    The standard graphical user interface         That’s understandable. A code-centric          The natural world contains almost no
    (GUI) is approaching its thirtieth birth-     approach emphasizes what many devel-           monochrome colors. Other than a blue
    day. That’s an eternity in the world of       opers do best, which is procedural, de-        sky overhead on a clear day, the world
    technology, so it’s not surprising that       tailed logical analysis.                       in which we evolved is a world of swirl-
    new technologies are starting to sup-                                                        ing, melding colors. Even when we paint
    plant the classic bit-mapped GUI.             The neuro-biologists usually call those        a wall the same color, we don’t see it as
                                                  kinds of skills “left-brained”. Other,         monochrome because of varying light
    We have seen a few refinements to             “right brained” skills include big picture     falling on the surface.
    the GUI over the years. For example,          thinking, pattern recognition, and emo-
    back in the 1990s, browsers added flex-       tional rapport with users.                     Therefore, we evolved to subconscious-
    ible layout and the idea of markup.                                                          ly perceive varying, gradient colors as
                                                  While the whole left-brain, right-brain        natural, and monochrome colors as
    New rendering and markup technologies         model is rather oversimplified, it’s still     unnatural. A user interface with gra-
    go far beyond that. Silverlight, Windows      useful for understanding what we as de-        dient colors is perceived by users as
    Presentation Foundation, and Flash all        velopers need to do going forward. The         more natural, lessening their stress
    involve dramatically new concepts. Ani-       ideal is that we couple both kinds of          when using the application. They’ll
    mation, compositional layering, trans-        thinking, using each as necessary.             like it, even if they can’t verbalize why.
    formation for scaling and rotation, and
    even richer colors give new degrees           Most developers already do some of this.       The same right-braining thinking is
    of freedom for user interface design.         The discipline of coding patterns comes        needed to effectively use animation, vi-
                                                  from right-brained abstraction of prob-        sual signaling, advanced layout options,
    This is new territory for user interface      lems, for example.                             and other capabilities of modern inter-
    developers. As a group, we’ve never been                                                     face technologies. To really use these
    known for our user interface design skills.   But we have a long way to go. Let me give      technologies effectively, developers need
    Now we’re facing new demands and              you a tangible example. I’d like to ask a      to get their right brains fully engaged,
    higher levels of user expectation. We also    question, and let you formulate your own       and embrace some new ways to look at
    have the opportunity to find new ways to      answer before giving you my own. The           user interface design and construction.
    make users productive and happy with          question is this: What is the usefulness, if
    our work.                                     any, of gradient colors?                       I’ll be discussing these ideas in more de-
                                                                                                 tail in my sessions at NDC 2010. I hope to
    Some developers would really rather           Got your answer, or lack of one, all done?     see you there.
    stick with the coding aspects of their job    Then let me answer the question from a
    and not worry about these new concepts.       standpoint of brain wiring.

Konsulenttjenester og
programvarelisens i fokus

Kombinasjonen av konsulent og lisens gir Inmeta en unik posisjon hos store
virksomheter. Inmeta kjennetegnes gjennom en solid kundebase innen privat-
og offentlig sektor, en utadrettet og skapende bedriftskultur og et inspirerende,
godt faglig og sosialt arbeidsmiljø.

Inmeta leverer lisensiering av standard programvare og konsulentjenester innenfor
forretningsnær IT, samhandling, Business Intelligence, sikkerhet og moderne

Vi sees på NDC 2010, kom og besøk vår stand!

                             The Role of Leaders on
                             a Self-Organizing Team
    by Mike Cohn

    Self-organization is a fundamental con-      Self-organizing teams are not free from        Suppose you are a ScrumMaster for a
    cept in agile software development. The      management control. Management                 team. You’ve noticed that one team mem-
    Agile Manifesto includes the principle,      chooses for them what product to build         ber, Jeff, is domineering and no one is
    “The best architectures, requirements,       or often chooses who will work on their        willing to stand up to him. This team has
    and designs emerge from self-organizing      project, but they are nonetheless self-        self-organized—it has chosen to let Jeff
    teams.” Yet a common misconception is        organizing. Neither are they free from         make all key decisions. As the ScrumMas-
    that because of this reliance on self-or-    influence. Early references to Scrum           ter for this team, though, you recognize
    ganizing teams, there is little or no role   were clear about this. In “The New New         that if Jeff continues to make all the deci-
    for leaders of agile teams. Nothing could    Product Development Game” from 1986,           sions on his own it will impede the team’s
    be further from the truth. In The Biology    Takeuchi and Nonaka write that “subtle         efforts to improve. You consider having a
    of Business, Philip Anderson refutes this    control is also consistent with the self-      private conversation with Jeff, but that is
    mistaken assumption.                         organizing character of project teams.”        unlikely to change much.

    Self-organization                            A Scrum team’s job is to self-organize         You contemplate
                                                 around the challenges, and within the
    does not mean that                                                                          stepping in and
                                                 boundaries and constraints, put in place
    workers instead of                           by management. Management’s job is to          overruling some
    managers engineer                            come up with appropriate challenges and        decisions he makes,
    an organization                              remove impediments to self-organization.
                                                 That being said, the fewer constraints or      but if you do it once the team will expect
                                                 controls put on a team, the better. If lead-   you to continue to do so, which won’t be
                                                 ers overly constrain how a team solves         good.
    It does not mean letting people do what-
    ever they want to do. It means that man-     the challenge given to it, self-organization
                                                 will not occur. The team will shut down;       Then you begin thinking about subtle
    agement commits to guiding the evolu-
                                                 because it has already been told so much       control and influence. Perhaps you decide
    tion of behaviors that emerge from the
                                                 about the challenge and how to solve it,       to change the team’s dynamics by asking
    interaction of independent agents instead
                                                 it will wait to hear the rest. So how does     management to add someone new to the
    of specifying in advance what effective
                                                 an agile leader achieve the subtle balance     team, someone who is likely to stand up
    behavior is.
                                                 between command and influence?                 to Jeff. Or maybe you suggest to the en-
                                                                                                terprise architecture team that someone
                                                                                                from its group attend key meetings

— someone with the experience and back-          Leaders influence teams in subtle and in-
ground to challenge Jeff. No matter the          direct ways. It is impossible for a leader         For more details on how leaders can help
specific problem, if you see that the team       to accurately predict how a team will re-          teams and their organizations attend a
has self-organized in a way that impedes         spond to a change, whether that change             one-day Succeeding with Scrum class or
it, it is your responsibility to find a way      is a different team composition, new               Mike’s session on self-organizing teams
to agitate, stir up, or otherwise disturb        standards of performance, a vicarious              at the 2010 Norwegian Developers’ Con-
the status quo, so that the team adjusts,        selection system, or so on. Leaders do             ference.
hopefully reorganizing in a more produc-         not have all the answers. What they do
tive way.                                        have is the ability to agitate teams (and
                                                 the organization itself) toward becoming
There is more to leading a self-organizing       more agile.
team than buying pizza and getting out of
the way.

“There is more to leading a self-organizing team
than buying pizza and getting out of the way. “

      Choose your
      team right

    Avanade er et IT-konsulentselskap         Er du interessert i å høre mer fra          På vår stand gir vi deg våre erfaringer
    eiet av Accenture og Microsoft            en av verdens ledende system-               fra blant annet SharePoint 2010,
    med 285 medarbeidere i Norden             integratorer på Microsoft-                  Silverlight og Visual Studio 2010.
    og nærmere 10.000 globalt.                teknologi? Besøk vår stand!

                              The Compassionate
    by Scott Bellware

    You feed your mind problems, figure out       The recordings of human                       Nothing is like software. Nothing that can
    how to solve them, and then step through      creativity in computer                        be made by us can act as an analogy to
    the detailed process of your thinking step                                                  making software. Any analogies to other
    by step, observing the thinking itself and
                                                  programming languages                         crafts are useless for helping the people
    recording its details with specialized lan-   are themselves machinery.                     around us understand software develop-
    guages made just for this purpose.                                                          ment and to connect the work we do with
                                                  The legacy you leave is very literally the    the kinds of quirks we have.
    Whatever you’ve got in your mind, it’s        structure of your mind. Long after you
    going into the software. How ever your        ’re gone, your thoughts, like avatars, con-   Software development can trap us in a
    thinking is shaped, that’s how your soft-     tinue to serve. You put yourself through      cognitive bubble shaped by a mathemati-
    ware will be shaped. There’s very little      a cognitive ringer every day, thinking        cal formalism that blocks our ability to
    distinction from how your mind grapples       through the decomposition of problems         see in shades of usability. We fail to con-
    with a problem and how a computer that        to greater depth than most other people       nect through our cultural predispositions.
    you’ve programmed will grapple with the       in your midst. Not only do you have to        We’re either navel-gazing, and failing to
    problem. The computer is running your         have the detailed thoughts, you have to       connect, or we’re bouncing off the walls
    thoughts.                                     replay them over and over so that you can     and failing to connect.
                                                  record them in these languages that have
                                                  grammars suited only to recording the         There’s one reason why software develop-
    Programmer: you are a
                                                  details of the workings of your mind. No      ers continue to make software that users
    thought donor!                                wonder so many of us are mildly autistic      find frustrating but that the developers
                                                  or hyper, or both.                            believe to be perfectly enjoyable: The
    You could think the same of writers, mu-
                                                                                                constant exposure of a person to pro-
    sicians, and other craftsmen who record       The Linguistic Relativity Principle: Cul-     gramming changes their ability to per-
    their works, but none of these works are      tural concepts and categories inherent        ceive what’s good about software experi-
    like software. A music file isn’t the music   in different languages affect the way that    ences from the outside.
    player. An electronic book isn’t the e-book   speakers of different languages think and
    reader. No other form of recorded human       behave. Languages are not only cultural,
    voice is itself a machine. The blueprints     they modify culture.
    for a computer aren’t the computer itself.

When programmers use software, they             Traditionally, programmers vastly over-     It doesn’t cop out when it comes to de-
can’t help thinking about how the soft-         estimate their ability to have a visceral   signing in consideration of people’s ex-
ware is made: the internal geometry, the        understanding of usability. What a pro-     perience. It’s relentless and rigorous
interaction protocols, the tools, or the        grammer sees as a negligibly-frustrating    with itself. It constantly tries to find the
workbench where it came together. It’s          interaction with their software is likely   assumption of goodness in the last bit of
as if the outermost surface of software         much more than negligible. After hours      software written, knowing that program-
is transparent to programmers. It’s the         and days of immersion in frustration,       mer psychology allows for distraction
only visible surface to end users, and          users take that frustration home to their   from a deeper understanding of good-
often the only imaginable surface from          personal lives. Neither they nor their      ness.
their perspective. Programmers don’t            families deserve this, and you as a pro-
just see the part of the software that non-     grammer have a duty to do what you can      There’s no escaping the effects of mathe-
programmers are limited to seeing, they         to reduce this software-driven ambient      matically-formal, terse languages on your
push their attention right past the user        frustration in our society.                 mind, but you can counteract the effects.
interface and on into the depths of inter-                                                  Just being aware of the cognitive and be-
nal machinery behind the user interface.        The design mind is                          havioral bubble that constant exposure
There’s nothing inherently wrong with                                                       to programming traps you in is a great
                                                compassionate above all.
contemplating the internals of software                                                     start. Cultivating a greater awareness of
while you’re interacting with it, but it does   It recognizes the effect of                 the effects on your users’ lives and your
have a significant drawback: You’re not         constant and pervasive                      own life can lead to great improvements
paying enough attention to the outermost        exposure to poor software                   in both.
surface of your software to understand          on people’s lives, be they
why users are frustrated by it. Become
aware of your mind’s wandering into the
                                                users or programmers.
internal machinery and know that this is
often a counterproductive distraction.

                              C# 4.0

     by Gill Cleeren

     C# 4.0 == C# 3.0 + much more                 These enhancements will make interact-         soever whether the dynamic object actu-
                                                  ing with some objects, such as COM ob-         ally supports the operation that we have
     Many .NET developers love the C# lan-        jects, objects from IronPython or .NET         specified on it. If it does not, we’ll get a
     guage. Since its birth almost a decade       objects that we would normally need to         runtime error. To support dynamic, C#
     ago, it underwent many changes and has       access using reflection, a lot easier.         introduces a new pseudo-keyword/static
     been enhanced with numerous exten-                                                          type, dynamic. In the sample code below,
     sions. The previous version, C# 3.0, dates   At the core of the dynamic                     we can see a very basic sample of the use
     back to 2007, when it was released as                                                       of dynamic.
                                                  options we are getting
     part of Visual Studio 2008. C# 3.0’s big-
     gest addition was LINQ. Now, in 2010,        in C# 4.0 is the dynamic                        As can be seen, p is of type dynamic. This
     the successor has arrived in the form of,    lookup or dynamic binding.                     means it can accept every type of object.
     quite logically, C# 4.0. This new version                                                   Once an object of type dynamic is cre-
     brings some interesting new features into    With it, we get a unified way to invok-        ated, we can assign whatever we want on
     the language; however the most striking      ing anything we want, but dynamically.         it. In the lines below the creation, several
     change is the trend towards dynamic.         In other words, we are getting an object       properties and methods are applied on p,
                                                  whose type doesn’t matter. The object can      but only at runtime, the object is exam-
     The dynamic trend in C# 4.0                  effectively come from COM, IronPython,         ined and it is determined what it means
                                                  HTML DOM, reflection… We can invoke            to call these properties and methods on
     Since the very first version, C# has been    whatever operations we want on it and          p. We could well have called a non-exis-
     a static language. Being a static language   leave it to the runtime to figure out what     tent method, which results in a run-time
     has a lot of benefits over dynamic lan-      those operations mean for that particular      error. Internally, dynamic is similar to
     guages, such as performance and smart-       object. The resolving – or binding – pro-      object, but there’s a special attribute in-
     er tools (IntelliSense in Visual Studio).    cess is effectively deferred from compile      dicating that is should be treated as dy-
     Lately, there has been a rise of dynamic     time until runtime.                            namic.
     programming languages, of which Iron-
     Python and IronRuby are probably the         After many years in which we have grown        In the “C# 4.0 == C# 3.0 + much more”
     best known examples. While C# remains        accustomed with static typing, all this        sessions, we’ll look together at dynamic
     a static language and strong typing re-      may sound a bit confusing. As always,          in much more depth as well as the other
     mains the rule, we can definitely see the    dynamic typing has some advantages and         new features in C# 4.0, including easier
     influence of dynamic languages in C# 4.0     disadvantages. Working with dynamic            COM interop and co- and contravariance.
     as well.                                     results of course in a lot more flexibility,
                                                  but it also has an important drawback:         Opposite page:
                                                  at compile time, there is no check what-       Using dynamic in C# 4.0

        class Program
            static void Main(string[] args)
                dynamic p = GetPerson();
                p.Name = “Gill Cleeren”;
                p.Age = 30;
                Console.WriteLine(“Name: {0}; Age: {1}”, p.Name, p.Age);

               static dynamic GetPerson()
                   return new Person();

        class Person
            public string Name { get; set; }
            public int Age { get; set; }

               public void IncreaseAge()

You need to be enthusiastic and motivated.
You need to be creative and excited about new technology.

Schlumberger Information Solutions (SIS) Norway Technology Center (SNTC), is the Center of Excellence for Geology
and Geophysics. We are located in two sites across Norway: Oslo and Stavanger. We develop state of the art software
applications for oil and gas exploration, appraisal, evaluation and production. Our activities span from software
engineering to customer support, from technical documentation to quality assurance. Our developments are focused on
extending the Schlumberger Petro-Technical Desktop (Petrel) and Open Architecture Framework (Ocean) to produce rapid,
customizable & integrated applications that help oil and gas scientists and engineers in their work.

Oslo is the home of the Petrel and Ocean framework engineering team as well as the Geological Modeling and Structural
Modeling teams.

Stavanger is dedicated to the engineering of geophysical interpretation systems, producing the Petrel Geophysics
product and high-end visualization.

SNTC, in both locations, also includes a large number of geo-science specialists who ensure product quality, train
internal and external users, provide worldwide product support and produces rapid software solutions for clients.

SNTC closely collaborates with Universities and Research Centers in Norway and the rest of the world. All employees
benefit from tailored and continuous training programs, modern communication technologies and a global structure that
supports knowledge sharing and team work. Management encourages patent applications, conference participation and
journal publications.
For job opportunities, please contact

                                On Building a Data-Driven
                                E-Commerce Site
     by Chris Sells

     It had been a long, hard week at work. I       As it turns out, there are a bunch of ways     over the code and the look and feel of the
     had my feet up and was calling my long-        to skin this particular cat, but because I     site. I didn’t want to configure somebody
     distance friend when she popped the            was a busy fellow with a more-than-full-       else’s web site and risk going off of her
     question: “Do you know how to build            time job and a book I’m supposed to be         chosen domain name or not being able to
     web sites?”                                    writing, instead of falling prey to my engi-   tweak that one little thing that meant the
                                                    neering instinct to write my own website       difference between #succeed and #fail.
     That was about a month ago and, after          from scratch, I decided to see what was        (Friend customers are so picky!)
     swearing to her that I spent my days help-     out there.
     ing other people build their web sites, so I                                                  The e-commerce solution I picked was
     should oughta know a thing or two about        As it turns out, there’s quite a few e-com-    the one I found on (I am
     how to build one for her. After some very      merce web site solutions in the world, sev-    a Microsoft employee after all): nopCom-
     gentle requirements gathering (you don’t       eral of them recommended by PayPal, as         merce (from
     want a bad customer experience with            well as one that PayPal itself provides, if    It’s an open source solution based on
     your friend), I set about designing and        you don’t mind sending shoppers to their       ASP.NET and CSS, which meant that
     building, a real-world       web site. And if fact, I did. Requirement      I had complete control when it wasn’t
     e-commerce site.                               #1 was that I needed complete control          perfect (control I used a few times). It
                                                                                                   was far more than full-featured enough,
                                                                                                   including not only a product database, a
     ShE DIDN’T NEED A TON OF FEATURES,                                                            shopping cart, shipping calculation and
      JUST SOME STANDARD STUFF:                                                                    payment support, but also categories and
                                                                                                   manufacturers, blogs, news and forums,
                                                                                                   which I turned off to keep the web site
     •	 Built	on	a	technology	I	already	knew	so	I	could	have	the	control	I	needed.                 simple (and to keep the friend adminis-
     •		 Listing	a	dozen	or	so	products	with	pictures	and	descriptions.                            tration cost low). Unexpected features
     •		 A	shopping	cart	along	with,	ideally,	an	account	system	so	                                that we ended up liking included product
     	 folks	could	check	their	order	status	or	reorder	easily.                                     variants (lemon cake bites in sets of 8, 16
                                                                                                   and 24 made up three variants, each with
     •		 Shipping,	handling	and	tax	calculation.
                                                                                                   their own price, but sharing a descrip-
     •		 Taking	payment.                                                                           tion), product reviews, ratings and site-
     •		 Sending	email	notifications	of	successful	orders	to	                                      wide search.
     	 both	the	customer	and	the	proprietor.

The real beauty of nopCommerce, and            prices with the per product handling         emails (which nopCommerce also gener-
the thing that has been the biggest boon,      changes, and letting the user pick the one   ated for us), so I found the Nop_Order
was that the whole thing is data-driven        they wanted. All I had to do was use the     table, and used SQL to increase the iden-
from SQL Server. To get started, I ran         administration console, tag each product     tity column seed, which it was clear was
the template web site that was provided,       with size information and tell nopCom-       the origin of the order number:
it detected that it had no database from       merce that I’d like USPS today, please.
which to work and created and config-
ured the initial database for me, complete     Everything worked this way, including
with sample data. Further, not only was it     tax calculation, payment options (we
all data-driven based on the products, or-     chose PayPal Direct and Express so that
ders and customers the way you’d expect,       folks with a credit card never left our
but also on the settings for the web site      site whereas folks with PayPal logged
behavior itself.                               into their account on the familiar pay-
                                     , localization, whether to enable
For example, to get shipping working,          blogs, news, forums, etc. Most of the time
I chose from a number of built-in ship-        when I wanted to make a change, it was
ping mechanisms, e.g. free, flat rate,         just a matter of flipping the right switch
UPS, UPSP, FedEx, etc., and plugged in         in the database and not touching the code
my shipper information (like the user          at all.
name and password from my free usps.
com shipping calculation web service ac-       As one extreme example of where the
count).                                        data-driven nature really came through
                                               was on the order numbers generated by
With this configuration in place, the next     the site. During testing, I noticed that     DBCC CHECKIDENT
order the site took, it used that shipper,     our order numbers were monotonically         (Nop_Order, RESEED, 10047)
pulling in the shipping information from       increasing from 1. Having ordered from
the set of size and weight measurements        a competitor’s site, their order number      From then on, every time an order came
on the ordered products (from the data-        was only 103, clearly showing off what       through, we projected experience simply
base), calling the web service as it was       amateurs they were (and the order itself     because of the order number, which I
configured (also from the database) to         took a month to arrive after two pestering   changed without touching a line of code.
pull in the set of shipping options from       emails, so it was clear how amateur they     If helping you “fake it ‘til you make it”
that shipper, e.g. Express Mail, Prior-        really were). I didn’t want us to appear     isn’t enough reason to love a data-driven
ity Mail, etc., augmenting the shipping        like newbies in our order-confirmation       solution, I don’t know what is!

        Have you got the brains?
         We have the challenges!

                                Visit our stand A1 in the main area.

                              Frictionless ORM
                              with Fluent Nhibernate
     by James Gregory

     Object-relational mapping and relational     access layer, and are often considered an       Conventions are fundamental to Fluent
     databases go hand-in-hand. If you aren’t     acceptable cost for the massive ben-            NHibernate, and are used to define the
     using one, you’re wasting your time and      efits you gain from using NHibernate.           “shape” of your domain in a single loca-
     the business’s by writing CRUD code that     In all honesty, they’re notoriously             tion; mappings are then extrapolated
     could more easily handled by an ORM.         brittle—they’re uncompiled, and sub-            from your conventions as necessary. For
     There, I said it. If you haven’t already,    ject to breaking when you modify your           example, you can define that all your ta-
     get yourself an ORM and integrate it into    entities or tables—and a pain to create         ble names are plurals of your class names,
     your application. You should be using        and modify; they require you to drop            that primary-keys are always the class
     NHibernate if your application is .Net-      out of your programming language                name suffixed with “Id”, that any prop-
     based, and there are others of similar ma-   of choice, into the mire that is XML,           erty called Id in an entity is the identity,
     turity on other platforms.                   whenever you need to do something.              and any of those Id properties that are a
                                                                                                  Guid should use a COMB generator.
     Life is good with an ORM; you don’t          Some people decided to use Attributes
     have to write CRUD queries, no stored        for their mappings, to make mappings            Fluent NHibernate uses an automated
     procedures, and you have a truly object-     more visible while editing their entities;      mapping mechanism that allows you to
     oriented domain. Querying is power-          however, the introduction of refactoring        specify which classes are your entities—
     ful and flexible, and your objects can be    tools has made it so you’re rarely looking      typically by defining a namespace where
     more than just a code representation of      at your classes when you modify them,           they reside—
     your database tables. As a consequence       which renders this benefit of little signifi-   and then iterates those classes building
     though, your application has probably        cance. Attributes also have the side-effect     up the mappings for NHibernate using
     also come out with a serious case of XML-    of polluting your domain with persistence       the conventions and rules you’ve defined.
     itus, commonly defined as an explosion of    knowledge, which is a no-no as far as gen-      This leads to more flexible persistence-
     XML files whose purpose is to feed your      eral persistence practice goes.                 layer, with one less thing for you to hand-
     ORM tool instructions on how to solve the                                                    hold.
     object-relational impedance mismatch         Introducing Fluent NHibernate, a stat-
     problem; each file consists of transforma-   ically-compiled, XML-less, convention-          Fluent NHibernate is
     tion details for an entity in your domain,   driven mapping solution for NHibernate.
                                                                                                  one step closer to
     and how to populate them with the data       With Fluent NHibernate your mappings
     from your database.                          are implicit, based on the conventions          making data-access
                                                  you define; modifying an entity modifies        a non-issue.
     For a long time these XML mapping files      your mappings without any intervention
     have been a necessary evil. They’re more     from a developer, and creating a new en-
     tolerable than having a hand-rolled data-    tity requires zero configuration.
ProgramUtvikling AS is a
Prometric Test Center
Take a look at some of our favourable Certification Programmes
Microsoft certifications:                      Java certifications:
• .NET Framework - Windows                     • SpringSource - Spring & Hibernate
 Communication Foundation Applications         • SpringSource - Core Spring
• .NET Framework - ASP.NET Applications
  Development                                  scruM certifications:

• .NET Framework - Windows Presentation        • Certified ScrumMaster, CSM
  Foundation Applications                      • Certified Scrum Product Owner, CSPO

Tel: 67 82 72 35

Vi søker flere entusiastiske konsulenter!
Ønsker du å hØre mer om vårt microsoft miljØ? BesØk oss på vår stand!


                         Get social

by Anders Norås

Way back in 2002, Dilbert was asked          In 2009 the Norwegian Developer Con-         Social hasn’t always been about smart
by this pointy haired boss to “socialize”    ference was properly socialized. Confer-     web services though, since the rise of Eu-
an idea with the rest of his department.     ence attendees tweeting away made NDC        ropean socialism in the mid-19th century
Who would have thought that Dilbert          the busiest trend amongst techies, even      “socialize” has had the meaning of “bring-
would foretell the social web 2.0 revolu-    surpassing an Apple product launch!          ing under public control”. This year we’ve
tion around the bend? Scott Adams didn’t     We’ve seen blogposts from around the         socialized the NDC in that direction also.
come up with the expression himself.         world mentioning the conference - we’ve      For the first time, we invited the world
He might have picked it up from              even been asked to host a similar event in   to suggest talks for the conference. The or even an ancient Wall        the US.                                      response was overwhelming. We got
Street Journal column on buzzword                                                         stacks upon stacks of brilliant sugges-
bingo published last millennium. Never       Through the social web                       tions and the result is a conference pro-
the less, “socialization” is no longer the                                                gram that we’re truly proud of. The topics
                                             the NDC has risen to be
dinner party smalltalk of yesteryears.                                                    are more diverse than ever, the difficulty
                                             one of the most impor-                       levels range from beginner to black-belt
                                             tant conferences for                         and there are plenty of unique sessions
                                             .NET-related technology                      I doubt you’ll experience elsewhere. In a
                                             and agile practices in                       true “socialist” spirit; the NDC has some-
                                                                                          thing for everyone this year.
                                             the world today.


                             Buy tickets NOW! – visit
“nothing beats the experience of being there in person“

Just off Portland St. in London you’ll find   We’re even keeping the spirit of “The So-      Since nothing beats the experience of be-
“The Social”. This legendary nightclub        cial” alive. When I DJed at the club back      ing there in person, even social media ad-
lends its name from the working men’s         in 1999 one of the “bangers” was Ralph         dicts get together in the real world once
clubs of the Victorian era. In their begin-   Myerz and The Jack Herren Band’s fresh         in a while for “tweetups”. The NDC is one
ning, working men’s clubs were venues         seven inch single “Nikita”. At NDC you’ll      of those things you don’t want to miss out
where one could attend lectures, and they     experience a live performance of that very     on - after all, following the #ndc2010 tag
soon grew into places for entertainment,      song when the band takes the stage at the      on Twitter will only remind you of what
discussion and social drinking. The Nor-      legendary NDC attendee party.                  you’re missing out on. Get social in Oslo
wegian Developer Conference is a social                                                      this June.
club for everyone who’s into technology       You’ll also experience .NET Rocks in a
or agile practices. You’ll get to socialize   brand new “stadium rock show” incarna-
ideas with your peers, make new social        tion - they too have a knack for socializing
connections in “meatspace” and you’ll         the .NET-world.
have more than 135 lectures and work-
shops to attend.

                     Buy tickets NOW! – visit
                               Team Leadership Skills
                               – The Missing Link
     by Roy Osherove

     Team Leadership is the missing link that      But driving “the new stuff” into the team     But they have no people or management
     connects all the buzzwords you hear these     is usually the least of the worries of to-    skills - and those are very painfully need-
     days about unit testing, TDD, Continuous      day’s software team leaders.                  ed when you are trying to drive the things
     Integration, Scrum, XP and others, to                                                       you believe in inside an organization that
     the real world where actual people have       Team leads usually have                       has very little interest in changing.
     to learn, implement, and mainly, believe
                                                   little to no idea how to
     and push for this stuff to happen.                                                          Team leadership is the next big thing that
                                                   handle people related                         us .NET developers need to conquer, or
     What do I mean?                               issues                                        non of this unit testing, TDD, Agile thing
                                                                                                 is going to catch on, except in very small
     Many software team leaders today face a       – issues that affect how the moral, quality   circles, that, by chance, happen to have
     weird problem: they believe in a bunch        of work, and overall performance of the       the right people leading their teams.
     of great things that software developers      team, and of course impacts how easy or
     should be doing but somehow can’t seem        hard it is to implement “the new stuff”.      That’s why I started – a blog
     to make this work at their own team.                                                        for new team leaders, talking about the
                                                   They are clueless as to how to handle         questions and problems today’s team
     They feel that shorter iterations can be      their manager that gives them an impos-       leaders face – I’d love it if you joined the
     a good for the team and customer, but         sible due date, or a team member that is      discussion!
     no one seems to believe them, or no one       reluctant to try anything new, or another
     cares when they mention it.                   team member that teaches all the other        Roy Osherove
                                                   members practices from 25 years ago that
     They believe that unit testing can save the   have no relevance to today’s languages.
     product from its poor quality, but their
     team members would rather do anything         Why can’t team leads handle such stuff?
     but write those tests.                        It’s pretty simple – and I’m sure you all
                                                   know the answer to that – no one teaches
     They seem to be hitting a wall every-         that. Team leads today, in the overwhelm-
     where they go – so they give up, or they      ing majority of places, are just developers
     get things done half-way to the point of      who worked hard and stayed with the
     failure.                                      company long enough to be promoted.

   Join us for an evening event at the Norwegian Developers Conference
   for a celebration of open source development in .NET with members
   of the mono Project and the .NET open source community.

   Learn how you can use your .NET skills to build iPhone and Android
   apps. Deploy .NET web apps and service apps to comprehensive
   cloud computing platforms like Amazon EC2. Leverage open source
   server infrastructure for .NET systems and reduce the cost of new
   products and operations.

   Expand your .NET horizons at the monospace social at the Norwegian
   Developers Conference! See compelling examples of .NET code run-
   ning on platforms that you might not have realized are available to
   you. Open your apps to entirely new avenues of success. Or just bring
   your laptop and get engaged in some friendly hacking with .NET
   developers just like you who are beginning to see just how far you
   can take your .NET investment.

                    Oslo Spektrum, Oslo
                           June 16-18th

             Buy tickets NOW! – visit
                               Learning for Testers

     by Lisa Crispin

     When I phone screen candidates for a          valuable to your development team. Let’s     Business Domain
     tester job, I always ask,                     look at what we can learn, and how we
                                                   can grow both ourselves and our profes-      Testers with a good grasp of the business
     “What do you do for                           sion.                                        domain are able to help customers work
                                                                                                with development teams to find good
     your own professional
                                                   What Testers Need to Learn                   software solutions to their business prob-
     development?”                                                                              lems. They can help stakeholders explain
                                                   Testers with a “can-do” mindset have         their requirements without suggesting
     Too often, this question is met with… si-     plenty of learning opportunities. Here are   technical solutions. They can help devel-
     lence. Sadly, there are people in the test-   a few of the skills that enhance testers’    opers offer alternative implementations
     ing profession who are content to sit in      value and job satisfaction. These skills     that might give a better return on invest-
     their cubes, wait for work to come “over      help testers ensure product quality.         ment.
     the wall”, and execute manual regression
     testing scripts. Their managers don’t re-     Collaboration and Communication              Knowing the ins and outs of the business
     ally understand testing, and these tes-       Skills                                       help testers explore the software in the
     ters don’t feel any need to broaden their                                                  same ways real end users will use it. Not
     horizons. No wonder some people in the        Collaboration and communication are          only does this prevent bugs from going
     software industry have a poor opinion of      some of the most important skills to         out to production, testers can give busi-
     testers!                                      hone. Developers need to understand the      ness experts ideas for new features.
                                                   customers’ requirements, but they often
     Testers with the right attitude, testers      have trouble communicating. In the same      Technical Skills
     who wonder, “how can I help the team          way you might have trouble explaining
     deliver a better software project” have so    the funny noise your car makes to your       Communication skills and good domain
     much to contribute to developing valu-        mechanic, business stakeholders struggle     understanding mean that we testers can
     able products. By learning new skills, we     to explain their software needs to devel-    document the software effectively, in the
     can add more value to our teams and the       opers.                                       form of examples and tests. Automated
     software, keep up with the pace of tech-                                                   tests can be the best documentation, be-
     nological change, and work more effec-        Testers who understand both the busi-        cause they are always up to date – they
     tively with both developers and business      ness domain and the technical aspects of     must always pass.
     experts. We can also have more fun!           software implementation can facilitate       Writing maintainable automated tests in
                                                   the communication. But you need to be        a cost-effective way requires good code
     You can elevate our testing profession at     able to communicate well with your busi-     design skills. We have to refactor out du-
     the same time as you make yourself more       ness experts to help them articulate their   plication, keep each automated test to a
                                                   software requirements.
single purpose, make it easy to change the    Everyone needs time                            Most metropolitan areas have testing and
tests when the code changes.                  to experiment with new                         development user groups, which meet
                                                                                             regularly. These can be a great resource
Testers don’t have to be programmers,
                                              techniques, and this
                                                                                             of free training and information. More
but some good programming skills make         investment pays off in                         importantly, it’s a place to meet other
us more effective and more valuable. If       the long run.                                  people who have tried different tools and
you can read production code, you can                                                        techniques. Make the most of these net-
often narrow down problems, making it         One way that Scrum and other “agile”           working opportunities.
easier for programmers to fix them.           teams build in “slack” time, where they
                                              can reduce technical debt to a manage-         No matter where you live and work, there
Technical skills aren’t enough, though.       able level, is to have “engineering” sprints   are plenty of online testing communities
Testers have to cope with tight time          or iterations. In these, the business does     ready to welcome you. Mailing lists are
schedules. Testing so often gets squeezed     not get any direct benefit in terms of new     a great opportunity to ask other people
to the end of a project. This means we        functionality. Instead, the technical team     how they solved the problem you’re cur-
need to know how to plan and manage           upgrades their tools to the latest versions,   rently facing. Tweet your latest dilemma
our time well. Organizational skills help     performs big refactorings that aren’t pos-     on Twitter and study the responses.
us work better.                               sible in regular sprints, and takes time
                                              to learn new tools or practices. This is       Training courses and conferences are a
New Technologies                              a huge benefit to customers in the long        wonderful way to learn. Maybe, like my-
                                              term, as the team makes leaps forwards         self, you work for a small business that
Fortunately, new and improved tools are       in their ability to do good work.              can’t afford to pay for training courses or
continually available to help us improve                                                     conferences. No worries. You have some
software development. Back in the ‘90s,       As a tester, you can take full advantage       unique experiences to share with the larg-
source code control was just starting to      of any slack time to experiment with new       er testing community. Propose a paper or
be a “given” in any software project. To-     testing techniques, learning new testing       session to a testing or software develop-
day, more and more teams are adopting         tools, learning how to apply code design       ment conference. If it’s accepted, you’ll
Continuous Integration (CI) in much the       principles to testing, or spending some        get at least a free conference registration.
same way. Integrating and testing our         time learning more about the business          You’ll benefit from great conferences ses-
code several times a day prevents project     domain. If your management isn’t build-        sions, but even more importantly, you’ll
disasters.                                    ing the slack time in for you, find stealthy   learn from the informal “hallway” discus-
                                              ways to find it for yourself.                  sions, and establish informal networks
Test automation frameworks, drivers                                                          that will continue to serve you.
and scripting languages are all accessible    Install and evaluate a new test tool. Sit
to testers with sufficient motivation and     together with a user to observe how they       Learning By Doing
time to learn them. We testers are fortu-     use the software and what difficulties
nate that so many people in the software      they have. Take time to document busi-         Here’s the bottom line: the most you can
development community have turned             ness procedures, even if they aren’t part      hope for is to do a little better every day.
their attention to creating helpful test      of the automated application. As you           Make a goal of continually finding ways to
tools.                                        learn more about your employer’s indus-        work a little better. Try little experiments.
                                              try, you’ll be a bigger help to the custom-    Get out of your comfort zone. Try out a
Fuel Your Passion                             ers and your team.                             new way of getting examples of desired
                                                                                             system behaviors from the business ex-
Feel free to go outside the software devel-   Learning Resources                             perts, and turning them into automated
opment profession to stimulate your cre-                                                     tests. Try out a new technique to help
ativity. Things you learn in another field    Look around you. Do you work with some         make automated tests easier to maintain.
may apply to software development, or at      smart programmers, database adminis-           Try a new procedure to narrow down
least provide a fresh perspective. Are you    trators, system administrators, testers?       problems before you log a defect.
interested in music? Do techniques for        What can they teach you? Pair with your
practicing or performing apply to soft-       fellow team members. Their skills will         The good news is that you’re not alone
ware development and testing?                 help you be a better tester. Conversely,       in your learning journey. Engage your
                                              they’ll benefit from learning your testing     fellow testers, work with other develop-
Despite the technology which surrounds        skills. There’s a lot you can learn from       ment team members, talk to the business
us, software development and testing          your own co-workers, and a lot you can         stakeholders. Keep in touch with the larg-
definitely include a lot of “right-brained”   teach them.                                    er testing communities in local and in-
activities. Use your avocational interests                                                   ternet user groups, and try out new ideas
to help see software testing and coding in    You can help yourself and your team by         you get there.
a new light.                                  going farther afield to learn new skills.
                                              We’re fortunate to have so many good           If you have the right attitude, you can
Sounds Great, Now How Do We                   books written about all aspects of soft-       learn all the skills you need to know.
Learn All That Stuff?                         ware testing. Even if you can’t afford         You’re a member of our honorable testing
                                              a hard copy book, there’s an amazing           profession. Help us raise the bar. Take
Learning takes time. If you are con-          amount of information on the Web. There        control of your own professional devel-
stantly running just to keep up, you          are test automation tutorials, exploratory     opment. Show your teammates and your
won’t have time to learn and try new          testing tutorials, scripting language tu-      business how testers contribute value to
ideas. Find ways to build slack into your     torials. We even have free webinars and        software products.
schedule. Sit down and talk with your         screencasts to give us practical experi-
managers about Google’s “20-Percent           ence. All you need is the time and the in-
Time” policy.                                 clination.                                     If you would like links to some of the
                                                                                             information mentioned in the article,
                                                                                             please email

Kurs hos ProgramutviKling
lean                                                                 Dager   mai   jun   aug   sep   okt   nov   sted           Pris
*Applying Lean thinking to Software Development - Including an        2                                          IT Fornebu    13 900
introduction to the Kanban method with Allan Kelly
scrum                                                                Dager   mai   jun   aug   sep   okt   nov   sted           Pris
Agile and Iterative Development - a Manager’s Guide - Craig Larman    1                        17                IT Fornebu     6000
*Certified Scrum Product Owner - CSPO - Geoff Watts                   2            24    26          21          IT Fornebu    13 900
Certified Scrum Product Owner - CSPO - Mike Cohn                      2                        20                IT Fornebu    13 900
*Certified ScrumMaster - CSM - Geoff Watts                            2            22    24          19          IT Fornebu    13 900
Certified ScrumMaster - CSM - Jeff Sutherland                         2      27                                  IT Fornebu    13 900
Certified ScrumMaster - CSM - Mike Cohn                               2                        22                Felix, Oslo   13 900
*Smidig utvikling med Scrum med Arne Laugstøl                         1            2           7           9     IT Fornebu     5900
Succeeding with Scrum - Mike Cohn                                     1                        24                IT Fornebu     8000
testdrevet utvikling - tDD                                           Dager   mai   jun   aug   sep   okt   nov   sted           Pris
*Agile Testing: A Roadmap to Success                                  3            21    18          5     17    IT Fornebu    17 900
*Clean Code: Agile Software Craftsmanship - Robert C. Martin          2            24                            IT Fornebu    13 900
*Legacy Code -Test Writing Techniques - Michael Feathers              2      6     21                            IT Fornebu    13 900
*SOLID PPP - Robert C. Martin                                         3                                          IT Fornebu    17 900
*Test-Driven Development & Refactoring Techniques                     3            21                            IT Fornebu    17 900
- Robert C. Martin
*Test-Driven Development in .NET Master Class (TDD in .NET Course)    5      3           16          25          IT Fornebu    22 900
- Roy Osherove
Design - analyse - arkitekturer                                      Dager   mai   jun   aug   sep   okt   nov   sted           Pris
Agile Design and Modeling for Advanced Object Design with Patterns    4                        13                IT Fornebu    19 900
- Craig Larman
*Applied Domain Driven Design - Greg Young                            3                  25          20          IT Fornebu    17 900
*Architecture Skills - Kevlin Henney                                  3      26                                  IT Fornebu    17 900
*Arkitekturer med C#.NET                                              4      4           31                23    IT Fornebu    19 900

*Domain-Driven Design (DDD) Hands-on av Eric Evans                    4                                          IT Fornebu    20 900
*Domain-Driven Design (DDD) Overview av Eric Evans                    1                                                         6900
*Scrum med fokus på analyse og design                                 4                        7     12    30    IT Fornebu    19 900
*The Architect`s Master Class - Juval Lowy                            5                  30                      IT Fornebu    23 900
Database                                                             Dager   mai   jun   aug   sep   okt   nov   sted           Pris
*Advanced T-SQL kurs - Itzik Ben-Gan                                  5      3                                   IT Fornebu    22 900
*MS 6231 Maintaining a Microsoft SQL Server 2008 Database             5                  23                      IT Fornebu    18 500
*Oracle SQL- programmering                                            3                                                        17 900
Programmering                                                        Dager   mai   jun   aug   sep   okt   nov   sted           Pris
*C++-501: C++ for Embedded Developers - with Mike Tarlton             5                              25          IT Fornebu    22 900
*Objektorientert utvikling                                            4            8           21          2     IT Fornebu    19 900
*Programmering i C++                                                  4                              25          IT Fornebu    19 900
Java                                                                 Dager   mai   jun   aug   sep   okt   nov   sted           Pris
*Avansert Maven 2                                                     2            8           28          2     IT Fornebu    13 900
*Java Persistence with JPA 2 and Hibernate - Andy Olsen               3      19                                  IT Fornebu    17 900
*Java Programming                                                     5      31                                  IT Fornebu    22 900
*Java Web Application Development - Andy Olsen                        3                        20          22    IT Fornebu    17 900
*Java Web Services Development (3 Days Hands-On)                      3                        15                IT Fornebu    17 900
- with Andy Olsen
*Scala - Jonas Bonér                                                  3            9                             IT Fornebu    17 900
*SpringSource - Core Spring                                           4      31          23          18    29    IT Fornebu    22 900
 Kursgaranti                                          PåmelDing
 Er du ikke fornøyd med et av                         Telefon: 67 82 72 35
 kursene våre får du pengene                          E-post:

 *SpringSource - Enterprise Integration with Spring                             4          8           21          23    IT Fornebu   22 900
 *SpringSource - Rich Web Applications with Spring                              4    25                      5           IT Fornebu   22 900
 *SpringSource - Spring and Hibernate                                           5    31          23          18    29    IT Fornebu   26 900
 Xml                                                                         Dager   mai   jun   aug   sep   okt   nov   sted          Pris
 *Exchanging and Managing Data using XML and XSLT                               3    10                      27          IT Fornebu   17 900
 microsoft                                                                   Dager   mai   jun   aug   sep   okt   nov   sted          Pris
 *ASP.NET MVC kurs - Andy Olsen                                                 3                9                       IT Fornebu   17 900
 *C#.NET: Utvikling av applikasjoner i .NET med C#                              5          28    16    27          1     IT Fornebu   22 900

 *MS 6460 Windows Presentation Foundation (WPF)                                 3    26    30           8          10    IT Fornebu   14 900
 *MS 70-503 Windows Communication Foundation hands-on                           3          23           8                IT Fornebu   14 900
 - med Andy Olsen
 *MS 70-536 .NET Framework Foundation                                           4          1     17          12          IT Fornebu   19 900
 *MS 70-562 Web-utvikling med ASP.NET                                           5    31          23          18          IT Fornebu   22 900
 *SharePoint 2007 and .NET 3.5 for Developers - Sahil Malik                     5    3                 27                IT Fornebu   22 900
 *SharePoint 2010 for Architects and Developers - Sahil Malik                   5          21           6                IT Fornebu   22 900
 *Silverlight 4.0 (for WPF Developers) - med Dave Wheeler                       3    19                                  IT Fornebu   17 900
 *Silverlight 4.0 - med Dave Wheeler                                            5          28    30          11    29    IT Fornebu   22 900
 *What’s new in .NET 4 - with Richard Blewett                                   5                                        IT Fornebu   22 900
 *Windows Azure Platform Essentials - Michele Leroux Bustamante                 2                            14          IT Fornebu   13 900
 *Windows Communication Foundation Veterans Master Class                        5                                  8     IT Fornebu   22 900
 - Juval Lowy
 *Windows Presentation Foundation (WPF) and Silverlight in Essence              4                                        IT Fornebu   19 900
 - Ian Griffiths
 *Windows Workflow Foundation kurs - Andy Olsen                                 3    26                                  IT Fornebu   17 900
 microsoft sertifiseringspakker                                              Dager   mai   jun   aug   sep   okt   nov   sted          Pris
 MCTS: .NET Framework 3.5, ASP.NET Application Development                      9                                        IT Fornebu   35 900
 MCTS: .NET Framework 3.5, Windows Communication Foundation                     7                                        IT Fornebu   29 900
 MCTS: .NET Framework 3.5, Windows Presentation Foundation                      7                                        IT Fornebu   29 900
*Kurs merket med ( * ) i oversikten inngår i rammeavtaleprogrammet og har rabatt.

For fullstendig kursoversikt, oppdatert pris, tid og sted, se

   miCrosoFt sertiFiseringsPaKKer
   .net Framework - Windows                          .net Framework -                        .net Framwork – Windows
   Communication Foundation                          applications Development                        Presentation Foundation
   applications                                                                                      application

   PaKKe 1                                           PaKKe 2                                         PaKKe 3
   • MS 70-536 .NET Rammeverket –                    • MS 70-536 .NET Rammeverket –                  • MS 70-536 .NET Rammeverket –
     eksamen 70-536 (4-dager)                          eksamen 70-536 (4-dager)                        eksamen 70-536 (4-dager)
   • MS 70-503 Windows                               • MS 70-562 Web-utvikling med                   • MS 6460A Windows Presentation
     Communication Foundation -                        ASP.NET - eksamen 70-562                        Foundation – eksamen 70-502
     eksamen 70-503 (3-dager                           (5-dager)                                       (3-dager)
   • MCTS Self-Paced Training Kit                    • MCTS Self-Paced Training Kit                  • MCTS Self-Paced Training Kit
     (Eksamen 70-536)                                  (Eksamen 70-536)                                (Eksamen 70-536)
   • MCTS Self-Paced Training Kit                    • MCTS Self-Paced Training Kit                  • MCTS Self-Paced Training Kit
     (Eksamen 70-503)                                  (Eksamen 70-562)                                (Eksamen 70-502)
                                The Grand Unification
                                Theory of hosting
     by Juval Löwy

     The following is an opinion only               Now suppose the object is hosted in Win-         Physicist have a similar predicament:
                                                    dows Server AppFabric, and the clients           they have one theory for the very big (Ein-
     It is very confusing. The new WF and           use Windows Azure Platform AppFabric             stein’s General Relativity) and another
     WCF extensions for IIS are called Win-         to talk to it. How do the clients know the       for the very small (Quantum Mechanics).
     dows Server AppFabric. The .NET service        first thing about the service? They don’t.       The Holly Grail of physics for the last few
     bus is called Windows Azure Platform           This means you can decide later to move          decades (actually, started by Einstein be-
     AppFabric. They are really distinct prod-      the object anywhere you like – into the          fore he died) is a single theory that uni-
     ucts! One is designed to be the ultimate       cloud itself if you so desire. But hold on       fied them both. I think our industry’s
     hosting environment over Windows Serv-         – for this to work, you have to streamline       holly grail is the unified Theory of Host-
     er 2008 with IIS 7.5. The other is the ulti-   security. In the Intranet you are likely to      ing – a simple straight forward ability to
     mate way of connecting clients to services     use Windows security and in the cloud            have the same application, running just
     over the Internet.                             perhaps some form of federated security.         as well (and as securely) in the Intranet
                                                                                                     and in the Internet.
     Doesn’t Microsoft know                         If the hosting story is indeed to be trans-
                                                    parent and uniform, we need to unify the         Looking at Windows Server AppFabric
     that developers love
                                                    security models of the Intranet and the          and Windows Azure Platform AppFab-
     abbreviations, and                             cloud. And this is precisely what federat-       ric (along with the supporting technol-
     everyone will just call                        ing Active Directory and Windows Iden-           ogy and standards, from WS-Security to
     both AppFabric???                              tity Foundation (WIF) and related tech-          WIF), I think we will get there sooner
                                                    nologies and standards let you do.               rather than later, and in any case, before
     This got me thinking. Perhaps it is inten-                                                      the physicist.
     tional. And if so – why? The only reason       To me this is a clear indication, that this is
     I could think of is that Microsoft wants       possible. In fact, I consider this a glimpse
     people to think of both as the same, or        at the future, of the grant unification of
     at least, as enabling the same applica-        hosting. You see, today, we literally have
     tion. What the service bus lets you do is      different approaches, technologies, de-
     completely ignore communication barri-         sign patterns and deployment models
     ers: firewalls, NAT, DHCP, routers, load       depending on the execution context of
     balancers, virtualization, proxy servers,      the application, predominantly if the ap-
     DMZs, it is all transparent – you just         plication is an Intranet application or an
     make the call. With the service bus, it        Internet application.
     does not matter to the client where the
     object is hosted.

2,000 hungry
people to feed at NDC
by Christian Bugge Hjorth

They lead an adventurous life, the             The Flying Culinary Circus concept is        How to serve so many people has also
four chefs of The Flying Culinary              about making good food and serving it in     been precisely worked out. “We are set-
Circus. In March, they were on                 an unforgettable way. They will basically    ting up eight serving points and serving
tour in Singapore, Kuala Lumpur                do whatever it takes to satisfy their cli-   250 people from each of them. At around
and Bali. In April-May, they are               ents. Their stunts have included arriving    15 people a minute, nobody is going to
in California, and in June they                by parachute among the guests and start-     have to wait long. And we are doing food
are touching down at NDC to feed               ing to cook as soon as they landed. They     that is quick to serve up”, he says.
2,000 hungry people.                           have produced sorbets using liquid nitro-
                                               gen, and emerged from the sea laden with     Mathias reveals that there will be a party
But the group doesn’t just do great food, it   living shellfish, which they proceeded to    meal on the 17th, with a breakfast fry-up
also presents a show and a circus, and, as     prepare for the guests.                      to follow. More than that he won’t say, ex-
the chefs themselves put it: When we’ve                                                     cept that summer calls for light and fresh
served up a meal for someone, they don’t       In June, they are                            food. “It’s not going to be mutton stew.”
forget us. On their trip around the world,
                                               coming to NDC
the group of chefs have got to know inter-                                                  What about the circus?
national stars like Michael Jackson, Eva
                                               “The event at Oslo Spektrum in June is
Longoria, Wesley Snipes, Sarah Ferguson                                                      “We have a dance we have had created
                                               really fascinating”, says Mathias Spieler
and the Black Eyed Peas, as well as some                                                    for us by a Norwegian choreographer in
                                               Bugge. “We are making all the food our-
famous Norwegians like Kjell Inge Røkke                                                     the US. We are also working on a number
                                               selves, and in tremendous quantities.
and Stein Erik Hagen.                                                                       of other interesting entertainment proj-
                                               Just about everything will be fresh food.
                                               A week before the event, ten cooks will be   ects. During our stay in the US in May,
The adventure took off in earnest last                                                      we’ve planned working with some stunt-
                                               working day and night. The quality and
summer, when the four chefs, with expe-                                                     men who will be teaching us a thing or
                                               taste has to be guaranteed, even though
rience from the Bagatelle restaurant and                                                    two. It will be exciting to see what turns
                                               we are serving 2,000 conference par-
the Norwegian Culinary Team, decided                                                        out. Anyway, we can guarantee that we
                                               ticipants. We plan for each day and the
to go all the way and break into the inter-                                                 will be part of the event – on stage, so
                                               logistics are highly complicated. We’re
national culinary business, commuting                                                       to speak – and putting on a show. That’s
                                               talking serious amounts of food for that
between the continents. The group has                                                       what we are known for, besides doing
                                               many people. Half a kilo each adds up to
travelled to Europe, Asia, the USA and                                                      great food. There’s no way we’ll just be
                                               a ton of food per meal. So we’re dealing
South Africa. Last year they appeared                                                       hanging around in the kitchen”, confirms
                                               with ten tons of food in the kitchen”, he
on South Africa’s most popular TV pro-                                                      Mathias.
gramme, Top Billing, which attracts six
million viewers.

                                                                                                Sånn går historien om
                                                                                                første gangen SAU’en
                                                                                                utnyttet nordmenn.


     by Greg Young

     Kari was a human resources representa-       something to lighten up his dreary caf-       Kari’s formula for sex-change was pre-
     tive at SAU Enterprises south of Trond-      feine induced mood. He looked through         cisely what the software should have
     heim. Throughout her tenure, she had         the list of employees and soon spotted the    done for her. Her recipe was a use case,
     been using a well known human resourc-       name Michael Milton. As an Irving fan,        perhaps one existing on paper created by
     es package, SAU (Acronym), which is not      he figured it would be a good idea and        the lavish SAU consultants but a use case
     in any way related to the well known SAP     maybe a challenge to have her make Mi-        none the less. She did not want to “edit
     software. She used this software to do her   chael Milton into Michelle Milton.            data” she wanted to change the sex of Mi-
     daily work and it provided the company                                                     chael Milton.
     with record storage as well as reporting     Not surprisingly she had not in the past
     on their data.                               gone through this procedure but luckily       The SAU system failed. It failed because
                                                  for Ulf she had the SAU manual sitting        she could not change the sex of Michael
     The software was old;                        on her shelf. She expeditiously paged         Milton, she could just edit data. It failed
                                                  through to “Gender Adjustment Listing”        because the business logic was written on
     it was written in JAV1A,
                                                  on page 326, referred to after solely as      paper. It failed because it was CRUD.
     SAU’s custom version of                      GAL, and began following the recipe- like
     Java and was accessible                      directions --They had been custom tai-        Users have always wanted to do things
     on the mainframe using                       lored for SAUE by a near endless series of    with their systems. The fact that the
     a custom written unix                        uneconomical SAU consultants--.               health insurance information changed
                                                                                                because the sex of Michael Milton was
     shell.                                       “Begin by entering the employee screen        being changed, as opposed to it being
                                                  by typing ‘edit /emp/srch/Milton’ at the      changed because for some other reason
     It was one of those days Trondheimers
                                                  SAU bash prompt”, read the directions.        has immense business value. In other
     know well; Ulf was carrying both an um-
                                                  SAU bash looked bad. Change Michael           words, the intent of the user is important.
     brella and a pair of sunglasses. He wan-
                                                  to Michelle, female instead of male. Onto
     dered into Kari’s grey office; it was the
                                                  the health insurance screen; Michelle         CRUD has become popular because it is a
     same solemn colour that one would asso-
                                                  would not need prenatal care coverage.        cop out. It forgets that systems are there
     ciate with a typical Trondheim afternoon,
                                                  She would have to be insured for sexual       to actually do things. With CRUD we can
     the office door did not have a name on it,
                                                  harassment suits though, yet another          attempt to build cookie cutter systems,
     only the number 7254. She was to show
                                                  screen. The agonizing continued for al-       all problems begin to look the same. The
     Ulf how to use the SAU software. After
                                                  most ten minutes as Kari struggled to         SAU development staff created a system
     some painstakingly boring walkthroughs
                                                  ensure the recipe was followed precisely.     that could Create, Read, Update, or De-
     of data entry screens, he figured he would
                                                  Upon completion Ulf was dumbfounded,          lete data unfortunately they were creat-
     have her do something unusual instead,
                                                  all Ulf could say was: “Isn’t that what the   ing a Human Resources Management
                                                  software is supposed to do for you..?”        system.
                                                We have the courses
                                                   and the expertise
                                                             within .NET

                                               Sahil Malik   Dave Wheeler   Richard Blewett   Michele Bustamante   Arjan Einbu

                                                  SharePoint 2010 for Architects and Developers

                                                  Silverlight 4.0 (for WPF Developers)

                                                  What’s new in .NET 4

                                                  Windows Azure Platform Essentials

By avoiding CRUD and focusing on how
users actually want to use the system we          C#.NET: Utvikling av applikasjoner i .NET med C#
can provide a much better system for
them. As a useful by-product we will also         MS 70-536 .NET Framework Foundation
be able to provide them much better re-
porting because the data is sane. As the
intent of the user is also being captured         MS 70-562 Web-utvikling med ASP.NET
far more information can be gleaned
about the changes, is it important wheth-
                                                  MS 6460 Windows Presentation Foundation (WPF)
er this item changed because of a normal
process or something exceptional?
                                                  Windows Communication Foundation Veterans Master Class
SAU, pooling their resources together
can probably get around many of these
issues. Likely they have a team of SAU            Windows Presentation Foundation (WPF) and Silverlight in Essence
consultants who at a later point in the
life cycle of data try to reassemble what
the original intent of the user was. This
is a common situation, the intent is lost,
then pieced back together ambiguously
at a great expense. They lose the intent
in their system, then actually charge the
client to attempt to reverse engineer it,
because it has a large amount of busi-
ness value when it comes to the SAU data      Børge Hansen    Arjan Einbu    Arne Lagustøl       Juval Lowy        Ian Griffiths
warehouse. Nearly every organization has
some processes such as this where data is
analyzed and attempted to have the in-
tent of the use reverse engineered. When
dealing with an entire organizations eco-
system, it is much easier to just bring the   Tel: 67 82 72 35
intent of the user forward.         
                               Self Organisation

     by Geoff Watts

     “An empowered organization is one in          Scrum believes that the most appropriate      Culturally, this is a big challenge not
     which individuals have the knowledge,         people to solve a problem are those who       just for the people involved but also the
     skill, desire, and opportunity to person-     need to deal with it. The vast majority of    organisational culture is unlikely to be
     ally succeed in a way that leads to collec-   problems (or opportunities) facing our        accommodating let alone encouraging
     tive organizational success.”                 companies and teams today are complex         of self-organising teams. The paradox is
                                                   ones. Complex solutions can rarely be         that by letting go of control of the people
     - Stephen R. Covey,                           predicted and disseminated; they need         in a team, through
      Principle-centered Leadership                to emerge. Therefore we need to harness
                                                   the motivated minds of a team where the
                                                                                                 the transparency gained
     We hear the term “empowered people” a         value of the whole is greater than the sum
     lot but, in many cases and many compa-        of its parts.                                 by Scrum, management
     nies, the people are not really empowered                                                   gain greater control over
     and this inevitably leads to the falling      In my time both working in and coach-         their projects and thus
     back to process and methodologies. So         ing these teams I have been struck by the     the business.
     much of people’s lack of motivation with-     lack of common understanding as to what
     in organisations is down to their inabil-     self-organisation actually means. Differ-
                                                                                                 Self-managing teams is a very hard con-
     ity – or more accurately their perceived      ent people, even within the same team,
                                                                                                 cept for everyone to come to terms with
     inability – to play an active part in the     have different interpretations of what
                                                                                                 and requires constant self-review, and
     process.                                      they are responsible for and what they are
                                                                                                 often peer-review, to fine-tune. It will in-
                                                   not. This leads to disharmony and fear
                                                                                                 volve pain, anxiety and many attempts to
     The agile manifesto states that the best      and, ultimately, to poor performance.
                                                                                                 get it right but the joy of work and pro-
     architectures, requirements and designs
                                                                                                 ductivity boosts I see are definitely worth-
     emerge from self-organising teams and         Equally management are typically suspi-
                                                                                                 while, but only if teams and management
     agile methods such as Scrum have a com-       cious of the principle of self-organisation
                                                                                                 really try to establish this essential con-
     pletely different approach by explicitly      and the lack of control that goes along
                                                                                                 cept of agile development.
     putting the responsibility of solving prob-   with it. This requires trust of the team
     lems into the hands of a self-managing        and restraint of their natural instincts in
     team. There is no provision for someone       equal measure. A lot of the teams I see
     to “make sure” it all goes OK, there is no    are told that they are empowered and
                                                                                                 Geoff will talk at NDC 2010 about the
     “safety net” should things start “going       allowed to self-organise but, in reality,
                                                                                                 empirical data he has collected about
     wrong”.                                       management are unable to let go and
                                                                                                 self-organisation and how it can be used
                                                   end up directing the teams towards their
                                                                                                 to motivate teams and where it fails to
                                                   ideas and plans.
                                                                                                 motivate teams to higher performance
                                                                                                 and enjoyment.

                    Oslo Spektrum, Oslo
                           June 16-18th

            Buy tickets NOW! – visit
                                All-At-Once Operations

     by Itzik Ben-Gan

     Adapted from: Microsoft SQL Server             list are evaluated at the same point in      this query never produces a divide-by-
     2008: T-SQL Fundamentals by Itzik              time. Therefore this query generates the     zero error.
     Ben-Gan (MSPress, 2008)                        following error:                             SQL Server does support short circuits,
                                                                                                 but because of the all-at-once operations
     SQL supports a concept called all-at-once      Msg 207, Level 16, State 1, Line 4           concept in ANSI SQL, SQL Server is free
     operations, which means that all expres-       Invalid column name ‘orderyear’.             to process the expressions in the WHERE
     sions that appear in the same logical que-                                                  clause in any order that it likes. SQL
     ry processing phase are evaluated as if at                                                  Server usually makes decisions like this
     the same point in time.                        Here’s another example of the relevance      based on cost estimations, meaning that
                                                    of all-at-once operations: Suppose you       typically the expression that is cheaper
     This concept explains why, for example,        had a table called T1 with two integer       to evaluate is evaluated first. You can see
     you cannot refer to column aliases as-         columns called col1 and col2, and you        that if SQL Server decides to process the
     signed in the SELECT clause within the         wanted to return all rows where col2/        expression 10/col1 > 2 first, this query
     same SELECT clause, even if it seems in-       col1 is greater than 2. Because there may    might fail because of a divide-by-zero er-
     tuitively that you should be able to. Con-     be rows in the table where col1 is equal     ror.
     sider the following query:                     to 0, you need to ensure that the division
                                                    doesn’t take place in those cases—other-     You have several ways to try and avoid
     SELECT                                         wise, the query fails because of a divide-   a failure here. For example, the order in
       orderid,                                     by-zero error. So if you write a query us-   which the WHEN clauses of a CASE ex-
       YEAR(orderdate) AS orderyear,                ing the following format:                    pression are evaluated is guaranteed. So
       orderyear + 1 AS nextyear
                                                                                                 you could revise the query as follows:
     FROM Sales.Orders;                             SELECT col1, col2
                                                    FROM dbo.T1
                                                                                                 SELECT col1, col2
                                                    WHERE col1 <> 0 AND col2/col1 > 2;
                                                                                                 FROM dbo.T1
     The reference to the column alias order-                                                    WHERE
     year is invalid in the third expression in                                                    CASE
     the SELECT list, even though the refer-        You assume that SQL Server evaluates              WHEN col1 = 0 THEN ‘no’
     encing expression appears “after” the one      the expressions from left to right, and               -- or ‘yes’ if row should
     where the alias is assigned. The reason is     that if the expression col1 <> 0 evaluates            -- be returned
                                                    to FALSE, SQL Server will short-circuit;         WHEN col2/col1 > 2 THEN ‘yes’
     that logically there is no order of evalu-
                                                    that is, it doesn’t bother to evaluate the       ELSE ‘no’
     ation of the expressions in the SELECT                                                        END = ‘yes’;
     list—it’s a set of expressions. At the logi-   expression 10/col1 > 2 because at this
     cal level all expressions in the SELECT        point it is known that the whole expres-
                                                    sion is FALSE. So you might think that

In rows where col1 is equal to zero, the
first WHEN clause evaluates to TRUE and
                                                  The Partner for
                                                 Scrum, Lean and
the CASE expression returns the string
‘no’ (replace with ‘yes’ if you want to re-
turn the row when col1 is equal to zero).
Only if the first CASE expression does

                                                  Agile training!
not evaluate to TRUE—meaning that col1
is not 0—does the second WHEN clause
check whether the expression 10/col1 > 2
evaluates to TRUE. If it does, the CASE
expression returns the string ‘yes.’ In
all other cases, the CASE expression re-
turns the string ‘no.’ The predicate in the
WHERE clause returns TRUE only when
the result of the CASE expression is equal
to the string ‘yes.’ This means that there
will never be an attempt here to divide by

This workaround turned out to be quite
convoluted, and in this particular case
we can use a simpler mathematical work-
around that avoids division altogether:

SELECT col1, col2
FROM dbo.T1
WHERE col1 <> 0 and col2 > 2*col1;

I included this example to explain the
unique and important all-at-once opera-
tions concept, and the fact that SQL Serv-
er guarantees the processing order of the
WHEN clauses in a CASE expression.

With the concept of all-at-once in mind,
can you figure out how to write an UP-
DATE statement that swaps the values in
the columns col1 and col2? In most pro-
gramming languages where expressions
and assignments are evaluated in some
order (typically left to right), you need a
temporary variable. However, because in
SQL all assignments take place as if at the
same point in time, the solution is very

  SET col1 = col2, col2 = col1;

                                              All of our courses and events on Agile Software development,
In both assignments the source column
values used are those prior to the update,    Lean and Scrum, feature industry experts and thought leaders
so you don’t need a temporary variable.       in their field, who are active contributors to the Open Source
                                              and Agile communities and popular international speakers in
                                              their field.

                                              Some of our popular instructors:
                                              Mike Cohn • Jeff Sutherland • Craig Larman • Geoff Watts
                                              • Kevlin Henney • Robert C. Martin • Arne Laugstøl

                                              Tel: 67 82 72 35
                                Geeks Should
                                Manage Geeks
     by Jurgen Appelo

     When asked about their career plans,           I even dare say that software developers,     However, while most software develop-
     strangely enough, most software devel-         because of their education and skills, are    ers are not natural people managers, I
     opers tell me they want to be a manager        at a disadvantage when it comes to people     believe non-technical people, like proj-
     someday. I believe they are primarily          management. They first have to unlearn        ect managers, are an even worse choice
     driven by status and money (neither one        a way of thinking that comes naturally to     for managing technical people. Software
     a bad thing), and not by the kind of ac-       them.                                         developers and project managers don’t
     tivities that come with the job. They don’t                                                  speak the same language; they don’t un-
     realize that management activities are as      Switching to a job as a people manager        derstand each other’s way of thinking;
     much fun as being the mayor of a town          requires a radically different way of solv-   they often don’t share the same humor,
     with two people, five pigs, and three          ing problems, and technical people are        and they cannot communicate with each
     chickens. It’s no big thing. It’s just a job   not naturally gifted to make that transi-     other using half a sentence, a burp, and
     that needs to be done. In fact, I think        tion. In fact, overly complicated process     some jargon. Technical people need tech-
     instructing computers is more fun than         frameworks and methodologies, like            nologically savvy managers; otherwise
     instructing people. Computers usually          RUP, CMMI, and PRINCE2 are examples           there is little chance of a healthy basis for
     do what I want them to. People usually         of what happens when technical people         mutual respect and understanding.
     don’t. (At least not in the way I assume.)     try to describe how to manage projects,
                                                    teams and organizations. They think in        I have made my share of mistakes in
     Many people wrong-                             terms of processes, tasks, input and out-     management. But these days I try not to
                                                    put, and they tend to forget that manag-      give project managers the job of manag-
     fully assume that when
                                                    ers are dealing with real flesh-and-blood     ing technical teams. Software developers
     a person is good at his                        people who prefer to be left alone to do      and project managers are peers. They
     job he is good at man-                         their jobs.                                   take care of different things in a project.
     aging other people do-                                                                       One is managing code and tools; the oth-
     ing the same job.                              Have you ever wondered why people in          er is managing planning and resources.
                                                    the theatre business do not have dozens       But neither is managing the other. Geeks
     For the average software developer, this       of process frameworks lying around? Can       are better at managing geeks. Or maybe I
     is far from the truth. The mindset needed      you name some methodologies for opera         should say: they suck a little less at it than
     for instructing computers is very different    productions, or ballet performances?          non-geeks.
     from the one needed to instruct people.        Have you ever seen process diagrams or
     Programming is about micromanaging             data flow diagrams for adult entertain-
     computers. People management is abso-          ment movies? I haven’t. These people are
     lutely not about micromanaging people.         not fond of fabricating big process dia-
                                                    grams. They just get the job done.


                                                      1 0!
                                               C 20
                               ND at
                            at nfo
                         ps ed i o
                      ho dat .n
                    ks up 010
                or d
            r wll fin .ndc2
          ou ou´ ww
     Join   y    w

                    Oslo Spektrum, Oslo
                           June 16-18th

            Buy tickets NOW! – visit
                              97 Things Every
                              Programmer Should know
     by Kevlin Henney

     There is an art, craft and science to pro-   mers what had already been done for           for Distributed Computing, which I co-
     gramming that extends far beyond the         software architects? A collective and open    authored with Frank Buschmann and
     program. The act of programming mar-         project based on voluntary contributions      Douglas Schmidt. In this we documented
     ries the discrete world of computers         from programmers and others involved          114 patterns, which were divided and in-
     with the fluid world of human affairs.       in the software development process. A        terconnected to form a coherent whole,
     Programmers mediate between the ne-          cross section of people that would include    speaking with one voice. For 97 Things
     gotiated and uncertain truths of business    big names — but, importantly, not just        Every Programmer Should Know, my
     and the crisp, uncompromising domain         the big names.                                goal as the editor has been to achieve the
     of bits and bytes and higher constructed                                                   exact opposite: each item should reflect
     types.                                       Although not strictly open source, the        the identity, voice and thinking of its au-
                                                  project has some open-source qualities.       thor, and although there are overlaps and
     There’s no small amount of wisdom scat-      In particular, contributions are made         gaps, the overall diversity and richness
     tered around the blogosphere about how       under a non-restrictive license (Creative     becomes part of the charm, readability
     to do this, but mostly hidden in a mo-       Commons Attribution 3.0, in this case).       and utility. And yes, it is my hope that the
     rass of somewhat less-than-wise advice.      Individuals contribute blog-length items      outcome is useful. Not as a handbook, but
     Sound advice can also be found lurking       on, well, things that they think every pro-   as a source of ideas, discussion and even
     within a number of books — and, again,       grammer should know. These items can          inspiration. The number of contributions
     bookish form is no guarantee of qual-        be reused, repurposed and republished         has been overwhelming — well beyond 97
     ity. But most of the good stuff is locked    freely.                                       — but what comes across from each con-
     up within the minds and experiences of                                                     tributor is a certain passion and personal
     practitioners. How to unlock some of this    There is also an element of crowdsourc-       connection to programming.
     know how?                                    ing: taken together the items form part of
                                                  a big picture, but the big picture is built
     A while back, “Dammit, that’s just one of    up by sampling the wisdom of crowds           You can find the 97 Things Every
     those things every programmer should         rather than working to a design vision        Programmer Should Know site at
     know!” was my response to some code          and progressively elaborating each detail
     I was thinking about. I had contributed      as necessary. The writing is not collabora-
                                                                                                You can follow it on Twitter as @97TEPSK
     to Richard Monson-Haefel’s 97 Things         tive and there’s no intent that contribu-
     Every Software Architect Should Know         tions should follow a common style or         The book is listed at
     project and I knew that Richard had          dovetail together like modular parts. If
     been working with O’Reilly to create a 97    anything, the converse is true.
     Things series. My own phrasing was the                                                     There is an InfoQ piece about 97 Things
     trigger: what about doing for program-       My role as the editor and driver of the       Every Programmer Should Know and the
                                                  project has been quite a contrast to my       97 Things series at
                                                  involvement in A Pattern Language             news/2009/09/97-things.
“There is an art, craft and science to programming that
extends far beyond the program. “

                               SharePoint 2010:
                               Client Side Technologies
     by Sahil Malik

     Writing WebParts and Pages is critical for    What is the Client Object Model
     any SharePoint developer. However most
     of that code runs on the server. This is      SharePoint comes with a rich object model. The problem is that this object model is entirely server
     very much like the world we used to live      based. However most clients access SharePoint from a web browser. Modern web applications are in-
     in during ASP.NET 2.0 times, when any         creasingly sophisticated these days. They use technologies such as AJAX and Silverlight to create more
     rich functionality you wanted to provide      and more compelling applications that feel like desktop applications instead of web applications. While
     to the end user required you to cause a       feeling like desktop applications, they run under the security and deployment ease of a web application.
                                                   Since the SharePoint object model is entirely server based, it can be cumbersome to bring all of that rich
     The reality today is a                        functionality into the web browser. The Client Object Model solves that problem.
     little bit different. Web
                                                   Put simply, the Client Object Model brings a major portion that rich server side functionality as a client
     applications are                              side API. This client side API can be used in a NET client such as a WPF Application, or it can be used
     extremely rich and                            in a Silverlight application, or it can be used in a simple client such as ECMAScript. The following code
     sophisticated and                             snippet demonstrates the usage of the Client Object Model from Silverlight:
     almost feel like
     desktop applications.                         ClientContext context = ClientContext.Current;
                                                   CamlQuery camlQuery = new CamlQuery()
     This is made possible with client-side        {
     technologies such as Silverlight and Ajax.        ViewXml = “<Query><OrderBy><FieldRef Name=’EventDate’/></OrderBy></Query>”
     Silverlight and Ajax provide a rich run-      };
     ning framework right inside the browser       var   query    =   from    item   in    context.Web.Lists.GetByTitle(“Appointments”).
     which is able to talk to the server side on   GetItems(camlQuery) select item;
                                                   appointments = context.LoadQuery(query);
     demand. In order to satisfy this growing
                                                   context.ExecuteQueryAsync(succeededCallBack, failedCallback);
     need in a market, Microsoft is introduced
     a few very new and interesting additions
     in SharePoint 2010.
                                                   This opens up numerous possibilities for you as the application architect. Just think of what you can do
                                                   with the combination of ECMAScript, alongwith ASP.NET AJAX and jQuery, and Silverlight, if they had
                                                   secure and efficient access to SharePoint object model?

ADO.NET Data Services                         Even though ADO.NET Data Services was         merous other places inside of SharePoint
and the REST API                              pioneered by the data access team at Mi-      you will find usage of WCF as well.
                                              crosoft, hence the name “ADO.NET”, it is
ADO.NET Data Services are a set of pat-       now fully applicable to SharePoint 2010       You could use WCF with SharePoint
terns and libraries that allow you to cre-    as well. In ADO.NET generally the ADO.        2007, but it needed you to jump through
ate access and update data using web          NET Data Services work against any En-        some hoops. In SharePoint 2010, WCF is
based semantics. In other words you can       tity Data model, commonly referred to as      supported out of the box. It is used heav-
use standard HTTP verbs such as GET,          the EDM. In SharePoint such an EDM is         ily inside SharePoint, and it is a concept
PUT, POST, DELETE and MERGE, to in-           driven by the structure of the schema of      that you must master if you work in the
teract with your data. These are also com-    the lists in your SharePoint site. You can    Microsoft world. If you are unfamiliar
monly referred to as semantics of REST        simply visit a service at http://sp2010/_     with WCF I would recommend taking a
(Representational State Transfer). If you     vti_bin/ListData.svc and the ADO.NET          mini crash course in WCF by reading the
are interested in reading more about          data services for SharePoint 2010 are         following articles.
REST, you should read this article http://    ready to be consumed in all sorts of cli-                   ents.                                         • What is WCF?
What confuses me most about REST is                                               
that it is such a simple technology yet big   Custom WCF Services                           What_is_WCF.aspx
thick books have been written about it.
The way I understand REST is that other       Now here’s the best part. The Client Ob-      • Writing the WCF Hello World App.
web based API calls such as soap and web      ject Model, and ADO.NET Data Services,
services had gotten way too complex. So       both build upon WCF, or Windows com-          Writing_the_WCF_Hello_World_App.
people came out with a new mechanism          munication foundation. WCF is an inher-       aspx
to interact with their data over http using   ent block of .NET that was introduced
very simple semantics. They could issue       with .NET 3.0. It is that part of .NET that   • Writing your first WCF Client.
commands to both change or query data         allows you to build connected systems.
using a simple HTTP URL. Data would be        When I say build connected systems, I         Writing_your_first_WCF_client.aspx
formatted as JSON or ATOM feeds, and          mean any sort of possible communica-
could be consumed in any kind of appli-       tion that would occur between any two         • Host a WCF Service in IIS7.
cation. The HTTP Queries are extremely        entities within your program. This could
simple. Following are some examples of        be interprocess communication, commu-         Host_a_WCF_Service_in_IIS_7_-and-
HTTP Queries you can issue on a Share-        nication between different services on the    amp;_Windows_2008_-_The_right_
Point site that has an “Artists” list.        same machine, communication across            way.aspx
                                              the network, or even communication that
http://sp2010/_vti_bin/ListData.              occurs over a queuing mechanism, such         WCF to say the very least is a very impor-
svc/$metadata                                 as MSMQ. WCF truly is a very flexible         tant .NET technology, and every .NET
                                              technology.                                   developer must learn it. It is highly ap-
http://sp2010/_vti_bin/ListData.svc/                                                        plicable in SharePoint, and there are and
Artists?$orderby=Title                        You could have used WCF in SharePoint         will be many other technologies from Mi-
                                              2007 as well, however in SharePoint 2010      crosoft that will leverage WCF.
http://sp2010/_vti_bin/ListData.svc/          WCF is an inherent part. It is thus not a
Songs?$skip=3&top=3&orderby=Title.            surprise that technologies such as the
                                              Client Object Model and ADO.NET Data
http://sp2010/_vti_bin/ListData.svc/          Services, are both built upon WCF. At nu-
Songs?$filter=Artist/Title eq ‘Madonna’.
                                          Agenda NDC 2010
            10:20   Strategies Against Architecture                                                          Kevlin Henney

            11:40   Individuals & Interaction Over Processes and Tools                                       Kevlin Henney
            13:40   C# Puzzlers                                                                          Neal Gafter/Eric Lippert
            15:00   You’re Overthinking It: Why Web Forms Are Not Rockets                                      Rob Conery
            16:20   Building a Real-World, E-Commerce, Data-Driven Web Site                                    Chris Sells
            17:40   Windows Azure AppFabric                                                                 Clemens Vasters

            10:20   Intro to F#                                                                             Amanda Laucher

            11:40   Advanced Topics in F#                                                                   Amanda Laucher
            13:40   How to Get the Best ROI From a Scrum Team as a Product Owner                               Geoff Watts
            15:00   Inside modern JavaScript                                                                   Scott Allen
            16:20   Noda time: An Alternative Date & Time Framework                                             Jon Skeet
            17:40   TBA                                                                                           TBA

            10:20   Cloud reality check: Creating a real cloud market between Amazon, Microsoft and Co       Erich Eichinger

            11:40   Pivoting Data in SQL Server                                                               Itzik Ben-Gan
            13:40   .NET Design Patterns for Agile Software Processes                                        Kevin McNeish
            15:00   Design, Don’t Decorate                                                                     Billy Hollis
            16:20   Windows Azure Platform Compute & Storage                                                Clemens Vasters
            17:40   Discover the Power of Row Numbers                                                         Itzik Ben-Gan

            10:20   The Myth of Developer Productivity                                                       Scott Bellware

            11:40   Architecture of the Client Tier for WPF & Silverlight                                      Billy Hollis
            13:40   What has Mono done for .NET developers Lately?                                           Jackson Harper
            15:00   Mono - A Great Platform for .NET in the Cloud                                            Jackson Harper
            16:20   Real-World Design with the Visual Studio 2010 Modelling Tools                            Kevin McNeish
            17:40   How Microsoft Does Development                                                       Stephanie Cuthbertson

            10:20   Seven Key Success Factors for Agile Testing                                                Lisa Crispin

            11:40   Dealing with Defects - An Agile Approach                                                   Lisa Crispin
            13:40   Programming with GUTs - Good Unit Tests                                                  Kevlin Henney
            15:00   Agile development and reporting with TFS 2010                                        Stephanie Cuthbertson
            16:20   Does Self-Organization Actually Work & Are Agile Teams Actually Motivated By It?           Geoff Watts
            17:40   The Whole Team Approach to Testing                                                         Lisa Crispin

            10:20   Advanced T-SQL Tips & Tricks                                                              Itzik Ben-Gan

            11:40   Agility is the tool                                                                         Tom Gilb
            13:40   CouchDB for .NET Developers                                                                Hadi Hariri
            15:00   Lean Quality Assurance                                                                      Tom Gilb
            16:20   TDD/BDD & Functional Programming                                                        Amanda Laucher
            17:40   Exploring Software Transactional Memory in .NET                                           Steve Strong

            10:20   Multicore - The Future of Computing                                                      Terje Mathisen

            11:40   Overview of Concurrent Programming Techniques                                             Steve Strong
            13:40   Patterns for Parallel Programming                                                        Tiberiu Covaci
            15:00   CHESS - Finding & Reproducing Heisenbugs in Concurrent Programs                           Steve Strong
            16:20   Tasks & Threading in .NET 4.0                                                             Ingo Rammer
            17:40   Distributed Computing 2.0                                                               Filip Van Laenen

           09:00    Co- and contra-variance in C#                                                                              Jon Skeet
           10:20    jQuery for ASP.NET developers                                                                             Scott Allen

            11:40   Folding Design to Agile                                                                                   Eric Evans
           13:40    Software Is Not Manufacturing                                                                           Scott Bellware
           15:00    C# 4.0                                                                                                 Mads Torgersen
           16:20    If I Ruled the World - C# 5.0 According to Jon                                                             Jon Skeet
           17:40    Language Design. Q&A Session w/Jon Skeet and Mystery Guests                                       Mads Torgersen/Jon Skeet
           09:00    Ruby for .NET developers                                                                                Scott Bellware
           10:20    Service Oriented Development Process                                                                      Juval Löwy

            11:40   Modularization, Testing & Technical Debt in a Large Agile Project                                 Harald Søvik/Morten Forfang
           13:40    Rocking the Access Control Service: Practical Scenarios, Killer Code and Wicked Tools                Michele Bustamante
           15:00    Advanced Tips & Tricks for ASP.NET MVC 2                                                                  Scott Allen
           16:20    Code Excavations, Wishful Invocations, and Domain Specific Unit Test Frameworks                         Roy Osherove
           17:40    Beautiful Teams & Leaders                                                                               Roy Osherove
           09:00    Strategic Design                                                                                          Eric Evans
           10:20    Entity Framework Persistance Ignorance                                                                   Julie Lerman

            11:40   TBA                                                                                                           TBA
           13:40    Unleash Your Domain                                                                                       Greg Young
           15:00    What I’ve learned About DDD Since the Book                                                                Eric Evans
           16:20    Domain Driven Entity Framework                                                                           Julie Lerman
           17:40    5 reasons why projects using DDD fail                                                                     Greg Young
           09:00    Silverlight for Windows Phone                                                                             Tim Heuer
           10:20    Silverlight Applications for Windows Phone 7                                                             Jonas Follesø

            11:40   A Dive in the Microsoft Ajax Library                                                                      Gill Cleeren
           13:40    Introduction to MonoTouch                                                                                 Chris Hardy
           15:00    MonoTouch Deep Dive                                                                                       Chris Hardy
           16:20    Building Applications with Silverlight 4                                                                  Tim Heuer
           17:40    TBA                                                                                                           TBA

           09:00    Windows Identity Foundation Overview                                                                    Vittorio Bertocci
           10:20    Unit Testing Best Practices & Test Reviews                                                              Roy Osherove

            11:40   Fluent Nhibernate                                                                                       James Gregory
           13:40    Improving Your ASP.NET Application Performance with Asynchcronous Pages and Parallel Extensions         Tiberiu Covaci
           15:00    Windows Identity Foundation & Windows Azure                                                             Vittorio Bertocci
           16:20    Top 10 Security Scenarios for WCF Services: On Premises & in the Cloud                               Michele Bustamante
           17:40    Architecting for the .NET Event Model                                                                   Kevin McNeish
           09:00    Big-Ass View on Competency                                                                              Jurgen Appelo
           10:20    IronRuby - A Brave New World for .NET                                                                      Ben Hall

            11:40   The Secret Ingredient of a Successful WPF/Silverlight/Windows Phone 7 Application                       Gøran Hansen
           13:40    Testers Are Not Your Enemy                                                                              Karianne Berg
           15:00    Making Manual Testing a Part of Your Development Process                                                Richard Fennell
           16:20    From one web server to two: Making the leap to web farms                                              Richard Campbell
           17:40    Introducing the .NET Service Bus                                                                          Juval Löwy
           09:00    Putting Some Testing Into Your TFS Build                                                                Richard Fennell
           10:20    Product Development in TANDBERG                                                                          Olve Maudal

            11:40   Solid C++ code by example                                                                                Olve Maudal
           13:40    Bridging code between Java & .NET                                                                     Harald Fianbakken
           15:00    Technology Supported Requirement Handling and Estimation                                            Kjetil Moløkken-Østvold
           16:20    The Purpose of Leadership and Governance                                                                Jurgen Appelo
           17:40    ASP.NET performance for free using caching                                                                Gill Cleeren

             Book your hotel room today!
              If you need accommodation during the conference, you should book
              your hotel room now. June is one of Oslo’s most busy months, so
              there might be a shortage of hotel rooms. NDC have reserved a
              number of hotel rooms for your convenience during the conference
           09:00     The Three Laws of TDD                                                                       Robert C. Martin

            10:20    The Solid Principles of OO & Agile Design                                                   Robert C. Martin
            11:40    Clean Code I: Arguments                                                                      Robert C. Martin
            13:40    The Art of the Method                                                                       Michael Feathers
            15:00    Clean Code III: Functions                                                                   Robert C. Martin
            16:20    Rough Cuts in Legacy Code                                                                   Michael Feathers

           09:00     Practical IronRuby                                                                           Shay Friedman

            10:20    Advanced Debugging with Visual Studio                                                         Ingo Rammer
            11:40    SharePoint 2010 - Business Connectivity Services                                               Sahil Malik
            13:40    SharePoint 2010 - Is it Scalable or not?                                                       Sahil Malik
            15:00    Get Your Business Out of My Face: Legacy Refactorings for Testable User Interface Code       Brett Schuchert
            16:20    State vs. Interaction Testing                                                                  Hadi Hariri

           09:00     Lessons Learned From Design By Contract                                                        Greg Young

            10:20    Testable C#                                                                                 Michael Feathers
            11:40    The Deep Synergy Between Testability and Good Design                                        Michael Feathers
            13:40    Hardcore .NET Production Debugging                                                            Ingo Rammer
            15:00    TBA                                                                                                TBA
            16:20    TBA                                                                                                TBA

           09:00     Getting Agile with Scrum                                                                       Mike Cohn

            10:20    User Stories for Agile Requirements                                                            Mike Cohn
            11:40    Agile Estimating                                                                               Mike Cohn
            13:40    Advanced Topics in Agile Planning                                                              Mike Cohn
            15:00    Scaling Agile to Work with a Distributed Team                                                  Mike Cohn
            16:20    Leading a Self-Organizing Team                                                                 Mike Cohn

           09:00     Why WebForms Is Dead                                                                           Rob Conery

            10:20    Introducing Spark View Engine                                                                Louis Dejardin
            11:40    Spark Deep Dive                                                                              Louis Dejardin
            13:40    Riding IronRuby on Rails                                                                     Shay Friedman
            15:00    Creating Web Sites with Open Rasta                                                         Sebastien Lambla
            16:20    LINQ - Beyond Queries                                                                           Scott Allen

           09:00     Developing for SharePoint 2010                                                                 Sahil Malik

            10:20    Developing Testable Web Parts for SharePoint                                                 Richard Fennell
            11:40    Code Contracts                                                                                 Hadi Hariri
            13:40    Testing C# and ASP.NET Applications with Ruby                                                    Ben Hall
            15:00    Collaboration in ABB - from drawing board to real-life solution using SharePoint 2010    Unni Løland/Anders Taucher
            16:20    A Style of Programming                                                                        Tore Vestues

           09:00     Introduction to GIT                                                                          James Gregory

            10:20    Being an effective team leader                                                                Roy Osherove
            11:40    Using ReST to design a better OData                                                        Sebastien Lambla
            13:40    Aspect Oriented Programming: Learning by Re-Invention                                        Fredrik Kalseth
            15:00    No Source Code, No Problem - Reverse Code Engineering in Product Development             Ole André Vadla Ravnås
            16:20    Fubu MVC                                                                                       Mark Nijhof

                                           The agenda may change without further warning.
                    Tune in to to stay updated as we move towards the opening day

          or call +47 67827235 for hotel booking

      Kode. Det brukes i alle ting over alt. Hvor enn du ser er det kode.
         Som utvikler ser du mulighetene. Med Visual Studio 2010
       har du et sett helt nye verktøy som gjør mulighet til virkelighet,
                       fra design til utvikling til utrulling.

           Lansering 12 april. Bli med på feiringen på MSDN Live
         i Oslo, Trondheim, Bergen og Stavanger:

                         LES MER OM VS2010 PÅ:
 Foto: Katrine nordli / Scanpix

                    Oslo Spektrum, Oslo
                           June 16-18th

                                  Buy tickets NOW! – visit

Shared By: