Generate web service stubs from WSDL

In most web services projects, you wrap existing software in a web service and publish a WSDL to define the services available. But, consider going the other direction -- you've got an existing web service definition, and you want to build sofware to perform to that specification. Here are some ways to get started pdq.

WSDL to .Net

I saw this tip first in a posting in a Joel on Software forum. One of the built-in tools in .Net is WSDL.EXE (look in the SDK folder in your Visual Studio.net install). Normally, this tool is used to generate web reference mapping code so that you can use a web service in your application, but it's equally happy to create "stub" code for you given an existing WSDL.
Notes:

  • Syntax looks something like this: C:Program FilesMicrosoft Visual Studio .NET 2003SDKv1.1Bingenerated>..ws
    l /server /language:vb {your WSDL URL here}

  • type WSDL.EXE with no params to get help
  • the language param can be used to generate code in C#, VB, or VJ#
    (language = CS, VB, JS, VJS)

WSDL to Java

Although I haven't played with this (yet), I'd be remiss if I didn't point out the Apache Axis Project, which does much the same type of thing for Java. See http://ws.apache.org/axis/cpp/winuser-guide.html for a short write-up on getting started.

Google tricks

Knowledge is power. As you can see, I like RSS for news. For on-demand answers, Google's been the best show in town for a few years. Even experienced Google users, though, don't know some of the capabilities available there. You may stumble on these eventually, but wouldn't you rather have your bag of tricks ready when you need it?Google's philosophy has always been to keep its front page neat and clean. They're the anti-Yahoo, and it shows. I've heard there are even people who count the number of words that appear on the front page and ding google if it gets too wordy.

For the most part, this is a good thing. Google is a search engine, and they know it. Stuff that isn't an important part of their main product isn't featured on the front page. The only bad part about this is that it's easy to miss some of the other neat tools available from Google.

To get a sense for what's there, take a look at their about page. It lists some of the most important capabilities, as well as linking to the main "new and exciting" tools. Note the desktop search link -- you've probably heard a lot about that recently.

Don't leave this page without checking out Google labs -- this page shows the stuff that's just about ready for prime time. The scholar search, for instance, looks pretty interesting -- a capability that clearly wasn't there before.

If you run a web site, you'll probably also want to look at the "For Site Owners" topics to learn about getting your site to show up in Google searches.

Happy Googling!

RSS Content Syndication

I'm a news junkie. I've always subscribed to a variety of IT magazines, and over the years, it's really helped me to stay abreast of developments. Staying up to date on what's new can take a lot of work, though. There's a lot of information available if you want to hunt it down, but instead, why not have the information come to you?

Many web sites now offer XML-based content syndication that allows you to see headlines as they appear, and link to content if it looks interesting. The syndication techcnology is known as RSS (really simple syndication), and although it’s been around for a while, it’s just now starting to catch on in a big way.

RSS Background

I first saw RSS three years or so ago when I began using PostNuke (see “Whaddy got under the hood?”) as a development portal. Its standard install has always had a link in the page footer that said something about using “backend.php” to syndicate news. I was curious, so I checked it out. It turns out that this page delivered RSS version 0.91 content syndication – headlines from the web site in XML form.

Further investigation showed that there were some primitive tools emerging that would read these feeds. PostNuke, in fact, had (via add-ons) the capability of using these feeds to display a block of headlines from sites like Slashdot and CNet. At that time, there weren’t too many sites offering RSS feeds, and you could expect to do a little hand work if you wanted to consume these feeds.

The history of RSS syndication reads like many web standards – there are a few popular versions and several more abandoned offshoots. The original RSS was introduced as 0.90 by Netscape. A refined version, 0.91, was promoted by UserLand Software, and was widely adopted as the first mainstream RSS format. Several other 0.9x standards were published, but none really usurped 0.91. Finally, a 1.0 release and a 2.0 release are both based on RDF (Resource Description Framework), though 2.0 is by far the more popular. Of this multitude, most feed you’ll find these days will either be 0.91 or 2.0, and most readers can handle either. I’ve included a couple links at the end of this article that you can follow for more background.

RSS Technology

All RSS feeds are XML-structured documents (you can often spot links to RSS feeds on web sites by looking for the [XML] logo). If you take a look at the raw XML, you can see the general idea. Don’t dwell on the XML, though, because in the next section, we’re going to look at applications you can use to read RSS feeds.

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE rss (View Source for full doctype...)>

- <rss version="0.91">

- <channel>

<title>AppDev</title>

<link>http://www.appdev.info/</link>

<description>PostNuke Powered Site</description>

<language>en-us</language>

- <image>

<title>AppDev</title>

<url>http://www.appdev.info/images/logo.gif</url>

<link>http://www.appdev.info/</link>

</image>

<webMaster>webmaster@appdev.info</webMaster>

- <item>

<title>Whaddya got under the hood?</title>

<link>http://www.appdev.info/modules.php?op=modload&name=News&file=

article&sid=4</link>

<description>Just in cast you're wondering what makes AppDev go,

it's powered by a Content Management System (CMS)...</description>

</item>

- <item>

<title>Tip: building connection strings from scratch</title>

<link>http://www.appdev.info/modules.php?op=

modload&name=News&file=article&sid=3</link>

<description>Here's a tip posted by someone on the VB-DATA list.

It's already come in handy ...</description>

</item>

</channel>

</rss>

RSS Readers / using RSS

There are a number of applications available to read RSS feeds. You can scare up dozens of choices by searching for “RSS reader”. The basic functionality you’re getting is formatting of the XML feed, but a decent reader will allow you to set up a number of feeds and keep track of the items you’ve read.

Here’s a screen shot from SharpReader, my current favorite. One of the nice features about SharpReader is that you can set it up to poll for new stories and notify you when they’re posted with a little IM-like box.

Who’s got feeds?

As I mentioned earlier, there’s a very good chance these days that your favorite web site will have an RSS page. Here are a few popular sites that you may want to monitor to help you stay abreast of development technologies.

Whaddya got under the hood?

Just in cast you're wondering what makes AppDev go, it's powered by a Content Management System (CMS) called PostNuke. I've been using PostNuke for several years now as a development portal. The framework is easy to set up, easy to customize, and easy to administer, and it runs on virtually any hosted server. If you need to set up a web site of any kind, I recommend you take a look -- it's worth a quick eval.

[edit: this post is out of date, but it's interesting as an archival snapshot]

Tip: building connection strings from scratch

Here's a tip posted by someone on the VB-DATA list. It's already come in handy for me once or twice. Click "read more" for details....-----Original Message-----
From: Discussion for Microsoft Visual Basic Data Access
[mailto:VBDATA-L@PEACH.EASE.LSOFT.COM]
Sent: Monday, August 26, 2002 12:13 PM
To: VBDATA-L@PEACH.EASE.LSOFT.COM

Subject: Re: Web Site for OLEDB connection strings

Just to add to the URL that others have posted....

The method I use to get a connectionstring is to create an empty file with the file extension, "UDL"

Then I open the file, which launches the "Data Link properties" dialog I select the Provider I want to use, and al the criteria (servername, etc), then hit OK

Then I open the file in Notepad to find one conenction string..ready for copying and pasting into the source editor/config file/whatever

See also:

Common connection strings

Running the gamut of testing tools

I have been working recently to introduce JUnit and NUnit to my development shop. My findings are pretty interesting. My Java developers jumped all over JUnit, and my .Net developers were substantially less enthusiastic about NUnit.

I've also done some work with NUnit myself, and have found that it's a pretty interesting platform -- in my case not for unit testing as much as for integration and acceptance testing. In fact, I've wondered if "JINtegration" and "NIntegration" can be far behind.

Hire Good People — Not Good Resumes

In my years hiring developers, I've had the chance to see thirty or so people come on board and grow with me in one organization or another. These people have ranged from fresh out of school to seasoned veterans. The single greatest impression I'm left with after all this is that you don't always get the best developers by going after people with years of
experience.There are a lot of pretty standard practices in hiring developers. Recruiting firms make a living out of classifying people and finding fits for them.

Ask yourself how many of these maxims you have relied upon or adhered to in hiring over the year.

* Hire someone with experience in the technology you use.
* Don't get someone fresh out of school unless you can take a great deal of time to train them.
* Pay should increase with experience.
* If you want to build a high-powered team quickly, hire experienced developers.

Now, go back and reflect on how some individual hires have worked out with respect to these guidelines. Here are some of my thoughts.

When it comes to the technology you use, you have to be ready to give a little. I'm not ready to suggest that you hire a Cobol guy for a C++ job, because the gulf is pretty wide there. But if I want a database developer to work in Oracle, and I find a guy who understands SQL Server, I'll consider him pretty strongly, especially if I think he really *understands* SQL Server and isn't just working out of the books.

There's a stigma about getting folks right out of school, and it's
understandable in a lot of cases. After all, when I came out of school, I still didn't know what I wanted to be when I grerw up. 😉 Some people I've met, however, have been damn sharp - straight out of school. I'm not suggesting you let your guard down on this point, but make sure you keep an open mind.

There is also a pretty common practice to just roll over on pay increases with experience. I'm pretty sure that not everyone's experiences are the same as they move through their carreers, yet they seem to all end up the same -- "C++ programmer with 5 years' experience". I like to try to use the interview to tell whether this experience was rich or whether the guy was just sucking up oxygen.

Finally, I want to talk about building a team out of high-powered, experienced developers. It's probably about the worst idea you could have. Get a bunch of "experienced" developers together, and unless you're real lucky, all you'll get is a bunch of infighting. If you want to build a team as quickly as possible, look for good attitudes, because everyone is going to have to learn a ton of stuff as things evolve, and there isn't a lot of room for egos.