migrating access applications to .net and sql server
DESCRIPTION
Ken Young [email protected] Tim Landgrave [email protected]. Migrating Access Applications to .NET and SQL Server. Agenda. Why Migrate from Access? Current Access Migration Methods Why is Migration Tedious, Difficult and Expensive? What are the Business Benefits of Migrating? - PowerPoint PPT PresentationTRANSCRIPT
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