|
Yesterday, I received my Everett Beta and proceeded to install the 8 - CD
package on one of my test partitions running .NET Server Enterprise. The
good news is that if you leave out Crystal Reports, the MSDE and a couple
of other items like Enterprise Templates and J#, you only need three of
the CDS. The MSDN Library, which of course contains all the help and a lot
more good content, comes on three of the CD's in the package. Visio and
Visual Sourcesafe come on the remaining two CD's.
Installation - Good News!
Installation of Visual Studio.NET 2003 on .NET Server Enterprise went
smoothly. Remembering my pain from Beta II and RTM, I turned off both
ZoneAlarm's TrueVector service and the Norton Antivirus services and set
them to "Manual" so they wouldn't restart on a reboot. There
were no hitches at all during installation. In fact, the progress dialogs
are a lot more accurate. Remember the one that said "Estimated Time
Remaining: 1 minutes" and it said that for 29 minutes? That's fixed.
It went from the "5 minutes" level down to zero in less than
2 minutes.
But then when I wanted to create a new Web Project, I got the annoying
dialog shown in Fig. 1 below:

Fig.1 Typical misleading error dialog on .NET Server
It turns out that on .NET Server, everything in IIS is locked
down by default. This means that even when you install a new
feature, you have to go into the Web Application Manager and "enable"
it. So the dialog is misleading because it makes you think (incorrectly)
that ASP.NET version 1.1 is not installed. It is installed -- it's just
not enabled.
Some problems you may encounter
After upgrading from Windows 2000 Server to Windows .NET Server,
Visual Studio .NET 2003 Beta 1 cannot create managed projects.
When upgrading
from Windows 2000 Server with Visual Studio .NET 2003 Beta 1 installed
to Windows .NET Server, Visual Studio .NET Beta 1 can no longer create
managed projects (for example, ASP.NET applications or Windows Forms projects).
To resolve this issue, repair the .NET Framework
For the DVD version of Visual Studio .NET 2003 Beta 1, insert the DVD.
From the Windows Start menu, choose Run and type:
<DVD Drive>:\wcu\dotNetFramework\dotnetfx.exe /t:c:\temp /c:"msiexec.exe
/fvecms c:\temp\netfx.msi"
-or-
For the CD version of Visual Studio .NET 2003 Beta 1, insert the Visual
Studio .NET Prerequisites CD. From the Windows Start menu, choose Run
and type:
<CD Drive>:\dotNetFramework\dotnetfx.exe /t:c:\temp /c:"msiexec.exe
/fvecms c:\temp\netfx.msi"
During the repair, you will see several error messages reading, "Error
1931. Windows Installer Service can't update <File>. This file is
protected by Windows." You may safely click OK to each error message.
The repair will complete successfully.
At this point, you are now able to build managed Windows applications.
If you want to host ASP .NET Web applications or services on this machine,
the following steps are also required.
To reinstall ASP.NET
From the Start menu, choose Run.
In the Open dialog box, type appwiz.cpl, and then click OK to open the
Add/Remove Programs dialog box.
In the Add/Remove Programs dialog box, choose Add/Remove Windows Components
in the left pane of the dialog box.
Select Web Application Server, and then click Details.
On the Web Application Server options page, check ASP.NET if it is not
already selected, then click OK.
Click Next to begin installing ASP.NET.
To enable ASP.NET access through IIS (this is what I had to do):
From the Start menu, choose Run.
In the Open dialog box, type compmgmt.msc \s, and then click OK to open
the Computer Management dialog box.
In the Computer Management dialog box, expand Services and Applications.
In the Services and Applications node, click Services and find World Wide
Web Publishing Service in the right pane. If the status is Started, skip
to step 6. Otherwise, double-click World Wide Web Publishing Service to
open the Properties window, change Startup type to Automatic, and click
Start in the Service Status area, click OK.
In the Services and Applications node, right-click Internet Information
Services, select All Tasks from the shortcut menu, choose Restart IIS,
and click OK to start IIS.
In the Services and Applications node, expand Internet Information Services.
Click Web Service Extensions.
In the right pane, select each instance of ASP.NET and click the Allow
button.
New Features:
The Microsoft .NET Framework version 1.1 Beta extends the .NET Framework
version 1.0 with new features, improvements to existing features, and
enhancements to the documentation. I'll outline the major feature areas
of the new release below.
Native Support for Developing Mobile Web Applications
The .NET Framework 1.1 Beta now features native support for developing
mobile Web applications. ASP.NET Mobile Controls (formerly the Microsoft
Mobile Internet Toolkit) extend ASP.NET server controls such that they
adapt to the mobile device on which the Web application is rendering.
Through browser detection, the mobile controls conform to the capabilities
of individual devices ranging from full-featured personal digital assistant
(PDA) browsers to small, 5-line × 20-character mobile phone displays.
This adaptive rendering feature handles many of the tedious, device-specific
rendering decisions and frees you to focus on your Web application logic.
The .NET Framework 1.1 Beta incorporates the mobile controls into the
.NET Framework and Microsoft Visual Studio® .NET distributions.
Granular Version Control: Side-by-Side Execution
Support for side-by-side execution in the .NET Framework 1.1 Beta enables
system administrators to store and execute multiple versions of an application
or component on the same computer. This means that you can have multiple
versions of the .NET Framework Redistributable, as well as multiple versions
of applications and components that use a version of the Redistributable,
on the same computer at the same time.
Side-by-side execution does not imply that a managed application is compatible
with other versions of the Redistributable or of a component. Rather,
it means that a managed application can choose the Redistributable and
the components it executes with, and that multiple versions of the Redistributable,
applications, and components can coexist on the same computer. Systems
administrators control this through the application's configuration file.
How Apps behave against different versions of the .NET Framework:
By default, in the absence of configuration file instructions:
If an application written with the .NET Framework 1.0 is installed on
a system with only the .NET Framework 1.1 Redistributable present, the
application will try to run against version 1.1.
If an application written with the .NET Framework 1.0 is installed on
a system with both versions 1.1 and 1.0 of the Redistributable present,
the application will run against version 1.0 unless an administrator changes
the behavior.
If an application written with the .NET Framework 1.1 Beta is installed
on a system with only the .NET Framework 1.0 Redistributable, it will
not run (unless configured to do so).
ASP.NET applications represent an exception to this behavior. When the .NET
Framework 1.1 Redistributable is installed on a server, ASP.NET Web applications
and XML Web services are, by default, automatically configured to run with
it. Again, systems administrators have the ability to override this default
behavior and configure some or all of these applications to run with the
.NET Framework 1.0 Redistributable.
Enable
Execution of Windows Forms Assemblies Originating from the Internet
Assemblies originating from the Internet Zone—for example, Microsoft
Windows® Forms controls embedded in an Internet-based Web page or
Windows Forms assemblies hosted on an Internet Web server and loaded either
through the Web browser or programmatically using the System.Reflection.Assembly.LoadFrom()
method—now receive sufficient permission to execute in a semi-trusted
manner. Default security policy has been changed so that assemblies assigned
by the common language runtime to the Internet Zone code group now receive
the constrained permissions associated with the Internet permission set.
In the .NET Framework 1.0 Service Pack 1 and Service Pack 2, such applications
received the permissions associated with the Nothing permission set and
could not execute.
Note: While we are re-enabling code from the Internet Zone, the defaults
do not give this code full access to the user's machine. By default, thanks
to code access security, this code runs in a restricted manner and is
allowed access only to a limited set of resources that are safe to use.
This code cannot damage your data or system, nor can it steal private
information that you do not explicitly give it.
Enable Code Access Security for ASP.NET Applications
Systems administrators can now use code access security to further lock
down the permissions granted to ASP.NET Web applications and XML Web services.
Although the operating system account under which an application runs
imposes security restrictions on the application, the code access security
system of the common language runtime can enforce additional restrictions
on selected application resources based on policies specified by systems
administrators. You can use this feature in a shared server environment
(such as an Internet service provider (ISP) hosting multiple Web applications
on one server) to isolate separate applications from one another, as well
as with stand-alone servers where you want applications to run with the
minimum necessary privileges.
Native Support for Communicating with ODBC and Oracle Databases
Developers can now enjoy native support for communication with ODBC and
Oracle databases. The .NET Framework Data Provider for ODBC, which previously
was available only as a Web download, now ships with the .NET Framework
under the namespace System.Data.Odbc. It provides access to native ODBC
drivers the same way the OLE DB .NET Data Provider provides access to
native OLE DB providers.
The .NET Framework Data Provider for Oracle, which also
previously was available only as a Web download, now ships with the .NET
Framework under the namespace System.Data.OracleClient. It provides access
to Oracle databases using the Oracle Call Interface (OCI) as provided
by Oracle Client software.
Unified Programming Model for Smart Client Application Development
The Microsoft .NET Compact Framework brings the common language runtime,
Windows Forms controls, and other .NET Framework features to small devices.
The .NET Compact Framework supports a large subset of the .NET Framework
class library optimized for small devices.
Supported devices include the Pocket PC 2000, Pocket PC 2002, Pocket
PC 2002 Phone Edition, and custom-designed embedded devices built with
the Windows CE .NET 4.1 operating system. Earlier versions of Windows
CE .NET are not supported.
The .NET Compact Framework provides the following key features:
A compact common language runtime that brings the benefits of managed
code (such as memory management, code reliability, and language neutrality)
to devices.
Consistency with desktop and server programming models.
Seamless connection with XML Web services.
Rich enterprise-class data access features with XML classes and ADO.NET.
Classes to program applications that access data using Microsoft SQL Server™
2000 Windows CE 2.0.
Full access to native platform features through platform invoke.
Just-in-time (JIT) compilation for optimal performance.
Note: The .NET Compact Framework does not ship natively with the .NET
Framework and is not available through the .NET Framework 1.1 Beta program.
Developers may access the .NET Compact Framework using the next version
of Visual Studio .NET and, in the short term, through the Visual Studio
"Everett" release beta program (this release).
Support for IPv6
The .NET Framework 1.1 supports the emerging update to the Internet Protocol,
commonly referred to as IP version 6, or simply IPv6. This protocol is
designed to significantly increase the address space used to identify
communication endpoints in the Internet to accommodate its ongoing growth.
Scalability, Performance, Documentation
In addition to the areas discussed above, significant improvements have
been made to the .NET Framework in the areas of scalability and performance.
Enhancements have also been made to the documentation, which now includes
more code examples and several new sections (including one entitled Secure
Code Guidelines).
CODE CHANGES:
From VS.NET 1.0 to 1.1 there are 985 net new member additions to the
Framework, with 24 net breaking changes:
| Assembly |
Members
Added |
Members
Removed |
Breaking Changes |
|
| accessibility (20) |
0 |
0 |
0 |
|
| ieexecremote (10) |
1 |
1 |
0 |
|
| iehost (36) |
1 |
0 |
2 |
|
| iiehost (15) |
3 |
0 |
5 |
|
| isymwrapper (217) |
8 |
8 |
0 |
|
| microsoft.visualbasic (800) |
2 |
0 |
0 |
|
| microsoft.visualc (81) |
1 |
0 |
0 |
|
| microsoft.vsa (145) |
0 |
0 |
0 |
|
| microsoft.vsa.vb.codedomprocessor (24) |
0 |
0 |
0 |
|
| microsoft_vsavb (50) |
0 |
0 |
0 |
|
| mscorlib (13811) |
149 |
4 |
2 |
|
| regcode (37) |
0 |
0 |
0 |
|
| system (8087) |
92 |
2 |
0 |
|
| system.configuration.install (372) |
0 |
0 |
0 |
|
| system.data (3590) |
486 |
14 |
0 |
|
| system.design (4315) |
0 |
0 |
0 |
|
| system.directoryservices (339) |
0 |
0 |
0 |
|
| system.drawing (3206) |
1 |
0 |
0 |
|
| system.drawing.design (151) |
0 |
0 |
0 |
|
| system.enterpriseservices (863) |
116 |
0 |
0 |
|
| system.management (1072) |
14 |
0 |
0 |
|
| system.messaging (1104) |
0 |
0 |
0 |
|
| system.runtime.remoting (428) |
4 |
0 |
0 |
|
| system.runtime.serialization.formatters.soap (19) |
1 |
0 |
0 |
|
| system.security (338) |
8 |
0 |
0 |
|
| system.serviceprocess (701) |
0 |
0 |
0 |
|
| system.web (10143) |
46 |
3 |
0 |
|
| system.web.regularexpressions (480) |
0 |
0 |
0 |
|
| system.web.services (2439) |
12 |
1 |
0 |
|
| system.windows.forms (20574) |
48 |
14 |
0 |
|
| system.xml (4118) |
52 |
13 |
15 |
|
| TOTALS |
1045 |
60 |
24 |
|
| Total Net Added: |
985 |
|
|
There have been a large number of additions in the System.Data and System.Xml
namespaces, as well asl System.Windows.Forms and System.EnterpriseServices.
Many of these have been added to bring the Framework into conformity with
new features in .NET Server.
Redirecting Applications:
By default, an application only works with the version of the .NET Framework
with which it was compiled. In this case, no configuration file is necessary
to execute the application. However, if you want an application built
with one version of the .NET Framework to execute on one or more different
versions of the .NET Framework, then you must use an appropriate configuration
file.
Specifying the version of the .NET Framework the application is to use
is called redirecting the application. An application can be redirected
to use only a particular version of the .NET Framework, or one of a set
of candidate versions selected by order of preference. You can create
the configuration file automatically using Visual Studio .NET, or manually
using the following information.
If your application does not have a configuration file, create one in
the same directory as your application. Name the configuration file the
same name as your application with ".config" appended to the
name. For example, if the name of an application is MyApp.exe, then the
name of the corresponding configuration file is MyApp.exe.config.
Configuration File Tags
Redirect your application by specifying the appropriate configuration
file tags. In this example, the <requiredRuntime> tag is used to
redirect your application to a computer that only has the .NET Framework
version 1.0 installed.
<startup>
<requiredRuntime imageVersion="v1.0.3705" version="v1.0.3705"
/>
</startup>
For the .NET Framework version 1.0, the configuration file needs to redirect
any dependent assemblies your application requires because version 1.0
does not automatically reference dependent assemblies. As a result, your
configuration file can be very large. In this example, an assembly is
redirected to the .NET Framework version 1.0.
<dependentAssembly>
<assemblyIdentity name="Accessibility" publicKeyToken="b03f5f7f11d50a3a"
culture=""/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535"
newVersion="1.0.3300.0"/>
</dependentAssembly>
For the .NET Framework version 1.1, the configuration file is smaller
because the runtime automatically references dependent assemblies on your
behalf. The ability of the .NET Framework to automatically reference dependent
assemblies is called unification. That means you only need a simple configuration
file to unify an application and its referenced assemblies with one version
of the .NET Framework.
Specify one or more <supportedRuntime> tags in your configuration
file to indicate the versions of the .NET Framework your application can
execute on. The order of the tags indicates the preferred order of candidate
.NET Framework versions. That is, the first tag indicates the foremost
version you want to use; if that version is not installed, then the second
tag indicates the second most preferred version you want to use, and so
on.
The following example redirects an application built with the .NET Framework
version 1.0 to execute on version 1.1.
<startup>
<supportedRuntime version="v1.0.5000" />
</startup>
If the .NET Framework version 1.1 is installed on your computer, specify
multiple <supportedRuntime> tag entries to specify multiple versions
of the .NET Framework. If you want an application to run on the .NET Framework
version 1.0, you still need a <requiredRuntime> tag and the redirection
tags for each assembly your application uses.
In the following example, the .NET Framework version 1.1 is preferred,
but if that version is not available version 1.0 is used.
<startup>
<requiredRuntime imageVersion="v1.0.3705" version="v1.0.3705"
/>
<supportedRuntime version="v1.0.5000" />
<supportedRuntime version="v1.0.3705" />
</startup>
Configuration Files for Mixed Versions of Applications and Frameworks
The following section describes the part of the configuration file required
to run various versions of your application on various versions of the
.NET Framework.
To run an application built with the .NET Framework version 1.0 on version
1.0, no redirection is necessary. This is the default behavior of a .NET
Framework version 1.0 application.
To run an application built with the .NET Framework version 1.0 on version
1.1, include a configuration file with your application like the following:
<?xml version ="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v1.0.5000" />
</startup>
</configuration>
To run an application built with the .NET Framework version 1.0 on either
version 1.0 or version 1.1, include a configuration file with your application
that includes two <supportedRuntime> tags, and a <requiredRuntime>
tag. The first <supportedRuntime> tag redirects to .NET Framework
version 1.0. The <requiredRuntime> tag redirects to version 1.0.
Include redirection sections for all assemblies referenced by your application.
Redirect these assemblies to version 1.0 since these sections are not
used by version 1.1.
For example:
<startup>
<requiredRuntime imageVersion="v1.0.3705" version="v1.0.3705"
/>
<supportedRuntime version="v1.0.3705" />
<supportedRuntime version="v1.0.5000" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Regcode"
publicKeyToken="b03f5f7f11d50a3a" culture=""/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535"
newVersion="1.0.3300.0"/>
</dependentAssembly>
<!-- Include a section for each assembly to be redirected. -->
</assemblyBinding>
</runtime>
To run an application built with the .NET Framework version 1.1 on version
1.1, no redirection is necessary. This is the default behavior for a .NET
Framework version 1.1 application.
To run an application built with the .NET Framework version 1.1 on the
.NET Framework version 1.0, include a <requiredRuntime> tag in your
configuration file that points to the .NET Framework version 1.0. Include
all necessary redirections for assemblies your application references.
To run an application built with the .NET Framework version 1.1 on version
1.1 or version 1.0, include a configuration file with your application
that includes two <supportedRuntime> tags, and a <requiredRuntime>
tag. The first <supportedRuntime> tag redirects to .NET Framework
version 1.1. The <requiredRuntime> tag redirects to the .NET Framework
version 1.0.
Include redirection sections for all assemblies referenced by your application.
Redirect these assemblies to the .NET Framework version 1.0 since these
sections are not used by .NET Framework version 1.1.
WARNING - Updating a Visual Studio .NET version 1.0 Project:
If you open a project built with Visual Studio .NET version 1.0 in Visual
Studio .NET version 1.1, you will get a warning saying that the project
will be automatically upgraded to Visual Studio .NET version 1.1 and your
application will be upgraded to execute on the .NET Framework version
1.1. After the project is opened in Visual Studio version 1.1,
you cannot open it in Visual Studio .NET version 1.0. This is
true even if you do not rebuild your application. Furthermore, opening
your project in the later version of Visual Studio does not automatically
guarantee that your application will still compile and run.
To run a .NET Framework version 1.0 application on version 1.1 (Backward
Compatibility), perform your test on a separate computer that only has
.NET Framework 1.1 installed.
In sum, this is a promising new release. The addition of code access
security to ASP.NET application is a useful feature. It seems that Microsoft
has continued to apply much of what they've learned to optimizing performance.
Even the IDE loads up faster. When this is fully bug - tested and ships
with .NET Server 2003, I predict we have a winning combination coming
from the folks in Redmond.
| Peter Bromberg is a C# MVP, MCP, and .NET consultant who has worked in the banking and financial industry for 20 years. He has architected and developed web - based corporate distributed application solutions since 1995, and focuses exclusively on the .NET Platform. Pete's samples at GotDotNet.com have been downloaded over 41,000 times. You can read Peter's UnBlog Here. --><-- NOTE: Post QUESTIONS on FORUMS! |  |
|