More on the Don and Chris and David (Langworthy)

More on the Don and Chris and David (Langworthy)

As much as I am enjoying the PDC and all the REST love, I also am really excited about
M

Expect more posts and information on M in the next few weeks here on my blog (this
post is really mostly motivational for me to get blogging again :)).

Edit:

I’m also pretty excited about Windows Azure, hosted
solutions might not be for everyone, but I think there are a lot of interesting things
that might be good to host off-premise (if I write “Cloud” my wife is going to hurt
me, because she thinks its the most idiotic technical jargon word she’s ever heard).
I’ve actually been playing with the beta bits, and I’ve been super impressed with
the development environment and the runtimes.


Check out my new book on REST.

WCF 4.0 Building WCF Services with WF in .NET 4.0

Today I was at the session WCF 4.0 Building WCF Service with WF in .NET 4.0


Many new and very interesting features are being built into WCF & WF 4.0.


Nowadays in WF it’s kind of challenging to make a choice between synchronous and a-synchronous:


Synchronous = Simple to author and maintain performs poorly
Asynchronous = Performs well call can be made in parallel, difficult to author and maintain


WF / WCF 4.0 makes that live a bit easier. The configuration and development in WF 4.0 to call asynchronous services is quite a lot easier (Soon with examples!)


The designer for configuring endpoints and WCF activities looks a bit smoother. As far as I can see it ‘pre-scans’ the *.config file which endpoint to choose, or create your new endpoint.


Correlation is now also with content, so you can relate to values inside the message. You can still use the contexttoken (as in .NET 3.5) but now you have the option to do xpath queries and select based on which kind of content you would like to continue the instance. Only I question myself why xpath? Can’t I use objects since it’s a datacontract? (Maybe later more info on this.)


Also I saw a live demonstration on Dublin the new hosting platform for WF. Dublin is an extension on IIS. It’s some very cool features like:



  • Routing connect the right message with the correct version

  • monitor al running workflows (with tracking enabled), restart, stop

  • Lookback workflows

  • See event details on activities in the tracking tool

  • More info will come soon.

Conclusion very cool times ahead for WF and WCF.

Pluralsight On-Demand: Developer Training for a New Era

Pluralsight On-Demand: Developer Training for a New Era

In addition to Microsoft's big announcements, this PDC is a particularly special one for Pluralsight because today we announced a strategic shift in how we think about developer training.

Today we launched a new online service called Pluralsight On-Demand. Think of it as training in the Cloud.

psod_logo

Pluralsight On-Demand is a web-based subscription service providing developers access to hours of searchable and browse-able .NET developer training content. It's the same content you'd receive in one of our instructor-led courses, only you can hit pause whenever you want. This compelling model puts you in control of your training. With Pluralsight On-Demand, you get the in-depth training you need whenever you need it, from any computer with a Web browser. And you decide what topics are worthy of your valuable time.

The initial Pluralsight On-Demand library covers most of Microsoft’s core platform and server technologies including ASP.NET, Ajax, Silverlight, WPF, WCF, WF, BizTalk Server, R2, and LINQ, totaling more than 80 hours of recorded content, with much, much more in the production pipeline.

These courses have been recorded by the same renowned Pluralsight authors you already know and trust — influencers who have close relationships with the Microsoft product teams — and who understand the technology like almost no one else, which shines through our unique content.

We recently finished a four month early-adopter beta program where we vetted our content model, the online infrastructure, and overall customer experience before unveiling it to the public. We learned a lot during the process and feel really good about our initial offering. Here are some of my favorite quotes from our early adopter customers that illustrate some of its different characteristics:

Pluralsight On-Demand was like being in class with Fritz, only I could hit pause. It's hard not to learn from these guys!

I wasn't sure what to expect in the beginning but I must say you hit the mark for what is needed in the training world.


Your content definitely met my expectations for online training. I'm planning to suggest Pluralsight On-Demand to our training coordinator to start saving on travel and other expenses (given the current economic situation).

I've spent about 20 hours on Pluralsight On-Demand and I plan to spend much more over the next few weeks.

Having been to Pluralsight training in the past, I expected a very high quality experience. I was not disappointed.

The content was at the right technical level. It has the same style and pace as in-class training, which is why I like it so much.

The pricing is simple: $1299 for a 1 year subscription to the full library, but we're offering a special introductory price of $999 for a limited time. This gives you full access to our entire library, including all updates and new releases, and you'll be able to renew each year for only $649.

When you take one of our instructor-led courses, you automatically receive a subscription the corresponding online course. And when you purchase an online subscription, you'll receive discounts on your future instructor-led courses. There is tremendous synergy and educational value in the combination of the instructor-led + on-demand models, and we believe that's the sweet spot moving forward. We also offer volume discounts to and site licenses to fit your corporate environments (contact us directly).

In addition to our complete course offerings, we're also committed to providing the community with a valuable repository of free video content. We just released a new Screencasts page, our central gathering place for this type of free content, which will be updated weekly with new videos.

We designed Pluralsight On-Demand to increase the value you get for each training dollar you spend. We've provided some free samples for your review. The first few clips within each module are accessible to anyone.

We hope you'll check it out today.

Announcing Pluralsight On-Demand

Announcing Pluralsight On-Demand

In addition to Microsoft's big announcements, this PDC is a particularly special one for Pluralsight because today we announced a strategic shift in how we think about developer training.

Today we launched a new online service called Pluralsight On-Demand. Think of it as training in the cloud.

psod_logo

Pluralsight On-Demand is a web-based subscription service providing developers access to hours of searchable and browse-able .NET developer training content. It's the same content you'd receive in one of our instructor-led courses, only you can hit pause whenever you want. This compelling model puts you in control of your training. With Pluralsight On-Demand, you get the in-depth training you need whenever you need it, from any computer with a Web browser. And you decide what topics are worthy of your valuable time.

The initial Pluralsight On-Demand library covers most of Microsoft’s core platform and server technologies including ASP.NET, Ajax, Silverlight, WPF, WCF, WF, BizTalk Server, R2, and LINQ, totaling more than 80 hours of recorded content, with much, much more in the production pipeline.

These courses have been recorded by the same renowned Pluralsight authors you already know and trust — influencers who have close relationships with the Microsoft product teams — and who understand the technology like almost no one else, which shines through our unique content.

We recently finished a four month early-adopter beta program where we vetted our content model, the online infrastructure, and overall customer experience before unveiling it to the public. We learned a lot during the process and feel really good about our initial offering. Here are some of my favorite quotes from our early adopter customers that illustrate some of its different characteristics:

Pluralsight On-Demand was like being in class with Fritz, only I could hit pause. It's hard not to learn from these guys!

I wasn't sure what to expect in the beginning but I must say you hit the mark for what is needed in the training world.


Your content definitely met my expectations for online training. I'm planning to suggest Pluralsight On-Demand to our training coordinator to start saving on travel and other expenses (given the current economic situation).

I've spent about 20 hours on Pluralsight On-Demand and I plan to spend much more over the next few weeks.

Having been to Pluralsight training in the past, I expected a very high quality experience. I was not disappointed.

The content was at the right technical level. It has the same style and pace as in-class training, which is why I like it so much.

The pricing is simple: $1299 for a 1 year subscription to the full library, but we're offering a special introductory price of $999 for a limited time. This gives you full access to our entire library, including all updates and new releases, and you'll be able to renew each year for only $649.

When you take one of our instructor-led courses, you automatically receive a subscription the corresponding online course. And when you purchase an online subscription, you'll receive discounts on your future instructor-led courses. There is tremendous synergy and educational value in the combination of the instructor-led + on-demand models, and we believe that's the sweet spot moving forward. We also offer volume discounts to and site licenses to fit your corporate environments (contact us directly).

In addition to our complete course offerings, we're also committed to providing the community with a valuable repository of free video content. We just released a new Screencasts page, our central gathering place for this type of free content, which will be updated weekly with new videos.

We designed Pluralsight On-Demand to increase the value you get for each training dollar you spend. We've provided some free samples for your review. The first few clips within each module are accessible to anyone.

We hope you'll check it out today.

Windows Azure: A New Era of Microsoft Software Development

Windows Azure: A New Era of Microsoft Software Development

Years from now, we'll all look back and fondly remember this week that changed everything for Microsoft developers.

As someone who follows Microsoft technology, there isn’t a more exciting time than the week of the Microsoft Professional Developers Conference (PDC), a special event reserved by Microsoft for announcing and introducing new technologies incubating in R&D. Each PDC brings with it a myriad of new code names, acronyms, and new bits representing countless hours of Microsoft research and development. PDC is extremely important for Microsoft as a company because it acts as a forcing function for the various product teams to deliver something real and for everyone to converge around a core strategy. It's also important to the Microsoft community because it plants numerous seeds for future business opportunities.

Some PDC events are more significant than others, and some are flat-out transformational for the Microsoft development community. One significantly transformational PDC happened over a decade ago when Microsoft first announced Windows NT, a cost-effective server OS for small businesses that opened up an entirely new realm of possibilities for small to medium size companies. The PDC in 2000 marked another transformational moment with the introduction of .NET, a shift that greatly lowered the bar for Windows software development.

I'm attending PDC 2008 this week and I agree with Ray Ozzie that this marks a transformational moment for Microsoft as a company, and for the Microsoft development community as a whole. The major new announcement this week was Windows Azure.

WindowsAzure

Windows Azure is Microsoft's new comprehensive cloud computing platform. It consists of a virtualized cloud environment, foundational services, layered services that provide the basic building blocks for an entire new breed of applications. The reason Windows Azure is significant is because it opens the doors to the unexpected…it's the entrepreneur's dream…a wonderland for Microsoft's ISV community. Microsoft has always focused on the ISV market as a core business strategy, however, in recent years the overall platform offering has become somewhat stagnant in terms of new business opportunities it has made possible. Windows Azure is a whole new world from that perspective.

I actually feel like buying Microsoft stock again.

Amazon, Salesforce, and Google are the current major players in this space but Amazon is the current King of cloud computing. Amazon has been the leader in breaking new ground — Ray Ozzie even tipped his hat and called them "visionary" — through their S3, EC2, and other cloud services. However, Microsoft is in a strong position to do what they always do: make something better and more cost-effective for the masses.

Windows Azure has the potential to be more compelling than any of these offerings because it will provide a more comprehensive development platform and a developer-friendly experience through the .NET and Visual Studio. Microsoft wants to make cloud development as easy as writing any other .NET app (even with F5 debugging support), and if successful, that fact will allow millions of .NET developers to apply their skills to this new domain, a unique feather in Microsoft's cap. And the net effect should be far simpler and more productive experience than anything the other vendors could possibly offer. All in all, cloud computing is a perfect fit for Microsoft as a company from both a technical and strategic perspective.

This all assumes, of course, that Windows Azure is just as price competitive and technically solid as the competitive offerings. As long as it is, Microsoft is in a strong position to move their entire business model in this direction in a serious way. You definitely get the sense at PDC this week that every Microsoft product unit is looking seriously at how to use the cloud, and services in general, to extend their on-premise software offerings. This is what Microsoft calls their software + services strategy. Even products like Microsoft Office, SharePoint, and Dynamics are moving in this direction. Today they announced that the common Office apps like Word, Excel, One Note, and PowerPoint will be available in the cloud, representing a huge shift in strategy for that particular product. If services can add value to any Microsoft product, it's probably in the works right now. 

Microsoft's software + services motto seems to resonate nicely with their developer community and it fits Microsoft's comprehensive strengths.

The reason I believe the cloud is going to be big is because the pointy-haired guys "get it". In general, it's not hard for the business to understand the value proposition of the model from an IT perspective. As a result, the business value alone will push adoption in this direction, especially for small to medium size companies. And I believe once Microsoft makes it easy, it will begin to take off like wildfire for the scenarios that make sense.

There are definitely some trust concerns, specifically around sensitive data, and that may be a prohibiting factor for some business apps to ever move to the cloud. And it will also be harder for large and complex enterprise scenarios where geo/political/regulatory issues come into play. However, that's where Microsoft's software + services comprehensive strategy once again resonates — with traditional on-premise solutions for those sensitive scenarios and more cost-effective cloud extensions for the not-so-sensitive aspects — all fully integrated with each other. A solid model all around.

This is where I'll personally be investing most of my time in the months and years ahead, so you can expect to see more Azure-related content from me in the near future. There's a lot exciting stuff happening within CSD right now but this is transformational aspect of it all.

It's an exciting time to be a Microsoft developer. A new era of software development has just begun.

Windows Azure: A New Era for Microsoft Developers

Windows Azure: A New Era for Microsoft Developers

Years from now, we'll most likely all look and remember this week as one that changed everything.

As someone who follows Microsoft technology, there isn’t a more exciting time than the week of the Microsoft Professional Developers Conference (PDC), a special event reserved by Microsoft for announcing and introducing new technologies incubating in R&D. Each PDC brings with it a myriad of new code names, acronyms, and new bits representing countless hours of Microsoft research and development. PDC is extremely important for Microsoft as a company because it acts as a forcing function for the various product teams to deliver something real and for everyone to converge around a core strategy. It's also important to the Microsoft community because it plants numerous seeds for future business opportunities.

Some PDC events are more significant than others, and some are flat-out transformational for the Microsoft development community. One significantly transformational PDC happened over a decade ago when Microsoft first announced Windows NT, a cost-effective server OS for small businesses that opened up an entirely new realm of possibilities for small to medium size companies. The PDC in 2000 marked another transformational moment with the introduction of .NET, a shift that greatly lowered the bar for Windows software development.

I'm attending PDC 2008 this week and this indeed feels like a transformational moment. The major new announcement this week was Windows Azure within Ray Ozzie's opening keynote.

WindowsAzure

Windows Azure is Microsoft's new comprehensive cloud computing platform. It consists of a virtualized cloud environment, foundational services, layered services that provide the basic building blocks for an entire new breed of applications. The reason Windows Azure is significant is because it opens the doors to the unexpected…it's the entrepreneur's dream…a wonderland for Microsoft's ISV community. Microsoft has always focused on the ISV market as a core business strategy, however, in recent years the overall platform offering has become somewhat stagnant in terms of new business opportunities it has made possible. Windows Azure is a whole new world from that perspective.

I actually feel like buying Microsoft stock again.

Amazon, Salesforce, and Google are the current major players in this space but Amazon is the current King of cloud computing. Amazon has been the leader in breaking new ground — Ray Ozzie even tipped his hat and called them "visionary" — through their S3, EC2, and other cloud services. However, Microsoft is in a strong position to do what they always do: make something better and more cost-effective for the masses.

Windows Azure has the potential to be more compelling than any of these offerings because it will provide a more comprehensive development platform and a developer-friendly experience through the .NET and Visual Studio. Microsoft wants to make cloud development as easy as writing any other .NET app (even with F5 debugging support), and if successful, that fact will allow millions of .NET developers to apply their skills to this new domain, a unique feather in Microsoft's cap. And the net effect should be far simpler and more productive experience than anything the other vendors could possibly offer. All in all, cloud computing is a perfect fit for Microsoft as a company from both a technical and strategic perspective.

This all assumes, of course, that Windows Azure is just as price competitive and technically solid as the competitive offerings. As long as it is, Microsoft is in a strong position to move their entire business model in this direction in a serious way. You definitely get the sense at PDC this week that every Microsoft product unit is looking seriously at how to use the cloud, and services in general, to extend their on-premise software offerings. This is what Microsoft calls their software + services strategy.

Even products like Microsoft Office, SharePoint, and Dynamics are moving in this direction. Today they announced that the common Office apps like Word, Excel, One Note, and PowerPoint will be available in the cloud, representing a huge shift in strategy for that particular product. If services can add value to a product, it's probably in the works. Microsoft's software + services strategy is company-wide.

The reason I believe the cloud is going to be big is because the pointy-haired guys "get it". In general, it's not hard for the business to understand the value proposition of the model from an IT perspective. As a result, the business value alone will push adoption in this direction, especially for small to medium size companies. And I believe once Microsoft makes it easy, it will begin to take off like wildfire for the scenarios that make sense.

There are definitely some trust concerns, specifically around sensitive data, and that may be a prohibiting factor for some business apps to ever move to the cloud. And it will also be harder for large and complex enterprise scenarios where geo/political/regulatory issues come into play. However, that's where Microsoft's on-premise strategy remains strong but now it's loaded with interesting new potential.

It's an exciting time to be a Microsoft developer. A new era of software development has just begun.

First Look Screen Shots of Microsoft’s Modeling Platform – Oslo

Make sure you check out the video content on Oslo available on BizTalkGurus.com:

First Look at Quadrant – Oslo’s Modeling Tool

First Look at M – Oslo’s Modeling Language

Oslo is the codename for Microsoft’s Modeling Platform.  The end goal of Oslo is to increase productivity by promoting the use of model-driven applications.

Oslo is composed of three pieces: a Tool, a Language, and a Repository.  In this blog post, I will share some features and screen shots of the tool and language. 

The Tool for Oslo is called Quadrant.  Quadrant is a universal modeling UI with robust features.  The main windows is called a workspace.  You can have multiple workspaces open at any given time.  Single windows open inside a workspace are called a workpad.

Below is a picture of Quadrant with a workpad open in the workspace. 

 
(Click picture to enlarge)

Quadrant has a top level ribbon bar much like Word.  This is shown below.

(Click picture to enlarge)

In the bottom left of the main Quadrant windows, you have an Explorer button and Search Box.

The Explorer window expands as items are selected with the sub-results displayed to the right.  A hand with 5 fingers shows how to select items.  Scrolling is identified by a mini-scroll bar to the right of the hand.  To add new items to the workspace, move to the left icon of the items you want to add.  The hand will turn to 3 fingers.  Hold the left mouse and drag the items to the workspace.  You can also drag-and-drop from the top ribbon bar as shown below. 

Many models will have relationships to each other.  In these cases, available fields from other models will be show in a populated drop down as seen below.

 

This should give you a high level overview of the look at feel of Quadrant.

The second key component of Oslo is M – the new Modeling Language.  To code in M you use an awesome, lightweight tool called Intellipad.  Intellipad with a completed model are shown below.

 
(Click picture to enlarge)

Looking a little like Wordpad, do not be fooled.  This is full featured, complete with red underlines for real time validation.

Going to the M Mode menu on the top toolbar, generating actual SQL based on your model is only a click away.  Below, is the same model with a side by side view of the model and the SQL to generate that model inside SQL Server.

 
(Click picture to enlarge)

Running this model would produce these results inside SQL Server.

One of the core concepts that make up Oslo is the idea to define models using Domain-Specific Language (DSL).  In fact, using M you can create you own DSL!  Below, you can see how I created a AllMyPets DSL to track the name of my pets.

The third piece of Oslo is the Repository.  This repository is a SQL 2008 Database.  Using a database as the repository allows for easy access to the stored data and a way to share it.  Security, backups, and scaling are all included using SQL Server.  This will not be covered in any more detail in this blog post.

Make sure you check out these other Oslo Resources:
Oslo – PDC-08 CSD Bits Review

MSDN Oslo Dev Center

Models Remixed

Architecting and more in-depth information about Cloud Services / Azure

From the session Architecting Cloud Services at the PDC 2008. Not only which design consideration you might want to take, there’s also a lot of more in-depth information about how Windows Azure works is designed.

Yesterday I blogged about the announcement of Windows Azure, and the insight of Azure comes more and more clear. The SDK it out so the information is dropping in step by step.

I think Windows Azure is more then just a Cloud Service. It’s remote hosting. All your applications which do something with the Web, can be hosted in the cloud.

The bold and underlines remarks are questions I try to answer later on, because these question I have as well.

I’m sorry that this blogpost seems a bit ‘stacato’ they are almost a direct note of my sessionnotes.

A nice thing about Windows Azure is that it does ‘eat you own dogfood’ , for example the storage service makes use of Windows Azure.

So what are characteristics of Cloud computing?

  • Scale-out not scale-up
  • Add and remove capacity on demand
  • Pay for what you use as you go
  • Automation is key to reducing cost

Windows Azure goal is to automate life cycle as much as possible

  • As a developer you develop your service, then you get your Azure service provisioned, after that Azure helps you to pick up your code.
    Like:
    • Mapping and deploying to actual hardware
    • Network configuration
  • Maintain goal state:
    • Monitoring (Done by Azure)
    • React to events
  • Service model Guides Automation
    • Describes service as distributed entities
      • Authored by service developer
      • Configured by service deployer
    • Logical description of the services
      • Same model used for testing and production
        • Where is development / test / staging (user acceptance test environment) / production?
          WJC: As far as I can see at this moment there’s only staging and production.
  • Windows Azure Service Model elements
    Just a bit like WCF these are the elements which needs to defined in some sort of way.
    • Service
      • That’s the set of roles, groups and channels
    • Role
    • Group
    • Endpoint
    • Channel
    • Interface
    • Contract?

Update domain dictate the order of how the updates are being, this gives you the control which what to and when to update. Even rollback en rollforward.

Dynamic Configuration Settings

  • There is no registry for services
  • Application configuration settings are declared by the developer (declarative) and can be set finally by the deployer
  • System configuration Settings
    • Pre-declared, same kinds for all roles
    • Assigned by the system.

Windows Azure Automation

  • Fabric Controller (This is the brain of the system)
    • Maps declarative service specs to available resources
    • Manages service life cycle starting from bare metal
    • Maintains system health and satisfies SLA
  • What’s special about it?
    • Model driven service management
  • Windows Azure push button deployment
    • This is a an almost automated process, there’s some manual intervention needed, for example assign the fault domains and the update domains
    • It’s can send an message back when an update failed and will rollback.

There’s a medium trust code access policy.

Windows Azure is designed highly available.

  • Network redunded designed
  • Services are deployed across fault domains
  • Load balancers route traffic to active nodes only

A thing to think about is how Microsoft is going to manage updates on the cloud servers. In some cases it might happens that an update depreciated some code of you. At this moment only security patches are being applied. But I’m very curiously about the strategy for updating. 

The roadmap:

Windows Azure PDC release:

  • Automated service deployment from bare metal
  • Subset of service model simple set of service templates
  • Changing number of running instances
  • Simple service upgrades or downgrades
  • Automated service failure discovery and recovery
  • Hardware management

2009+:

  • Expose more of underlying service model
  • Richer service lifecycle managing

Design considerations when developing a Cloud hosted Service / Application

Characteristics of Cloud computing

  • Scale-out not scale-up
  • Add and remove capacity on demand
  • Pay for what you use as you go
  • Automation is key to reducing costs

Cloud services design considerations

  • Failure of any given node is expected
    • View each node as a cache
    • State has to be replicated
  • No one-time install step
    • Application need to reinitialize on restarts
    • Do not assume previous local state is available
      • You have to create some sort of state management, because you can’t do any asumptions on in
  • Configuration changes due to load or failures
    • Handle dynamic configuration changes
  • Services are always running
    • Service rolling upgrades/downgrades
    • Services must handle data schema changes
  • Services are built using multiple nodes/roles
    • Document your Service Architecture
    • Document your communication paths of elements
      Other wise nobody doesn’t what where, why and how.
  • Services can grow very large
    • Careful state management at scale is needed
      • Some should be available as standard with Azure.

Benefits of adhering to Windows Azure Design Point
What does Azure does for you?

  • Windows Azure manages services not just servers
    • Tell it what you want and it will automate the details
      • Please show me more of that 🙂
    • System manages services, nodes and network
  • Automates service life-cycle management
  • Consider where to focus on
    If your service becomes big, what is better / more cost effective. Invest in usage or just scale-our.
    • But this is also very depended of the pricing model Microsoft is going to have.

 

 

 

So this is again really a lot of information, but it sounds promising, blog ya soon 🙂