you end up finding stuff that you've done in surprising places. Today I was pleasantly surprised to find out one of my webcasts is on the main page of Microsoft Germany's architecture site.
Coincidentally, I'm heading off to Germany (Munich) and London next week to work with customers on some architectural reviews. If you're in either city and would like to sync up while I'm there, send me an email - mmercuri@microsoft.com.
NOTE: There is a political refernece below, as it is a topical situation that got me thinking about trust communities in search. This blog is a-political, and the scenario is used as it is the one that sparked the idea. I take no stance on whether the claims made by Mr. Snow are valid/invalid.
I was reading some news sites this week, and was reminded that this was the first week of US President George Bush's new press secretary, Tony Snow.
Before he gave his first press conference, he did something interesting. He sent out press releases questioning the validity of comments made by the New York Times, USA Today, and other publications.
So this got me thinking. Playing devils advocate, suppose that he's right. If I trust Tony Snow (based on his historical record of trust worthiness), I may now discount results from these media outlets in favor of others. But for me to discount these sources when searching, I can't. Even if I cease to trust them (or trust them less), they show up in the the rankings per Google or Microsofts opinion of their relevance.
The search engines from Google, MSN, and Yahoo have their own algorithms to consider relevancy. One of the things these search engines do provide is a level of filitering for “safe content“, blocking out material that may be considered objectional (i.e. these block pornography results).
What they don't do is consider in the rankings is the levels of trust of an individual or of community. What I want to see is something that goes to the next level, don't just block what's objectionable, show me the results that are relevant to me based on trust.
Perhaps one of the media outlets Mr. Snow referenced, let's pick a fictional name, say MakeBelieveReporting, Inc., is regularly mis-reporting information or is slanting stories towards a particular political viewpoint. I may cease to trust that organization to provide news to me, and would like to rank them lower in my personal results when searching for news, if not remove them altogether.
When I search for news, perhaps there are certain stations / periodicals I trust - for example the Wall Street Journal, the Financial Times, CNBC, and my friends John Smiths blog. These are entities - regardless of web site traffic or the opinion of the search engine I'm using -that *I* trust to be accurate and provide me information. I do not, however, want results from news outlets that are part of MakeBelieveReporting, Inc. as I have ceased to trust them.
What I'm thinking of isn't based on assumed trustworthiness based on click traffic, this is based on trust relationships. Even if I visit a site twice per year, it could be far more relevant to me than a site that is viewed more regularly by others.
And my community of trustworthy providers could be extended based on the feedback of those people I trust.
There's the concept that if person A trusts person B, and person B trusts third party C, that person A shoud likely trust Corporation C based on the fact that he trusted person B's judgement.
In the previous example, I trust my friend John Smith who writes a blog. If John trusts the Crosby Herald, and I trust John, then I too could trust the Crosby Herald and have it included in my community of trust that is reflected in my search results.
Think about the days before Axciom, TRW, and credit reports. People vouched for other people to get jobs, apartments, loans, etc.
When you sign for a loan and you are not a known entity, you need a co-signer or guarantor. The bank says, I don't know if I can trust this person, but I trust the co-signer. The co-signer also trusts the loan recipient to pay the money back.
If someone co-signs for a loan for me and I decide not to pay it, there are financial responsibilities that are then taken on by the co-signer. The co-signer will trust the recipient less, as a result of mis-placed trust, the bank may stop trusting the co-signer's ability to identify a trustworthy loan recipient.
In another example, suppose you make plans to go out to dinner with your spouse on Friday night, and when you ask her where they'd like to go, she says “you pick - I trust you.“ If you're new to the area, you may ask a colleague - whom you trust - for a recommendation of a local restaurant. If you go to the recommended restuarant and you end up getting food poisoning from the meal, you probably will not look to your colleague for advice on restaurants in the future - and you - who vouched for the restaurant -will likely end up at a restaurant of your spouse's choosing next time around.
Your spouse trusted you, you trusted the colleague and when the information relayed turned out to be bad, two things happen. You cease to trust the advice of the colleague (atleast in the context of cousine), and your spouse trusts you less as the broker of the information.
Once you start adding in trust, you also need to be able to trust in context. That same colleague from work may not be someone I trust on picking restaurants, but may be someone I look to as a source on technology subjects.
What we need is search that includes both consideration of these communities of trust, where we as participants in the web determine who is trusted and who is not, and provide the ability to apply trust in context.
By introducing contextual trust as a first-class citizen in search, it has the opportunity to both provide results more relevant *to me*, and as trust=traffic=revenue, provides a financial incentive for providers to be trustworthy.
That's my two cents - what do you think?
I'm happy to report that the Windows Communication Foundation: Hands On book will be out in just a couple of weeks, and that I've just signed on to do another one. This next book is tentatively titled “Understanding Infocard“ and will be written for APress. This will hit bookstores in Q1 of next year, most likely in January.
If you want more info on Windows Communication Foundation: Hands On, it is now available for pre-order on Amazon, Barnes&Nobles, and others.


Did you get a chance to check out the MIX conference this year? I know I'd hoped to attend but was working with one of our customers in London that week.
If you're like me and wanted to go but missed it - good news. The sessions have just been posted online for free view/download.
Sessions here: http://sessions.mix06.com/
Definately check out the sessions on identity -
NGW034 - From "Username and Password" to InfoCard
DIS003 - Today's Identity Crisis, and the Identity Metasystem
For those unfamiliar with MIX, here's the pitch -
“If you do business on the Web today, it's likely that more than 90% of your customers reach you via Microsoft® Internet Explorer and/or Microsoft Windows®. Come to MIX and learn how the next versions of these products, due later this year, are going to dramatically improve your customers' experience. Explore a wide range of new Web technologies that Microsoft is delivering to help you unlock new revenue opportunities and lower development costs. Learn about the future of Internet Explorer and join us in a discussion about how we can build the ideal Web surfing platform to meet your needs and those of your customers.
- Be the first to get the latest preview build of IE7
- Work with the members of the Internet Explorer team in the Compatibility Lab to get your site ready for IE7
- Test drive "Atlas," Microsoft's powerful new framework for building cross–browser, cross–platform AJAX applications
- Explore Windows Live!, Microsoft's new consumer services strategy
- Learn how to deliver revolutionary, media–rich Web content with the new Windows Presentation Foundation
- Find out how to extend your content, media and services into the living room with Windows Media Center and Xbox 360™
- More than 50 separate sessions and discussions for Web developers, designers and business professionals
“
Have you seen this error:
System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (502) ProxyError (The URL is invalid. The request was not entered correctly. Enter the correct URL and try again.) -> System.Net.WebException: The remote server returned an error: (502) bad gateway.
?
If you're using Http and getting this error or “(504) Gateway Timeout“ errors, there's a good chance it's tied to your proxy configuration.
For those unfamiliar with the binding elements specific to proxies, Kennyw covered this recently, I'd recommend checking it out.
Get the scoop here - http://kennyw.com/indigo/106
Working with Enterprise customers, I know alot of you had scenarios where you wanted to use Plain Old Xml (POX). I'm happy to report that it's official - support for POX messages to TexEncoder is in and will ship in v1.0 of WCF.
Steve Maine posted the good word here:
http://hyperthink.net/blog/2006/04/12/Checkin+1383521.aspx
As long as I'm blogging about cool stuff, have you seen RoboCast yet?
http://www.francisshanahan.com/robocast/
Francis Shanahan has put something together that's pretty cool. It will take your blog entries, “read them” using the Speech APIs, and record the audio as MP3s. Effectively taking written content and making it a podcast, no human voice work required.
When I first saw it, I thought - pretty cool. When I thought about it a bit more, I realized it opened up the option of podcasting to individuals who may not have the opportunity otherwise due to certain disabilities. That takes it from pretty cool to very cool for me.
Ok - this has nothing to do with WCF or WF, but I've got tell you about this great piece of software I'm using called Orb. As you may have gathered from my blog, I travel. Alot.
Even though I have a MediaCenter PC, a TiVo, and a ComCast DVR, up until recently I haven't had remote access to my recorded content.
While on my last trip (Las Vegas, Notes2.NET Conference), I picked up a Slingbox for use on this conference (FinServDevCon) While the slingbox is cool, there was more that I was looking for. Orb gave it to me - and it was free and installed in <5 minutes. I'm currently working on this entry while watching a recorded show on my home machine from Comedy Central streaming to my laptop over the hotel internet connection. Now I work at Microsoft, and I've had friends who had streaming video to their phones 2 years ago - but this is something anyone can set up and get going in minutes.
If you travel alot and you've got a media center, you should definately check out Orb (www.orb.com).
I had the opportunity to present a session “WCF and WF in Financial Services: Notes from the Field” yesterday to a great crowd at the Financial Services Dev Con in New York.
For those who have seen my sessions on MSDN, those have focused on getting people up to speed on the two technologies. This session presented very brief overviews of the technologies (3 slides for each) and then delved into real-world scenarios where people were using them, complete with demos.
This session focused primarily on scenarios where Workflow Foundation and Windows Communication Foundation could provide the ability to enhance what was already in place, enable new scenarios around connectivity and workflow, and overall take advantage of the features of WCF and WF regardless of where they're at today.
I've uploaded the deck and the presentations here http://www.marcmercuri.com/Downloads/FinServDevCon.zip, and the good news is that other than the one COM interop demo for Lotus, every demo here can be run on your own machine. In cases where there's a use of Domino server - you get to take advantage of the domino services set up on the public web by my colleague, Gary Devendorf. For the Java examples, I used the basic samples that came with Java Enterprise Studio 8 which is now a free download. A note for VS developers - the Java environment may look similiar to VS, but it's different. To make it easy to run, the only thing you need to do is install, load the sun blueprint sample, and change the URL to point to the WCF service.
The demos posted include:
- Taking an existing, unsecure web service (in this case using Lotus Notes Domino as a source), placing a WCF front end on it, and exposing a WS-* service beyond the firewall. The benefit here is obviously security, and the ability to extend what you may have in place already to accomodate external customers.
- Taking a Windows Workflow Foundation, exposing it as a web service, and consuming it via an existing java application.
- An example of using a UI driven by workflow
- Using the workflow engine provided as part of workflow foundation inside of Excel.
- Using WF to coordinate multiple services. This includes a standard ASMX service, as well as Domino web service located remotely.
- An example of the flexibility provided by data contracts. The demo consisted of a service and client based on version one of a data contract, and the data contract is then modified to support a new data element (a URL for an RSS Feed). Even though the data contract has changed, the client continues to work.
I know I focus on WCF, WF, and Infocard, but for demos I also use Windows Presentation Foundation (WPF).
I'm guessing some of you may do this as well (WPF rocks!), and maybe had some challenges migrating older XAML files to the FebCTP build.
If this is you, you're going to like this. I just ran across a utility that Rob Relyea built to help with the migration to FebCTP.
You can be find it here:
http://www.longhornblogs.com/rrelyea/archive/2006/02/14/XamlMigrator.aspx
Anyone going to the Advisor Media conference at the JW Marriot in Vegas (April 9 - 13th)?
My teammate and Notes guy extroardinaire, Gary Devendorf, has invited me to participate in a number of sessions in the Notes2.NET track. I'll be bringing with me some interesting demos and presentations on how to utilize two of the great technologies inside of WinFX - WCF and WF - with Lotus Notes and Domino.
I'll be involed in the following sessions -
Schedule: 04/10/2006 11:15 AM What is .NET? Marc Mercuri & Gary Devendorf Explore the parallels and similarities between .NET technology and Lotus Notes/Domino -- you may be surprised. In this session, you'll learn the fundamentals of .NET, presented in Notes/Domino terms. You'll look at .NET's vocabulary and workings. Finally, a .NET session aimed at the Notes/Domino developer. You don't want to miss this one.
Schedule: 04/10/2006 04:45 PM Integrating Lotus Domino and Visual Studio .NET Web Services Gary Devendorf & Marc Mercuri You can host Web services on a Domino 7 server. But did you know you can also host them on Domino 6 or 5? Also, hosting Web services is only half the story. You must have a Web service client to make a Web service useful. In this session, you'll see how to create and host a Domino Web service. And you'll learn how to create a VS.NET Web service client to use your Web service. You won't believe how easy this is!
Schedule: 04/11/2006 11:15 AM Integrate Domino Objects and Managed .NET Code Using COM Gary Devendorf & Marc Mercuri The Domino objects expose functionality of Lotus Notes/Domino applications to LotusScript, Java, COM, and more. In this session you'll see how you can call the Domino objects from .NET applications using Visual Studio.NET. Also, you'll see examples of LotusScript calling Managed code
Schedule: 04/12/2006 08:00 AM Microsoft Workflow Linked to Lotus Notes Marc Mercuri You know about Lotus Notes workflow, but did you know that Microsoft has a new technology for workflow called Windows Workflow Foundation (WF)? See how WF works and how you can use it from Lotus Notes. You'll even see how to link a Notes workflow to a Windows workflow -- this is all new! You'll see VB.NET and LotusScript in the examples.
For those that know me, I come from an Enterprise background, and know there's a big need out there for info on how to do interop. With Notes and Domino in particular there are some great opportunities to leverage .NET, Windows Communication Foundation, and Windows Workflow Foundation to provide great functionality and new opportunities to your existing applications.
I'll be in town the whole week, if you want to talk about how to leverage WCF, WF, or InfoCard in your projects, I'm happy to chat with folks 1:1 - just contact me via email to set something up (mmercuri@microsoft.com)
Windows Communication Foundation, Windows Workflow Foundation, and Identity in Financial Services (Level 200)
Tuesday, March 28, 2006 11:00 AM - 12:00 pm Pacific Time Presenters: Marc Mercuri & Vittorio Bertocci
Financial service companies face market pressures to lower information technology (IT) costs and retain existing customers while growing their businesses. Complicating these business goals are complex IT challenges that result in costly system maintenance and integration. As a result, companies are looking to service-oriented design as a means to leverage their IT assets to meet their business goals, focusing on lowering integration costs within and beyond their corporate boundaries. Microsoft is providing the tools to build connected systems based on service-oriented design principles. In this webcast, we specifically discuss Windows Communication Foundation, Windows Workflow Foundation, and the Microsoft WinFX application programming interface (API) component code named “InfoCard.”
Have you checked out the Advanced Workflow Blog yet? I've run across this a couple of times while on the road, and wanted to make sure you had visibility of it.
I know parallelism in WF is something people are a bit fuzzy on, here's a link to an entry that I think provides a very accessible overview of how parallelism works in the technology.
http://blogs.msdn.com/advancedworkflow/archive/2006/02/23/538160.aspx
I've been on the road for most of the last month, enjoying the opportunity to work with a number of our Fortune 100 customers on real world implementations of WCF and WF.
I've got a number of blog posts in queue, so expect a number of posts of the next couple of days. Expect good stuff, demos, and samples.
Marc
You may have noticed some interesting behavior when using intellisense with the Feb CTP.
One of the Microsoft Regional Directors, Juval Lowy, has put together an updated XSD that can resolve said weirdness, resulting in Feb Syntax Intellisense for the CTP.
Here's where to get it and how to install it.
(1)Download xsd file from here http://www.idesign.net/idesign/temp/dotNetConfig.zip
(2)rename current dotnet config file
(3)copy the file to C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas
You probably know you can change the name of a variable exposed on a data contract with [DataMember(name=”NewName”)], but you've not been able do something similair with Enums.
This changed in the Feb CTP, Kenny Wolf has a good example here
We had a training last week in Redmond, and with the release of Feb CTP bits this week my inbox is being flooded with the question “Should I use the Jan bits or the Feb bits?”
You can tell I used to be a consultant when I say 'Depends'.
Omri Gazitt puts it best when he discusses the trade-off. If you want something closer to the object model that will be released, go Feb CTP. If you want bits that have gone through more quality testing, go with Jan CTP.
Ed Pinto put together a collection of the changes and posted them on WindowsCommication.Net, I'd recommend checking it out and making the right choice based on your specific instance. As the OM is different, existing labs or materials you might be using for training would also need to be updated to work.
Find the list of WCF changes here: http://windowscommunication.net/collateral/pages/BreakingChangesJanCTPToFebCTP.htm
On the workflow side, Mark Schmidt has a link to the Hands on Labs released with the JanCTP listed with the links to the Feb CTP bits, this meshes with what I'd been told that the Feb CTP would not see big OM changes for WF.
If you're looking for the WF labs, find them here
Sorry folks - have been tied up with customer meetings and delivering a training from morn 'til night this week, training session completes today, so will post these on Friday (17th).
I had a customer visiting the other week and he asked where the link was to the actual RSS feed for this site. I thought it was obvious, but after looking at the site again, realized it wasn't :-(
Until I get a chance to tweak this, I wanted to pass on that the feeds are located directly underneath the calendar to the right.
Cheers,
Marc
Lots of questions from folks about why the blogs gone quiet.
With the release of the CTP and the Go Live in January and wrapping up the book, I've been a very busy guy, so the blogs been a bit quiet. I've got a ton of blog material in queue - so you'll be seeing a lot of posts over the next few weeks.
Over the weekend, John Vlissides, one of the 'Gang of Four' passed away. In an interesting use of wiki, a memorial has been put up where people are placing anecdotes. http://www.c2.com/cgi/wiki?JohnVlissides
In a connected world where we regularly interact electronically with people beyond the borders of our respective geographies, the traditional ability to mourn and share rememberances as a physically congregated group becomes less realistic. The need to mourn and share remembrance remains, however, and it will be interesting to see how the same technology that facilitates the connections is re-mixed to facilitate handling disconnections.
I found the Wiki As Memorial interesting, and thought back to the funerals and wakes I've attended in the past. The major focus was on celebrating the life that had been lived. While written anecdotes and stories will always have their place, when I looked back what I remembered most about those events was the stories, the facial expressions, and the tid bits of family history that would leak out. Those small stories that may not be long enough or meaty enough to warrant writing down, but trigger a succession of smaller stories that define an individual, a significant event, or a shared understanding. All of which is lost in words alone.
If you look at spaces.msn.com and myspace.com, you're starting to see the dawn of things happening. What is 'cool' for todays teens will become institutionalized, and we'll start to see people taking technology in interesting places to build these interactive histories and memorials.
Digitized media - and the rapidly decreasing costs to create and share it - mixed with third party content is how I think we'll handle it. Recording our stories, storing them in a shared media driven Wiki/RSS hybrid, linking them to information in third party stores and sharing them out to a set of individuals be they friends, families, or the world.
There are certain stories that only come out at events like weddings and funerals, and are relayed so much better by the people who lived them and/or were impacted by them. Imagine a personalized Encarta for your family, with pervasive digital media story telling from events like these, with links to relevant information (i.e. information on where the individual came from in Italy), with links to similiar sites of their friends. Imagine taking the evolution of the spaces concept forward 10,20,50 years and the rich media historical tapestry you end up with.
I was recently talking to a colleague, and he mentioned he had an Enterprise customer with clients running Windows 2000 Professional, knew WCF wasn't supported on that platform, and asked what he could recommend they use until they upgrade their clients to XP or Windows Vista. Variations of this question came up a couple of times while on the road these past couple of weeks, and I wanted to share my response in hopes it could help others with the same query.
WCF and WF do require .NET framework 2.0 be installed on the machine, and the official systems supported for *installation* are Windows XP, Windows Vista, Windows Server 2003 and eventually Longhorn Server. That being said, it is totally reasonable for you to install/use WF and WCF on a server using Windows Server 2003 and then expose services (either through WCF or a Workflow exposed as a WCF Service), which can be consumed by non-WCF clients on downlevel OS'.
The first question to ask yourself is this - do you have the ability to deploy .NET Framework 2.0 to the systems where your client will be installed? The next question is - do your services need to be secured at the message level or will security at the transport level suffice?
If you can deploy .NET framework 2.0, look at creating clients using Visual Studio 2005 and the .NET framework. If transport level security will suffice, encrypt the channel using SSL. If message level security is required, utilize WSE 3 which will be wire compatible with WCF.
Now, if your target audience will have framework 1.1 installed and you are not empowered to install .NET framework 2.0, you're not left out.
Remember that WCF and WF can be exposed as Basic Profile 1.0 compliant web services, which can be consumed by any software on any platform that can understand Basic Profile 1.0. On Windows Server 2000 / Windows 2000, there are a number of options here.
We’ve had SOAP/web service support on Win2K for some time, so this is reasonable. The great thing is, because you can expose multiple endpoints, you build a service today that exposed BP 1.0 services, and add additional endpoints (all external to the application) in the config file. This allows you to simultaneously provide support for older clients, as well as the opportunity to service employees and partners with newer/different clients with WS-* secured services, TCP, etc.
In addition, remember that WCF (and Workflows exposed as a WCF service) can also be utilize MSMQ. This provides another opportunity to utilize an application on a Windows 2000 system. Here you could write messages to MSMQ through System.Messaging (or via other means – even VB6!), again with the service on Windows Server 2003, supporting downlevel (win2k) clients.
Also, if you have existing COM+ applications, you can expose these as well. (again using WCF/WF exposed on Windows Server 2003, with clients consuming them downlevel).
Finally, remember that you can compile WCF/WF code down to an assembly and make those assemblies visible to COM (via interop). If you have a legacy app and it’s residing on any of the supported applications, you can consume WCF services using something as simple as com based scripting (works great for customers running things like Lotus Notes, early versions of Offices, even VB6 apps!).
Naturally, these items mentioned for 1.1 framework are also compat on 2.0 version of the framework.
You can start to see the power of this unified model combined with the framework opens a number of possibilities.
< |