Your SlideShare is downloading. ×
0
Strategic Guidance for  AVR Classic legacy     applications        Presented by:        Roger Pence  Education Director, A...
A critical legacy dependency• Many customers have developed substantial  Windows applications with AVR Classic• These appl...
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...
COM has served us long and well • COM is old and getting older!       – COM was introduced in 1993—it is 18 years old     ...
COM will be with us for a longtime, but make no mistake, the sun is clearly setting on COM           Copyright © 2012 by A...
COM is the programming             equivalent of Mick Jagger… • Both have been with us for a long time • Both are old frie...
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 ans...
You have todo 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...
ASNA’s 5 R strategy for  future-proofing AVR Classic apps 1. Relax 2. Refine 3. Restrain 4. Reinvest 5. Reimagine4:20 Copy...
Relax > Refine > Restrain > Reinvest > Reimagine                                       Relax • We do know that COM is in t...
Relax > Refine > Restrain > Reinvest > Reimagine                             Don’t overreact • We feel it’s very important...
Relax > Refine > Restrain > Reinvest > Reimagine                         Leaving XP behind?                         Win7 h...
Relax > Refine > Restrain > Reinvest > Reimagine       Windows 7 Windows XP mode         with Virtual PC in action • Show ...
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 ...
Windows XP Shortcut wizard is available fromthe Windows Explorer context menu.                    Copyright © 2012 by ASNA...
Relax > Refine > Restrain > Reinvest > Reimagine                                      Refine • Get your AVR Classic applic...
Relax > Refine > Restrain > Reinvest > Reimagine                      Minimize third-party                         depende...
Relax > Refine > Restrain > Reinvest > Reimagine             Understand COM <-> .NET                 interoperability • CO...
Relax > Refine > Restrain > Reinvest > Reimagine                                    Restrain • When you have your AVR Clas...
Relax > Refine > Restrain > Reinvest > Reimagine                                    Reinvest • As you chart your corporate...
Relax > Refine > Restrain > Reinvest > Reimagine        Learn about good application         architectures and patterns • ...
Relax > Refine > Restrain > Reinvest > Reimagine              Invest in your team’s skills • Recommended books       – Rob...
Relax > Refine > Restrain > Reinvest > Reimagine              Invest in your team’s tools • Source control       – Subvers...
Relax > Refine > Restrain > Reinvest > Reimagine                Don’t make this mistake! • Don’t consider the need to migr...
Relax > Refine > Restrain > Reinvest > Reimagine                                  Reimagine • We built AVR Classic apps wi...
Relax > Refine > Restrain > Reinvest > Reimagine                                  Reimagine • You have an opportunity now ...
Relax > Refine > Restrain > Reinvest > Reimagine                      Pocket computers are                      changing e...
Relax > Refine > Restrain > Reinvest > Reimagine            What UI should you target? • You shouldn’t target any UI! • Bu...
Relax > Refine > Restrain > Reinvest > Reimagine          Architecture of most         AVR Classic apps today • There is l...
Copyright © 2012 by ASNA.   34
Relax > Refine > Restrain > Reinvest > Reimagine                  Creating an application                    with discrete...
Relax > Refine > Restrain > Reinvest > Reimagine       Adding support for Web forms  • With business logic    and DB acces...
Relax > Refine > Restrain > Reinvest > Reimagine                              HTML/HTML5  • Using HTML5 is a    good, gene...
Relax > Refine > Restrain > Reinvest > Reimagine         Silverlight on the Win phone  • Silverlight and    WPF may or may...
Relax > Refine > Restrain > Reinvest > Reimagine              Maybe even native mobile  • Writing native    mobile apps is...
Relax > Refine > Restrain > Reinvest > Reimagine           A layered architecture         makes it possible to say “Yes”  ...
Relax > Refine > Restrain > Reinvest > Reimagine                 Who knows what’s next?                     Be prepared!  ...
Relax > Refine > Restrain > Reinvest > Reimagine            The AVR Upgrade Assistant • If you are on maintenance, and own...
Relax > Refine > Restrain > Reinvest > Reimagine             The UA requires       intermediate .NET knowledge • Don’t ass...
Relax > Refine > Restrain > Reinvest > Reimagine                                   UA issues • Third-party controls are tr...
Relax > Refine > Restrain > Reinvest > Reimagine                                   UA issues • Subfiles are troublesome to...
Relax > Refine > Restrain > Reinvest > Reimagine             The UA might work for you • The UA is good for very small, we...
General advice summary • COM isn’t going away anytime soon       – Use Win 7 XP mode when necessary • Finish your COM apps...
General advice summary • Start building tangential apps using those   services to augment your AVR Classic apps       – Th...
Upcoming SlideShare
Loading in...5
×

Strategic guidance

394

Published on

Strategic Guidance for AVR Classic

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
394
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • asjadlj
  • 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”?
  • 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”?
  • If you attempt to use the UA, start with a small application!
  • Transcript of "Strategic guidance"

    1. 1. Strategic Guidance for AVR Classic legacy applications Presented by: Roger Pence Education Director, ASNA
    2. 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 simple4:20 question…Copyright © 2012 by ASNA. 2
    3. 3. Now what?4:20 Copyright © 2012 by ASNA. 3
    4. 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. 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 diminishing4:20 Copyright © 2010 by ASNA. 5
    6. 6. COM will be with us for a longtime, but make no mistake, the sun is clearly setting on COM Copyright © 2012 by ASNA. 6
    7. 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. 8. COM then COM now Copyright © 2012 by ASNA. 8
    9. 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. 10. You have todo something! Copyright © 2012 by ASNA. 10
    11. 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. 12. ASNA’s 5 R strategy for future-proofing AVR Classic apps 1. Relax 2. Refine 3. Restrain 4. Reinvest 5. Reimagine4:20 Copyright © 2012 by ASNA. 12
    13. 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. 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 them4:20 Copyright © 2012 by ASNA. 14
    15. 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 host4:20 Copyright © 2012 by ASNA. 15
    16. 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 PC4:20 Copyright © 2012 by ASNA. 16
    17. 17. http://www.microsoft.com/windows/virtual-pc/ Copyright © 2012 by ASNA. 17
    18. 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 Menu4:20 Copyright © 2010 by ASNA. 18
    19. 19. Windows XP Shortcut wizard is available fromthe Windows Explorer context menu. Copyright © 2012 by ASNA. 19
    20. 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. 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. 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 detail4:20 Copyright © 2012 by ASNA. 22
    23. 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. 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 design4:20 Copyright © 2012 by ASNA. 24
    25. 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 fundamentals4:20 Copyright © 2012 by ASNA. 25
    26. 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 Guidelines4:20 Copyright © 2012 by ASNA. 26
    27. 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, xUnit4:20 Copyright © 2012 by ASNA. 27
    28. 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 .NET4:20 Copyright © 2012 by ASNA. 28
    29. 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. 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 purpose4:20 Copyright © 2012 by ASNA. 30
    31. 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 it4:20 Copyright © 2012 by ASNA. 31
    32. 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. 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 to4:20 factor out the UI Copyright © 2012 by ASNA. 33
    34. 34. Copyright © 2012 by ASNA. 34
    35. 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 layers4:20 Copyright © 2012 by ASNA. 35
    36. 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 forms4:20 Copyright © 2012 by ASNA. 36
    37. 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 layout4:20 Copyright © 2012 by ASNA. 37
    38. 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 enterprise4:20 Copyright © 2012 by ASNA. 38
    39. 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 possible4:20 Copyright © 2012 by ASNA. 39
    40. 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 bag4:20 Copyright © 2012 by ASNA. 40
    41. 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 asset4:20 Copyright © 2012 by ASNA. 41
    42. 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 .NET4:20 Copyright © 2012 by ASNA. 42
    43. 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 knowledge4:20 Copyright © 2012 by ASNA. 43
    44. 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 codes4:20 Copyright © 2012 by ASNA. 44
    45. 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 target4:20 Copyright © 2012 by ASNA. 45
    46. 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 .NET4:20 Copyright © 2012 by ASNA. 46
    47. 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 list4:20 Copyright © 2012 by ASNA. 47
    48. 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 differently4:20 Copyright © 2012 by ASNA. 48
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×