Questions for v3b117

The window of opportunity for this feedback to influence the final release is quickly closing. We really want to hear your feedback - so please provide it as soon as possible. Getting the binary installer done was a lot of work, but we thought it was important to get your feedback. We're looking forward to it. Thanks!
  1. Please evaluate how we import existing WSDLs and XSDs and the code generated. There are some limitations, but we think we're able to address most scenarios.
  2. Use the host designer. We still have more work to do on it, but there should be plenty there for you to get a sense of how it will work. Does using it seem natural? Are there features you expect it to have?

Last edited Aug 14, 2007 at 6:23 PM by donsmith, version 1

Comments

ccullum Oct 23, 2007 at 11:31 PM 
Ex 1:subSec 2: You list a known issue that "Services Factory" is in the root of the New Project wizard. I am not seeing that. Also, my guidance packages lists "Service Factory: Modeling Edition" already, so it looks like you already took care of this issue.

Ex 2:subSec 2: You say to "Choose ServiceModel", there is a "Service Contract Model" to choose. Also, I choos Service Contract Model, put MaterialMgmt as the Model Name, but Finish button does not enable itself. I actually have to type something in to the XML Namespace to get the Finish button to enable, just clicking in the box does not work.

Ex 2: subSec 5: When right clicking on Faults, I get the option to "Add new Data Contract Fault" not "Add new Fault".

Ex 2: subSec 7: In the toolbox, I have a "Message" or "Service Contract", but not a "Message Contract".

Ex 2: subSec 16: In the toolbox, I have a "XSD Message" or "Service Contract", but not a "XSD Message Contract". I choose "XSD Message" and name it DemandResponse, but I do not see a "Parts" label. When I right click on the item, I get "Collapse", "Delete", "Validate", "Validate All". I am unable to fullfil the second part of this sub section.
At this point, I am stuck and cannot continue.

drudolph Sep 19, 2007 at 4:54 PM 
1. Use drop-down for Type property of data members when they are primitive data types and allow user to type in. Dialog is too much work.

2. Create shortcuts (buttons or links) on the Data Contract symbol for adding data members, ex. Add Primitive Data Type

3. Can we copy & paste model elements? Tool would have use a unique name for the pasted element, DataContract2.

4. I can't seem to create a Message Contract member that is an array. Even if I select a collection data contract type.

5. Can you provide a better mechanism for order data contract members for the specified implementation technology? May automatically number members when implementation technology is selected. Reordering functionality would be good to.

drudolph Sep 15, 2007 at 6:22 PM 
1. As for modeling whether a message contract is a "Request" message or "Response" message for an operation, I would rather see the act of modeling this association be invoked from the operation istead of the Toolbox as it is now. Perhaps in the Properties window for the operation could contains "Request" and "Response" properties. Each has a drop-down containing a list of Message Contracts in the model. By selecting a message the model automatically connects the operation and message in the designer (with a more intuitive connector than the generic symbol).

SteveCa Aug 22, 2007 at 7:33 PM 
1. I very much like the WSDL import feature... especially once the Factory supports choosing an implementation after the import.

I notice that in the Service Contract, for the IIVendorGatewayService interface, that the following attribute is applied, specifying conformance with WS-I Basic profile:
[ASMX::WebServiceBinding(ConformsTo = ASMX::WsiProfiles.BasicProfile1_1, EmitConformanceClaims = true, Name = "IVendorGatewayService")]

Will this attribute always be applied during the code generation? Or is there validation inside the Factory to insure that the attribute is applied only if the imported WSDL is WS-I compliant? (If the attribute is automatically applied, am I right that it may not be safe to assume that the interface is WS-I compliant?)

I notice that the import automatically creates the XSD file, and that the generated code (in the DataTypes project) uses XMLSerializer to support serialization/deserialization. I think it would be very useful if the Factory could perform some validation of the XSD on import to see if the data types are compliant with the WCF DataContractSerializer. If so, perhaps you could import the XSD into a DataContract model? This would be very useful in migrating services to WCF, where helping developers move towards using DataContractSerializer (whenever possible) is a good thing.

The same is also true for XSD inport... it would be useful if the Factory could validate whether the XSD is compliant with the WCF DataContractSerializer, and if so, this might allow you to import the XSD into a DataContract model. I believe that SvcUtil.exe provides this type of validation today: If you pass a complex XML Schema to svcutil.exe (one that does not meet the [DataContract] mapping constraints), it will warn you that the schema doesn't meet the [DataContract] constraints, and recommends using XSD.exe /XmlSerializer.

Another approach might be to offer an "Import DataContract from XSD" capability in the DataContract designer - this could validate an XSD (or select a Node within the XSD) for DataContractSerializer compliance, and if compliant, generate the DataContract model.

2. I like the Host Designer - yes, it feels very natural to use it. One suggestion: it would be nice if the "Service" shape displayed its Service Contract Type, similar to the way that a DataContract lists its DataMembers. It would also be very natural to be able to right-click the Service Shape and "Add Service Contract Type"...

Where will the Security Guidance packages be applied - in the Host Designer model? It's not important so important that the Security Guidance be modeled graphically, but it seems appropriate that the Security Guidance be applied at this level.

If so, perhaps the Security Guidance could be applied to the Endpoint shape? That way a given Service Contract could support multiple Endpoints, and different security settings could be applied to each Endpoint?

sujit Aug 16, 2007 at 6:29 PM 
1. The import functionality for XSDs was really good and useful. For WSDL - I got some error message when trying to import a WSDL - something related to Soap12 - I've posted it to the discussion forum.

2. The host designer looks very promising and gives a nice clear picture how to deploy the app. In most firms there would be a need to extend or customize the designer (both the host and the client proxy). Is it possible to have an extensibility walkthrough for extending this designer?