SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Strategic Guidance for
  AVR Classic legacy
     applications

        Presented by:
        Roger Pence
  Education Director, ASNA
A critical legacy dependency

• Many customers have developed substantial
  Windows applications with AVR Classic
• These applications…
      – Have enterprise dependence
      – Have been very custom-tailored to solving unique
        business problems
      – Are widely deployed and used
      – Are usually several years old
 • Most of these customers have one simple
4:20
     question…
Copyright © 2012 by ASNA.                                  2
Now what?
4:20
 Copyright © 2012 by ASNA.        3
There isn’t a magic answer!
 • Alas, there isn’t a magic
   answer to the question
 • The answer depends on
   what your needs and
   motives are for the
   application
 • So, yes, there isn’t a
   magic answer, but there
   are answers!
4:20
 Copyright © 2012 by ASNA.                 4
COM has served us long and well

 • COM is old and getting older!
       – COM was introduced in 1993—it is 18 years old
       – AVR 1.0 was released in 1994—it is 17 years old
 • Migrating code from COM to .NET is very
   troublesome (more on this later)
       – MS offers no tools for migrating VB COM to VB.NET
 • COM has served us long and well, but its role in
   modern application development is rapidly
   diminishing
4:20
 Copyright © 2010 by ASNA.                                   5
COM will be with us for a long
time, but make no mistake, the
 sun is clearly setting on COM
           Copyright © 2012 by ASNA.   6
COM is the programming
             equivalent of Mick Jagger…
 • Both have been with us for a long time
 • Both are old friends
 • Both have worked very hard for us
 • Both are really starting to show their age
 • Clearly, both have reached the end of their
   prime!


4:20
 Copyright © 2010 by ASNA.                       7
COM then                          COM now




           Copyright © 2012 by ASNA.        8
This session’s mission

 • What you should or shouldn’t do is very
   dependent on lots of issues
 • We can’t give you the answer
 • What we can do is share some potential answers
 • You don’t have to do anything we suggest
 • But…


4:20
 Copyright © 2012 by ASNA.                          9
You have to
do something!
    Copyright © 2012 by ASNA.   10
A rational plan now…

 • Protects you from needing to make hasty
   decisions
 • Keeps you from reacting to events beyond your
   control
 • Lets you act with a well-crafted strategy to
   prepare for the future
 • You need a rational plan…now!

4:20
 Copyright © 2010 by ASNA.                         11
ASNA’s 5 R strategy for
  future-proofing AVR Classic apps

 1. Relax
 2. Refine
 3. Restrain
 4. Reinvest
 5. Reimagine
4:20
 Copyright © 2012 by ASNA.       12
Relax > Refine > Restrain > Reinvest > Reimagine

                                       Relax

 • We do know that COM is in the winter of its
   life, but…
       – COM isn’t going away anytime soon
 • MS has a good long-term strategy in place for
   your COM investment protection
 • After all, MS has the same problem you do…
       – Legacy COM code. Lots of it.


4:20
 Copyright © 2012 by ASNA.                                                 13
Relax > Refine > Restrain > Reinvest > Reimagine

                             Don’t overreact

 • We feel it’s very important that you craft a good
   long-term strategy for your AVR Classic apps
 • But you don’t need to do it before 8pm this
   evening!
 • The COM click is ticking but it’s nowhere near its
   final count down
 • You have time to think through your decisions
   before you make them
4:20
 Copyright © 2012 by ASNA.                                                 14
Relax > Refine > Restrain > Reinvest > Reimagine
                         Leaving XP behind?
                         Win7 has your back
 • MS had big problems with COM interoperability
   with Vista—but has learned from those mistakes
       – MS built a great COM-escape hatch into Windows 7
       – Each copy of Windows 7 offers a free XP virtual
         machine
 • Each copy of Win 7 includes an XP license for the
   Win 7 XP VM mode
 • You can launch the entire XP VM or launch XP
   VM-specific shortcuts from the Win 7 host
4:20
 Copyright © 2012 by ASNA.                                                 15
Relax > Refine > Restrain > Reinvest > Reimagine
       Windows 7 Windows XP mode
         with Virtual PC in action
 • Show Windows XP mode in action
 • Getting Windows XP mode for Win 7
       – Download what you need here:
      http://www.microsoft.com/windows/virtual-pc/
 • You’ll need both Windows XP Mode and
   Windows Virtual PC



4:20
 Copyright © 2012 by ASNA.                                                 16
http://www.microsoft.com/windows/virtual-pc/




                   Copyright © 2012 by ASNA.   17
Relax > Refine > Restrain > Reinvest > Reimagine

                             Windows XP Mode

 • To surface XP shortcuts to your Win 7 host:
       – Create a folder named ―Programs on the XP VM‖ user
         c:Documents and SettingsAll UsersStart Menu
 • Then create shorts to your EXEs and other files
   with the Shortcut wizard
       – Dragged and dropped shortcuts won’t work!
       – These shortcuts are then automatically surfaced in
         your Win 7 host’s Start Menu
       – Installed programs automatically surface in the Win 7
         host’s Start Menu
4:20
 Copyright © 2010 by ASNA.                                                  18
Windows XP Shortcut wizard is available from
the Windows Explorer context menu.




                    Copyright © 2012 by ASNA.   19
Relax > Refine > Restrain > Reinvest > Reimagine

                                      Refine

 • Get your AVR Classic applications to code
   complete status as quickly as possible
       – The goal is to be able to say, ―This version is
         done, with no new features planned or to be available
         for it.―
       – Fixes may be added, but no new code!
              Code complete: A release is called code complete when the
              development team agrees that no entirely new source code will be
              added to this release.


4:20
 Copyright © 2012 by ASNA.                                                       20
Relax > Refine > Restrain > Reinvest > Reimagine
                      Minimize third-party
                         dependencies
 • Third-party components represent a weak spot
   in your exposure of what might continue to work
   in the future
       – Mabry and Graph Control are gone
       – Minimize your use of third-party controls
       – Minimize your use of programming with the MS
         Office COM objects—Office version dependencies are
         a huge source of moving code forward!


4:20
 Copyright © 2012 by ASNA.                                                 21
Relax > Refine > Restrain > Reinvest > Reimagine
             Understand COM <-> .NET
                 interoperability
 • COM and .NET do coexist nicely
       – AVR Classic apps can consume .NET DLLs quite easily
       – .NET apps can consume AVR Classic DLLs with just a
         little effort
       – This might help you leverage .NET work as you make
         your Classic apps code complete
 • Current .NET DG versions also support Classic
 • Tim Jannsen’s .NET and AVR Classic
   Interoperability session covers this in detail
4:20
 Copyright © 2012 by ASNA.                                                 22
Relax > Refine > Restrain > Reinvest > Reimagine

                                    Restrain

 • When you have your AVR Classic apps code
   complete, restrain yourself from changing them
   or adding new features to them!
 • You have to draw a line in the sand between the
   old and new!
       – That must be a part of your strategy!
 • Also, restrain yourself from writing anything new
   with AVR Classic!
4:20
 Copyright © 2012 by ASNA.                                                 23
Relax > Refine > Restrain > Reinvest > Reimagine

                                    Reinvest
 • As you chart your corporate and personal course
   for life after COM, consider the training and skills
   you and your team need to acquire
 • Chart a specific course to learn:
       –   .NET in general
       –   Web development (both server-side and client-side)
       –   SOA architecture
       –   Windows forms alternatives (more on this in a moment)
       –   Database design


4:20
 Copyright © 2012 by ASNA.                                                 24
Relax > Refine > Restrain > Reinvest > Reimagine
        Learn about good application
         architectures and patterns
 • Many of the apps built with AVR Classic owe
   more to serendipity than to engineering and
   architecture
 • The application lifecycle was
       – Code a little
       – Deploy a little
       – Goto TOP
 • Today’s applications require more discipline and
   design—and the application of solid
   programming fundamentals
4:20
 Copyright © 2012 by ASNA.                                                 25
Relax > Refine > Restrain > Reinvest > Reimagine

              Invest in your team’s skills
 • Recommended books
       – Robert Martin – Clean Code
       – Steve McConnell – Code Complete (2nd Edition)
       – Douglas Crockford – JavaScript: The Good Parts
       – Elisabeth Freeman – Head First Design Patterns
       – Martin Fowler – Refactoring: Improving the Design of
         Existing Code
       – Cwalina and Abrams – Framework Design Guidelines




4:20
 Copyright © 2012 by ASNA.                                                 26
Relax > Refine > Restrain > Reinvest > Reimagine

              Invest in your team’s tools
 • Source control
       – Subversion, Git, SourceGear Vault
 • Automated build process
       – MS Build, PowerShell, Cruise Control, Team City
 • Formal bug logging
       – Bugzilla, BugTracker.NET, Fogbugz
 • Unit testing
       – nUnit, xUnit


4:20
 Copyright © 2012 by ASNA.                                                 27
Relax > Refine > Restrain > Reinvest > Reimagine

                Don’t make this mistake!
 • Don’t consider the need to migrate or rewrite
   your AVR Classic app in .NET an opportunity to
   learn .NET
 • It’s vital that you learn .NET first!
       – As you move your COM app to .NET you’ll need to
         make many informed decisions on the .NET platform
       – You can’t make good decisions until you know and
         understand .NET



4:20
 Copyright © 2012 by ASNA.                                                 28
Relax > Refine > Restrain > Reinvest > Reimagine

                                  Reimagine
 • We built AVR Classic apps with several, nearly
   universal, practices:
       – Monolithic – no separation of concerns between
         UI, logic, and IO
       – Global variables all over the place
       – Very busy event handlers
       – Little or no modularity
       – Applications were very stateful
 • All of which are the polar opposite of what any
   modern software construction book
   recommends!
4:20
 Copyright © 2012 by ASNA.                                                 29
Relax > Refine > Restrain > Reinvest > Reimagine

                                  Reimagine
 • You have an opportunity now to either:
       – Create a long-term software asset or…
       – Write another legacy application heavily dependent
         on a specific UI
 • Which would you rather do?
 • Before you rewrite, migrate, or build around your
   existing applications, stop and think a bit about
   their longer-term purpose


4:20
 Copyright © 2012 by ASNA.                                                 30
Relax > Refine > Restrain > Reinvest > Reimagine
                      Pocket computers are
                      changing everything
 • Everyone in the room today has a computer in
   their pocket or purse! Maybe two.
 • The redistribution of computer availability is
   changing everything
 • Make no mistake: mobile enterprise doesn’t
   loom on the horizon
       –   It’s here
       –   It’s doable
       –   It’s important
       –   And your competition is doing it
4:20
 Copyright © 2012 by ASNA.                                                 31
Relax > Refine > Restrain > Reinvest > Reimagine

            What UI should you target?
 • You shouldn’t target any UI!
 • Build non-UI dependent services so that
   separate UI layers are possible
 • Who knows what UI you’ll be asked for next?
       –   Win forms?
       –   Web forms?
       –   HTML/HTML5 for mobile?
       –   Silverlight for a Win phone?
       –   Native mobile for Android or iPhone or iPad?
       –   WPF?
       –   Windows 8 Metro?
4:20
 Copyright © 2012 by ASNA.                                                 32
Relax > Refine > Restrain > Reinvest > Reimagine
          Architecture of most
         AVR Classic apps today
 • There is little, if
   any, separation
   between the
   UI, DB, and business
   logic layers
 • All three layers are
   heavily embedded
   with each other
  • Virtually impossible to
4:20
       factor out the UI
 Copyright © 2012 by ASNA.                                  33
Copyright © 2012 by ASNA.   34
Relax > Refine > Restrain > Reinvest > Reimagine
                  Creating an application
                    with discrete layers
  • Writing your apps
    in discrete layers
    makes it more
    flexible
  • Here there is a very
    clear separation of
    concerns between
    the layers



4:20
 Copyright © 2012 by ASNA.                                                 35
Relax > Refine > Restrain > Reinvest > Reimagine

       Adding support for Web forms
  • With business logic
    and DB access as
    discrete layers, it’s
    possible to write a
    separate layer UI
    for Web forms




4:20
 Copyright © 2012 by ASNA.                                                 36
Relax > Refine > Restrain > Reinvest > Reimagine

                              HTML/HTML5
  • Using HTML5 is a
    good, general
    purpose strategy
    for mobile
    development
  • Apps run in mobile
    device’s browser
  • CSS media queries
    help structure UI
    layout
4:20
 Copyright © 2012 by ASNA.                                                 37
Relax > Refine > Restrain > Reinvest > Reimagine

         Silverlight on the Win phone
  • Silverlight and
    WPF may or may
    not make it
    generally
  • But it’s looking like
    Silverlight will at
    least persist as the
    Win phone UI for
    the enterprise


4:20
 Copyright © 2012 by ASNA.                                                 38
Relax > Refine > Restrain > Reinvest > Reimagine

              Maybe even native mobile
  • Writing native
    mobile apps is a
    pretty hefty
    gamble
  • But if you need
    it, a layered
    software approach
    makes it possible



4:20
 Copyright © 2012 by ASNA.                                                 39
Relax > Refine > Restrain > Reinvest > Reimagine
           A layered architecture
         makes it possible to say “Yes”
  • Without a good
    layered
    architecture, you
    simple don’t have
    a ―yes‖ option in
    your programming
    kit bag




4:20
 Copyright © 2012 by ASNA.                                                 40
Relax > Refine > Restrain > Reinvest > Reimagine
                 Who knows what’s next?
                     Be prepared!
  • A layered
    architecture turns
    what would have
    otherwise been a
    legacy asset into a
    long-term software
    asset




4:20
 Copyright © 2012 by ASNA.                                                 41
Relax > Refine > Restrain > Reinvest > Reimagine

            The AVR Upgrade Assistant
 • If you are on maintenance, and own AVR 4.1 and
   AVR for .NET, there is an Upgrade Assistant (UA)
   available in AVR 4.1
 • The operative word here is ―Assistant‖!
 • The UA isn’t an application migration
   facility, but, for the right apps, it can help lay the
   groundwork for converting an AVR Classic app to
   .NET

4:20
 Copyright © 2012 by ASNA.                                                 42
Relax > Refine > Restrain > Reinvest > Reimagine
             The UA requires
       intermediate .NET knowledge
 • Don’t assume that you can use the UA to learn
   .NET—you can’t!
 • You must be well-versed in both AVR for .NET
   and AVR Classic to get good UA results
 • The UA only gets you started, you must make
   lots of decisions as you remediate the app—
   those decisions require .NET knowledge

4:20
 Copyright © 2012 by ASNA.                                                 43
Relax > Refine > Restrain > Reinvest > Reimagine

                                   UA issues
 • Third-party controls are troublesome
       – Beware: many COM controls companies are now
         gone!
 • MS Office dependencies
 • OSFile and MiscCtrls dependencies
 • The UA doesn’t map things to .NET that required
   controls or DLLs in AVR Classic
       – Date and time conversions
       – String operations
       – Edit words and edit codes
4:20
 Copyright © 2012 by ASNA.                                                 44
Relax > Refine > Restrain > Reinvest > Reimagine

                                   UA issues
 • Subfiles are troublesome to migrate well
       – And subfiles are at the heart of many applications
       – We’ve tried twice to automate subfile migration
       – The ―subfile‖ model is so fundamentally different in
         .NET
 • DB connections aren’t localized in .NET
       – Special care must be taken to keep from launching
         many OS/400 jobs with migrated code (or even
         slopping .NET from-scratch code)
 • Win forms are the only target—no browser UI
   target
4:20
 Copyright © 2012 by ASNA.                                                 45
Relax > Refine > Restrain > Reinvest > Reimagine

             The UA might work for you
 • The UA is good for very small, well-focused
   applications
 • But for larger applications we’re not sure it’s the
   best long-term answer to the question
 • The UA imposes a fixed model that might be
   troublesome to grow out of
 • We know that it is very hard to automate COM to
   .NET migrations
       – MS long ago gave up doing so with VB6 to .NET
4:20
 Copyright © 2012 by ASNA.                                                 46
General advice summary
 • COM isn’t going away anytime soon
       – Use Win 7 XP mode when necessary
 • Finish your COM apps and then freeze them
       – Develop the discipline to not write any new AVR
         Classic apps
 • Start now building .NET services that replace or
   augment your AVR Classic apps
       – Give very serious thought to persisting the Win forms
         model
       – Learning .NET is high on your to-do list
4:20
 Copyright © 2012 by ASNA.                                   47
General advice summary
 • Start building tangential apps using those
   services to augment your AVR Classic apps
       – These are front-end apps—your services should do
         the heavy lifting
       – Maybe start with a browser-based UI
 • Don’t over-expect what the UA can do
       –   It’s usefulness is rather narrow and specific
       –   Understand its model
       –   Learn .NET before you use the UA
       –   Identify things AVR Classic is doing that .NET does
           very differently
4:20
 Copyright © 2012 by ASNA.                                       48

Weitere ähnliche Inhalte

Was ist angesagt?

All you know about ASP.NET deployment is wrong!
All you know about ASP.NET deployment is wrong!All you know about ASP.NET deployment is wrong!
All you know about ASP.NET deployment is wrong!Roger Pence
 
Development workflow
Development workflowDevelopment workflow
Development workflowSigsiu.NET
 
The Future of Cross-Platform is Native
The Future of Cross-Platform is NativeThe Future of Cross-Platform is Native
The Future of Cross-Platform is NativeJustin Mancinelli
 
Riena on Eclipse 4
Riena on Eclipse 4Riena on Eclipse 4
Riena on Eclipse 4heikobarth
 
Ria Applications And PHP
Ria Applications And PHPRia Applications And PHP
Ria Applications And PHPJohn Coggeshall
 
Developing Distributed Internet of Things Applications Made Easy with Concier...
Developing Distributed Internet of Things Applications Made Easy with Concier...Developing Distributed Internet of Things Applications Made Easy with Concier...
Developing Distributed Internet of Things Applications Made Easy with Concier...mfrancis
 
Knative with .NET Core and Quarkus with GraalVM
Knative with .NET Core and Quarkus with GraalVMKnative with .NET Core and Quarkus with GraalVM
Knative with .NET Core and Quarkus with GraalVMMark Lechtermann
 
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talkTwilio Inc
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The EnterpriseMatt Aimonetti
 
Breaking the monolith (an example)
Breaking the monolith (an example)Breaking the monolith (an example)
Breaking the monolith (an example)Massimo Ferre'
 
Orion (What's Next conference)
Orion (What's Next conference)Orion (What's Next conference)
Orion (What's Next conference)Boris Bokowski
 
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019Bhuvaneswari Subramani
 
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...David Buck
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM ICF CIRCUIT
 
Samsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppSamsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppRyo Jin
 

Was ist angesagt? (16)

All you know about ASP.NET deployment is wrong!
All you know about ASP.NET deployment is wrong!All you know about ASP.NET deployment is wrong!
All you know about ASP.NET deployment is wrong!
 
S109 cics-java
S109 cics-javaS109 cics-java
S109 cics-java
 
Development workflow
Development workflowDevelopment workflow
Development workflow
 
The Future of Cross-Platform is Native
The Future of Cross-Platform is NativeThe Future of Cross-Platform is Native
The Future of Cross-Platform is Native
 
Riena on Eclipse 4
Riena on Eclipse 4Riena on Eclipse 4
Riena on Eclipse 4
 
Ria Applications And PHP
Ria Applications And PHPRia Applications And PHP
Ria Applications And PHP
 
Developing Distributed Internet of Things Applications Made Easy with Concier...
Developing Distributed Internet of Things Applications Made Easy with Concier...Developing Distributed Internet of Things Applications Made Easy with Concier...
Developing Distributed Internet of Things Applications Made Easy with Concier...
 
Knative with .NET Core and Quarkus with GraalVM
Knative with .NET Core and Quarkus with GraalVMKnative with .NET Core and Quarkus with GraalVM
Knative with .NET Core and Quarkus with GraalVM
 
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The Enterprise
 
Breaking the monolith (an example)
Breaking the monolith (an example)Breaking the monolith (an example)
Breaking the monolith (an example)
 
Orion (What's Next conference)
Orion (What's Next conference)Orion (What's Next conference)
Orion (What's Next conference)
 
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
 
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM
 
Samsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppSamsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native App
 

Ähnlich wie Strategic guidance

ABS 2014 - The Growth of Android in Embedded Systems
ABS 2014 - The Growth of Android in Embedded SystemsABS 2014 - The Growth of Android in Embedded Systems
ABS 2014 - The Growth of Android in Embedded SystemsBenjamin Zores
 
Db2 developer ecosystem
Db2 developer ecosystemDb2 developer ecosystem
Db2 developer ecosystemModusOptimum
 
Lessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentLessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentMartijn de Jong
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsShafiul Azam Chowdhury
 
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...Adam Dunkels
 
An Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternAn Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternTeamstudio
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012Steven Pousty
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Developmentbsadd
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShiftSteven Pousty
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience NeededKathy Brown
 
Intro To Mobile App Development
Intro To Mobile App DevelopmentIntro To Mobile App Development
Intro To Mobile App DevelopmentJay Dadarkar
 
VMworld 2013: Examining vSphere Design Through a Design Scenario
VMworld 2013: Examining vSphere Design Through a Design Scenario VMworld 2013: Examining vSphere Design Through a Design Scenario
VMworld 2013: Examining vSphere Design Through a Design Scenario VMworld
 
Subverting the monolith!
Subverting the monolith!Subverting the monolith!
Subverting the monolith!Sophia Russell
 
ICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppRené Winkelmeyer
 
Verification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integrationVerification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integrationRogue Wave Software
 
02 BlackBerry Application Development
02 BlackBerry Application Development02 BlackBerry Application Development
02 BlackBerry Application DevelopmentArief Gunawan
 
Bp117 server consolidations
Bp117 server consolidationsBp117 server consolidations
Bp117 server consolidationspanagenda
 

Ähnlich wie Strategic guidance (20)

Death to Manual Deployments
Death to Manual DeploymentsDeath to Manual Deployments
Death to Manual Deployments
 
ABS 2014 - The Growth of Android in Embedded Systems
ABS 2014 - The Growth of Android in Embedded SystemsABS 2014 - The Growth of Android in Embedded Systems
ABS 2014 - The Growth of Android in Embedded Systems
 
Android Lollipop
Android LollipopAndroid Lollipop
Android Lollipop
 
Db2 developer ecosystem
Db2 developer ecosystemDb2 developer ecosystem
Db2 developer ecosystem
 
Lessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentLessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions Deployment
 
Eclipse Way
Eclipse WayEclipse Way
Eclipse Way
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
 
An Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternAn Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller Pattern
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Development
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShift
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience Needed
 
Intro To Mobile App Development
Intro To Mobile App DevelopmentIntro To Mobile App Development
Intro To Mobile App Development
 
VMworld 2013: Examining vSphere Design Through a Design Scenario
VMworld 2013: Examining vSphere Design Through a Design Scenario VMworld 2013: Examining vSphere Design Through a Design Scenario
VMworld 2013: Examining vSphere Design Through a Design Scenario
 
Subverting the monolith!
Subverting the monolith!Subverting the monolith!
Subverting the monolith!
 
ICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To App
 
Verification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integrationVerification at scale: Fitting static code analysis into continuous integration
Verification at scale: Fitting static code analysis into continuous integration
 
02 BlackBerry Application Development
02 BlackBerry Application Development02 BlackBerry Application Development
02 BlackBerry Application Development
 
Bp117 server consolidations
Bp117 server consolidationsBp117 server consolidations
Bp117 server consolidations
 

Kürzlich hochgeladen

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Kürzlich hochgeladen (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

Strategic guidance

  • 1. Strategic Guidance for AVR Classic legacy applications Presented by: Roger Pence Education Director, ASNA
  • 2. A critical legacy dependency • Many customers have developed substantial Windows applications with AVR Classic • These applications… – Have enterprise dependence – Have been very custom-tailored to solving unique business problems – Are widely deployed and used – Are usually several years old • Most of these customers have one simple 4:20 question… Copyright © 2012 by ASNA. 2
  • 3. Now what? 4:20 Copyright © 2012 by ASNA. 3
  • 4. There isn’t a magic answer! • Alas, there isn’t a magic answer to the question • The answer depends on what your needs and motives are for the application • So, yes, there isn’t a magic answer, but there are answers! 4:20 Copyright © 2012 by ASNA. 4
  • 5. COM has served us long and well • COM is old and getting older! – COM was introduced in 1993—it is 18 years old – AVR 1.0 was released in 1994—it is 17 years old • Migrating code from COM to .NET is very troublesome (more on this later) – MS offers no tools for migrating VB COM to VB.NET • COM has served us long and well, but its role in modern application development is rapidly diminishing 4:20 Copyright © 2010 by ASNA. 5
  • 6. COM will be with us for a long time, but make no mistake, the sun is clearly setting on COM Copyright © 2012 by ASNA. 6
  • 7. COM is the programming equivalent of Mick Jagger… • Both have been with us for a long time • Both are old friends • Both have worked very hard for us • Both are really starting to show their age • Clearly, both have reached the end of their prime! 4:20 Copyright © 2010 by ASNA. 7
  • 8. COM then COM now Copyright © 2012 by ASNA. 8
  • 9. This session’s mission • What you should or shouldn’t do is very dependent on lots of issues • We can’t give you the answer • What we can do is share some potential answers • You don’t have to do anything we suggest • But… 4:20 Copyright © 2012 by ASNA. 9
  • 10. You have to do something! Copyright © 2012 by ASNA. 10
  • 11. A rational plan now… • Protects you from needing to make hasty decisions • Keeps you from reacting to events beyond your control • Lets you act with a well-crafted strategy to prepare for the future • You need a rational plan…now! 4:20 Copyright © 2010 by ASNA. 11
  • 12. ASNA’s 5 R strategy for future-proofing AVR Classic apps 1. Relax 2. Refine 3. Restrain 4. Reinvest 5. Reimagine 4:20 Copyright © 2012 by ASNA. 12
  • 13. Relax > Refine > Restrain > Reinvest > Reimagine Relax • We do know that COM is in the winter of its life, but… – COM isn’t going away anytime soon • MS has a good long-term strategy in place for your COM investment protection • After all, MS has the same problem you do… – Legacy COM code. Lots of it. 4:20 Copyright © 2012 by ASNA. 13
  • 14. Relax > Refine > Restrain > Reinvest > Reimagine Don’t overreact • We feel it’s very important that you craft a good long-term strategy for your AVR Classic apps • But you don’t need to do it before 8pm this evening! • The COM click is ticking but it’s nowhere near its final count down • You have time to think through your decisions before you make them 4:20 Copyright © 2012 by ASNA. 14
  • 15. Relax > Refine > Restrain > Reinvest > Reimagine Leaving XP behind? Win7 has your back • MS had big problems with COM interoperability with Vista—but has learned from those mistakes – MS built a great COM-escape hatch into Windows 7 – Each copy of Windows 7 offers a free XP virtual machine • Each copy of Win 7 includes an XP license for the Win 7 XP VM mode • You can launch the entire XP VM or launch XP VM-specific shortcuts from the Win 7 host 4:20 Copyright © 2012 by ASNA. 15
  • 16. Relax > Refine > Restrain > Reinvest > Reimagine Windows 7 Windows XP mode with Virtual PC in action • Show Windows XP mode in action • Getting Windows XP mode for Win 7 – Download what you need here: http://www.microsoft.com/windows/virtual-pc/ • You’ll need both Windows XP Mode and Windows Virtual PC 4:20 Copyright © 2012 by ASNA. 16
  • 17. http://www.microsoft.com/windows/virtual-pc/ Copyright © 2012 by ASNA. 17
  • 18. Relax > Refine > Restrain > Reinvest > Reimagine Windows XP Mode • To surface XP shortcuts to your Win 7 host: – Create a folder named ―Programs on the XP VM‖ user c:Documents and SettingsAll UsersStart Menu • Then create shorts to your EXEs and other files with the Shortcut wizard – Dragged and dropped shortcuts won’t work! – These shortcuts are then automatically surfaced in your Win 7 host’s Start Menu – Installed programs automatically surface in the Win 7 host’s Start Menu 4:20 Copyright © 2010 by ASNA. 18
  • 19. Windows XP Shortcut wizard is available from the Windows Explorer context menu. Copyright © 2012 by ASNA. 19
  • 20. Relax > Refine > Restrain > Reinvest > Reimagine Refine • Get your AVR Classic applications to code complete status as quickly as possible – The goal is to be able to say, ―This version is done, with no new features planned or to be available for it.― – Fixes may be added, but no new code! Code complete: A release is called code complete when the development team agrees that no entirely new source code will be added to this release. 4:20 Copyright © 2012 by ASNA. 20
  • 21. Relax > Refine > Restrain > Reinvest > Reimagine Minimize third-party dependencies • Third-party components represent a weak spot in your exposure of what might continue to work in the future – Mabry and Graph Control are gone – Minimize your use of third-party controls – Minimize your use of programming with the MS Office COM objects—Office version dependencies are a huge source of moving code forward! 4:20 Copyright © 2012 by ASNA. 21
  • 22. Relax > Refine > Restrain > Reinvest > Reimagine Understand COM <-> .NET interoperability • COM and .NET do coexist nicely – AVR Classic apps can consume .NET DLLs quite easily – .NET apps can consume AVR Classic DLLs with just a little effort – This might help you leverage .NET work as you make your Classic apps code complete • Current .NET DG versions also support Classic • Tim Jannsen’s .NET and AVR Classic Interoperability session covers this in detail 4:20 Copyright © 2012 by ASNA. 22
  • 23. Relax > Refine > Restrain > Reinvest > Reimagine Restrain • When you have your AVR Classic apps code complete, restrain yourself from changing them or adding new features to them! • You have to draw a line in the sand between the old and new! – That must be a part of your strategy! • Also, restrain yourself from writing anything new with AVR Classic! 4:20 Copyright © 2012 by ASNA. 23
  • 24. Relax > Refine > Restrain > Reinvest > Reimagine Reinvest • As you chart your corporate and personal course for life after COM, consider the training and skills you and your team need to acquire • Chart a specific course to learn: – .NET in general – Web development (both server-side and client-side) – SOA architecture – Windows forms alternatives (more on this in a moment) – Database design 4:20 Copyright © 2012 by ASNA. 24
  • 25. Relax > Refine > Restrain > Reinvest > Reimagine Learn about good application architectures and patterns • Many of the apps built with AVR Classic owe more to serendipity than to engineering and architecture • The application lifecycle was – Code a little – Deploy a little – Goto TOP • Today’s applications require more discipline and design—and the application of solid programming fundamentals 4:20 Copyright © 2012 by ASNA. 25
  • 26. Relax > Refine > Restrain > Reinvest > Reimagine Invest in your team’s skills • Recommended books – Robert Martin – Clean Code – Steve McConnell – Code Complete (2nd Edition) – Douglas Crockford – JavaScript: The Good Parts – Elisabeth Freeman – Head First Design Patterns – Martin Fowler – Refactoring: Improving the Design of Existing Code – Cwalina and Abrams – Framework Design Guidelines 4:20 Copyright © 2012 by ASNA. 26
  • 27. Relax > Refine > Restrain > Reinvest > Reimagine Invest in your team’s tools • Source control – Subversion, Git, SourceGear Vault • Automated build process – MS Build, PowerShell, Cruise Control, Team City • Formal bug logging – Bugzilla, BugTracker.NET, Fogbugz • Unit testing – nUnit, xUnit 4:20 Copyright © 2012 by ASNA. 27
  • 28. Relax > Refine > Restrain > Reinvest > Reimagine Don’t make this mistake! • Don’t consider the need to migrate or rewrite your AVR Classic app in .NET an opportunity to learn .NET • It’s vital that you learn .NET first! – As you move your COM app to .NET you’ll need to make many informed decisions on the .NET platform – You can’t make good decisions until you know and understand .NET 4:20 Copyright © 2012 by ASNA. 28
  • 29. Relax > Refine > Restrain > Reinvest > Reimagine Reimagine • We built AVR Classic apps with several, nearly universal, practices: – Monolithic – no separation of concerns between UI, logic, and IO – Global variables all over the place – Very busy event handlers – Little or no modularity – Applications were very stateful • All of which are the polar opposite of what any modern software construction book recommends! 4:20 Copyright © 2012 by ASNA. 29
  • 30. Relax > Refine > Restrain > Reinvest > Reimagine Reimagine • You have an opportunity now to either: – Create a long-term software asset or… – Write another legacy application heavily dependent on a specific UI • Which would you rather do? • Before you rewrite, migrate, or build around your existing applications, stop and think a bit about their longer-term purpose 4:20 Copyright © 2012 by ASNA. 30
  • 31. Relax > Refine > Restrain > Reinvest > Reimagine Pocket computers are changing everything • Everyone in the room today has a computer in their pocket or purse! Maybe two. • The redistribution of computer availability is changing everything • Make no mistake: mobile enterprise doesn’t loom on the horizon – It’s here – It’s doable – It’s important – And your competition is doing it 4:20 Copyright © 2012 by ASNA. 31
  • 32. Relax > Refine > Restrain > Reinvest > Reimagine What UI should you target? • You shouldn’t target any UI! • Build non-UI dependent services so that separate UI layers are possible • Who knows what UI you’ll be asked for next? – Win forms? – Web forms? – HTML/HTML5 for mobile? – Silverlight for a Win phone? – Native mobile for Android or iPhone or iPad? – WPF? – Windows 8 Metro? 4:20 Copyright © 2012 by ASNA. 32
  • 33. Relax > Refine > Restrain > Reinvest > Reimagine Architecture of most AVR Classic apps today • There is little, if any, separation between the UI, DB, and business logic layers • All three layers are heavily embedded with each other • Virtually impossible to 4:20 factor out the UI Copyright © 2012 by ASNA. 33
  • 34. Copyright © 2012 by ASNA. 34
  • 35. Relax > Refine > Restrain > Reinvest > Reimagine Creating an application with discrete layers • Writing your apps in discrete layers makes it more flexible • Here there is a very clear separation of concerns between the layers 4:20 Copyright © 2012 by ASNA. 35
  • 36. Relax > Refine > Restrain > Reinvest > Reimagine Adding support for Web forms • With business logic and DB access as discrete layers, it’s possible to write a separate layer UI for Web forms 4:20 Copyright © 2012 by ASNA. 36
  • 37. Relax > Refine > Restrain > Reinvest > Reimagine HTML/HTML5 • Using HTML5 is a good, general purpose strategy for mobile development • Apps run in mobile device’s browser • CSS media queries help structure UI layout 4:20 Copyright © 2012 by ASNA. 37
  • 38. Relax > Refine > Restrain > Reinvest > Reimagine Silverlight on the Win phone • Silverlight and WPF may or may not make it generally • But it’s looking like Silverlight will at least persist as the Win phone UI for the enterprise 4:20 Copyright © 2012 by ASNA. 38
  • 39. Relax > Refine > Restrain > Reinvest > Reimagine Maybe even native mobile • Writing native mobile apps is a pretty hefty gamble • But if you need it, a layered software approach makes it possible 4:20 Copyright © 2012 by ASNA. 39
  • 40. Relax > Refine > Restrain > Reinvest > Reimagine A layered architecture makes it possible to say “Yes” • Without a good layered architecture, you simple don’t have a ―yes‖ option in your programming kit bag 4:20 Copyright © 2012 by ASNA. 40
  • 41. Relax > Refine > Restrain > Reinvest > Reimagine Who knows what’s next? Be prepared! • A layered architecture turns what would have otherwise been a legacy asset into a long-term software asset 4:20 Copyright © 2012 by ASNA. 41
  • 42. Relax > Refine > Restrain > Reinvest > Reimagine The AVR Upgrade Assistant • If you are on maintenance, and own AVR 4.1 and AVR for .NET, there is an Upgrade Assistant (UA) available in AVR 4.1 • The operative word here is ―Assistant‖! • The UA isn’t an application migration facility, but, for the right apps, it can help lay the groundwork for converting an AVR Classic app to .NET 4:20 Copyright © 2012 by ASNA. 42
  • 43. Relax > Refine > Restrain > Reinvest > Reimagine The UA requires intermediate .NET knowledge • Don’t assume that you can use the UA to learn .NET—you can’t! • You must be well-versed in both AVR for .NET and AVR Classic to get good UA results • The UA only gets you started, you must make lots of decisions as you remediate the app— those decisions require .NET knowledge 4:20 Copyright © 2012 by ASNA. 43
  • 44. Relax > Refine > Restrain > Reinvest > Reimagine UA issues • Third-party controls are troublesome – Beware: many COM controls companies are now gone! • MS Office dependencies • OSFile and MiscCtrls dependencies • The UA doesn’t map things to .NET that required controls or DLLs in AVR Classic – Date and time conversions – String operations – Edit words and edit codes 4:20 Copyright © 2012 by ASNA. 44
  • 45. Relax > Refine > Restrain > Reinvest > Reimagine UA issues • Subfiles are troublesome to migrate well – And subfiles are at the heart of many applications – We’ve tried twice to automate subfile migration – The ―subfile‖ model is so fundamentally different in .NET • DB connections aren’t localized in .NET – Special care must be taken to keep from launching many OS/400 jobs with migrated code (or even slopping .NET from-scratch code) • Win forms are the only target—no browser UI target 4:20 Copyright © 2012 by ASNA. 45
  • 46. Relax > Refine > Restrain > Reinvest > Reimagine The UA might work for you • The UA is good for very small, well-focused applications • But for larger applications we’re not sure it’s the best long-term answer to the question • The UA imposes a fixed model that might be troublesome to grow out of • We know that it is very hard to automate COM to .NET migrations – MS long ago gave up doing so with VB6 to .NET 4:20 Copyright © 2012 by ASNA. 46
  • 47. General advice summary • COM isn’t going away anytime soon – Use Win 7 XP mode when necessary • Finish your COM apps and then freeze them – Develop the discipline to not write any new AVR Classic apps • Start now building .NET services that replace or augment your AVR Classic apps – Give very serious thought to persisting the Win forms model – Learning .NET is high on your to-do list 4:20 Copyright © 2012 by ASNA. 47
  • 48. General advice summary • Start building tangential apps using those services to augment your AVR Classic apps – These are front-end apps—your services should do the heavy lifting – Maybe start with a browser-based UI • Don’t over-expect what the UA can do – It’s usefulness is rather narrow and specific – Understand its model – Learn .NET before you use the UA – Identify things AVR Classic is doing that .NET does very differently 4:20 Copyright © 2012 by ASNA. 48

Hinweis der Redaktion

  1. asjadlj
  2. Have you had your boss say, “How quickly can you put that AVR Classic in a browser or on a mobile device?” Are you looking forward to telling him, “years”?
  3. Have you had your boss say, “How quickly can you put that AVR Classic in a browser or on a mobile device?” Are you looking forward to telling him, “years”?
  4. If you attempt to use the UA, start with a small application!