Showing posts with label tools. Show all posts
Showing posts with label tools. Show all posts

Tuesday, July 10, 2007

Visual Studio Taking an Idea From Eclipse?

Microsoft is now pushing Visual Studio as a full-featured tools platform, with benefits similar to those provided by Eclipse. Looking at the main landing page for Visual Studio 2008 you'll see a very prominent reference to the upcoming Visual Studio 2008 Shell:

Use Visual Studio 2008 Shell as the core foundation for your own software development tools.

Microsoft has always made Visual Studio extensible so 3rd parties can build add-ons and extensions to the IDE that can give developers capabilities that are missing from the the tool set included out of the box. But, it seems like the focus has been more on getting third parties to extend the functionality of Visual Studio than to provide a platform for tools development.

The Eclipse project has similar cababilities for extending existing tools based on Eclipse, but their focus is on providing a rich platform for all tools developers. As a result, the Eclipse platform is widely used for a wide array of non-Microsoft tools.

Cudos to Microsoft. Time will tell how this affects the tools landscape.

Monday, April 18, 2005

Contract-First - How do I do it with today's IDE's?

I am a huge proponent of doing “contract-first” (sometimes called “WSDL-first” or “schema-first”) development of web services. When creating web services as part of a Service Oriented Architecture (SOA), you want to design service oriented interfaces (SOIs) where information is passed to and from your service interface using XML documents. The definition of these SOIs is a contract defined by XML schemas and WSDL. This contract is your public interface to the outside world.

The idea of contract-first design is that instead of creating your implementation classes and then creating WSDL to expose the classes as web services (code-first), you create the WSDL and schemas first and then create the implementation classes to match the defined contract (contract-first). This is the best way to ensure interoperability and decoupling from service implementations.

The current IDE’s tend to provide good support of contract-first development for clients consuming web services. You point them to a WSDL and they create appropriate code (java or .NET) to consume the web service. Unfortunately, when it comes to creating web services that will be consumed by others, these same tools seem to assume that you have an existing implementation that you want to expose as a web service. It’s not that contract-first is not supported for exposing web services, it’s just that it’s not supported as seamlessly as code-first. I’m including some links to articles that cover following the contract-first approach using existing tools. The articles I’m including are mostly from a .NET perspective, but if you google “contract first” you can find a lot of people talking about this topic on both the .NET and java platforms.

Here is an article from Microsoft describing doing “Contract First” web service development with Visual Studio .NET and Eclipse:
Contract First Web Services Interoperability between Microsoft .NET and IBM WebSphere

Here is another article from MSDN magazine:
Contract-First Service Development

Here is an article from MSDN magazine that talks about enhancements in Visual Studio 2005 that help to support this type of development:
Developing .NET Web Services with Beta 2

Finally, here is a link to Microsoft’s main web services interop web site:
Web Services Developer Center: Web Services Interoperability

I don't want to end without mentioning Aaron Skonnard, who's the author of some of these articles and one of the biggest proponents of getting better tool support for contract-first development.