A DEVELOPER’S GUIDE TO XP EOL · PDF fileWindows XP is out of support April 9, ......
Transcript of A DEVELOPER’S GUIDE TO XP EOL · PDF fileWindows XP is out of support April 9, ......
Mobilize.Net: Migrate to web, mobile, and cloud
A DEVELOPER’S GUIDE TO XP EOL
Everything you need to know.
Mobilize.Net: Migrate to web, mobile, and cloud
Windows XP is out of support April 9, 2014.• Last day of support is April 8, 2014
• There are 189 days from Oct. 1, 2013 to Apr. 8, 2014
• Including Thanksgiving, Christmas, New Years Day, Saturdays and Sundays.
• April 9, 2014, will be Day 0 for XP security vulnerability.
• If you are still running XP on 4/9/14, you may be out of compliance with:• HIPAA
• PCI
• SOX
Mobilize.Net: Migrate to web, mobile, and cloud
What does EOVS mean?
• End of vendor support:
• No…
• Updates
• Bug fixes
• Patches
• Security holes plugged.
• Ever.
• Again.
Mobilize.Net: Migrate to web, mobile, and cloud
How big a problem is it?
• Over 2 billion PCs worldwide
connected to Internet
• Approximately 39% run XP
• That’s about 800,000,000 computers!
• XP in the Enterprise: some estimates
as high as 48% of PCs
Mobilize.Net: Migrate to web, mobile, and cloud
Why should I care?
• It’s all about security.
• Currently an XP vulnerability attack is worth $50-100k.
• After EOVS the price will go up.
• Hackers will hold attacks until after April 8.
• Only computers completely isolated will be safe.
• A single XP desktop can allow a Trojan horse into your net.
• Running XP inside a VM won’t help. It will still need net access.
Mobilize.Net: Migrate to web, mobile, and cloud
The costs of running XP will be high….
Microsoft will charge exorbitant fees for XP support
contracts – which will double each year
High cost in lost productivity when XP vulnerabilities are
exploited – expected to be in the multi-billions
Mobilize.Net: Migrate to web, mobile, and cloud
Custom LOB apps tether you to XP
Over the years, you’ve developed custom software, crucial to
running your business…. Yet runs only on Windows XP
Mobilize.Net: Migrate to web, mobile, and cloud
What has to move?
There are lots of apps that will only run on Windows XP
Anything written in VB 6.0 or earlier
Apps that use .NET 1.0, 1.1 and 2.0
Older versions of Powerbuilder
Older versions of Borland Delphi
Old stuff has to move!
Mobilize.Net: Migrate to web, mobile, and cloud
Many ways to move your apps off XP
BUT MOST SOLUTIONS ARE:
• Too expensive
• Too slow for the business
• Too technologically compromised
LET’S REVIEW THE OPTIONS:
• Manual rewrite: Replicate existing functionality for modern platforms
• Do nothing: Keep running the legacy application
• Packaged software: Purchase commercial off-the-shelf LOB apps
• Automation tools: Automated code conversion to new platform
Mobilize.Net: Migrate to web, mobile, and cloud
The problem with manual rewrites
Typical Project Results for Full Manual Rewrites*
Failed
Successful
Challenged
*Standish Group, 2010
HIGH FAILURE RATE
• 70% of manual software rewrites fail*
HIGH COST
• Rewrite costs 4 times more than migration
HUGE DEFECT RATE
• New code = 20 – 50 bugs/KLOCs
• 1,000,000 lines of new code: 20-50k bugs
FEATURE CREEP KILLS MANUAL REWRITES
• Projects overcome by too many features
Mobilize.Net: Migrate to web, mobile, and cloud
Other solutions have big downsides
DOING NOTHING
• Security and compliance issues like Sarbanes-Oxley, HIPAA and PCI
• High cost in maintenance, talent and resources
COMMERCIAL OFF-THE-SHELF
• Business forced to adapt to applications
• Cost is known, but implementation cost is
unpredictable
• Re-training of employees and IT to support
Mobilize.Net: Migrate to web, mobile, and cloud
Why migrate old source code?
• No new bugs created
• Preserves business value
• New platform for future enhancement
• Refactored to support MVC or MVVM
• Easier to maintain
• Easier to find trained developers
• Cheaper and faster than a rewrite
• “Code doesn’t rust.” Joel Spolsky
Mobilize.Net: Migrate to web, mobile, and cloud
When to migrate
• App still has business value
• Future maintenance will be likely:
• Enhancements
• Changes
• Bug fixes
• Current language is obsolete or low-value:
• Visual Basic
• COBOL
• PowerBuilder
• Informix LINC
Mobilize.Net: Migrate to web, mobile, and cloud
What’s the value of automation tools?AUTOMATED CODE CONVERSION TO NEW PLATFORMLeverage existing business rules
Fast and efficient, minimal re-training
FIXED SCHEDULE
FIXED BUDGET
REDUCES RISK
INCREASE BUSINESS AGILITY
Mobilize.Net: Migrate to web, mobile, and cloud
How Mobilize.Net works
Blueprint
User
Acceptance
Testing
Manual
/ EWI
Touchups
Assessment
Information
Functionally
Equivalent,
Deployable
Ready for New
Features,
Clients, SOA
System
TestingCode Released
for UAT
Compiling Code to
System Testing
Bug
FixingBug
Fixing
Updated Code
And Functional
Environment
Kick-OffTechnical
Architecture
Automated
Migration*
Generated
Code
Review
Customize,
Configure,
Optimize
Tools
Optimized Tool Gets SmarterEnvironment
Complete
Build Capable:
Access to Code
and Resources
Project
Plan
Matchine Technology
Bug
Fixing
Automated
Migration
Mobilize.Net: Migrate to web, mobile, and cloud
Under the covers: Matchine technologyVB6
WinForms
WPF
Silverlight
ASP
Java
Informix 4GL
Unisys LINC
Oracle
Powerbuilder
C# / .NET
ASP.NET
Windows8
Azure/AWS
HTML5
Typescript /
Javascript
Mobilize.Net: Migrate to web, mobile, and cloud
Matchine technologyMicrosoft’s Solution
Native Code
Customized according to customers’ needs
Mobilize.Net: Migrate to web, mobile, and cloud
Mobilize.Net end-to-end solution
• Flexible source transformation
engines
• Customize front-end, back-end,
and mapping rules for various
languages, platforms, component
libraries
• Fit and finish ranges from internal
use only to end user
Mobilize.Net: Migrate to web, mobile, and cloud
Why Move to a Modern Architecture?19
Modern Architecture offers advantages:
• Scalability: handle larger volumes
• Portability: reach multiple platforms
• Maintainability: increase flexibility and lower costs
Many Architecture Alternatives:
• N-Tier/Layer Architectures
• Tier: Physical Separation
• Layer: Logical Separation
• 3-Tier
• Presentation
• Business/Logic
• Data
• Model View Controller
Model View Controller is the architecture of choice for web• Separates the representation of information from the user’s interaction with it. The
central idea behind MVC is code reusability and separation of items
Advantages of Modern Architecture vs Monolithic
Presentation Tier
(User Interface)
Logic Tier
(Business rules and
processes)
Data Tier
(Database storage
and retrieval)
Three Tier Architecture
Mobilize.Net: Migrate to web, mobile, and cloud
Model View Controller Offers Agility20
• Mobile and Web Apps Require a Flexible Architecture
• The target architecture needs to:• Change the look-and-feel without changing the core/logic
• Present data under different contexts (desktop, web, mobile, etc.)
• Interact with/access data under different contexts (touch screen on a mobile device,
keyboard on a computer)
• Maintain multiple views of the same data (list, thumbnails, detailed, etc.)
• Model View Controller Delivers Flexibility and Agility
• Separates core functionality from the presentation and control logic
that uses this functionality
• Allows multiple views to share the same data model
• Makes supporting multiple clients easier to implement, test, and
maintain
Mobilize.Net: Migrate to web, mobile, and cloud
Model View Controller Overview21
• Model o Manages the behavior and data of the application domain
o Responds to requests for information about its state (usually from the view)
o Follows instructions to change state (usually from the controller)
• View o Renders the model into a form suitable for interaction, typically a user interface (multiple
views can exist for a single model for different purposes)
• Controller o Receives user input and initiates a response by making calls on model objects
o Accepts input from the user and instructs the model and viewport to perform actions based
on that input
Design pattern for graphical systems that promotes separation between
model and view
Mobilize.Net: Migrate to web, mobile, and cloud
HTML5 vs Native vs HybridPros and Cons of Each, We Can Help You Pick the Best Fit for your App
HTML Native Applications Hybrid
Functionality Robust support, but more limited
than native
Ability to leverage all device
capabilities
Best of both worlds
Performance Good enough for most applications Superior Good
Development effort Least - Build once, deploy
anywhere
Separate coding effort for
each platform
Medium – HTML base plus
surgical native API use
Learning curve Relatively short learning curve for
web developers
Need to master each
platform separately
Medium – Mostly HTML5, only
native when needed
Distribution 1) Search 2) Can be packaged for
app stores
App stores App stores
Upgrades Not required. Users always have
access to the latest functionality.
Required on each device Occasional updates to the
native wrappers, updates to
HTML code auto-download
Platform maturity HTML5 Still Evolving
HTML3-4 solid as rock
Rapid innovation in all major
mobile OS
Choose from the union of
native and HTML
22
Mobilize.Net: Migrate to web, mobile, and cloud
Technology: Client Architecture23
Business Logic
GUI
(Forms)
Implicit Controller
3rd Party Controls
Original Platform Runtime
• Business Logic and GUI might be
tightly coupled.
• GUI behavior is controlled by
Implicit Controllers in the original
platform.
• Logic relies on runtime APIs or
implicit libraries.
• 3rd Party Controls are used to
provide extended functionality
(logic and/or graphic)
Mobilize.Net: Migrate to web, mobile, and cloud
Technology: Web Architecture24
Client Side Single Page Arch.
GUI
(HTML5 pages)
JavaScript
3rd Party Comp.
(e.g., Telerik)
AJAX & COMETBusiness
Logic
.NET ASP.Net
ASP Views
(razor)
Forms View
Models
View Manager
Explicit Controllers
Server Side Thick Server
• Properties & Fields ViewModel
• Events Controllers
• Methods ViewManager
• Layout Views in HTML5
• 3rd Party Controls HTML5 Components
• Business Logic Transformations
Mobilize.Net: Migrate to web, mobile, and cloud
Cloud
User Client Tier Server Tiers
HTML Javascript ASP.NET .NET
(Controller)
Business
Logic (Model)
View ModelView Model
Client Side
Logic
Always Synchronized
Show
View
HTML5
(View)Client
Logic
Target Web Architecture
Mobilize.Net: Migrate to web, mobile, and cloud
Challenges and MitigationsChallenge Mitigation
File IO • Leverage HTML5 local storage
• Remote access to server file system
Native APIs Win32 APIs or Third Party Dlls. Some of this functionality can be
executed on the server
GUI ActiveX Replace. Some stubs generated automatically
Performance Replace or move to server side
Sockets Replace Web Sockets for some scenarios
DB Access WCF Services
Configuration HTML5 manifest and Server side
Different UI metaphors MDI, multiple windows, menus, lists or grids
Security JS Code Minimize and Obfuscation, HTTPS connection preferred,
Third Party Framework for improved security and reliability
Third party controls Find equivalent controls on new platform
Printing and Hardware Devices
26
Mobilize.Net: Migrate to web, mobile, and cloud
Want to know what it takes to move your app?
The Mobilize.Net Assessment Tool helps you understand what it will
take to move your old code to a more modern platform. You can
download it here: http://mobilize.net/modernization-assessment-
tool/