Real World Azure Online Live Event - Tuesday, September 29th

9/25/2009 8:55:46 AM

If you will not be able to make it to one of the local Read World Azure events (like this one in Minneapolis), there will be an online delivery of the event on Tuesday, September 29th.  The details of the event are the same as the in-person events:

TechNet & MSDN Events Present:

Real World Azure

We invite you to explore Windows Azure™ – Microsoft’s platform for building and deploying cloud based applications – from a real world point of view!

During this event, we’ll review critical lessons Microsoft IT has learned migrating internal line-of-business applications to Windows Azure™.

What is Windows Azureâ„¢? When should I use it? How does it apply to my job?  Whether you’re an IT Professional, Developer or Architect, we’ll address your top of mind questions about cloud computing.

TechNet Events Presents – for the IT Professional from 8:30am to noon

In this session, we will discuss:

  • Azure architecture from the IT professional’s point of view
  • Why an IT operations team would want to pursue Azure as an extension to the data center
  • Configuration, deployment and scaling Azure-based applications
  • The Azure roles (web, web service and worker)
  • Azure storage options
  • Azure security and identity options
  • How Azure-based applications can be integrated with on-premises applications
  • How operations teams can manage and monitor Azure-based applications

TechNet LIVE Webcast | REGISTER >>

MSDN Events Presents – for the Developer & Architect from 1:00pm to 5:00pm

In this session, we will discuss:

  • Cloud computing architectures in general and the Azure architecture in particular
  • Several aspects of Azure from the developer’s and architect’s perspective
  • Azure roles (web, web service and worker)
  • Azure storage options
  • Azure security and identity options
  • How Azure-based applications can be integrated with on-premise applications
  • Configuration, deployment and scaling Azure-based applications
  • How development teams can optimize their applications for better management and monitoring

MSDN LIVE Webcast | REGISTER >>

Tags:

Headlines

Spaghetti Code Podcast with Robert Boedigheimer

9/21/2009 7:09:00 AM

Spaghetti Code Talks with Robert Boedigheimer about some of the things Robert has learned over the years as an ASP.NET developer on a real-world commercial web site.  Robert shares everything from operational settings for IIS to useful programming tips.  Even if you have been doing ASP.NET development for a while, there is sure to be at least one useful nugget in this informative podcast.

  • Direct Download - click here
  • Subscribe - click here
  • iTunes - click here
  • Tags:

    SpaghettiCode

    Peer to Peer Series: Sample WPF PNRP Application

    9/18/2009 10:52:00 AM

    PNRP Building on the examples for the first four installments, I whipped up a little WPF app that uses PNRP.  You can create registrations and look them up.  It is a good example of using the various features of PNRP to form the foundation of a P2P application. I banged this app out pretty quickly so no snarking on things that may be incorrect, designed poorly, whatever.

    Download PeerToPeer Code Here

    Tags:

    Peer2Peer

    Peer to Peer Series Part 4: Resolving Peer Names Asynchronously

    9/16/2009 9:08:00 AM

    In Part 4 of the Peer to Peer Series, I modify the Resolve program to find Peer Names using the asynchronous methods.  Below is a very simple example of using the ResolveAsync method:

    PeerNameResolver resolver = new PeerNameResolver();
     
    try
    {
        resolver.ResolveCompleted += new EventHandler<ResolveCompletedEventArgs>(resolver_ResolveCompleted);
        resolver.ResolveAsync(new PeerName(classifier, PeerNameType.Secured), Guid.NewGuid());
    }
    catch (PeerToPeerException ex)
    {
        // There are other standard exceptions you can also catch - see docs
        Console.WriteLine("PeerToPeer Excpetion: {0)", ex.Message);
    }
     
    static void resolver_ResolveCompleted(object sender, ResolveCompletedEventArgs e)
    {
        if (!e.Cancelled && e.Error == null && e.PeerNameRecordCollection != null)
        {
            records = e.PeerNameRecordCollection;
            DisplayResults();
        }
    }

    There is also a ResolveProgress event you can also wire up.  As the name implies, it will fire periodically to indicate the progress being made in resolving the Peer Name.  It was not overly useful when resolving a Peer Name that had a small number of results, but your mileage may vary.

    The one thing that is also a “brute force” implementation in the demo code is how I pass a Guid.NewGuid() into the ResolveAsync method.  The Guid is being used as the UserState parameter in the method, and can actually be any Object. In a real implementation where you may have multiple ResovleAsync requests in-flight at any one time, you would want to implement a tracking system using this UserState parameter so  you could match up the corresponding ResolveCompleted event with the correct initiating request.  The ResolveCompleteEventArgs parameter contains the UserState used to initiate the request, so the matching is pretty straightforward.  I did not go the extra mile and implement that since the demo only fired a single ResolveAsync request.  You cannot pass in a null UserState object, so I went with a simple Guid for no particularly good reason.

    Other documentation for PNRP:

    View the Screencast:

    Download the Demo Code

    Tags:

    Peer2Peer

    Peer to Peer Series Part 3: Resolving Names Synchronously with the PNRP API

    9/16/2009 8:29:00 AM

    In Part 3 of the Peer to Peer Series, I add another Command Prompt application to the demo solution and use the PNRP API to resolve a Peer Name using C#.  As with registering a Peer Name, resolving Peer Names is straightforward:

    PeerNameResolver resolver = new PeerNameResolver();

    try
    {
    records = resolver.Resolve(new PeerName(classifier, PeerNameType.Unsecured));

    if (records.Count > 0)
    {
    foreach (var record in records)
    {
    Console.WriteLine("***Peer: {0},record.PeerName.ToString());
    Console.Writeline("
    ***Host Name: {0}, record.PeerName.PeerHostName);
    Console.Writeline("***Comment: {0}", record.Comment);
    foreach (var endpoint in record.EndPointCollection)
    Console.WriteLine("\tEndpoint: {0}, Port: {1}", endpoint.Address.ToString(), endpoint.Port);

    Console.WriteLine();
    }
    }
    }
    catch (PeerToPeerException ex)
    {
    //Other standard execptions can also be caught
    Console.WriteLine("PeerToPeer Excpetion: {0)", ex.Message);
    }


    One of the interesting things about resolving a Peer Name is that the resulting PeerNameRecords include the endpoint information for each of the Peer Names found.  This means you can establish direct connections with those peers if necessary.  I will show how to do just that in an upcoming screencast.  Of course, that assumes we don’t have any firewalls or other types of security blockades preventing direct communication.

    The example in this installment is done synchronously.  In the next screencast, I will show you how you can do the same operation asynchronously.  This is useful because the Resolve method can take quite a while to return so your program’s execution is blocked while waiting for the method to complete.  This is especially bad in the case of GUI applications since the app will become non-responsive while waiting for Resolve to finish.

    Other documentation for PNRP:

    View the Screencast:

    Download the Demo Code

    Tags:

    Peer2Peer

    Peer to Peer Series Part 2: Registering Names with PNRP API

    9/15/2009 12:59:00 PM

    In Part Two of the Peer to Peer Screencast series by SlickThought Productions, we look at using C# and the PNRP API to register a peer name.  This example uses a simple Command Prompt application to register the Peer Name, but the same techniques can be used to register a Peer Name from a WinForm or WPF application.  It could even be used inside a Windows Service which opens up some interesting scenarios as well.

    Using the API is very simple.  Here is the main code section from the demo:

    PeerName peerName = new PeerName(classifier, PeerNameType.Secured);
     
    using (PeerNameRegistration registration = new PeerNameRegistration(peerName, 8080))
    {
        try
        {
            registration.Start();
            // Do stuff
            registration.Stop();
     
        }
        catch (PeerToPeerException ex)
        {
            // There are other possible statndard exceptions to catch 
            // See documentation on for details
        }

     

    Pretty straightforward.  One of the interesting things you can do with a Peer Name is add a Comment and Data to the registration.  Doing so is straightforward:

    registration.Comment = "My Comment";

    UnicodeEncoding encoder = new UnicodeEncoding();
    byte[] data = encoder.GetBytes("Some Data");
    registration.Data = data;

    In the snippet above, I am adding a simple string to the Comment property.  For the Data property, I am converting a simple string to an array of bytes and passing that to the property.  In the case of the Data property, you can pass in any byte array you want, so instead of a string I could have passed in an image, a data blob, whatever.  In the case of the Comment property, you are limited to 39 Unicode characters, and the Data property is limited to 4,096 bytes.

    The important thing to remember when working with PNRP and registering a Peer Name is that the process that called the Start method must remain open.  As soon as that process shuts down, the Peer Name registration is lost.

    Other documentation for PNRP:

    View the Screencast:

    Download the Demo Code

    Tags:

    Peer2Peer

    Peer to Peer Series Part 1: Intro to PNRP

    9/15/2009 9:44:00 AM

    Intro to PNRP This kick-off screencast introduces you to the foundation of Peer-to-Peer applications, PNRP.  Peer Name Resolution Protocol is the the underlying mechanism used by applications to discover peers on a network.  This can either be a local subnet or the Internet at large.  One of the great things about PRNP is that is even works across NAT devices.

    In this screencast, I introduce you some fundamental PNRP concepts and show how you can use the command line to test out the basics.  This screencast is not intended to be a deep dive technical exploration.  Rather, it lays a sufficient foundation for you to understand what is going on in future screencasts and lets you get started building P2P applications as soon as possible.

    If you are interested in more technical information on PRNP, check out the following links:

    You can watch the first installment of the P2P series using the links below:

    Tags:

    Peer2Peer

    Have a Passion for the Technical Community?

    9/14/2009 10:40:32 AM

    As part of a larger effort, Microsoft will be hosting a Community Jam event prior the the Heartland Developer Conference in Omaha, NE. If you are in the area on October 14th, even if you are not attending the HDC, and have an interest in building your local technical community (no matter where that community may be), stop in and join us for an Open Spaces-style event to network with and learn from other folks that are also involved with building and supporting things like user groups, grass roots conferences, code camps, and more!

    Get all the details and register here.  Space is limited so don’t wait.  The North Central Microsoft team will also be bringing other Community Building events to cites around the area, so keep you eyes peeled for an event near you in the future if you can’t make it to the inaugural Community Jam in Omaha.

    Tags:

    Headlines

    Powered by BlogEngine.NET 1.6.0.0
    Theme by Mads Kristensen

    About the author

    Jeff Brand Jeff Brand

    This is the personal web site of Jeff Brand, self-proclaimed .NET Sex Symbol and All-Around Good guy. Content from my presentations, blog, and links to other useful .NET information can all be found here.

    E-mail me Send mail


    Calendar

    <<  April 2014  >>
    MoTuWeThFrSaSu
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    View posts in large calendar

    My Twitter Updates

    XBOX
    Live

    Recent comments

    Disclaimer

    The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

    © Copyright 2014

    Sign in