by community-syndication | Feb 16, 2010 | BizTalk Community Blogs via Syndication
The webcast that Ofer and I ran last week “Improving Business Agility with the Enterprise Service Bus” went quite well (at least that’s the feedback we heard from those of you who attended.)
For those of you who couldn’t attend and those of you who just want to view this at a later date, the On-Demand version of the webcast can be found at
https://www.livemeeting.com/cc/mseventsbmo/view?id=1032440359&role=attend&pw=656F8D09
Cheers and keep on BizTalking
Peter
by community-syndication | Feb 15, 2010 | BizTalk Community Blogs via Syndication
http://support.microsoft.com/kb/974563
by community-syndication | Feb 15, 2010 | BizTalk Community Blogs via Syndication
Microsoft SQL Server PowerPivot for Excel:
Unleashing the Business User
http://www.microsoft.com/presspass/presskits/bi/docs/amr_powerpivot.pdf
Find it here: http://www.microsoft.com/presspass/presskits/bi/Default.aspx
by community-syndication | Feb 15, 2010 | BizTalk Community Blogs via Syndication
Further validation of the great BI platform we’re driving to market
http://www.microsoft.com/presspass/presskits/bi/Default.aspx
by community-syndication | Feb 15, 2010 | BizTalk Community Blogs via Syndication
Last week Pluralsight announced that all Microsoft MVPs now qualify to receive a free 1-year Standard On-Demand! subscription, which provides them full access to our revolutionary .NET training library.
You can read the full announcement here and find out how to get signed-up. Please help us by spreading the word to your MVP colleagues via Twitter, Facebook, LinkedIn and email.
Here are some answers to the most common questions we’ve received about this MVP benefit while processing the first 400 requests that came in last week:
How do I get signed-up?
Simply email [email protected] and provide a link to your active MVP profile on MSDN. Once we’ve validated your request, you’ll receive an activation key with details on how to get signed-up. Please be patient – it can take up to 1 or 2 business days to process these requests.
Is this a one-time or yearly benefit? How much is it worth?
This is a yearly benefit you can receive during each MVP award period. If you’re still an MVP when your current subscription expires, simply email us again with a link to your profile and we’ll renew you.
A full-year Standard subscription normally costs $499/yr per person.
What does this benefit give me?
A Pluralsight On-Demand! Standard subscription gives you online access to our entire library of in-depth training courses, tutorials, and how-to videos, which totals nearly 250 hours of high-quality training videos today – all of it has been authored by folks you trust, many of whom will be attending the MVP Summit this week. We are very interested in your feedback on the quality of the content.
How about Regional Directors (RDs)? Do they also qualify?
Yes, we are also making this offer available to all Microsoft Regional Directors.
Why are we doing this?
We are doing this to give back to the community. Those named “MVP” by Microsoft receive the honor because of their contributions to the Microsoft community at large. They are folks dedicated to giving back and paying it forward. We feel strongly about the value of “community”, especially the Microsoft developer community, and want to do what we can to help it flourish. By giving this benefit to Microsoft MVPs, we are rewarding and assisting those most committed to helping their fellow developers throughout the world. We hope MVPs everywhere will benefit from this valuable learning resource, and that what they learn will help them better serve their community throughout the year.
Do we offer other programs similar to this?
Yes, we offer a similar benefit to INETA User Group leaders, which you can read about here. Again, we believe INETA UG leaders are performing a great service to the community, so we want to help them.
Are you looking for more authors?
Yes, we have an intentionally small team of authors here at Pluralsight and plan to keep it that way. However, we’re always looking for the best and brightest in each area of technology. If you have a passion for teaching and see a gap in our library that you could potentially fill, be sure to drop me a line.
What about my friends and coworkers who aren’t MVPs?
As an MVP, if you’d like to share Pluralsight On-Demand! with your friends or coworkers, we are happy to provide them with free 1-week trials on your behalf. Simply email [email protected] along with a link to your MVP profile and you can request some trial codes to give away.
That about does it. We hope you’ll take advantage of this offer, tell your friends, and let us know what you think about the quality of our On-Demand! training courses. Thank you for all you do.
Happy Learning.

by community-syndication | Feb 15, 2010 | BizTalk Community Blogs via Syndication
Here at Pluralsight, we’re especially excited for the MVP Summit this year. It’s a great opportunity for us to meet-up with the diverse group of brilliant and talented MVPs from all over the world sharing this title. There are several of us from Pluralsight attending this year including myself, Keith Brown, Scott Allen, David Starr, Jon Fancey, and Meagon Marshall (and I’m probably forgetting someone).
We’re especially excited for this year’s Summit because we just announced a special new Pluralsight On-Demand! program for all MVPs throughout the world.
We now offer free 1-year Standard On-Demand! subscriptions to all current MVPs.
The Pluralsight gang will be carrying stacks of activation cards around with us – all you need to do is find one of us and request your activation card. That will give you what you need to sign-up and take advantage of the offer. Each activation request will be validated to ensure that the registrant is indeed a current MVP, so there’s no point in trying to score one for a friend. 😉 Be sure to look for us wearing the Pluralsight On-Demand! “tag cloud” t-shirt – that’s how you can spot us – and get your activation card.
The easiest place to find us this week will be at tonight’s Party with Palermo. If you’re planning to attend the party, you’ll find Meagon (our marketing director) at the entrance. She’ll be handing out activation cards and making it possible to register for a few Pluralsight giveaways at the party – including a new Zune HD packed with Pluralsight On-Demand! training videos. Hope to see you there!
The party will be fun, but don’t worry if you can’t make it tonight. You can simply email [email protected] and provide a link to your MVP profile to request your activation code digitally. Once we process your request, you’ll receive complete activation instructions in the email you get back. Please be patient with us, it can take a business day or two to process these requests.
Pluralsight is also currently looking for a few candidates to join our team of the best and brightest authors/instructors to help build our Pluralsight On-Demand! library in the years ahead. So, if you’re an MVP who loves to teach, be sure to drop me a line, so we can connect during the Summit.
You can follow me (@skonnard) on Twitter or @pluralsight to follow the rest of the gang.

by community-syndication | Feb 15, 2010 | BizTalk Community Blogs via Syndication
This is part nine of a twelve part series that introduces the features of WCF WebHttp Services in .NET 4. In this post we will cover:
- Learning the basics of T4 (Text Template Transformation Toolkit)
- Using T4 to create views in WCF WebHttp Services for text-based content
Over the course of this blog post series, we are building a web service called TeamTask. TeamTask allows a team to track tasks assigned to members of the team. Because the code in a given blog post builds upon the code from the previous posts, the posts are intended to be read in-order.
Downloading the TeamTask Code
At the end of this blog post, you’ll find a link that will allow you to download the code for the current TeamTask Service as a compressed file. After extracting, you’ll find that it contains “Before” and “After” versions of the TeamTask solution. If you would like to follow along with the steps outlined in this post, download the code and open the “Before” solution in Visual Studio 2010. If you aren’t sure about a step, refer to the “After” version of the TeamTask solution.
Note: If you try running the sample code and see a Visual Studio Project Sample Loading Error that begins with “Assembly could not be loaded and will be ignored”, see here for troubleshooting.
Getting Visual Studio 2010
To follow along with this blog post series, you will need to have Microsoft Visual Studio 2010 and the full .NET 4 Framework installed on your machine. (The client profile of the .NET 4 Framework is not sufficient.) At the time of this posting, the Microsoft Visual Studio 2010 Ultimate Beta 2 is available for free download and there are numerous resources available regarding how to download and install, including this Channel 9 video.
Step 1: Downloading the T4 Editor for VS 2010
In part eight of this blog post series we created the DirectoryService class to expose information about the resource collections (tasks and users) of the TeamTask service. In this part we’re going to extend the DirectoryService class to expose the same information as an HTML help page similar to the automatic help pages exposed for the task and user collections themselves. To create this TeamTask resources help page and populate it with the resource collection information we’ll be using the text template features of Visual Studio 2010.
Text templates are a part of T4, the Text Template Transformation Toolkit that comes with VS2010. Originally, text templates were used for code generation, but with the introduction of the Preprocessed Text Template item in Visual Studio 2010, they can now also be used for runtime text generation.
A T4 text template is simply a file with a .tt extension that contains text and fragments of C# (or VB) code that can be executed to generate some output text. Just to give you an idea of what a T4 text template looks like, here is a simple template that will generate a greeting:
<#@ template language=”C#” #>
Hello, my name is <#= this.Name #>.
<#+
public string Name { get; set; }
#>
In the steps that follow we will discuss the control block syntax of T4 templates like this one. For now, just understand that if the Name property of this template were set to “XYZ”, then the output of transforming this template would simply be the string: “Hello, my name is XYZ.”
While VS2010 does include text template items, it doesn’t include an editor for these text templates. Obviously, trying to write a T4 text template without syntax highlighting and intellisense isn’t fun. But not to worry-a free T4 editor add-in for Visual Studio 2010 is already available online. Our first step will be downloading and installing the T4 Editor add-in through the Visual Studio Extension Manager.
In Visual Studio 2010, open the Extension Manager from the main menu bar using “Tools”->”Extension Manager”.
On the left-hand side of the Extension Manager, select the “Online Gallery”. In the “Search Online Gallery” textbox in the upper right-hand corner enter “T4”. At the time of this writing, the following extensions were available that matched the “T4” search:
Click on the “Download” button for the tangible T4 Editor and follow the prompts. Note: If downloading and installing the editor fails with the message, “The extension manifest is invalid.”, you’ll need to manually download the .vsix extension file from the Visual Studio Gallery webpage here and follow the troubleshooting steps given in the “Discussions” tab of the page.
Helpful Tip: While we will cover the basics of writing T4 text templates, there are more extensive resources available. The documentation on MSDN can be found here. Oleg Sych also has a number of detailed articles on his blog that are worth checking out. |
Step 2: Creating the TeamTask Resources Help Page
We want our TeamTask Resources help page to look just like the automatic help pages for the task and user collections, so we’ll start the TeamTask service and browse to the tasks help page to download the source HTML. We’ll then copy the source HTML into a T4 text template.
In the next step we’ll remove the task operation information from the HTML and add T4 code blocks that will insert the resource collection information from the DirectoryService when the template is transformed at runtime.
If you haven’t already done so, download and open the “Before” solution of the code attached to this blog post.
Start without debugging (Ctrl+F5) to start the TeamTask service. In the browser of your choice, navigate to http://localhost:8080/TeamTask/Tasks/help. In Internet Explorer, the help page will be displayed as shown below:
Retrieve the source HTML for the tasks help page. In Internet Explorer 8, you can do this by selecting “Page”->”View Source” from the command bar.
Select all (Ctrl+A) of the source HTML and copy (Ctrl+C) it. Next we’ll create a text template into which we will paste this HTML.
In the “Solution Explorer” window of Visual Studio, right click on the TeamTask.Service project and select “Add New Item”. On the left-hand side of the “Add New Item” window select “Visual C#”->”General” from the tree-view control. In the filtered list of item templates choose the “Preprocessed Text Template”. Note: There is also a “Text Template” items that isn’t preprocessed but it can’t be used for runtime text generation so we aren’t interested in it.
For the template name enter “ResourceCollectionView” and then click “Ok”. This will add the ResourceCollectionView.tt text template to the solution.
The newly created ResourceCollectionView text template will include a processing directive indicating that the template code language is C#. Under this processing directive, paste (Ctrl+V) the source HTML from the tasks help page like so:
Step 3: Implementing the TeamTask Resources Help Page
We’ve created the ResourceCollectionView text template and pasted in the tasks help page HTML as a starting point. Next we’ll need to alter the HTML to return the resource collection information instead of the task operations information. But before we begin making changes to the HMTL in our text template, let’s first cover the basics of T4 text templates.
First, there are processing directives. Processing directives begin with “<#@” and end with “#>”. We’ve already seen the template directive. It was included in our newly created template and was used to specify that the language for the code blocks will be C#. We’ll also need to use the import directive, which works just like the “using” keyword in C#.
Second, there are control blocks. There are three types of control blocks: standard control blocks, expression control blocks, and class feature control blocks.
Standard control blocks begin with “<#” and end with “#>”. They allow you to use the standard control keywords form C# (or VB) in a text template: for, foreach, if, switch, etc. The simple greeting text template in step one didn’t use a standard control block, but we’ll see one used in this step.
Expression control blocks begin with “<#=” and end with “#>” (notice the equals sign in the syntax). Expression control blocks contain code that evaluates to a string that is injected into the generated text output. The simple greeting text template in step one used the expression control block “<#= this.Name #>” to inject the value of the Name property into the generated text output.
Lastly, class feature control blocks begin with “<#+” and end with “#>” (notice the addition sign in the syntax). Class feature control blocks allow you to add methods, properties, fields and nested classes to your template. The standard control blocks and expression control blocks can then make use of these methods, properties, fields, etc. The simple greeting text template in step one used a class feature control block to add the Name property to the text template.
Now, with this basic understanding of T4 text templates, let’s implement the TeamTask Resources help page.
We’ll start by adding an import processing directive for the System.Collections.Generic namespace because we’ll be using the generic List type in the template. After the “<#@ template language=”C#”#>” processing directive insert the following line:
<#@ import namespace=”System.Collections.Generic” #>
Next we’ll add a class feature control block that will provide the name of the service, the base URI of the service and a list of resource collection exposed by the service. Insert the following control block at the very end of the template:
<#+
public string ServiceName { get; set; }
public string BaseUri { get; set; }
public List<ResourceCollection> ResourceCollections { get; set; }
#>
Now we’ll be able to use the ServiceName, BaseUri and ResourceCollections properties within expression and standard control blocks of the template. Note: Class feature control blocks must always be placed at the end of the template.
Under the <head> element of the HTML, replace the current <title> element with the following:
<title>Resources at <#= this.BaseUri #></title>
Notice that we are using an expression control block to insert the base URI of the service into the content of the HTML title tag.
Under the <div id=”content> element in the HTML, replace the two <p> elements with the following”:
<p class=“heading1”>Resources at <#= this.BaseUri #></p>
<p>This page describes the resources of the <#= this.ServiceName #> service.</p>
Again, we are using expression control blocks to insert the base URI and name of the service into the generated text output when the template is transformed at runtime.
Lastly, replace the entire <table> element in the HTML with the following:
<table>
<tr>
<th>Uri</th>
<th>Resource</th>
<th>Description</th>
</tr>
<# foreach (var resource in this.ResourceCollections)
{ #>
<tr>
<td><#= resource.Uri #></td>
<td title=“<#= resource.HelpUri.ToString() #>“>
<a rel=“operation” href=“<#= resource.HelpUri.ToString() #>“><#= resource.Name #></a>
</td>
<td><#= resource.Description #></td>
</tr>
<# } #>
</table>
Notice that we are using a foreach loop within a standard control block. When the template is transformed, a table row element will be generated for each ResourceCollection instance in the ResourceCollections property.
We’re now done with our TeamTask Resources help page text template. In the Visual Studio T4 editor it should look like so:
Helpful Tip: We happened to create an HTML page with the ResourceCollectionView text template but T4 text templates can be used to generate any text output. Therefore they could be used to generate custom text formats or even XML/JSON if you needed complete control over how your data was serialized in the response message. |
Step 4: Exposing the TeamTask Resource Help Page
Now that we have our TeamTask resources help page, we need to extend the DirectoryService class that we created in part eight of this blog post series to return the help page when client’s prefer an HTML format. Only then will users of the TeamTask service be able to view the TeamTask Resources help page in the browser.
Open the DirectoryService.cs file from the TeamTask.Service project in the code editor.
Within the switch statement of the GetDirectory() operation, add an additional case like so:
case “*/*”:
case “APPLICATION/XHTML+XML”:
case “TEXT/HTML”:
ResourceCollectionView htmlView = new ResourceCollectionView();
htmlView.ServiceName = “TeamTask”;
htmlView.ResourceCollections = resourceCollections;
htmlView.BaseUri = request.UriTemplateMatch.RequestUri.ToString();
return WebOperationContext.Current.
CreateTextResponse(htmlView.TransformText());
Because we used a preprocessed text template, the template is actually available to us as a CLR type. We can create an instance of the template, set the ServiceName, BaseUri and ResourceCollections properties and then transform the template to generate the output text within our service operation. Note: At times you may find that you need to manually force the T4 engine to reprocess the template and generate the CLR type a new. This can be done by selecting “Build”–>”Rebuild Solution” from the Visual Studio menu bar.
To see the TeamTask resources help page in the browser, start without debugging (Ctrl+F5) and navigate to http://localhost:8080/TeamTask/. In Internet Explorer, the new resources help page will look like the following:
Helpful Tip: If you haven’t already noticed, the ResourceCollectionView text template as well as the DirectoryService and ResourceCollection classes don’t have any dependencies on the TeamTask service. Therefore, they can all be easily used as is in your own WCF WebHttp Services. |
<TABLE border=1 cellSpacing=0 cellPadding=2 width=520
Helpful Tip: It is also possible to use an ASP.NET webpage in a manner similiar to how we’ve used T4 text templates. To hook up an .aspx page you’d call the CreateTextResponse(Action<TextWriter>) overload from the WebOperationContext and then call the ASP.NET method HttpServerUtility.Execute(string, TextWriter) within the action, passing in the textwriter. Of course there are tradeoffs with using .aspx pages. T4 is light-weight, can be used in any hosting scenario and is fairly easy to learn. ASP.NET pages can only be used in IIS when ASP.NET compability mode is enabled in WCF but they give you the advantage of dynamic compilation and the ability to write responses directly to the output stream instead of buffering them within a string as with T4. |
Next Steps: Conditional GET and Etag Support
With this discussion on how to use T4 text templates in a WCF WebHttp Service, we’ve now demonstrated three different methods of generating responses in a given format. In part four of this blog post series we covered the automatic and explicit format support for XML and JSON. This is by far the simplest method to use as you simply return a given type from your service operation and let the WCF infrastructure handle the serialization. In part eight of this blog post series we explored the Create*Response() API that makes it possible to create messages in custom text or binary formats as well as XML, JSON and ATOM. And now we’ve shown how integrating T4 text templates into a WCF WebHttp Service can give you complete control over any text-based response.
In parts ten and eleven of this blog post series we’ll explore the new etag support in WCF WebHttp Services for .NET 4 that makes it easier to utilize the caching capabilities built into HTTP. In part ten we’ll demonstrate how to employee conditional GET with a WCF WebHttp Service, allowing the service to inform clients that they already have the current state of a resource without sending a full response. In part eleven we’ll show how etags can enable optimistic concurrency with updates to ensure that clients don’t unknowing update data that has changed since they last retrieved it.
Randall Tombaugh
Developer, WCF WebHttp Services
by community-syndication | Feb 15, 2010 | BizTalk Community Blogs via Syndication
[In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: twitter.com/scottgu]
Last week I blogged about an intellisense crashing issue that is unfortunately in the VS 2010 RC.
Crash Symptom
If you are encountering frequent VS 2010 crashes when you are typing in the editor while Intellisense is popping up and/or being dismissed then you are running into this issue.
Patch Now Available
This morning we made available a VS 2010 RC patch which fixes this issue. You can download and run it here.
Please apply it if you are encountering any crashes with the VS 2010 RC, or if you have a tablet, multi-touch, screen-reader or external devices attached (including Wacom tablets, phones/ipods, and others that connect via USB).
Please make sure to submit any issues you encounter with the VS 2010 RC to us via the connect.microsoft.com web-site. Once you’ve entered the issue there please send me email ([email protected]) with a pointer to the issue and I’ll make sure the appropriate team follows up quickly.
Hope this helps,
Scott
by community-syndication | Feb 15, 2010 | BizTalk Community Blogs via Syndication
I’m a long-time frequent flyer with Delta Airlines. I’m a Platinum Medallion, having flown over 750K miles with them alone, and will probably fly another 100K this year, if not more. I’ve stayed loyal to Delta all these years because I used to believe that there was a benefit to doing so.
Not anymore.
Since Delta recently revamped their frequent flyer “Skymiles” program with a bunch of supposed improvements, all I’ve seen is how it’s hurt my experience with the airline. As a frequent flyer, the main benefits I care about are 1) international upgrades and 2) free tickets for my family to use. The recent “improvements” to Delta’s Skymiles program have made both of these benefits almost impossible to use.
In my experience over the last year, there is almost never availability to use Skymiles for a free seat, unless you book at least a year out. Once you’ve realized “there’s no availability”, the agent will say you can spend *double* the miles to get one. That means 50,000 miles for a free domestic ticket, where it used to only cost 25,000. So basically the value of my miles just decreased by 50%. Nice.
My wife and I recently took a trip to New York, which cost us 100,000 miles, and that was coach, mind you. Last year our family took a trip to Cancun, and it cost 360,000 for 6 tickets, again coach. I haven’t been able to get a coach ticket for under 50,000 miles in recent memory.
With international upgrades, it’s even harder to get the benefit. I receive 6 complimentary “system wide upgrade certificates” each year from Delta. One certificate allows me to upgrade a one-way flight from Salt Lake City to London, for example, and given the difference between business class and coach, this is VERY valuable to me. However, in order to use these certificates, first you have to purchase an appropriate “upgradeable fare” or the trip doesn’t qualify. The difference between an “upgradeable fare” and a non-upgradeable fare didn’t used to be huge, but at some point within the last few years, the difference has changed dramatically. Now an upgradeable fare usually costs 2-3x more than the lowest-priced coach fare.
This makes me question why it’s called an “upgrade” because it sure feels like I’m paying for the benefit.
For example, a recent ticket I booked to London cost me $2800 for an “upgradeable fare”. I could have flown coach for only $1000. Another recent ticket I booked for Dubai priced in at $3500 for an “upgradeable fare” and coach only cost $1500. Not sure that’s much of a perk anymore, especially since my own company, not to mention our clients, are not willing to pay those sky-high fares.
The other problem with international upgrades, is that they almost never have availability, which is the same problem as getting a free seat. So even if you *are* willing to pay the exorbitant fares, it’s likely you won’t be able to find an available “upgrade” seat. Again, they must only reserve a few seats on each flight for “upgrades” because it’s very hard to find them. In my opinion, a seat is a seat, and if they have some available, why shouldn’t I be able to cash in on this touted benefit? There have been numerous times over the years where I’ve had to sit in coach, when the plane actually had empty seats in business class, and I qualified for an upgrade. That’s the kind of thing that makes for very unhappy customers.
Because of this reality, I often have to let many of my Platinum system-wide upgrade certificates go unused. I simply can’t find a way to use them. I currently have 4 in hand that expire at the end of Feb, and I most likely won’t be able to redeem them, despite all of the international travel I have coming up. Over the next two months, I’m traveling to Dubai, London, and Amsterdam, and I won’t be able to redeem the certificates I’m holding in my hand because of exorbitant fares or because no “upgrade” seats exist (despite plenty of “regular” seats being available ). Last year was similar, but it seems to be getting worse each year. Ultimately, these certificates have lost most of their real value to me.
Even though they’ve effectively taken away these major benefits I care about, if Delta actually *treated me* like I was special because of my loyalty to the company all of these years, that alone might be enough to keep me as a relatively happy customer. But along with the other changes, I’ve also noticed a steady decrease in customer service, especially relative to their most loyal customers.
Recently, I had a situation where my client booked an international flight for me (through an international travel agency) – they spent over double what they needed to thinking I’d be able to upgrade . Once the information reached me a few weeks later and I contacted Delta about using my certificates to upgrade, I found out that no upgrade seats were available (of course). There were several aspects to this situation that I felt were unique and out of my control, which I explained to Delta hoping for some special consideration. Ultimately my client and I were taking the hit.
My client was paying much more than they needed to and I wasn’t going to be able to use my upgrade benefit on an extremely long flight. Despite the fact that Delta had 8 seats available in business class, they weren’t willing to release one to me. There was no consideration given to my status or the uniqueness of the situation. I spoke to several different Delta agents, and each one dug their heals in further, saying there was nothing they could do for me. These type of responses continue to surprise me. I’m a long-time loyal customer. I will most likely fly over 100K miles this year. And I run a company who hires people to travel around the world and teach people. These points didn’t matter to them.
Conclusion: they simply don’t care about my happiness as one of their most loyal customers over the years. Very short-sighted imo.
So given all of this, why should I stay loyal to Delta moving forward? What’s in it for me? My company and clients will spend much less money by looking for the best opportunity for each trip. There don’t seem to be many tangible perks for me as a Platinum Medallion anymore. And in situations where business class is justifiable, I can probably find business class fares near the levels I’ve been paying for my “upgradeable fares” on Delta. This seems like a much more logical path forward, and Delta has made that clear for me. Thank you, Delta.
As an owner of a company, I’ve taken some notes on how *not* to do things. Once a company stops doing what’s right for their customers, especially their most loyal customers, it’s a very bad sign for the future. One of our stated missions at Pluralsight is to always do what’s best for our customers, and we believe that if we’re true to that, we will always have a successful business. I really hope Delta can turn this one around.

by community-syndication | Feb 15, 2010 | BizTalk Community Blogs via Syndication
I’m heading up to Redmond tomorrow for the annual Microsoft MVP conference and looking forward to seeing old friends and new technologies.
What do I expect to see and hear this week?
A clearer, more cohesive strategy (or plan) for the key components of Microsoft’s application platform. Seems we’re hitting (or already hit) a key point where […]