Archive

Archive for April, 2009

MSDN Unleashed – Spring 2009 Resources

April 30th, 2009 No comments

Update: I’ll be bringing these same discussions to Indianapolis on May 4th, Chicago on May 5th and Downers Grove, IL on May 20th. To register for these events or to see if MSDN Unleashed is coming to a city near you, visit http://msdnevents.com/unleashed.

 

For the Spring tour of the MSDN Unleashed events, we are focusing our discussion around Internet Explorer 8 and Windows 7.

In the first session, we discussed the story around the new Internet Explorer 8 rendering engine and the choices that were made to make IE8 a standards-compliant browser. Web authors, developers and administrators need to be aware of these choices and how they may impact your website. Head on over to the Internet Explorer Compatibility site for more details. We continued our IE8 developer overview with a look into three features that are going to allow web applications to extend their impact beyond their own web address. These include Web Slices, Accelerators and Visual Search. We also took a look at a great enhancement for developers (and a much needed one), the Developer Tools.

Resources for Internet Explorer developers:

Our second session covered what developers need to know for Windows 7. Unfortunately, we didn’t have nearly enough time to dive into all of the details. Watch for future sessions on Windows 7 development where we will dive into the particulars.

The session started off by me stressing the point that Windows Vista is a viable option for Windows 7 development. Microsoft made a lot of architectural changes in Windows Vista. These changes were necessary to make Windows the most secure and trustworthy platform that also performs to user’s expectations. Windows 7 builds off of these changes and carries the platform forward.

Windows 7 brings Multi-touch computing to the forefront as a first-class citizen. Developers will have opportunities to extend their application user-interface paradigms into a whole new direction. The Windows 7 SDK provides the API’s to bring touch to your applications. Moving forward, the managed code developers will get touch API’s in WPF 4.

There are a number of new enhancements to the Windows 7 UI that developers can take advantage of. One of the biggest changes are the enhancements to the new Windows 7 Taskbar. The new Taskbar brings a clean and lightweight implementation that includes some great features such as Jump Lists, Thumbnails, and Icon overlays that provide information such as notifications and progress. You can find more resources on developing for the taskbar over on the Windows 7 Taskbar Developer Resource site.

We carried the discussion further in highlighting the point on how the Ribbon control born out of the Office 2007 products was to become a first-class control in Windows 7. As well as the new Explorer enhancements with items such as Federated Search and Libraries.

A few of the items we didn’t have time to touch on was how Windows 7 is going to include Web Service API’s directly in the OS to make communicating with Web Services a native part of the OS. Some other interesting new features include the new Sensors & Location platform. This provides the ability to build location-awareness into your applications. Think of the possibilities!

Resources for Windows 7 developers:

Categories: Talks

Developer Diary – the Mediation Service

April 18th, 2009 No comments

[This is the 6th article in a series of diary entries covering my experiences with Project MEBA]

In my previous posts, we discussed the problem space and what the thoughts are in bringing social computing to the B2B space. Now let me touch on the meat behind Project MEBA.

To reiterate from previous posts, Project MEBA is about providing an efficient, secure, and economical way for businesses to do business together that is also highly reliable and can scale with the businesses needs. When the Azure Services Platform (AzSP) was announced at last year’s PDC conference, the technical means to address these requirements was finally realized. We’ve been specifically focused on the .NET Services side of the AzSP story.

With the .NET Services Bus, we have the means for business to exchange messages in the cloud without having to worry about some convoluted process to get the various business parties to talk with one another.

Going back to our portal and the aspect of creating a business collaboration, each party in a collaboration will play a particular role within the business process. The Project MEBA portal will provide instructions for each business party on how to implement the services required on their end and also provide them the endpoints in which they’ll use to communicate. These endpoints are managed (and owned) by the MEBA’s AzSP solution. With Access Control Services, we can define the claims needed for each of our business parties to have the authority to host an endpoint in the MEBA cloud solution. The means in which we’re to provide this authentication/authorization process with the MEBA backend is yet to be finalized. We’re looking to implement an X.509 certificate store that has a trust relationship with the Access Control Service. Once the trust is established, we should be apply the necessary claims to create an endpoint in the MEBA solution. More of this work will come down the road with the Geneva Framework.

Each business process will have an associated workflow within the MEBA portal to support the mediation of the business process. As part of these business arrangements, there may be agreements in place such as time to respond, providing the agreed upon information, etc. With the workflow in the middle, we can provide a mediation service that tracks business transactions and outcomes. We can then provide this data in a dashboard fashion back to the participating parties. Therefore, if there are any discrepancies in the business dealings, we have a 3rd party mediated service that can provide the proof necessary to resolve situations.

The diagram below shows a simple business process scenarios architecture. The buyer will open an endpoint to communicate with the workflow. The workflow implements a ReceiveActivity to process the message, perform any necessary routines such as logging, and than executes a SendActivity to pass on the request to the Seller. The Seller than respond to the request which passes through the workflow and onto the Buyer.

 

image .

In this architecture, we are implementing an on-premise workflow as opposed to using the .NET Services Workflow capabilities. The .NET Services Workflow just didn’t provide the activities and capabilities we needed to support our scenario. The .NET Services Workflow is changing rapidly with each new release of the .NET Services SDK. The team will revisit this once the functionality of the .NET Services Workflow has been expanded.

So there it is… simple enough, yet very powerful. With the capabilities of the .NET Services Bus, we have the opportunity to save business a substantial amount of money by taking the burden away of having to support an expensive infrastructure to perform business transactions with partners. This is just an idea that we’re playing around with. Taking a vision of a real work business problem and applying a solution that is now possible with the Azure Services Platform. Moving ahead, the team will continue to build this proof-of-concept and make it available to all of you. I would expect there are *many* things we can do to enhance the system and apply new means to attach the problem space. One idea already is to incorporate the recently announced support for routing and queuing in the service bus. Those two features will greatly benefit our solution.

Unfortunately, my time has come to end on the MEBA project. I have to get back to my REAL job in Chicago and continue to evangelize the incredible technologies and development platform that are continually evolving out of Redmond and beyond. This project gave me the chance to work with some of the brightest minds in the industry and for that I’m truly grateful. The team will muster on and I can’t wait to see how it all turns out in the end. If our vision is correct and the technology lives up to its promises, this will truly be an industry changing event and I can say I was part of it.

Categories: Project MEBA

Developer Diary – Bringing Community to Business Collaborations

April 17th, 2009 No comments

[This is the 5th article in a series of diary entries covering my experiences with Project MEBA]

 

The vision for Project MEBA has always been about making it easier for business to collaborate more effectively with the most cost efficiency. We can offer up service based computing with offerings such as the Azure Services Platform which takes the complexity and capital expense out of the business parties hands and offers them to focus on their core business. However, in the Business-to-Business arena a major challenge is still finding those business parties to partner with. This leads us to our second vision with Project MEBA – provide a common space (“a community”) to link business parties with similar business needs. In this case, we are taking the ideas behind social computing and bringing it to the business world. 

With the MEBA Business Portal, business can join a community to find, communicate and collaborate with new and existing business partners. In building our portal concept, we didn’t have to go far in finding a starting point. Just a couple doors down the hallway in building 24 on the Microsoft Campus, members of the Platform Architecture team released a sample social computing application called “Kobe”. The purpose Kobe was to provide a sample “Web 2.0” application for a PowerPoint sharing website. Kobe had all the components we were looking for: a community portal, friends/contacts, communication, discovery, etc. With a few tweeking items here and there, we were able to take our requirements, combine them with the architecture behind Kobe and build out our MEBA Portal in a very short amount of time.

One of the reasons for the rapid development was what Kobe did with it’s architectural components. The MEBA portal was pieced together by utilizing another Platform Architecture team project called Blueprints.

Microsoft Blueprints make you more productive by helping you codify conventions, automate tasks, and package requirements, designs or implementations, so that you can use them again.

Blueprints is a form of Software Factories that plugs directly into Visual Studio and provides some foundational architecture components to ramp up your development effort. Through the development of Kobe, the identified the foundational aspects of the Kobe architecture and created a “Blueprint” to support the building a Web 2.0 website onto of the Microsoft Platform. Exactly what we needed in building our MEBA Portal. In a matter of hours, we were able to build our “social computing” website and adjust the contents to support our business vocabulary. This brought us the coveted 80% of the way in short order.

The “MEBA” Business Portal

 

HomePage

Once a business joins the community, they are presented with an engaging home page that lets them know what’s going on within the community. In this case, we can show details on what are the currently running business processes, what are the most popular business processes within the community and what are the currently featured business processes. In this case, if the community owner uploads new business processes supported by the community, they can showcase them for business partners to participate.

You can go back and read the preceding articles to understand what I mean by a business process, but I’ll spare you the effort and tell you that a business process is simply a business collaboration between two or more business parties. Think of a Buyer and a Seller. The Buyer would like to send out a request for a quote on a particular product and if the price is right, purchase that product. The business process is the OrderFromQuote process and the collaboration is the arrangement between the buyer and seller to offer each other’s services to. In our case in this community, that arrangement is the transfer of messages to support the business process: 

Buyer sends Message to Seller requesting a quote for a product; Seller would respond with a message with the quote or an empty message refusing the request

It’s important for a community to offer something backs to its members. In our MEBA portal that offering is the mediation of business processes and the discovery of new business partners.

ProcessDetail

Each Business Process has a detail page that provides additional information about the process along with comments and ratings by other community members. If a business would like to participate in a collaboration, they would assign themselves to a role of the business process. In our OrderFromQuote sample, are you a Seller or are you a Buyer? Once you agree to participate in a certain role, the community should provide a means to find parties serving the other roles of the process and work with them to create a collaboration.

In creating a collaboration in the MEBA portal, we’re stepping out of the bounds given to us (for practically free) from Kobe. To communicate the ideas to the development team, I created a wireframe using PowerPoint. I never thought of PowerPoint as a design tool but it certainly served its purpose in our case.

image

With the collaboration, we are assigning the roles for each party to play in the process. Once complete the parties will have their assignments which in the case includes what WSDL they much implement on their end and what service bus address they will host them at. This is all wrapped into a mediation workflow provided by the MEBA business portal. From here, the business portal can track the progress of the transaction and report back to the participating parties on the level of quality and any previously arranged service-level agreements around time to response, success/failure ratios, etc.

With the MEBA Community Portal, we are providing a means on how businesses can discover, communicate and collaborate with new and existing business partners. We still have some time to go in finishing out the portal, but without the efforts of Blueprints and the Kobe project, we’d have a much longer road ahead of us.

Next up… the back end.

Categories: Project MEBA

My MSDN Flash Editorial for April 13, 2009

April 15th, 2009 No comments
 

Every couple of weeks, we supply some notes, thoughts or announcements around the happenings in the developer community which is than posted as part of the “From the Editor” section of the MSDN Flash newsletters. Recently our “From the Editor” section was buried behind a link. For that reason, I will cross-post that entry here. I want to make sure you all have the information on what’s happening in the developer community. Enjoy.

 

.NET Communities in the Virtual World

Here in the Midwest, we have a great offering of .NET user group communities. However, there are still developers spread throughout the area that can’t find a user group within a reasonable driving distance of their home and work. Fear not, geographically-challenged developers, as there are a number of user group communities popping up on several social sites on the Web.

For those of you looking for a truly virtual experience you can join up with the Second Life .NET Developers User Group. I’ve had the privilege of presenting a couple of sessions for SLDNUG (see Virtual CodeFest Wrap-up), and it was truly a great experience. There’s a little bit of a learning curve in navigating the Second Life waters, but once you get the hang of it, it’s a great opportunity to join fellow developers in the virtual world.

Also on tap in the social space for .NET developers is the Linked .NET Developers Group on LinkedIn, where they have over 21,000 members! Coming up on April 30th, the Linked group has Brian Harry, the father of Team Foundation Server, scheduled to discuss what’s coming in TFS 2010 ("Rosario").

Let’s not leave out Facebook. The .NET Programmers Group on Facebook has a number of events on schedule, including Virtual User Groups and Cloudism, Coding4Fun: Building a Video Game with XNA Game Studio 3.0, and Using Templates in Silverlight to Change the Look and Feel of Controls.

As you can see, there are plenty of opportunities to participate in the .NET community no matter where you pull up your keyboard.

Event Season Kicks into Gear
Spring is in the air, and the community conference season is kicking into high gear. We have a number of great events coming to the area for you to learn all the latest in the Microsoft platform world.

We start off with XAMLFest, coming to Chicago on April 29 – 30. XAMLFest is a two-day interactive event where you’ll learn about the platforms, tools and processes used to deliver differentiated user experiences. It’s a chance for you to mingle with user experience-minded Microsoft folks and industry leading design firms and design integrators. Discussions will revolve around technologies such as WPF and Silverlight, along with tools such as Expression Blend. To register send an e-mail to xamlfest-chicago@live.com with your name and e-mail address. Registration is limited, so register early. We do ask that you register only if you know that you can attend both days of the event. More information about XAMLFest is available on John Pelak’s blog.

Next up, we have RIApalooza Two coming to Chicago for its 2nd year. RIApalooza promises a platform-agnostic and PowerPoint-free zone where you can join fellow RIA enthusiasts to discuss the current state and the future of RIA technologies. It is for designers, developers, and just about anyone interested in learning about the platforms, technologies, and techniques used to build RIAs. It takes place in downtown Chicago on May 8. Head over to riapalooza.com for the latest information and registration information.

There are also a couple of code camps and a Day of .NET on the calendar for May. First, the Fox Valley .NET Users Group is holding a Day of .NET on May 9th in Appleton, WI.

Next, we have the Indianapolis .NET Developers Association, who are sponsoring another code camp for the developer community in (where else?) Indianapolis on May 16th. Find all of the details at indycodecamp.com.

Rounding out the event announcements, the Chicago ALT.NET group is hosting a code camp for the Chicagoland area on May 30th in Grayslake, IL. This is a great location to bring in developers from both the Chicagoland area as well as our friends up around Milwaukee. These code camps are not limited to the .NET community; they’re for the larger developer community as a whole. The organizers are looking for speakers who can bring their skill sets from the Java, Ruby, Python communities, and more. To submit a session and to register for the event, head over to chicagocodecamp.com.

Windows 7 App Compatibility Lab
The ISV Evangelism team invites all ISVs to attend the upcoming Windows 7 App Compatibility Lab in Chicago taking place from April 20th to April 24th. The purpose of these half-day, complimentary labs is to assist ISVs in verifying that their applications will perform on Windows 7, and to provide feedback to the Windows product group as issues arise. As an attendee, you will have the opportunity to work with Microsoft technology architects while gaining an understanding of how to manage and optimize your product in a Windows 7 environment.

Categories: Uncategorized