Title: Introducing the 'NET Framework 3'0
1Migrating from the .NET Framework Version 1.1 to
2.0
Ken Casada Developer Evangelist Developer
Platform Evangelism Microsoft Switzerland
2Agenda
- .NET Framework 3.0
- Upgrade Options
- Breaking changes
- Windows Client Applications
- ASP.NET Applications
- Resources
3Microsoft .NET Framework
The Managed Code Programming Model for Windows
4Take Away
- .NET Framework 3.0
-
- .NET Framework 2.0 bunch of new DLLs
- If you have already installed .NET 2.0,
installing .NET 3.0 will not break existing
application
5Upgrade Options (1)
- Dont upgrade
- Should do cost/benefits analysis of upgrading to
VS2005 and .NET Framework 2.0 - Will features be added?
- Will app merely undergo bug fixes?
- Lifespan of application may factor into decision
6Upgrade Options (2)
- Upgrade the Framework to 2.0 (3.0)
- Allows you to develop new apps in 2.0
- Maintain your old apps in 1.x (continue to use
VS2003 as development environment) - Run apps side by side
- Run in 2.0 backward compatibility mode(improved
security, viewstate performance)
7Which Version Is Used?
() There are some breaking changes in .NET
Framework 2.0 http//msdn2.microsoft.com/en-us/net
framework/aa570326.aspx
8Breaking changes
- Design-mode breaking changes
- Do not impact applications compiled with 1.0 or
1.1 running against the .NET Framework 2.0 - Changes in behavior (not necessarily breaking)
- Fewer than 10 actually impact an application
- Runtime-mode breaking changes
- API breaking changes (fewer than 5)
- Method behavior changes
9Runtime breaking change sample
10Design-Time breaking change sample
- Protected constructors can no longer be called
from their derived types - Closes a potential security hole
class B protected B() class D
B D() base () // this still
works static void Main()
new B() // this breaks!
11Which Version Is Used?
() There are some breaking changes in .NET
Framework 2.0 http//msdn2.microsoft.com/en-us/net
framework/aa570326.aspx
12Load Specific Version (EXE)
- Locate the unmanaged .EXE
- Create a text file called
- ltunmanagedEXEnamegt.exe.config
- (Ex myapp.exe ? myapp.exe.config)
- Paste this text into the new text file
- lt?xml version1.0gt
- ltconfigurationgt
- ltstartupgt
- ltsupportedRuntime versionv1.1.4322/gt
- lt/startupgt
- lt/configurationgt
13Load Specific Version (ASP.NET)
- Installing .NET Framework installs ASP.NET 2.0
- By default, this will not change existing IIS Web
Sites to 2.0, they will remain to 1.1/1.0 - Web site runtime controlled by the new ASP.NET
tab in IIS Admin (site properties) - Important!
- DO NOT try to mix ASP.NET 1.1 and 2.0 apps
within a single AppPool. - ? Create separate AppPools for each Version!
14Web Application- side by side deployments- 2.0
backward compatibility mode
15Upgrade Options (3)
- Convert your Application to 2.0
- Upgrade to VS2005 SP1 ! (VS2005 SP1 Update for
Windows Vista available) - Develop your application in Microsoft Visual
Studio 2005 - ? Use new .NET 2.0 feature !
16Convert your Application to 2.0
- Back up your VS2003/1.1 solution first!
- Open VS2003 project/solution in VS2005 SP1
- Conversion wizard convert project/solution to
VS 2005 - Compile the code
17Convert Windows Client Applications
- Trivial in most cases
- Open the solution in VS2005
- Wizard does necessary touchups to project files
- If it doesnt work at this point, check the
breaking changes list - Not a lot of issues out there with this scenario
- Best way to find out is to just try it
- Backup your files (dont forget this, just in
case!) - See if it works as is
18Convert ASP.NET Applications
- Converting to VS2005 Web Applications (Option1)
- Web Application Project template (included in
VS2005 SP1) that mirrors the 1.1 file structure
and use it - Minimal changes to VS2003 code
- For complex web application, this may be the
better choice - Recommended choice
- Converting to VS2005 Websites (Option2)
- Referred to as the web site template
- Web app defined by files in a folder (No project
file needed) - Dynamic Compilation / Multiple assemblies
19Step 1 Validate in VS2003
Opt1
- If remote project connected via FPSE, move to
http//localhost in VS03 prior to upgrading - Open using the solution file in VS03
- Do a build solution command to validate all
projects in the solution build - Run and validate all pages function correctly
20Step 2 Upgrade solution
Opt1
- Open SLN file in VS2005 ? Launches Conversion
Wizard - Make sure to make a backup
- Convertion Wizard updates solution file and
projects files to VS2005 syntax - After conversion build and fixup errors
- Name collisions with new types in framework
- ? fully qualify names with namespace
- Warnings about using obsolete members
- Run application and validate functionality
21Step 3 Convert To Partial Classes
Opt1
- Right click on root node of Web project and
select Convert to Web Application - Converts pages to using partial classes
- Moves generated designer code into designer.cs
(or designer.vb) file - Build and fixup errors
- Likely error, if any, will be because of a
missing control declaration that was accidentally
removed - To fixup declare missing controls in code-behind
file (not designer file)
22Partial Classes
Opt1
Visual Studio 2003 Visual Studio 2005
P2.aspx
P1.aspx
P2.aspx.cs
P1.aspx.cs
P2.aspx.designer.cs
23Partial Classes
Opt1
Visual Studio 2003 Visual Studio 2005
P2.aspx
P1.aspx
P2.aspx.cs
P1.aspx.cs
P2.aspx.designer.cs
P1.aspx InheritsAppName.P1 CodebehindP1.aspx.
cs
P1.aspx.cs namespace AppName public class
P1 System.Web.UI.Page // Contains
both user auto-generated code, e.g.
protected System.Web.UI.WebControls.Label
Label1 override protected void
OnInit(EventArgs e)
24Partial Classes
Opt1
Visual Studio 2003 Visual Studio 2005
P2.aspx
P1.aspx
P2.aspx.cs
P1.aspx.cs
P2.aspx.designer.cs
P2.aspx InheritsP2 CodeBehindP2.aspx.cs
P2.aspx.cs namespace AppName public partial
class P2 System.Web.UI.Page //
Contains user code
P2.aspx.designer.cs namespace AppName
public partial class P2 protected
System.Web.UI.WebControls.Label Label1 override
protected void OnInit(EventArgs e)
25Step 3 Convert To Partial Classes
Opt1
- Right click on root node of Web project and
select Convert to Web Application - Converts pages to using partial classes
- Moves generated designer code into designer.cs
(or designer.vb) file - Build and fixup errors
- Likely error, if any, will be because of a
missing control declaration that was accidentally
removed - To fixup declare missing controls in code-behind
file (not designer file)
26Step 4 Fixup XHTML errors
Opt1
- Conversion Wizard sets default validation in tool
to Internet Explorer 6 - VS2005 provides the ability to validate XHTML
compliance errors - Change validation in Tools Option to XHTML 1.1
- Open individual pages and fixup XHTML issues.
- If XHTML compliance isnt desired leave
validation to Internet Explore 6
27Converting to VS2005 Web Applications
Opt1
28Convert ASP.NET Applications
- Converting to VS2005 Web Applications (Option1)
- Web Application Project template (included in
VS2005 SP1) that mirrors the 1.1 file structure
and use it - Minimal changes to VS2003 code
- For complex web application, this may be the
better choice - Recommended choice
- Converting to VS2005 Websites (Option2)
- Referred to as the web site template
- Web app defined by files in a folder (No project
file needed) - Dynamic Compilation / Multiple assemblies
29Step 1 Validate in VS2003
Opt2
- Open Web Project in VS2003 using solution or
project file - Do a build solution command to validate all
projects in the solution build - Run project and test pages to validate all pages
run correctly
30Step 2 Prepare App. in VS2003
Opt2
- Review the web site architecture for possible
VS05 conflicts including - Multiple project files referring to same set of
files (common files ca be migrated twice) - ? Duplicate? Evtl. migrate to WAP
- Other projects referencing the web project
- ? move shared code to a separate class library
- Excluded Files ignored by the Wizard (project
will contain extra unconverted files that are now
part of your project)
31Step 3 Upgrade to VS2005
Opt2
- Open using File gt Open Website gt Local IIS ?
Launches Conversion Wizard - Backup your project? Backup Folder outside Web
applications folder tree! - If other non-web projects are in VS03 solution
- Remove Web Projects from Solution
- Migration Solution and fixup compile errors
- Use Add Existing Website to add removed Web
projects to solution, which will upgrade the web
project to a website
32Step 4 Post Conversion Fixup
Opt2
- Review upgrade report and fixup compile issues
reported on build - Refactor code for reserved word naming conflicts
- Clean up
- Remove exclude files if needed
- Remove orphaned resx files
- Remove member functions like OnInit and
InitializeComponent() (if they dont implement
user specific code)
33Step 4 Post Conversion Fixup
Opt2
- Because of new web site compilation model
- Manual fix-up needed
- Resource Manager sample
- CircularReference
- Code changes done by the conversion Wizard
- stand-alone class file references
- Access auto-generated control variable
34Step 5 Fixup XHTML errors
Opt2
- Conversion Wizard sets default validation in tool
to Internet Explorer 6 - VS2005 provides the ability to validate XHTML
compliance errors - Change validation in Tools Option to XHTML 1.1
- Open individual pages and fixup XHTML issues.
- If XHTML compliance isnt desired leave
validation to Internet Explore 6
35Converting to VS2005 Websites
Opt2
36ABC - stand-alone class file ref.
Opt2
37Auto-generated control variable
Opt2
38Resource Manager
Opt2
39Microsoft .NET Framework Ship Schedule
3.5 B1
- .NET Framework 3.5
- Q4 2007
- SP for .Net Framework 2.0 (bug fixing)
40For More Information
- Converting to a Web Application Project
(WAP)http//webproject.scottgu.com - Converting to a Web Site Project
(WSP)http//msdn.microsoft.com/asp.net/reference/
migration/upgrade - Common Web Project Conversion Issues and
Solutions - Step-By-Step Guide to Converting Web Projects
from VS03 to VS05 - Questions Forums Migrating from VS03 to
VS05http//forums.asp.net/default.aspx
41(No Transcript)