SPRNET-1320

Section added describing In-Proc SxS support for .NET 4 in Spring.NET 1.3.1 (and later, until this changes)
This commit is contained in:
sbohlen
2010-09-16 23:28:01 +00:00
parent 5fc12d6c1e
commit 81b18fb4ae

View File

@@ -1,148 +1,182 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
* Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<chapter xml:id="migration" xmlns="http://docbook.org/ns/docbook" version="5">
<title>Migrating from 1.1 M2</title>
<sect1 xml:id="M2RC1-introduction">
<title>Introduction</title>
<para>Several API changes were made after 1.1 M2 (before 1.1 RC1)due
primarily by the need to refactor the code base to remove circular
dependency cycles, which are now all removed. Class and schema name
changes were also made to provide a more consistent naming convention
across the codebase. As a result of these changes, you can not simply drop
in the new .dlls as you may have done in previous release. This document
serves as a high level guide to the most likely areas where you will need
to make changes to either your configuration or your code.</para>
<para>The file, BreakingChanges-1.1.txt, in the root directory of the
distribution contains the full listing of breaking changes made for RC1
and higher</para>
</sect1>
<sect1 xml:id="migration-changes">
<title>Important Changes</title>
<para>This section covers the common areas were you will need to make
changes in code/configuration when migration from M2 to RC1or
higher.</para>
<sect2>
<title>Namespaces</title>
<para>Note: If you previously installed Spring .xsd files to your VS.NET
installation directory, remove them manually, and copy over the new
ones, which have the -1.1.xsd suffix.</para>
<para>The names of the section handlers to register custom schemas has
changed, from ConfigParsersSectionHandler to
<literal>NamespaceParsersSectionHandler</literal>.</para>
<para>The target namespaces have changed, the 'directory' named /schema/
has been removed. For example, the target schema changed from
http://www.springframework.net/schema/tx to
<literal>http://www.springframework.net/tx.</literal></para>
<para>A typical declaration to use custom schemas within your
configuration file looks like this</para>
<programlisting language="myxml">&lt;objects xmlns='http://www.springframework.net'
xmlns:db="http://www.springframework.net/database"
xmlns:tx="http://www.springframework.net/tx"
xmlns:aop="http://www.springframework.net/aop"&gt;</programlisting>
<para>The class <literal>XmlParserRegistry</literal> was renamed to
<literal>NamespaceParserRegistry</literal>.</para>
<para>Renamed
<literal>Spring.Validation.ValidationConfigParser</literal> to
<literal>Spring.Validation.Config.ValidationNamespaceParser</literal></para>
<para>Renamed from <literal>DatabaseConfigParser</literal> to
<literal>DatabaseNamespaceParser</literal></para>
<para>Renamed/Moved <literal>Remoting.RemotingConfigParser</literal>
to
<literal>Remoting.Config.RemotingNamespaceParser</literal><parameter></parameter></para>
<para>A typical registration of custom parsers within your configuration
file looks like this</para>
<programlisting language="myxml">&lt;configuration&gt;
&lt;configSections&gt;
&lt;sectionGroup name="spring"&gt;
&lt;section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/&gt;
&lt;/sectionGroup&gt;
&lt;/configSections&gt;
&lt;spring&gt;
&lt;parsers&gt;
&lt;parser type="Spring.Aop.Config.AopNamespaceParser, Spring.Aop" /&gt;
&lt;parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" /&gt;
&lt;parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" /&gt;
&lt;/parsers&gt;
&lt;/spring&gt;</programlisting>
<para>A manual registration would look like this</para>
<programlisting language="csharp">NamespaceParserRegistry.RegisterParser(typeof(AopNamespaceParser));
NamespaceParserRegistry.RegisterParser(typeof(DatabaseNamespaceParser));
NamespaceParserRegistry.RegisterParser(typeof(TxNamespaceParser));
</programlisting>
</sect2>
<sect2>
<title>Core</title>
<para>Moved Spring.Util.DynamicReflection to
Spring.Reflection.Dynamic</para>
<para>Moved TypeRegistry and related classes from Spring.Context.Support
to Spring.Core.TypeResolution</para>
<para>Moved Spring.Objects.TypeConverters to
Spring.Core.TypeConvesion</para>
</sect2>
<sect2>
<title>Web</title>
<para>Moved Spring.Web.Validation to Spring.Web.UI.Validation</para>
</sect2>
<sect2>
<title>Data</title>
<para>Changed schema to use 'provider' instead of 'dbProvider' element,
usage is now &lt;db:provider ... /&gt; and not &lt;db:dbProvider
.../&gt;</para>
<para>Moved TransactionTemplate, TransactionDelegate and
ITransactionCallback from Spring.Data to Spring.Data.Support</para>
<para>Moved AdoTemplate, AdoAccessor, AdoDaoSupport,
RowMapperResultSetExtractor from Spring.Data to Spring.Data.Core</para>
<para>Moved AdoPlatformTransactionManager,
ServiceDomainPlatformTransactionManager, and TxScopeTransactionManager
from Spring.Data to Spring.Data.Core</para>
</sect2>
</sect1>
</chapter>
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
* Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<chapter version="5" xml:id="migration" xmlns="http://docbook.org/ns/docbook"
xmlns:ns6="http://www.w3.org/1999/xlink"
xmlns:ns5="http://www.w3.org/1999/xhtml"
xmlns:ns4="http://www.w3.org/2000/svg"
xmlns:ns3="http://www.w3.org/1998/Math/MathML"
xmlns:ns="http://docbook.org/ns/docbook">
<title>Migrating from 1.1 M2</title>
<sect1 xml:id="M2RC1-introduction">
<title>Introduction</title>
<para>Several API changes were made after 1.1 M2 (before 1.1 RC1)due
primarily by the need to refactor the code base to remove circular
dependency cycles, which are now all removed. Class and schema name
changes were also made to provide a more consistent naming convention
across the codebase. As a result of these changes, you can not simply drop
in the new .dlls as you may have done in previous release. This document
serves as a high level guide to the most likely areas where you will need
to make changes to either your configuration or your code.</para>
<para>The file, BreakingChanges-1.1.txt, in the root directory of the
distribution contains the full listing of breaking changes made for RC1
and higher</para>
</sect1>
<sect1 xml:id="migration-changes">
<title>Important Changes</title>
<para>This section covers the common areas were you will need to make
changes in code/configuration when migration from M2 to RC1or
higher.</para>
<sect2>
<title>Namespaces</title>
<para>Note: If you previously installed Spring .xsd files to your VS.NET
installation directory, remove them manually, and copy over the new
ones, which have the -1.1.xsd suffix.</para>
<para>The names of the section handlers to register custom schemas has
changed, from ConfigParsersSectionHandler to
<literal>NamespaceParsersSectionHandler</literal>.</para>
<para>The target namespaces have changed, the 'directory' named /schema/
has been removed. For example, the target schema changed from
http://www.springframework.net/schema/tx to
<literal>http://www.springframework.net/tx.</literal></para>
<para>A typical declaration to use custom schemas within your
configuration file looks like this</para>
<programlisting language="myxml">&lt;objects xmlns='http://www.springframework.net'
xmlns:db="http://www.springframework.net/database"
xmlns:tx="http://www.springframework.net/tx"
xmlns:aop="http://www.springframework.net/aop"&gt;</programlisting>
<para>The class <literal>XmlParserRegistry</literal> was renamed to
<literal>NamespaceParserRegistry</literal>.</para>
<para>Renamed
<literal>Spring.Validation.ValidationConfigParser</literal> to
<literal>Spring.Validation.Config.ValidationNamespaceParser</literal></para>
<para>Renamed from <literal>DatabaseConfigParser</literal> to
<literal>DatabaseNamespaceParser</literal></para>
<para>Renamed/Moved <literal>Remoting.RemotingConfigParser</literal> to
<literal>Remoting.Config.RemotingNamespaceParser</literal><parameter></parameter></para>
<para>A typical registration of custom parsers within your configuration
file looks like this</para>
<programlisting language="myxml">&lt;configuration&gt;
&lt;configSections&gt;
&lt;sectionGroup name="spring"&gt;
&lt;section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/&gt;
&lt;/sectionGroup&gt;
&lt;/configSections&gt;
&lt;spring&gt;
&lt;parsers&gt;
&lt;parser type="Spring.Aop.Config.AopNamespaceParser, Spring.Aop" /&gt;
&lt;parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" /&gt;
&lt;parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" /&gt;
&lt;/parsers&gt;
&lt;/spring&gt;</programlisting>
<para>A manual registration would look like this</para>
<programlisting language="csharp">NamespaceParserRegistry.RegisterParser(typeof(AopNamespaceParser));
NamespaceParserRegistry.RegisterParser(typeof(DatabaseNamespaceParser));
NamespaceParserRegistry.RegisterParser(typeof(TxNamespaceParser));
</programlisting>
</sect2>
<sect2>
<title>Core</title>
<para>Moved Spring.Util.DynamicReflection to
Spring.Reflection.Dynamic</para>
<para>Moved TypeRegistry and related classes from Spring.Context.Support
to Spring.Core.TypeResolution</para>
<para>Moved Spring.Objects.TypeConverters to
Spring.Core.TypeConvesion</para>
</sect2>
<sect2>
<title>Web</title>
<para>Moved Spring.Web.Validation to Spring.Web.UI.Validation</para>
</sect2>
<sect2>
<title>Data</title>
<para>Changed schema to use 'provider' instead of 'dbProvider' element,
usage is now &lt;db:provider ... /&gt; and not &lt;db:dbProvider
.../&gt;</para>
<para>Moved TransactionTemplate, TransactionDelegate and
ITransactionCallback from Spring.Data to Spring.Data.Support</para>
<para>Moved AdoTemplate, AdoAccessor, AdoDaoSupport,
RowMapperResultSetExtractor from Spring.Data to Spring.Data.Core</para>
<para>Moved AdoPlatformTransactionManager,
ServiceDomainPlatformTransactionManager, and TxScopeTransactionManager
from Spring.Data to Spring.Data.Core</para>
</sect2>
</sect1>
<sect1>
<title>Support for .NET 4</title>
<para>Beginning with the 1.3.1 release of Spring.NET, initial
compatibility with the .NET 4 Common Language Runtime (CLR) is provided
via the .NET 4 Framework's support for In-Process Side-by-Side deployment
of .NET assemblies. This approach is typically refered to as
<emphasis>In-Proc SxS</emphasis>.</para>
<note>
<para>For more information on the In-Process Side-by-Side support
introduced into the .NET 4 Framework, see the MSDN Magazine article
located here:
<uri>http://msdn.microsoft.com/en-us/magazine/ee819091.aspx</uri>
</para>
</note>
<para><emphasis>In-Prox SxS</emphasis> permits applicaitons that target
the .NET 4 Framework (and later) to reference and execute assemblies that
target earlier versions of the .NET Framework CLR transparently within the
same process space. By using this approach, Spring.NET ensures maximum
backwards-compatibility with prior .NET Framework releases.</para>
<para>Subsequent releases of Spring.NET will be compiled to target the
.NET 4 Framework directly but during this transition period where
significant users are using Spring.NET to target pre-.NET 4 applications
while at the same time other users are beginning to target the .NET 4
Framework CLR, supporting <emphasis>In-Proc SxS</emphasis> will permit
maximum flexibility for Spring.NET users.</para>
</sect1>
</chapter>