如何:将丰富的 Internet 应用程序升级到 Visual Studio 2012

本文档提供升级丰富Internet应用程序(RIA)以下类型的提供命令:

  • Silverlight业务应用程序

  • Silverlight应用程序或Silverlight使用自定义的RIA服务身份验证服务的导航应用程序

  • Windows communication foundation RIA服务类库

  • ASP.NET 动态数据实体 Web 应用程序.

如果在Visual Studio的早期版本创建的RIA,则必须升级应用程序,然后才能打开它。Visual Studio 2012之前。

Silverlight业务应用程序

如果使用 Visual Studio 2012 打开在 Visual Studio 2010 创建适用于SP1 GDR的C#或Visual Basic Silverlight业务应用程序项目,您必须修改项目,因为这取决于 Microsoft SQL Server 2008 Express 实例的身份验证。 由于SQL Server express并非始终可用在 Visual Studio 2012,必须更新项目以使用ASP.NET泛型提供程序。

在Web.Config文件中,修改以下部分使用泛型,提供程序,则代码示例所示:

连接字符串小节:

  <connectionStrings>
    <!--<add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />-->
    <add name="DefaultConnection" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=aspnet-BusinessApplication1.Web-20111129040955;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>

成员资格部分:

  <membership defaultProvider="DefaultMembershipProvider">
      <providers>
        <clear/>
        <!--<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />-->
        <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
      </providers>
  </membership>

roleManager部分:

  <roleManager enabled="true" defaultProvider="DefaultRoleProvider">
      <providers>
        <clear/>
        <!--<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> -->
        <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/>
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/"/>
      </providers>
  </roleManager>

配置文件节

  <profile defaultProvider="DefaultProfileProvider">
      <providers>
        <clear/>
        <!--<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>-->
        <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/>
      </providers>
      <properties>
        <add name="FriendlyName"/>
      </properties>
  </profile>

如果您使用SP1的 Visual Studio 2010 打开在 Visual Studio 2012创建的C#或Visual Basic Silverlight业务应用程序项目,您必须修改项目,因为它依赖于身份验证的泛型提供程序。 您必须更新使用SQL Server express的项目。

在Web.Config文件中,修改以下部分使用SQL Server express,,则代码示例所示:

连接字符串小节:

   <connectionStrings>
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />
    <!--<add name="DefaultConnection" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=aspnet-BusinessApplication1.Web-20111129040955;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>-->
   </connectionStrings>

成员资格部分:

   <membership defaultProvider="AspNetSqlMembershipProvider">
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />
        <!--<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>-->
      </providers>
   </membership>

roleManager部分:

    <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
        <!--<add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/>-->
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/"/>
      </providers>
   </roleManager>

配置文件节:

   <profile defaultProvider="AspNetSqlProfileProvider">
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
        <!--<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/>-->
      </providers>
      <properties>
        <add name="FriendlyName"/>
      </properties>
   </profile>

Silverlight应用程序或Silverlight使用自定义的RIA服务身份验证服务的导航应用程序

除了在升级中 Visual Studio 2010 创建适用于SP1 GDR的Silverlight业务应用程序(oba)本主题前面列出的步骤之外,必须先将成员资格和角色提供程序从中System.Web.Providers.dll的默认提供程序继承。

警告

在 Visual Studio 2010 的web开发服务器不支持Windows身份验证。如果您配置 Visual Studio 2012 项目使用Windows身份验证,必须撤消这些更改,在将项目迁移到 Visual Studio 2010之前。或者,可以保留更改和使用Internet信息服务(IIS)而不是web开发服务器在 Visual Studio 2010上。

Windows communication foundation RIA服务类库

可以使用 Visual Studio 2012 打开C#或Visual Basic WCF RIA服务类在 Visual Studio 2010 创建SP1 GDR,并且不进行任何修改的库项目。

可以使用SP1的 Visual Studio 2010 打开C#或Visual Basic WCF RIA服务类在 Visual Studio 2012 中创建带有以下修改的库项目。 Visual Web Developer 2010 Express 不支持解决方案文件夹,用于WCF RIA服务选件类在 Visual Studio Express 2012 for Web的库项目。 因此,建议您执行以下步骤之一,在迁移该项目。

  • 移动Silverlight选件类库和.NET选件类库项目在解决方案文件夹之外,然后删除该文件夹。

  • 使用 Visual Studio 2010 的版本除了 Visual Web Developer 2010 Express 外打开在 Visual Studio Express 2012 for Web中创建的项目。

ASP.NET 动态数据实体 Web 应用程序

在 Visual Studio 2012不需要修改在 Visual Studio 2010 创建的C#或Visual Basic ASP.NET动态数据实体Web应用程序项目SP1 GDR打开这些文件。

请参见

概念

Visual Studio 2012 兼容性