A DEVELOPER S GUIDE TO XP EOL Everything you need to know.
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
What does EOVS mean? End of vendor support: No Updates Bug fixes Patches Security holes plugged. Ever. Again.
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
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.
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
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
What has to move? There are lots of apps that will only run on Windows XP Old stuff has to move! 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
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
The problem with manual rewrites Typical Project Results for Full Manual Rewrites* HIGH FAILURE RATE 70% of manual software rewrites fail* HIGH COST Rewrite costs 4 times more than migration Failed Successful Challenged 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 *Standish Group, 2010
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
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
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
What s the value of automation tools? AUTOMATED CODE CONVERSION TO NEW PLATFORM Leverage existing business rules Fast and efficient, minimal re-training FIXED SCHEDULE FIXED BUDGET REDUCES RISK INCREASE BUSINESS AGILITY
How Mobilize.Net works Assessment Information Matchine Technology Updated Code And Functional Environment Blueprint Technical Architecture Kick-Off Project Plan Build Capable: Access to Code and Resources Environment Complete Optimized Tool Gets Smarter Customize, Configure, Optimize Tools Automated Migration Automated Migration* Functionally Equivalent, Deployable Ready for New Features, Clients, SOA User Acceptance Testing Code Released for UAT System Testing Compiling Code to System Testing Manual / EWI Touchups Generated Code Review Bug Fixing Bug Fixing Bug Fixing
Under the covers: Matchine technology VB6 WinForms WPF Silverlight ASP Java Informix 4GL Unisys LINC Oracle Powerbuilder C# /.NET ASP.NET Windows8 Azure/AWS HTML5 Typescript / Javascript
Matchine technology Microsoft s Solution Native Code Customized according to customers needs
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
Why Move to a Modern Architecture? 19 Advantages of Modern Architecture vs Monolithic 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 Presentation Tier (User Interface) Logic Tier (Business rules and processes) Data Tier (Database storage and retrieval) Three Tier Architecture
20 Model View Controller Offers Agility 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
21 Model View Controller Overview Design pattern for graphical systems that promotes separation between model and view 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
22 HTML5 vs Native vs Hybrid Pros and Cons of Each, We Can Help You Pick the Best Fit for your App Functionality HTML Native Applications Hybrid Robust support, but more limited than native Ability to leverage all device capabilities Performance Good enough for most applications Superior Good Development effort Learning curve Distribution Upgrades Platform maturity Least - Build once, deploy anywhere Relatively short learning curve for web developers 1) Search 2) Can be packaged for app stores Not required. Users always have access to the latest functionality. HTML5 Still Evolving HTML3-4 solid as rock Separate coding effort for each platform Need to master each platform separately App stores Required on each device Rapid innovation in all major mobile OS Best of both worlds Medium HTML base plus surgical native API use Medium Mostly HTML5, only native when needed App stores Occasional updates to the native wrappers, updates to HTML code auto-download Choose from the union of native and HTML
23 Technology: Client Architecture Business Logic GUI (Forms) 3rd Party Controls 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) Implicit Controller Original Platform Runtime
24 Technology: Web Architecture Business Logic Forms View Models.NET View Manager Server Side Thick Server Explicit Controllers ASP Views (razor) ASP.Net AJAX & COMET JavaScript GUI (HTML5 pages) 3rd Party Comp. (e.g., Telerik) Client Side Single Page Arch. Properties & Fields ViewModel Events Controllers Methods ViewManager Layout Views in HTML5 3rd Party Controls HTML5 Components Business Logic Transformations
Target Web Architecture User Client Tier Server Tiers Cloud HTML Javascript ASP.NET.NET View Model Always Synchronized View Model Show View HTML5 (View) Client Logic Client Side Logic Business Logic (Model) (Controller)
26 Challenges and Mitigations Challenge File IO Native APIs GUI ActiveX Performance Sockets DB Access Configuration Different UI metaphors Security Third party controls Mitigation Leverage HTML5 local storage Remote access to server file system Win32 APIs or Third Party Dlls. Some of this functionality can be executed on the server Replace. Some stubs generated automatically Replace or move to server side Replace Web Sockets for some scenarios WCF Services HTML5 manifest and Server side MDI, multiple windows, menus, lists or grids JS Code Minimize and Obfuscation, HTTPS connection preferred, Third Party Framework for improved security and reliability Find equivalent controls on new platform Printing and Hardware Devices
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-assessmenttool/