http://geoffwebbercross.blogspot.com/

Project Description
This is a code generation tool for building Visual Studio 2010 Bdc Models for web services. It allows the use of complex service methods which aren't supported by SharePoint Designer.

The application is written in WPF 4 using an MVVM pattern.

BDC Model Builder was originally written because the SharePoint designer BDC functionality could not handle complex web services with deep return and parameter objects such as requests and responses with container objects and I wanted a way of easily integrating web services in a consistent manner without having to manually produce VS BDC models.

If a service contains methods like this:

[OperationContract]
BusinessDataEntity GetMountainBikesComplex();

Which return complex types like this:

namespace WebberCross.BdcModelBuilder.WcfBikeService
{
    [DataContract]
    public class BusinessDataEntity
    {
        private int _id = 0;
        private MountainBike _bike = null;
        private List<MountainBike> _bikes = null;

        [DataMember]
        public int ID
        {
            get { return this._id; }
            set { this._id = value; }
        }

        [DataMember]
        public MountainBike Bike
        {
            get { return this._bike; }
            set { this._bike = value; }
        }

        [DataMember]
        public List<MountainBike> Bikes
        {
            get { return this._bikes; }
            set { this._bikes = value; }
        }
    }
}


SharePoint Designer can't use them because it doesn't support nested objects or worse still if the business object contains multiple nested levels or multiple collections and entities, the user can't pick which they want to use; the BDC Model Builder allows this functionaily.

The complex method will appear like this in SP Designer:

The BDC Model Builder has a nice UI which reflects the target DLL and allows the user to pick an entity then the CRUD methods required for the model. C# and BDCM XML is generated for the entity, BDCM and service classes which are written to a package.

Features:

  • UI with TreeView pickers for selecting required Model options.
  • BDC Model Builder configurations saved/loaded from BDCMB format file
  • WCF service support
  • ASMX service support
  • Complex business object support
  • Nullable types automatically parsed to and from non-nullable types
  • Byte array fields automatically parsed to and from strings (useful for time stamped entities)
  • Generates fully formed Visual Studio 2010 BDC Models
  • Error handling feature (for user implementation)

To get started with this project before the documentation is finished, download the source and install the latest msi installer. The best thing to do is to open the template or main .bdcmb file from the source with BdcModelBuilder.exe and see how a working model is implemented. The template should form the basis of a new implementation.

Screen1.png

A shim assembly containing service references is reflected and exposed through the 'Assembly Tree' viewer. This allows all the necessary parts of the shim to be selected for a model.

tv1.png

Installed Model:

SP1.png

Last edited Jun 9, 2011 at 10:47 PM by geoff_cross, version 18