Migrating to Clint Edmonson Architect Evangelist Microsoft
<ul><ul><li>Background </li></ul></ul><ul><ul><li>Upgrading from Classic ASP </li></ul></ul><ul><ul><li>Upgrading from .NE...
<ul><li>Review of Classic ASP/COM+… </li></ul><ul><li>Classic ASP = ASP, COM+, ADO </li></ul><ul><li>Components & Interfac...
<ul><li>Review of ASP.NET technology… </li></ul><ul><li>Assemblies (EXEs & DLLs) are loaded as they are used </li></ul><ul...
<ul><li>Review of Server + IIS technology… </li></ul><ul><li>Server 2000 + IIS 5 </li></ul><ul><ul><li>Classic ASP files r...
<ul><li>Classic ASP & ASP.NET can coexist </li></ul><ul><li>Both types of pages can live in the same application </li></ul...
<ul><li>.NET supports COM+, but… </li></ul><ul><li>Two completely different memory management approaches </li></ul><ul><li...
<ul><li>.NET 1.1 apps run under 2.0, 3.0, and 3.5 </li></ul><ul><li>In fact, your web apps will be running on .NET 2.0 </l...
<ul><li>New in .NET 2.0 </li></ul><ul><li>Master Pages </li></ul><ul><li>Generics </li></ul><ul><li>Anonymous classes </li...
<ul><li>New in .NET 3.0 </li></ul><ul><li>Built on top of 2.0 </li></ul><ul><li>Windows Presentation Foundation (WPF) </li...
<ul><li>New in .NET 3.5 </li></ul><ul><li>Built on top of 2.0 and 3.0 </li></ul><ul><li>ASP.NET Ajax </li></ul><ul><li>Mem...
<ul><li>New in VS 2005 </li></ul><ul><li>Support .NET 2.0 framework projects only </li></ul><ul><li>Two Project Styles: We...
<ul><li>New in VS 2008 </li></ul><ul><li>Completely replaces VS 2005 </li></ul><ul><li>Multi-targets version 2.0 and highe...
<ul><li>New in Windows Server 2008 & IIS 7 </li></ul><ul><li>Windows Activation Services </li></ul><ul><li>Completely conf...
<ul><li>Adoption Guidance </li></ul><ul><li>Complete rewrite should be a last resort </li></ul><ul><li>Upgrade based on st...
<ul><li>Architectural Guidance </li></ul><ul><li>Keep your UIs dumb </li></ul><ul><ul><li>Separate UI logic from business ...
<ul><li>Other Tips… </li></ul><ul><li>Use the Web Application project type in the enterprise </li></ul><ul><li>Don’t try t...
<ul><li>.NET 4.0 and Beyond* </li></ul><ul><li>Will strive to continue additive framework strategy </li></ul><ul><ul><li>S...
<ul><li>Where to go next… </li></ul><ul><li>Converting ASP to ASP.NET </li></ul><ul><li>Debugging Classic ASP Code in VS 2...
<ul><ul><li>Clint Edmonson </li></ul></ul><ul><ul><li>Architect Evangelist </li></ul></ul><ul><ul><li>Microsoft </li></ul>...
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
Upcoming SlideShare
Loading in …5
×

Migrating To Visual Studio 2008 & .Net Framework 3.5

81,462 views

Published on

Published in: Technology
10 Comments
4 Likes
Statistics
Notes
No Downloads
Views
Total views
81,462
On SlideShare
0
From Embeds
0
Number of Embeds
61,140
Actions
Shares
0
Downloads
1,002
Comments
10
Likes
4
Embeds 0
No embeds

No notes for slide
  • Migrating to Microsoft Visual Studio 2008 and .NET 3.5 Presented by Clint Edmonson, Architect Evangelist, Microsoft
  • Migrating To Visual Studio 2008 & .Net Framework 3.5

    1. 1. Migrating to Clint Edmonson Architect Evangelist Microsoft
    2. 2. <ul><ul><li>Background </li></ul></ul><ul><ul><li>Upgrading from Classic ASP </li></ul></ul><ul><ul><li>Upgrading from .NET 1.1 </li></ul></ul><ul><ul><li>Upgrading from VS 2003 </li></ul></ul><ul><ul><li>Upgrading from Server 2003 </li></ul></ul><ul><ul><li>General Recommendations </li></ul></ul><ul><ul><li>Futures </li></ul></ul><ul><ul><li>Resources </li></ul></ul>
    3. 3. <ul><li>Review of Classic ASP/COM+… </li></ul><ul><li>Classic ASP = ASP, COM+, ADO </li></ul><ul><li>Components & Interfaces registered as GUIDs and string names </li></ul><ul><li>COM+ runtime acts as object factory </li></ul><ul><li>Reference counting memory management system </li></ul><ul><li>ASP pages compiled and cached by scripting engine as they are requested </li></ul>
    4. 4. <ul><li>Review of ASP.NET technology… </li></ul><ul><li>Assemblies (EXEs & DLLs) are loaded as they are used </li></ul><ul><li>Preferential load locations (GAC, local folder, framework folder) </li></ul><ul><li>Classes are JIT compiled from intermediate code as they are used </li></ul><ul><li>Common Language Runtime (CLR) creates objects and manages memory using garbage collection algorithms </li></ul><ul><li>Global Assembly Cache (GAC) </li></ul><ul><li>ASP.NET pages are compiled at request time </li></ul>
    5. 5. <ul><li>Review of Server + IIS technology… </li></ul><ul><li>Server 2000 + IIS 5 </li></ul><ul><ul><li>Classic ASP files run in IIS process </li></ul></ul><ul><ul><li>COM+ code must run out-of-process or in the IIS process </li></ul></ul><ul><ul><li>All ASP.NET applications run in a single ASP.NET worker process (can be isolated if necessary) </li></ul></ul><ul><li>Server 2003 + IIS 6 </li></ul><ul><ul><li>Introduced concept of multiple worker processes (application pools) </li></ul></ul><ul><ul><li>COM+ remains the same </li></ul></ul><ul><ul><li>ASP files run within the same worker process as ASP.NET applications </li></ul></ul><ul><ul><li>Virtual applications are assigned to a specific application pool </li></ul></ul><ul><ul><li>Each pool is assigned to a specific version of the .NET framework </li></ul></ul>
    6. 6. <ul><li>Classic ASP & ASP.NET can coexist </li></ul><ul><li>Both types of pages can live in the same application </li></ul><ul><li>Allows for gentler migration </li></ul><ul><li>Application can be re-architected from inside out </li></ul><ul><li>Separate files, processed by separate engines </li></ul><ul><li>Warning: Session & Application state are not shared between engines </li></ul>
    7. 7. <ul><li>.NET supports COM+, but… </li></ul><ul><li>Two completely different memory management approaches </li></ul><ul><li>Easy to expose .NET classes as COM+ objects and use them in classic ASP </li></ul><ul><li>Warning: Much harder to use COM+ inside .NET </li></ul>
    8. 8. <ul><li>.NET 1.1 apps run under 2.0, 3.0, and 3.5 </li></ul><ul><li>In fact, your web apps will be running on .NET 2.0 </li></ul><ul><li>You will still need VS 2003 if you intend to keep them 1.1 </li></ul><ul><li>Warning: Some minor incompatibilities and changes between 1.1 and 2.0 </li></ul><ul><ul><li>Dynamic Page Naming scheme changed – code using reflection to determine page name will break </li></ul></ul><ul><ul><li>Dynamic naming scheme of controls in grids and lists changed </li></ul></ul><ul><ul><li>System.Threading.Monitor class bug fixes – # calls to Monitor.Enter() must equal number of calls to Monitor.Exit() </li></ul></ul><ul><ul><li>Keep-Alive default setting on Web Service proxies changed from false to true </li></ul></ul><ul><ul><li>Others… </li></ul></ul>
    9. 9. <ul><li>New in .NET 2.0 </li></ul><ul><li>Master Pages </li></ul><ul><li>Generics </li></ul><ul><li>Anonymous classes </li></ul><ul><li>Partial classes </li></ul><ul><li>Caching library </li></ul><ul><li>Built in Membership, Role, and Personalization framework </li></ul><ul><li>Login control </li></ul><ul><li>Web Parts & Zones </li></ul><ul><li>Many, many performance optimizations </li></ul>
    10. 10. <ul><li>New in .NET 3.0 </li></ul><ul><li>Built on top of 2.0 </li></ul><ul><li>Windows Presentation Foundation (WPF) </li></ul><ul><li>Windows Communication Foundation (WCF) </li></ul><ul><li>Windows Workflow Foundation (WF) </li></ul><ul><li>Identity Management Metasystem (CardSpace) </li></ul><ul><li>Minor point release update to .NET 2.0 included </li></ul>
    11. 11. <ul><li>New in .NET 3.5 </li></ul><ul><li>Built on top of 2.0 and 3.0 </li></ul><ul><li>ASP.NET Ajax </li></ul><ul><li>Membership, Role, and Personalization framework exposed as web services </li></ul><ul><li>Language Integrated Querying (LINQ) </li></ul><ul><li>Native support for latest web protocols (RSS, JSON, etc) </li></ul><ul><li>Implicitly typed local variables </li></ul><ul><li>Object and collection initializers </li></ul><ul><li>Extension methods </li></ul><ul><li>Auto-implemented properties </li></ul>
    12. 12. <ul><li>New in VS 2005 </li></ul><ul><li>Support .NET 2.0 framework projects only </li></ul><ul><li>Two Project Styles: Web Sites and Web Applications </li></ul><ul><li>Integrated micro-web server for debugging </li></ul><ul><li>Class browser </li></ul><ul><li>Interactive object test bench </li></ul><ul><li>Code snippets </li></ul><ul><li>Refactoring wizards </li></ul><ul><li>Debugger data-tips </li></ul>
    13. 13. <ul><li>New in VS 2008 </li></ul><ul><li>Completely replaces VS 2005 </li></ul><ul><li>Multi-targets version 2.0 and higher runtimes </li></ul><ul><li>Designers and toolboxes adapt to runtime selection </li></ul><ul><li>JavaScript intellisense </li></ul><ul><li>JavaScript debugging </li></ul><ul><li>New CSS editor </li></ul><ul><li>Unit test automation tools (in all SKUs) </li></ul>
    14. 14. <ul><li>New in Windows Server 2008 & IIS 7 </li></ul><ul><li>Windows Activation Services </li></ul><ul><li>Completely configurable request pipeline </li></ul><ul><li>Support for URL rewriting </li></ul>
    15. 15. <ul><li>Adoption Guidance </li></ul><ul><li>Complete rewrite should be a last resort </li></ul><ul><li>Upgrade based on strategic importance and maintenance overhead </li></ul><ul><ul><li>Partial conversion </li></ul></ul><ul><ul><li>Convert as upgrades are needed </li></ul></ul><ul><ul><li>Add only the new features in .NET </li></ul></ul><ul><li>Leverage application pools for migration </li></ul><ul><ul><li>Create separate 1.1 and 2.0 pools on your servers </li></ul></ul><ul><ul><li>Test 1.1 apps under 2.0 runtime and move them over if successful </li></ul></ul><ul><ul><li>Even 1.1 apps will see a 5-15% performance improvement </li></ul></ul><ul><li>Code conversion effort is low, remediation testing will be your big cost </li></ul><ul><ul><li>99% of your apps will take less than 1 day to upgrade </li></ul></ul><ul><ul><li>Finding that 1% is the expensive part </li></ul></ul>
    16. 16. <ul><li>Architectural Guidance </li></ul><ul><li>Keep your UIs dumb </li></ul><ul><ul><li>Separate UI logic from business and data access logic </li></ul></ul><ul><ul><li>Leverage databinding </li></ul></ul><ul><li>Practice Service Oriented Thinking </li></ul><ul><ul><li>Share your business capabilities, not your databases </li></ul></ul><ul><ul><li>Look for cross platform Enterprise Application Integration opportunities (.NET, JAVA, SAP, SIEBEL, …) </li></ul></ul><ul><li>Develop a set of shared enterprise components & services </li></ul><ul><ul><li>Security (Authorization, Authentication) </li></ul></ul><ul><ul><li>Event Logging & Notification </li></ul></ul><ul><ul><li>Database Location & Access </li></ul></ul><ul><ul><li>Service Location & Access </li></ul></ul><ul><ul><li>Encryption </li></ul></ul>
    17. 17. <ul><li>Other Tips… </li></ul><ul><li>Use the Web Application project type in the enterprise </li></ul><ul><li>Don’t try to code .aspx pages like .asp pages </li></ul><ul><ul><li>Put all server side code in code-behind files </li></ul></ul><ul><li>Avoid using Application & Session state if at all possible </li></ul><ul><ul><li>Application variables are not distributed in a web farm </li></ul></ul><ul><ul><li>Session state in a farm is often slower than direct DB calls because of serialization overhead </li></ul></ul><ul><li>Watch out for XML and Regular Expressions </li></ul><ul><ul><li>XMLDocuments cause heavy CPU load – use XMLReader/Writers </li></ul></ul><ul><ul><li>Regular expressions generate dynamic .NET assemblies </li></ul></ul>
    18. 18. <ul><li>.NET 4.0 and Beyond* </li></ul><ul><li>Will strive to continue additive framework strategy </li></ul><ul><ul><li>Support for running multiple runtimes in the same process is being proven out right now </li></ul></ul><ul><li>Technology POCs are made available regularly on CodePlex </li></ul><ul><ul><li>ADO.NET Entity Framework and LINQ to Entities </li></ul></ul><ul><ul><li>ADO.NET Data Services </li></ul></ul><ul><ul><li>Model-View-Controller (MVC) Framework </li></ul></ul><ul><ul><li>More to come… </li></ul></ul>* These statements and features are subject to change and no guarantees are implied.
    19. 19. <ul><li>Where to go next… </li></ul><ul><li>Converting ASP to ASP.NET </li></ul><ul><li>Debugging Classic ASP Code in VS 2005 </li></ul><ul><li>Migrating from Classic ASP to ASP.NET (webcast) </li></ul><ul><li>Upgrading to Microsoft .NET </li></ul><ul><li>Visual Studio 2008 & .NET 3.5 Training Kit </li></ul>
    20. 20. <ul><ul><li>Clint Edmonson </li></ul></ul><ul><ul><li>Architect Evangelist </li></ul></ul><ul><ul><li>Microsoft </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>http://www.notsotrivial.net </li></ul></ul>
    21. 21. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

    ×