1 / 33

Pedro Miguel Rosa prosa@microsoft Senior Software Engineer Developer Platform Group

Migrating ASP to ASP.NET. Pedro Miguel Rosa prosa@microsoft.com Senior Software Engineer Developer Platform Group. Classic Active Server Pages Background Why Migrate to ASP.NET? Migration Strategies ASP.NET Migration Issues Tools Questions. Agenda. Active Server Pages.

corin
Download Presentation

Pedro Miguel Rosa prosa@microsoft Senior Software Engineer Developer Platform Group

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MigratingASP to ASP.NET Pedro Miguel Rosa prosa@microsoft.com Senior Software Engineer Developer Platform Group

  2. Classic Active Server Pages Background Why Migrate to ASP.NET? Migration Strategies ASP.NET Migration Issues Tools Questions Agenda

  3. Active Server Pages

  4. 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 Active Server Pages

  5. How it works….

  6. Responses Requests 1 7 6 10 ISAPI Filters ISAPI Extensions ASP.DLL 5 9 4 8 ASP Script Engine Script Code Script Engine Cache .asp file Script Execution 2 3 Internet Information Server

  7. Way too much code required Simple tasks often not easy Applications contain spaghetti code Poor re–use/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 Issues with “Classic” ASP

  8. Sample ASP Page

  9. How ASP.NET Works

  10. Responses 7 1 6 9 Modules Page Handler 2 8 ASP.NETPage ASPX Engine Class Instance Page Class 4 5 3 Requests ASP.NET Http Runtime

  11. 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 Migrating to ASP.NETBenefits of Migration

  12. 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) Migrating to ASP.NETBenefits of Migration

  13. Migration will always require work No magical migration tool Trivial pages may be easy Applications will be more difficult Reality is: Can’t simply change file extensions Incompatibilities in language, framework, environment Migrating to ASP.NETThe Bad News

  14. Developer’s 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 Migrating to ASP.NETThe Good News

  15. 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 Migration Strategies

  16. 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 can’t use ASP.NET features Run in separate worker processes No sharing of state Migration StrategiesVertical Migration

  17. 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 Migration StrategiesHorizontal Migration

  18. 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 Migration StrategiesFull Rewrite

  19. 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 Migration StrategiesGuidelines Summary

  20. ASP.NET Migration Issues

  21. 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 Semantic ChangesProgramming Language

  22. Page functions Must be in <script runat=server> blocks Page “render functions” Not supported, must use Response.Write Variable references Cannot reference variables in other <% %> blocks Page directives (@Option, @Session, etc.) no longer supported Merged into single Page directive Code Changes

  23. 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 Server ComponentsOptions for Using COM Objects

  24. Support for ASP intrinsics ObjectContext intrinsic Flow Application OnStart and OnEnd ASPCompat mode <%@ page aspcompat=true %> Enables access to intrinsic objects Server ComponentsUsing ASP Intrinsics in components

  25. ASP.NET Migration Examples

  26. 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 <%@ Page ASPCompat=“true” %> Not necessary for C++ MTA components Server ComponentsPerformance Considerations

  27. 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 Security Changes

  28. 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 Configuration Changes

  29. Tools

  30. 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/ ASP.NET Migration Assistant

  31. ASP.NET Migration Assistant

  32. 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 Summary

More Related