Title: Migrating ASP to ASP'NET
1Migrating ASP to ASP.NET
Pedro Miguel Rosa prosa_at_microsoft.com Senior
Software Engineer Developer Platform Group
2Agenda
- Classic Active Server Pages Background
- Why Migrate to ASP.NET?
- Migration Strategies
- ASP.NET Migration Issues
- Tools
- Questions
3Active Server Pages
4Active Server Pages
- Leading web app development platform
- Nearly 1 million developers using ASP today
- Many well known applications and sites
- Simple and approachable
- No compilers required just hit save
- Easy to use languages and object model
- Great integration with COM and COM
- Well established developer support base
- Online communities
- Books/Consulting/Conferences
5How it works.
6Internet Information Server
7Issues with Classic ASP
- Way too much code required
- Simple tasks often not easy
- Applications contain spaghetti code
- Poor reuse/encapsulation model
- Code runs from top of page to bottom
- Late-bound scripting, no strong typing
- Different language model in COM though
- Deployment issues
- COM and metabase
8Sample ASP Page
9How ASP.NET Works
10Requests
ASP.NET Http Runtime
11Migrating to ASP.NETBenefits of Migration
- Performance and scalability
- Strongly typed code, compiled into binaries
- Easily scalable to web farms
- Page, partial page, and data caching
- Productivity
- Web forms and server controls
- Web services
- Rich application framework
- Great tools and languages support
- Supports many mobile browsers
12Migrating to ASP.NETBenefits of Migration
- Security
- Can run under least privilege account
- Built-in forms based authentication
- Custom security infrastructure
- Reliability
- Application isolation, recycling, health
detection - Benefits of managed code
- Manageability
- XCOPY deployment
- Easily configurable (web.config)
13Migrating to ASP.NETThe Bad News
- Migration will always require work
- No magical migration tool
- Trivial pages may be easy
- Applications will be more difficult
- Reality is
- Cant simply change file extensions
- Incompatibilities in language, framework,
environment
14Migrating to ASP.NETThe Good News
- Developers ASP skills will migrate
- Natural migration from VBScript to VB
- ASP intrinsic objects pulled forward
- Inline coding still possible
- Can leverage existing assets
- Existing pages can be converted
- Existing components still work (through interop)
- Migration can be incremental
15Migration Strategies
- Vertical Migration
- Use both ASP and ASP.NET
- Migrate individual features
- Horizontal Migration
- Move .asp files to .aspx
- Go for functional equivalence
- Re-write / New Application
- Move completely to ASP.NET
- Take advantage of new features
16Migration StrategiesVertical Migration
- ASP and ASP.NET pages run side by side
- Separately installed and configured
- Use ASP.NET without breaking ASP
- Migrate or add selected functionality
- Useful for new, isolated features
- Gain immediate perf benefits
- Limited interoperability
- ASP pages cant use ASP.NET features
- Run in separate worker processes
- No sharing of state
17Migration StrategiesHorizontal Migration
- Rename .asp to .aspx, and correct problems
- Correct page syntax
- Translate VBScript to Visual Basic .NET
- Take advantage of key ASP.NET features
- Can call Framework code
- Page compilation
- Scalable session state, caching
- Not a full port yet
- No improvements in code manageability
- COM interop work may be needed
18Migration StrategiesFull Rewrite
- Complete rewrite of pages and components
- Use ASP.NET server controls
- Rewrite business components using Framework
- Take full advantage of ASP.NET
- True code separation, encapsulation
- Page framework and controls
- ASP.NET Security
19Migration StrategiesGuidelines Summary
- Use vertical migration for
- Well partitioned applications
- New functionality in existing apps
- Use horizontal migration for
- Heavy use of application or session state
- Complex, unfactorable tiers
- Use rewrite for
- Re-architecture of system
- Significant new functionality
20ASP.NET Migration Issues
21Semantic ChangesProgramming Language
- Single choice of server language
- Cannot mix languages on page
- Client script not affected
- VBScript ? Visual Basic .NET
- All variables have a specific type
- No more default properties (big change)
- No Set and Let syntax
- Parentheses required for calling subroutines
- Arguments now ByVal by default
22Code Changes
- Page functions
- Must be in ltscript runatservergt blocks
- Page render functions
- Not supported, must use Response.Write
- Variable references
- Cannot reference variables in other lt gt blocks
- Page directives (_at_Option, _at_Session, etc.) no
longer supported - Merged into single Page directive
23Server ComponentsOptions for Using COM Objects
- Simple Usage
- Call Server.CreateObject(progid) and access it
as a late-bound object - Create .NET wrapper classes
- Provides early binding
- Optimizes performance of calls
- TLBIMP.exe utility
- Rewrite using .NET
24Server ComponentsUsing ASP Intrinsics in
components
- Support for ASP intrinsics
- ObjectContext intrinsic Flow
- Application OnStart and OnEnd
- ASPCompat mode
- lt_at_ page aspcompattrue gt
- Enables access to intrinsic objects
25ASP.NET Migration Examples
26Server ComponentsPerformance Considerations
- Marshalling costs
- Calls between ASP.NET and COM
- Performance benefits by rewriting COM in .NET
- ASP.NET Thread Pool now MTA -- not STA
- What is an MTA? What is an STA?
- Impacts performance of apartment components
- VB5 and VB6 Apartment Components
- Can enable STA Thread Pool on a per-page basis
- Address perf. of existing VB components
- lt_at_ Page ASPCompattrue gt
- Not necessary for C MTA components
27Security Changes
- ASP Use Windows (IIS) authentication
- NTLM (default), Basic, Digest, or Kerberos
- Impersonate caller by default
- Forms based auth roll your own
- ACL based URL authorization
- ASP.NET Customizable authentication
- Windows (default), Forms, or Passport
- Impersonation must be enabled
- Built-in forms authentication
- Role based declarative authorization
28Configuration Changes
- ASP Configuration
- Binary data store used by IIS (metabase)
- Used by Classic ASP
- Changes required local server access
- ASP.NET XML Configuration
- Machine.config, web.config
- Most IIS settings do not affect ASP.NET
- Changes do not require local server access
29Tools
30ASP.NET Migration Assistant
- Features
- Corrects ASP.NET page syntax
- Translates VBScript into Visual Basic .NET
- Visual Studio or command line translation
- Starting point for further migration
- Available from
- http//www.asp.net/migrationassistants/
31ASP.NET Migration Assistant
32Summary
- Migration not seamless
- Will involve some work
- Can be done incrementally
- Worth the efforts
- Better performance
- Easier development
- Cleaner and more manageable code
- Platform to build apps for the future
33(No Transcript)