Me, Pluralsight, Twitter and Facebook

Me, Pluralsight, Twitter and Facebook

I think I might spend more time now communicating with family and friends on social sites than via email. I tend to use Facebook more with my family and local friends, and Twitter more with work colleagues and my virtual friends. 

You can follow me on Twitter here.  And you can find me on Facebook here.

Like most people, at first I didn't "get" Twitter but now it would be hard to go without it. Watch this for a good Twitter explanation in plain English.

If you're new to Facebook, you should watch this video that brings many of its concepts to real life.  😉

A lot of my fellow Pluralsight wonks also hang out on Twitter. You can find all of our individual Twitter/Facebook links on our Technical Staff page.

In addition, Pluralsight has a company profile on Twitter that you can follow here to keep tabs on what's happening around Pluralsight in real-time. You'll be the first to find out about new screencasts, on-demand! modules, new course offerings, and specific projects, articles, and whitepapers that our authors/instructors are actively working on. There's also a Pluralsight Facebook group if you prefer that community instead.

Twin Cities BizTalk User Group Changes

The Twin Cities BizTalk User Group is changing to become the Twin Cities Connected Systems User Group!


 


We are changing to encompass a broader set of technologies and ensure that we are keeping up with the current set of technologies and patterns.

The Twin Cities Connected Systems User Group sets out to build a community of developers and architects interested in Microsoft middle tier technologies to aid in the development of the members and evangelize these technologies within the Twin Cities.

The middle tier technologies cover products as well as patterns. The partial list of products that fall into our community include BizTalk, Dublin, Oslo, MSE, WCF, WF, MSMQ and Azure.

The patterns typically cover Business to Business (B2B), Application to Application (A2A), Enterprise Application Integration (EAI), EDI, Business Process Management (BPM), Services Oriented Architecture (SOA) and cloud computing.

Free ASP.NET MVC eBook Tutorial

Free ASP.NET MVC eBook Tutorial

bookcover[1] There has been a lot of excitement in the community about the new ASP.NET MVC framework that is about to ship (literally any day now – announcement coming soon).  As with anything new, people are also asking for more tutorials/samples/documentation that cover how to get started and build applications with it.

Over the last few months I’ve been helping to contribute to an ASP.NET MVC book that Scott Hanselman, Rob Conery, and Phil Haack have been writing for Wrox.  The book is now in production, and will be available to buy in stores soon (you can pre-order it on Amazon today).

I wrote the first chapter of the book – which is a 185 page end-to-end tutorial that walks-through building a small, but complete, ASP.NET MVC application from scratch.  The agreement I made with Wrox was that I’d write it for free in return for them also making it available as a free PDF download.

I’m excited to announce that you can now download this free end-to-end tutorial chapter (it is a 14mb PDF file). It’s licensed under a “Creative Commons Attribution No Derivatives” license – which means you can share, distribute, print, or hand it out to anyone.

NerdDinner ASP.NET MVC Tutorial

The tutorial starts by using the File->New Project command in Visual Studio to create a brand new ASP.NET MVC project, and then incrementally adds functionality and features.  Along the way it covers how to:

  • Create a database
  • Build a model with validation and business rules
  • Implement data listing/details UI on a site using Controllers and Views
  • Enable CRUD (Create, Update, Delete) data form entry
  • Use the ViewModel pattern to pass information from a Controller to a View
  • Re-use UI across a site using partials and master pages
  • Implement efficient data paging
  • Secure an application using authentication and authorization
  • Use AJAX to deliver dynamic updates
  • Use AJAX to add interactive map support
  • Perform automated unit testing (including dependency injection and mocking)

The application the tutorial builds is called “NerdDinner”. It provides an easy way for people to organize, host and search for new topic-based dinners online:

nerddinner_small[1]

Scott Hanselman has been hosting NerdDinners for years, and came up with the idea of building the tutorial around an application that facilitates this.  He is also now hosting a live custom-skinned version of the application at www.nerddinner.com)

Download Links

Hope this helps,

Scott

P.S. The book is entering production now and so is officially in un-edited status (meaning professional editors haven’t gone through it yet).  We’ll update the PDF with any important edits once the text is final.

P.P.S. And yes – this is one of the reasons my blog has been more quiet than normal the last few months.  Expect more regular blog posting again soon once I recover from this. 🙂

Web Computing – Premsises, Hosting and Cloud

I had the privilege of talking to a number of customers, members of the community and reporters last week about our web / cloud technologies.  In those conversations, a few things became clear.  First, there is a ton of interest (in general) about cloud computing with folks wanting to understand what it is and how it will ultimately impact IT.  Second, IT organizations want to better understand specific scenarios that might be more favorable for cloud computing.  Third, as you might guess, there is a lot of interest in understanding how Microsoft will approach the business model for cloud.


 


First things first Microsoft thinks about the web workload (including cloud computing) holistically.  There are tools and technologies that help developers build interesting web based applications (Visual Studio, Silverlight, ASP.NET, WCF, IIS, etc.).  Separately, we think about running and scaling these applications using Windows Server & Internet Information Server (IIS, our web server) on local machines, clusters in a data center, capacity from a hoster and more recently through Windows Azure. Lots of the conversations this week focused on the differences between enterprise datacenters, hosters, and the cloud and SaaS.  It’s important to note that Microsoft has thousands and thousands of hosting partners and we support all of them.  Hosting is a critical service for many companies and one that will to add value for customers for years and years to come.  We license technology like Windows Server to them through our Service Provider License Agreement (SPLA).  We use SPLA to license Windows Server to partners like Amazon.


 


Here’s a way to think about it:


%u00b7         Enterprise IT – I buy the server and the software (CapEx).


%u00b7         Hoster – I rent the use of hardware and potentially software (OpEx)


%u00b7         Cloud – I pay for the consumption of a compute fabric as my app needs it (OpEx as my app demands)


%u00b7         Software as a Service (SaaS) – I pay to use an app which is hosted by the ISV directly, or the ISV uses capacity from a Hoster or Cloud provider.


I also like the way GigaOm put it in this post. The features and engineering that Microsoft is driving with Windows Azure powers this computational fabric – that’s what makes Windows Azure different from the technology we license to hosters and businesses.  Over time, the innovation in Windows Azure will be cross-pollinated with our on-premises server products and Windows Server, offering increasing capability to transition workloads between on-premises and the Azure cloud. Driving a consistent approach across both premises and cloud technologies ensures that developers and IT professionals have the power of runtime choice and the freedom to change their minds between running workloads on-premises, the cloud, or a hybrid of both to best fit their needs.


 


Second, people are beginning to speculate on the types of workloads that might be best suited for cloud computing.  While the list is hardly definitive, there are some uses that seem to resonate:


%u00b7         Workloads that are highly elastic.  We see examples in the insurance business on a regular basis – policy calculation and risk analysis.  Many companies update their premium tables on a quarterly basis.  This means we have an app that is computationally intense but only runs for a few days / weeks per year.


%u00b7         Revenue generating applications that need to scale linearly with demand.  Going back to my insurance company example – let’s say we have a web app that allows prospective customers to get an insurance quote and potentially begin service all through the web.  Instead of having idle capacity and managing to peak loads, I could use a cloud model and pay for consumption on a near real time basis.  That allows me to look at that app as a profit center.


%u00b7         Though not really an app type, the third example is helping our customers and partners accelerate their innovation and improve time to market. Think of this as pilot or skunk work projects you want to kick-start or scenarios in which you want to minimize upfront investment. A lot of the conversation on cloud computing has focused on start-ups that are eager to minimize their CapEx and want to get to market quickly.  The same logic applies for pilot projects in an enterprise. Examples here abound – just about any app type or scenario.  a key consideration here is whether or not you will continue to run this app in the cloud or will, at some point, run it on premises. More on this one in a later post


Third – on to business model.  People continually ask why we haven’t yet announced pricing for the Azure Services Platform.  There are a couple of reasons for this:


%u00b7         It’s early.  We’re still in feedback collection mode with commercial availability targeted for the end of 2009.  Right now we are focused on getting feedback on the services and making improvements where needed.


%u00b7         We want to encourage development free from economic constraints.  The moment you introduce an economic model, developers begin architecting around it based on what they perceive to be most cost effective.  We just want folks to build architecturally sound applications and tell us what they think.


What can we say about our business model?  Three things:


%u00b7         First, we’ll have one.  We see this as a business and will run it like one.  We’ll provide a reliable service and ensure that it is compelling for our customers and reflects the feedback that they have given us.


%u00b7         Second, as always, we will be competitive with market pricing.  Microsoft has a long history of being a high volume, high quality, low cost provider and this will be no exception.


%u00b7         Third, we hear from developers that there is a strong preference for simplicity and consumption-oriented pricing. Still more work to do here, but we hear that and tend to agree that it makes the most sense for our platform services.


On to MIX sessions I’m especially excited about are the .NET Services talk with John Shewchuk (Day 2) and Doug Purdy’s session on RESTful Services (Day 3). See you there!

Good as Gold! New WCF Adapter FAQ Whitepaper!

 I just published this extensive FAQ with the help of the BizTalk Server product team at http://go.microsoft.com/fwlink/?LinkID=144765.


 These FAQs about the Windows Communication Foundation (WCF) adapters consists of the following themes.   Pass it on and enjoy!


%u00b7         General Conceptual: FAQs surrounding general conceptual WCF adapter topics. 


%u00b7         Message Flow and Mapping: FAQs about how a message flows in and out of BizTalk Server using the WCF adapters. 


%u00b7         Development Libraries: FAQs to help you better understand which development libraries to use when developing BizTalk adapters. 


%u00b7         Using WCF Services: FAQs explaining how to access WCF services, and how to extend BizTalk Server using WCF custom bindings and custom behaviors.


%u00b7         WCF Endpoints: FAQs about WCF endpoints with information about service endpoints, metadata, and how to publish WCF endpoints.


%u00b7         Service Architecture: FAQs describing the service architecture and when to use a BizTalk pipeline or a WCF behavior, and the types of encoding to select when using the WCF adapters.


%u00b7         WCF Error Handling: FAQs examining how to handle SOAP faults and errors during processing of messages through the WCF adapters.

CEP merger

First we saw the great shake-out in the rules processing world – ILog went to IBM, RuleBurst/Haley went to Oracle, etc. Now consolidation and merger is starting to raise its head in the younger, but related, world of CEP (Complex Event Processing) with the coming together of two leaders in that field, Aleri and Coral8. We are probably still some way off seeing these companies snapped up by the biggest names in the industry, but it may happen eventually.

Both the rules companies mentioned above are members of Microsoft’s Business Processing Alliance; it is interesting to note that Microsoft is now effectively in alliance with two of their direct competitors in the BPM space. Currently, however, CEP remains unknown territory to most .NET developers. Will there be a major CEP story on the Microsoft platform in future? We will have to wait to see.

Best wishes to the newAleri.

Hierarchical Level Numbering in BizTalk Map

The easiest way I’ve found to do HL numbering is to use a global variable inside of a map and increment it for every HL segment you need to produce.

Here’s an example:

This is the 2nd HL segment, so here I’m needing an incrementing HL01 and the previous HL number in the HL02.

The inline C# script for the HL01 would be:

int HL01;
public int increaseHL01()
{
HL01++;
return HL01;
}

The inline C# script for the HL02 would be:

public int HL02()
{
return HL01 -1;
}