Considerations for Reverse-Engineering in Existing Solutions 

To make Application Designer and System Designer available for defining applications and designing application systems in an existing solution, you must add an application diagram to the solution. Adding an application diagram to the solution reverse-engineers the solution and adds the corresponding application definitions to the application diagram for appropriate projects in the solution. For more information, see How to: Add Application Diagrams to Solutions.

Note

If a solution does not contain an application diagram, adding a system diagram will also add an application diagram and reverse-engineer the solution. For more information, see How to: Add System Diagrams to Solutions.

The following sections describe changes that reverse-engineer items in existing solutions as well as items not supported for reverse-engineering:

  • Reverse-Engineering in Existing Solutions

  • Items Not Supported for Reverse-Engineering

Reverse-Engineering in Existing Solutions

After adding an application diagram to the solution, certain changes that you make to the solution or to projects in the solution are reverse-engineered onto the diagram while the diagram is open or when it is reopened:

  • Add a project that corresponds to an application type supported on the application diagram to the solution.

    You can reverse-engineer any project that corresponds to an application type that is supported on the application diagram. This procedure displays the corresponding application definition on the application diagram. However, the following considerations apply:

    • Application Designer does not support the design or direct representation of class libraries on the application diagram.

      Tip

      You can use an ASP.NET Web service as a facade for the functionality implemented by a class library. This makes it possible to represent the interaction between a class library referenced by an ASP.NET application and applications that support implementation on the application diagram. For more information, see How to: Reference Class Libraries from Applications on Application Diagrams. You can also visualize Web references to Web services and custom Web service client proxy classes in class libraries as Web service consumer endpoints by adding the appropriate entries to the consumer application's configuration file. For more information, see Web References and Custom Web Service Client Proxy Classes in Class Libraries.

    • Web site projects based on FTP or Microsoft SharePoint are not supported. Only Web site projects that are Internet Information Services (IIS) or file system-based are supported.

    • For ASP.NET Web projects, if insufficient privileges have been granted to access the IIS metabase, these projects cannot be reverse-engineered on the application diagram.

    • Reverse-engineering or opening a Web service project enabled with Web Services Enhancement (WSE) settings from within a solution containing an application diagram will lock the diagram if WSE is not installed.

      Tip

      To resolve this condition, close the diagram, install WSE, and then reopen the diagram. For more information, see Troubleshooting Application Diagrams.

    For more information, see the following topics:

  • Add a Web service to the project associated with an ASP.NET application on the diagram.

    This procedure adds a Web service provider endpoint to the corresponding ASP.NET application on the application diagram. This procedure also adds an .asmx file and class file for the Web service to the ASP.NET application project in Solution Explorer. For more information, see Overview of ASP.NET Applications on Application Diagrams.

  • Add a Web method to a Web service class file associated with an ASP.NET application project in the solution.

    This procedure adds an operation to the corresponding Web service provider endpoint on the ASP.NET application definition. You can then view or edit the operation in the Web Service Details window.

    Note

    For Visual J#, undefined generic types that are specified with fully-qualified names in the Web service class file will be reverse-engineered in the Web Service Details window without the generic portions of those names. For example, a generic type specified as Namespace.Class<GenericType> in the Web service class file will appear as Namespace.Class in the Web Service Details window. When you go to define those types in their class files, these types will also appear without the generic portions in their class files. If you reverse-engineer a type specified as Class<GenericType> in the Web service class file, that type will be reverse-engineered with its generic portion in the Web Service Details window. However, as Visual J# does not permit the authoring of generic types, you will not be able to define types that appear with their generic portions in the Web Service Details window if the application is implemented.

    For more information, see the following topics:

  • Add, change, or delete Web method, Web service, or WSDL-related attributes or properties in the Web service class file behind a Web service provider endpoint on an ASP.NET application.

    This procedure modifies the corresponding operation and any appropriate properties in the Web Service Details window. For more information, see How to: Edit Operations for ASP.NET Web Services.

  • Add, edit, or delete entries to application configuration files.

    Performing these actions modifies settings stored in System Definition Model (SDM) documents and the Settings and Constraints Editor, which is updated appropriately. For more information, see Overview of the System Definition Model (SDM) and Settings and Constraints Editor.

  • Add entries to the configuration file in an application project for custom Web service client proxy classes or for class libraries containing Web references and custom Web service client proxy classes.

    A custom Web service client proxy class is a manually-created proxy class that is not associated with a Web reference in the application project. A Web service consumer endpoint for each Web reference or custom proxy class appears on the corresponding application definition only when the appropriate entries are added to the application's configuration file.

    Note

    If the appropriate Web service provider endpoints exist on the application diagram, connections appear between the Web service consumer endpoints and provider endpoints. Otherwise, new external Web services appear and are connected to the Web service consumer endpoints.

    For more information, see the following topics:

  • Add a Web reference to an application project in the solution.

    Depending on whether the application is of a type supported on the application diagram and the Web service URL specified, adding a Web reference to the application project connects the application to an existing ASP.NET Web service or to a new or existing external Web service.

    For more information, see the following topics:

  • Add a database connection entry to an application's configuration file.

    For example, you can add a database connection entry to the Web.config file for an ASP.NET application or the App.config file for a Microsoft Windows or Office application.

    This procedure adds a database consumer endpoint to the application on the application diagram. You can then connect that consumer endpoint to an existing external database or a new external database that you add to the diagram. You can view or edit the database connection settings from the database consumer endpoint. For more information, see How to: Configure Connections to External Databases.

Items Not Supported for Reverse-Engineering

Reverse-engineering is limited or not supported for items in the following categories:

  • ASP.NET Web services

    • Web service class definitions defined inline in .asmx files.

      If the Web methods of an ASP.NET Web service are not fully declared by a single class definition in a separate code file or "code-behind" file, the Web Service Details window does not display the corresponding operations. However, you can still visualize the Web service provider endpoint on the ASP.NET application and connect consumer applications to it. However, the Web service provider endpoint will appear with a warning (!) icon. For more information, see Troubleshooting Application Diagrams.

      Note

      The code-behind file is a programming language-specific class file typically located in the application code folder of associated project for the ASP.NET application in Solution Explorer.

    • Web methods that are declared by attributes on the methods of an interface implemented by a Web service class.

      -OR-

      A class extends a base class that defines Web methods.

      In these scenarios, the Web Service Details window shows only those operations corresponding to the Web methods declared in the class referenced by the .asmx file. However, even though all Web operations are not shown, the Web service provider endpoint will be visualized correctly on the ASP.NET application as long as the .asmx file is present in the application project. In addition, connections to the Web service endpoint will also be correctly implemented and configured.

    • Code that defines a Web service containing multiple bindings.

      If code in a code-behind file defines a Web service with Web methods that are associated with different bindings, the Web Service Details window shows only those operations associated with the first binding.

      Note

      Bindings are declared by the WebServiceBinding attribute at the Web service level and used at the Web method level by setting the SoapDocumentMethod or SoapRPCMethod attribute. For more information, see MSDN Library online at https://msdn.microsoft.com.

    • WSDL files containing multiple WSDL bindings or DISCO files referencing multiple Web services.

      Only WSDL files containing single WSDL bindings and DISCO files referencing single Web services are supported.

    For more information, see Overview of ASP.NET Applications on Application Diagrams.

  • Active Template Library (ATL) Server.

  • Web Services Enhancements (WSE) SOAP messaging stack.

For more information, visit MSDN Online.

See Also

Tasks

How to: Define Applications on Application Diagrams
Walkthrough: Defining Applications

Other Resources

Reverse-Engineering in Existing Solutions