Santosh Benjamin’s Weblog

September 1, 2009

WSCF.blue Beta-2

Filed under: Automation, Tools, WCF, WSCF — santoshbenjamin @ 5:39 pm

Beta-2 of WSCF.blue is now available.

The big feature of this new beta is the standalone Data Contract Generation and we have also put in some other fixes and addressed some outstanding issues (as well as rolling up fixes since the last beta).

The feature list is as follows. The “More Information” links point to posts on Alex’s blog with screenshots and lots of details.

  • The Generate Data Contract Code feature is now available and supports the selection of multiple XSD/WSDL source files. (More Information)
  • When the Enable WSDL Endpoint option is chosen a reference to the Thinktecture.ServiceModel.Extensions.Metadata.dll assembly is automatically added.
  • Support for VB.NET has been added to the code generation.
  • You can choose if operation methods on the service class will throw a NotImplementedException, call an implementation method in a partial class, or will be defined as abstract methods. (More Information)
  • Force the SOAP actions (Action and ReplyAction) applied to each operation contract follow the standard WCF format: <namespace>/<service>/<operation>[Response]

Hope you find this release useful. As always , keep the feedback and suggestions rolling in. Enjoy  :-)

July 25, 2009

MockingBird@SBUG

Filed under: Automation, Biztalk, Mock Objects, Testing, Tools — Tags: , , — santoshbenjamin @ 1:31 pm

The UK SOA BPM User Group (SBUG) is holding a series of mini-meetings over the next few months. These are short live meetings / webcasts. I’m delighted to be presenting my web-service mocking tool , MockingBird at the next mini-meeting to be held on the 29th July.

I will be discussing how MockingBird assists and simplifies integration testing with web services, how it is used in Biztalk and non Biztalk scenarios, how the system works, how it can be extended and the roadmap.

Please check the event link on the SBUG site for details.  All are welcome to join (no membership needed). Hope to see a good turnout :-)

July 4, 2009

WSCF blue: Beta-1

Filed under: Automation, Tools, WCF — Tags: , — santoshbenjamin @ 12:22 am

WSCF-blue, the WCF successor to the popular WSCF (Web Services Contract First) tool is now available in its first beta release at CodePlex. I’m delighted to be a part of the team working alongside guys like Christian Weyer, Buddhike De Silva, Edward Bakker and Alex Meyer-Gleaves.

If you aren’t familar with the tool, basically WSCF provides tooling to approach web service development in a contract first manner, specifically WSDL/XSD first rather than code-first. WSDL is often the favored ‘neutral’ ground for specifications to be agreed on in large projects where interoperability is key between heterogenous technologies. It is also common to find that the WSDL for web services is the first thing to be discussed between an application development team and a service provider (in any development / integration project). So , having a tool that allows you to work with WSDL and XSD in a consistent, reliable manner without getting bogged down in the intricacies of WSDL and associated specifications is a must. WSCF aims to address the lack of tooling in this space (especially in the .NET world).

WSCF is a Visual Studio 2008 add-in that provides the following features

  • A WSDL Wizard that allows the developer to step through the creation of a WSDL from one or more XSDs
  • A DataContract Generator (similar to XSD.exe, XSDObjectGen.exe and Svcutil.exe) that generates the . NET equivalent of the XSD types
  • A Service/endpoint stub (SVC) generator and
  • A client proxy generator.

In the current beta release, the stand-alone Data Contract generation option is NOT available, but that is something we will be addressing as a priority and should be available in the RTM release. However,  data contracts are generated as part of the service side stubs and client side stubs.

You can either install the MSI which makes the add-in available for an open solution (as the context menu for an XSD or WSDL) or if you are using the source version, you can debug the add-in directly using F5 which launches VS in the experimental hive as is normal for all add-ins.

I have been an regular user of WSCF since its ASMX days and found the quality of the code generated to be very high. We do hope you find that this tool goes some way toward addressing your needs with WCF development and are all keen to get feedback, bug reports and feature suggestions. With the number of project templates that are available for WCF (Web Site, Web Site -Remote IIS, WCF Class Library, WCF Service Application) and the rules that some of them have around structure, it has been quite a bit of work to get the features such as SVC generation sorted and I’m pretty sure that there will be other scenarios you are involved with where the tool needs improvement or enhancements.

Here are some other posts on the beta release by the other members of the team

Keep an eye on the CodePlex space for information relating to the roadmap etc. Do check it out and let us know what you think of it.

June 4, 2009

Blueprints – Down but not out

Filed under: Architecture, Automation, Blueprints, DSL, Factories — Tags: , , , , — santoshbenjamin @ 10:32 pm

Some of you may have noticed that the Microsoft Blueprints project has gone quiet and the site taken down from CodePlex and MSDN. I had written a couple of posts about Blueprints in the past and how it was eventually going to take over from GAT/GAX.

Anyway, if you are wondering what’s happening, the answer is that we are making some changes around Blueprints. The Blueprints project was an important incubation whose purpose was to explore process guidance and automation. They helped us (that is, the product teams involved in developing this) gain a better understanding of the requirements for this kind of technology through customer and partner feedback. The reason we took down the external projects was to focus the incubation internally and we are looking at taking this forward so we can support process guidance and automation in a manner that is aligned with VS Team System product direction.

As users of VSTS know, the suite is not based around any particular methodology and can support a range of project methodologies ranging from very lightweight to very formal and process driven. The tooling supports this range of methodologies. Software Factories are an important development discipline which we support and as Jezz Santos  and Edward Bakker  and other thought leaders have written, it is possible to approach factory development itself in agile or very formal ways and its quite often found that a rapid iterative approach works very well with developing factories That said, VS should and will support factory development going forward in a manner thats agnostic of methodology. Exactly how this manifests itself in the product suite remains to be seen but having looked at the features that are available already in Dev10 Beta-1 in the VS Team Architect edition, we can be sure that it will be of high quality.

GAT/GAX will be available in VS10 and the DSL Toolkit has been improved quite a bit and aligns well with the new “Extensions” model so if you havent checked out the latest developnments in the DSL Toolkit space, I would encourage you to take a look. Stuart Kent has a nice video on the new deployment method for DSL Toolkit based packages.

I will post more on this topic when there is more information that I can share and especially when there are bits available to play with. Watch this space :-) .

February 3, 2009

VS2008 – Generate XML Instances

Filed under: Automation, Coding, MockingBird Diary, Testing — santoshbenjamin @ 12:07 pm

It’s funny how we take things for granted. As Biztalk developers, we get used to the idea of being able to right click on a schema and generate an instance . In non Biztalk projects however, this couldnt be done. Till now.

I was playing around with writing some XML Instance Generation for MockingBird to finish off the next release and spent a lot of time poking around the Schema Object Model etc. While doing that, I quite accidentally opened the XML Schema Explorer tool window. Now I had seen that in the past and navigated through some types etc (and thinking it was just a simple add-on to the old VS i kind of took it for granted and didnt investigate further). 

What I did not realize is that for Elements, you can generate sample instances.  Check out the following screenshot.

Generate Sample XML

Generate Sample XML

As you can see from the tree behind the popup window, elements are colored differently as well.

This is a great time-saver. I think this can be done only in VS2008 SP1.

Unfortunately, the downside is that there is no API into this tool-window (or rather, the library behind it), so we cannot programmatically generate instances in bulk. Also it will not open WSDL files, so you have to extract the XSD from the WSDL (if not already available separately) in order to work with this tool window. But i think its cool as we no longer have to depend on third party XML editors to get sample instances.

By the way, if you are looking for help in this area (of instance generation) , there is some sample code available in the MSDN article, Generating XML Documents from Schemas which is quite well written. While there are license restrictions on modification/ derivation (and then redistribution), plain redistribution without modification, I gather, is permitted, so the easiest thing for MockingBird would be to just redistribute the binaries of that sample with the GUI. No sense in reinventing the wheel.

In terms of the Biztalk Schema Editor and its instance generation, if any Biztalk folks know if there’s a programmatic way of doing that, please let me know  (Update: I mean specifically for 2006 and R2). I did a lot of digging around in the Developer Tools folder for an assembly that would allow it, but all the classes were internal. I did come across one public class finally (dont remember the assembly off the top of my head now), which had a public method but required some interface to be passed in but didnt work when i tried calling it from custom code. It would be useful to do this programmatically so we can generate instances in bulk for  a given set of schemas (useful when updating instances to correspond to schema changes etc). So, if you’ve managed to do this and are happy to share info then drop me a line.

June 12, 2008

Biztalk Solution Factory

Filed under: Automation, Biztalk, Factories — Tags: , — santoshbenjamin @ 10:50 pm

Jean-Paul Smit has released a Biztalk Solution Factory on Codeplex. His post about it is here. I joined up on another project , the Biztalk Application Factory a while ago but have been so snowed under with project work that i couldnt really get any contributions there up and running. Jean-Paul also mentions the work done on BASF and Dick Dijkstra who coordinated BASF is also part of this.

According to the blurb on Jean-Pauls blog, the BSF does the following

  • Create BizTalk multi project solution structures using a wizard
  • Create BizTalk single project solution, grouping artifacts into folders, using a wizard
  • Guidance for adding Schemas to a project
  • Guidance for adding Maps to a project
  • Guidance for adding Orchestrations to a project
  • Guidance for adding pipelines to a project

He’s also included source code and documentation. The doc has some screenshots of how to setup and whats available once its setup. It looks really good. I was planning on migrating my Biztalk VS Template into a GAX package and this looks like it already does the trick so i may just use this. It should also be interesting to see how it could be customized in terms of setting up project namespaces etc which my ApplySettings AddIn does. One thing i was going to do was extend my template with a wizard to allow for solutions with multiple orchestration projects and/or multiple schema projects and this tool currently does not do that but then again, that kind of partitioning may only come later in development. Still it would be a useful checkpoint when designing a solution to think about whether we need such flexibility.

Anyway, all in all a promising start. What are you waiting for? Go on and check it out !! :-)

April 11, 2008

BizUnitDesigner and a Biztalk Testing Series

Filed under: Automation, BizUnit, Biztalk — Tags: , , — santoshbenjamin @ 9:34 pm

This post is mainly to call out two new resources that i just came across.

The first one is BizUnitDesigner. Finally someone has taken the plunge and written a GUI for BizUnit, at least, one that is publicly available. (I’ve heard rumors of IPR protected toolsets which obviously havent made the public domain). That was one of the key things on my TO-DO list . You know, sometimes procrastination can be good! Someone else takes the initiative. :-) I recently started “interviewing” my colleagues to find out what their idea of the ultimate BizUnit GUI would be. I shall compile their responses and share it. I also had some work items for the GUI on my Extensions roadmap on the codeplex workspace. The feedback was going to inform my next toolkit . Since we already have this project available, theres no sense in starting another one. I’ve asked the coordinator if i could join and contribute to this project. At this time it works for BizUnit 2.x and it should be interesting to see how it will work with BizUnit 3.0 (which is still in beta) where Kevin has changed the object model and made it easier to generate BizUnit test cases (and included a tool to generate BizUnit test cases from Excel).

The second one is Michael Stephenson’s series on Biztalk Testing. Michael has already written up over half a dozen articles starting with this and it looks like a really good resource. Some of my colleagues have been doing some interesting work in the way they have been using BizUnit and i have been planning to write them up so i find these posts to be a spur in that direction. We do need a lot of sharing in the area of Biztalk testing and using BizUnit. Here’s hoping we’ll get some good info on practices out into the community.

Check out those links. Enjoy!!

 

January 26, 2008

New Year, New Tools

Filed under: Automation, BizUnit, Factories — Tags: , , , — santoshbenjamin @ 8:51 pm

Happy New Year!! Yeah, i know its kinda late for that but i only got back last weekend from a nice long holiday back home in India so as far as i am concerned the year is just starting.

It was heartening for me to see that BizUnitExtensions has clocked over 250 downloads and the downloads for the VSTemplates and AddIns are approaching the century mark. I promised before i went on hols that there would be new release of Extensions when i got back and i havent forgotten. There will be one soon. My colleagues have added more extensions and are keen to share them with the rest of the community so I need to add the code in to the restructured library. It shouldnt take long but you never know. I opened VS the other day and promptly closed it, unable to think of anything useful to code as I’m currently wearing my Microsoft Word power user hat. Bear with me for a little while till I overcome my holiday hangover and coding inertia.

I did come across a couple of really nice free tools namely a Flash Saving Plugin for IE and a SWF Opener (and SWF Cache Viewer) all available from BrowserTools. I went hunting for a flash video download tool cos theres lots of good tech videos on many sites but all in flash format and not being able to save them and view them at leisure is a bit of a drag. I found some shareware flash rippers too, but this plugin seems to be the easiest to use and the quality of the original file is more or less well preserved.

I’m starting to look more closely at the Clarius MetaFactory now. I had a look at it earlier and it seemed to be a pretty neat piece of tooling and it does seem to be the easiest entry point into the world of GAT and Factories. I have to get started in migrating my VSTemplates and AddIns into full fledged guidance packages and i have a feeling its going to be an indispensable tool for that. I’ll be writing a series on VSX – (Visual Studio Extensibility) very soon to document my foray into this area.

More soon.

November 13, 2007

Oslo and the two edged sword

Filed under: Architecture, Automation, Biztalk — Tags: , , — santoshbenjamin @ 10:11 pm

Gar Mac Criosta has a series of posts on the SOA/BPM conference and one of them deals with the orchestration generation that was demo-ed. He makes a really good point about this being useful and dangerous at the same time.

As I commented on his post, IMO, this was always a problem with the ODBA. Business Analysts do not have enough tech knowledge to design orchestrations and we shouldnt be trying to flatter them into thinking they do. However, some biztalk architects use the ODBA for the design planning meetings to get consensus on the orchestration patterns, key paths through the process etc which makes more sense than having a BA use the tool. Thats why Oslo tools could be a double edged sword. Being able to generate orchestrations from models that we can quickly draw when working through designs with colleagues can be useful to get the solution structure in place. Turning that into production code is entirely a different matter and having a business person make that decision is to me, a definite no-no. Or, as that new dodgy song goes “No-No-No”.

What do the rest of you think? Have you used ODBA a lot? Have you managed to get the BA’s doing things at the right level of detail?

October 6, 2007

Orcas Team Architect and Biztalk

Filed under: Architecture, Automation, Biztalk, Factories, Uncategorized — Tags: , , — santoshbenjamin @ 10:21 pm

I have always been fascinated by the VSTS Team Architect and the potential the design surfaces have.  I kinda looked on from the sidelines at VS2005 from TechEd 2004 onwards cos I was still stuck in VS2003 land and actually that remained the case till the middle of this year. So although I installed the stuff on VPC’s and tried playing around with things I never got very far, but I did read enough TechNotes and followed along with the newsgroups to gather that while the Application Designer promised a lot, it probably didn’t go far enough or at least, the extension and customization wasn’t for the faint hearted.

I was also disappointed with the lack of support for Biztalk. Sure, there is a prototype for an external Biztalk webservice, but thats ok if you are an ordinary app trying to connect to a Biztalk service. Actually, that also raises an important question. Why have a prototype for a “Biztalk”  web service as though Biztalk web services are any different from ordinary services? What does it matter whats behind the webservice? If you are a Biztalk developer, then a prototype which helps you implement that web service makes sense because you may choose to publish  a schema as a web service or a orchestration, but from the consumer standpoint, its all the same but the prototype doesnt do anything for the BTS developer (If anyone knows the rationale behind that prototype, drop me a line. I’d like to know what they were thinking of when they designed it). Since there wasn’t much Biztalk there, I left it without going any further. However automating Biztalk development and deployment is my idea of development nirvana so I have been looking at various options and i have written some posts on my earlier DNJ blog about these topics.

But, back to the present, I’ve been reading up on the future of VSTS and the features in Orcas, Rosario, Hawaii etc (all code names for the next releases of VS and VSTS). I came across the VS Team Architect blog and I was particularly taken with the features such as Top Down System Design and the Conform to WSDL. The enhancements to Importing & Exporting Custom Prototypes also looks like a great addition. I dashed off a note to the Team Architect team (and also one to Marty Waz) to quiz them on the level of support for Biztalk and what plans they have in that area. I also downloaded Beta 2 and will get cracking on investigating these features as soon as possible.

I think that Biztalk could do with more GUI’s and wizards. This will definitely make it more easy to use and lower the steep learning curve the product currently has. When you are running a team with vastly different skill levels, you cant have enough of automation. No amount of documenting your “standard patterns” helps when you are trying to get everyone at a common level and meet tight deadlines. Automation is definitely no silver bullet, but its a huge bonus for the harried architect.

I have grumbled many times in the past that the Solution Designer promised for the “vNext” never materialized and there’s absolutely no info on whether thats completely dead or if we can expect something in the next version (perhaps in 2010)? I dislike the lack of support in BTS for contract first development or to be more specific WSDL first development. A lot of the implementations I do now require a WSDL to be defined first with the third parties and then for development to proceed on that basis. But there is no out of the box feature for Biztalk to do this. Aaron Skonnard wrote an article in MSDN magazine a long time ago about contract first development, but the options to get Biztalk to conform to a WSDL are messy to say the least. There’s a BPEL import wizard but no WSDL import wizard. Why? Surely more developers care about WSDL than about BPEL!! I know they position the product as fully supporting BPEL4WS + some extensions and so the BPEL import will score some points there, but why not a WSDL import?

Its this area where I think that some integration between Biztalk and the Orcas Team Architect would be very powerful. I think it would be liked a dream come true to be able to feed a WSDL into a wizard and choose if we want a schema based web service or orchestration based web service and have it generate the orchestration. Of course it cant generate the “business logic” of the orchestration but it could generate the Facade which links to the ASMX or SVC interface and contains the correct handling of incoming messages, validations, returning of SOAP faults etc. The “inner” orchestrations can be hand coded or a stub could be created where the facade either calls the inner orchestration directly or through the message box or any other mechanism.

The TopDown system design would also be a great feature and the prototype import/export could easily link in with Jon Flanders Pattern Wizards tool (with a prototype encapsulating a project template or one of the pattern items).

We could go even further. How about an adapter factory that can generate WCF based adapters or a regular one? At this point currently we have an adapter framework & some wizards, but then there are also some adapter base classes to use (and there’s some pretty detailed guidance in a whitepaper on writing transactional adapters) and we have to plow through numerous options and figure out the correct interfaces to implement. After that we have to consider how to link in with SSO and all that. This area is ripe for a guidance package.

Also consider the amount of guidance in the end to end scenarios. Getting them all up and running and wading through the docs and code is not a trivial effort, but making all that guidance executable would be such a bonus.

I think a Biztalk solution software factory makes a lot of sense and when you look at the kinds of stuff coming out from P&P (the service factory, the new modeling edition of the service factory), a Biztalk offering would be really cool and would be able to leverage the advances in GAT, DSLs etc. Maybe a community effort to build something like this would be worth exploring. Biztalk, having such a wide range of applications, would probably need more than one factory (SOA, BPM, CBR etc + some horizontal facilities- adapters, pipelines, deployment etc) and a factory to build solutions on top of the ESB toolkit would also be great. These kind of things would take Biztalk usability far beyond its competitors.

What do you think? would this be worth starting up as a community effort? let me know. I came across this post from someone who is working on something similar and have pinged him to enquire if thats a private effort or something intended to be bigger. Lets see what comes up.

Blog at WordPress.com.