22
Migrating Access Applications to .NET and SQL Server Ken Young [email protected] Tim Landgrave [email protected]

Migrating Access Applications to.NET and SQL Server Ken [email protected]@nusoftsolutions.com Tim [email protected]@2ndGS.com

Embed Size (px)

Citation preview

Migrating Access Applications to .NET and SQL Server

Ken Young [email protected]

Tim Landgrave [email protected]

Agenda

• Why Migrate from Access?• Current Access Migration Methods• Why is Migration Tedious, Difficult and

Expensive?• What are the Business Benefits of

Migrating?• Tool - Application Refactoring and

Migration Suite (ARMS)• How Can ARMS Help and Why?

Driving issues for Access Migration• Not a Client/Server architecture

– Value is Performance, flexibility, management

• Basic database administration• Data re-centralization• Workgroup applications “grow up”

– Number of user increase– Data capacity requirements outgrow Access MDB size and

performance guidelines– Functional complexity outgrows MS Access and VBA

capability

• Security requirements tighten• End user freedom, agility• Data integration flexibility• Self-service (i.e. reporting, analysis)

Benefits to Customers• Platform Support

– Windows Platform and .NET Framework– SQL Server 2000

– RDBMS– Reporting Services

– Visual Studio.NET– Enables Office 2003 deployment

• Customers want to deploy Office 2003 and can’t due to Access 97 dependency

• Customer Satisfaction– Eliminates Access database corruption issues– Increases the availability of the data (slow connections)– Removes Access MDB file deployment

• Technical Advantages– Scalability– Data Security– Improved performance– Reliability– Team Development

Challenges – Until NOW!

• Developer quality tools• Form & Report Migration was a manual

process and therefore COST PROHIBITIVE• Reliable & consistent methodology• Migrate cost, and analysis thereof

Access Application types

MissionCritical Apps

Reporting Apps

Non-Mission Critical Apps

Departmental & Workgroup Applications

ComponentRe-use

(forms, reports, modules)

What an Access Application is…

MS Access MDB File

LIMIT: 2 gigabytes minus the

space needed for system objects.

Form

Report

VBACode

\\fileserver\sharename

NOT a Server based architecture

Network

ClientComputer

ClientComputer

ClientComputer

ClientComputer

Biggest Issue:Everyone obtains a copy of the MDB file in their client computers memory

Every computer makes a local working copy of the MDB file

Key architecture concerns• Fat client• No Server side processing

Microsoft .NET Application Server

Form

Report

Code

Microsoft .NET Application Server

Form

Report

Code

After Migrating to .NET and SQL Server

Microsoft SQL Server

Database

Pure Client/Server based architecture

Network

ClientComputer

ClientComputer

ClientComputer

ClientComputer

Key benefits:• Reliability• Performance• Scalability• Security• Flexibility• Management & Control• Reduced cost of ownership

Every computer only uses data they need!

Microsoft .NET Application Server

Form

Report

Code

Key benefits:• Thin client/Browser Option• Rich Client• Strong Security (SSL)

Refactoring @ Work

User Interface

Business Logic

Data Access

SQL Server

Access Application

Aut

omat

e

What this means

• Deployment– No more downloading .mdb to client

• Better memory utilization on client– No longer loading Access engine on

workstation

• Better utilization of SQL Server

Migration Process

• Data• QueryDefs• Forms• Code• Reports

Processing Data

• Migrate data using the Upsizing Wizard– Does a decent job– Reports on the process– Can result in .mdb linked to SQL

Processing QueryDefs

• Upsizing wizard does not do much • SQL Syntax must match SQL Server

– Lots of tweaking– Testing of new syntax– Porting to stored procedure / view is optional

Processing Forms

• Forms require recoding• Very tedious process

– Controls/properties/attributes– Rewiring event handlers

Processing Code

• Convert code to VB.NET– Language constructs (VBA to VB.NET)– Access specific code

• Items such as message box, forms, etc• Data features such as dlookup

– Data objects• DAO / RDO to ADO.NET

Processing Reports

• SQL Reporting Services– Import Access reports to SQL Reports– Moves reports to web– Allows for feature rich easy to use reports

• IT and user friendly

Migration Tools• 2nd Genesis Software Application

Refactoring and Migration Suite (ARMS.NET)– Form Converter– Object Builder– Access2NET Resource Kit

• QueryDef Converter• VBA to .NET• Win Forms Databinder

• SQL Server Reporting Services Import Tool (Microsoft)

• Coming Soon…– Access to ASP.NET

Automated Migration Using 2nd Genesis ARMS.NET Tools

Reporting Apps

Non-Mission Critical Apps

Departmental & Workgroup Applications

ComponentRe-use

(forms, reports, modules)

Reporting Services Import Tool

22ndnd Genesis ARMS.NET – Forms, QueryDefs, Code Genesis ARMS.NET – Forms, QueryDefs, CodeMicrosoft Access Upsizing Wizard

MissionCritical Apps

2nd Genesis ARMS.NET – Forms, QueryDefs, Code– Forms, QueryDefs, CodeMicrosoft Access Upsizing Wizard

2nd Genesis ARMS.NET

Tools Save $$Tools Save $$

Migration Process Using ARMS.NET• Analyze the initial .mdb using• Create plan• Convert the Access Application

– Data• Upsize the Access MDB to SQL Server• Convert Access QueryDefs to SQL Server Stored Procedures

– UI• Convert Access forms to .NET WinForms

– Business• Migrate VBA Code to .NET Classes that manage the data• Tie Forms to .NET Classes

– Reports• Convert Access Reports to SQL Reporting Services reports• Modify QueryDefs to use SQL Server data directly

– Final System Testing

Category File Count

Forms 671

Code Modules 26

QueryDefs 1400

Reports 274

Header 1

Total 972

Conversion Example

• National Services company has built its business on one Access file– Initial .mdb was 64MB (one project)

• No data, only forms and code

– Analysis when converted shows:

Developer Productivity• Typical approach to manual forms conversion with error

rate, analysis, QA, and repair applied to example customer application

• For Example, a single form with 10 controls with 150 properties will require: – 2 hours to analyze– 16 hours to convert code– 6.64 hours to debug and repair– At $50/hour (burdened rate), this single form costs $1,232 to

convert– Sample application is 16,000 hours in forms

• Which at $50/hour is approximately $800,000 JUST for Form conversion

• Conversion without tools is cost prohibitive!

Why our approach is better• Fewer errors in development

– Client does not pay to find and fix errors not introduced• Cost is drastically lower than manual conversion

– More reliable code– Focus on features not mundane tasks

• Better use of developer effort– Adding new Functionality– Re-factoring - not rewriting remodel to achieve goals above

• Bottom line– Reduction of engineering staff for mundane tasks– QA improves dramatically (developer errors go down

dramatically)– Client should not spend money to have bodies convert Access

attributes to .NET target attributes