Showing posts with label events. Show all posts
Showing posts with label events. Show all posts

Wednesday, December 22, 2010

Geek Post Monthly Newsletter Volume 2 Issue 11

Geek Post

Volume 2 Issue 11

November 2010

Hippolite Musings

Tena Koutou Katoa,

In November, I:

    1. Conquered the Project Management tool which Telecom uses by entering 3 months actuals and 1 months forecast work for the 8 staff in my team.  I’m a trainee Team Lead!
    2. Attended another Vex Robotics Scrimmage.
    3. Received direction on how to maximise My Personal Performance (MPP) reporting.  This is corporate-speak for complying with my quarterly performance reviews.
    4. Fixed up WHEN library database in preparation for handing it over to somebody else.  Yippee!
    5. Sat and failed my Windows Communication Foundation exam.  Ah, well, there’s always next month!
    6. Studied (before and after exam) materials for said exam.
    7. Took final minutes as Secretary for Grenada Village Community Association at AGM.  Presented finances as acting Treasurer.
    8. Assisted Fiona to handover Membership Secretary duties of WHEN.
    9. Delivered one project.  Picked up three more.  Christmas is always busy (people trying to get stuff finished before the shutdown period).

Blessings,
James


Community Development

Grenada Village Online

  • My former manager read last months blog; found out I needed training in how to give a logo a transparent background; sent me an email explaining how to do it; and now Grenada Village has a better look and feel. 
  • Here’s how:
    • Downloaded IrfanView.
    • Load the graphic.
    • Save As…
    • Specify JPG
    • Click on background
    • Specify Transparent.

Align Church Online

  • Reorganised home page and master page so that Search Widget and Login Widget are both Web Parts in the right pane. 
  • Implemented Top 5 News Items (as per Grenada Village Online).
  • Reduced size of logo.
  • Looks much better.

Wellington Home Education Network

  • Handed over Fiona’s Membership Secretary role.
  • Still to hand over my Treasurer’s role.

Wellington SQL Server Users Group

Wellington Dot Net Users Group


Developer News

Top Stories

  • Show off your Azure skills using New Zealand Digital Content
    If you want a good incentive to learn more about Windows Azure then check out the "Best use of Windows Azure cloud computing services" category in the Mix 'n Mash competition that opened today. The competition is a chance to show the world what you can do with New Zealand digital content and data. All you need to do for a chance to win $1,000 is to build a mashup hosted on Windows Azure (there are other competition categories as well).
  • PDC On Demand: The Future of C# and Visual Basic
    Technical fellow Anders Hejlsberg talks about the roadmap for C# and Visual Basic in vNext and beyond. Plus: Asynchrony in C# 5. Part II: Whence await. Part III: Composition.
  • New Release: Visual Studio 2010 Productivity Power Tools
    A set of extensions to Visual Studio Professional (and above) which improves developer productivity. In this third major release of the Power Tools we have made significant improvements to the Solution Navigator and the Tab Well to address our top customer requests.
  • ASP.NET MVC 3 Release Candidate
    Backwards compatible with ASP.NET MVC V1 and V2, this release adds a ton of new functionality and refinements.


Training

  • Complete Conference Session Schedule Now Online!
    The virtual Microsoft Certified Career Conference is almost here, and it will be packed with valuable information you won’t want to miss! Join highly respected leaders in the industry for technical and career development sessions and network with other professionals during and after the event. Check out the Conference Schedule and Register today. Microsoft Certified Professionals can use the code MCP50 for a 50 percent discount.
  • Add the MCT & Educator Virtual Summit to Your Calendar
    MCTs and registered academic educators can join us for the MCT & Educator Virtual Summit—a complimentary readiness event on November 17. To make sure you do not miss this event, add it to your Outlook calendar.
  • Certification/Exams - Save up to 20 Percent on Microsoft Certification Exam Packs with Second Shots
    Get the certification you need to keep your career on track. Find guidance on the training you’ll need, chart your training course, and save up to 20 percent when you purchase Microsoft Certification Packs of two to five exams.
  • Training - MOC/Courseware/Exams/Clinics - New Microsoft Official Courses Mean New OneNote Trainer Packs
    Eight new OneNote trainer packs are available—bringing the total number to 40. All are available at the MCT Download Center. Check them out today!
  • New IT Fundamentals Course for Windows Server 2008/R2
    Microsoft Learning is proud to announce the release of Course 6420B: Fundamentals of Windows Server 2008. This five-day course covers the fundamental concepts and skills of server administration, Active Directory, networking, and security of Windows Server 2008 servers (including Windows Server 2008 R2) for students who are new to IT.


Study News

As per last month, I finished studying Microsoft .NET Framework 3.5 - Windows Communication Foundation.  I booked my MCTS exam 70-503 for Tuesday 9 November at Auldhouse.  I failed.  Now I’m doing the Skill Port on-line training (freebie offering via Telecom).  Will re-sit in the new year.

What I have learned from this experience

WCF is tricky, real tricky to get right.  And by virtue of its very nature, debugging it is hard, real hard.  For example, I had a real-life example to code.  I had a successful Web Service running inside an existing web site.  So I thought, “here’s a perfect candidate to switch over to WCF.”  Wrong.  I tried and failed for 3 days:

  • First, I discovered that because the DEV & PROD servers are Windows Server 2003 and not 2008, that therefore I can’t use WsHttpBinding but have to use BasicHttpBinding.
  • Then I spend an inordinate amount of time trying to decipher what combination of binding and address (HTTPS was not available to me) was giving me the really unhelpful “Service actively refused connection” error message.
  • Turned out that I had altered my DEV code some time back from System.Oracle.Client to Oracle.Data.Client and the DEV server didn’t have the correct Oracle client installed.  Nowhere did WCF tell me this.

I will keep trying.  I will succeed.  My success has merely been delayed.


Telecom News

Project Marley

It’s no secret that a strategic decision has been made to bring in-house as much IT work as possible.  This was caused by a number of factors, not least because of the government’s Ultra-Fast Broadband (UFB) initiative will probably force structural separation of the Chorus business off from the rest of Telecom.  This will mean the requirement for some IT resources to be split off separately to Chorus.

So, Project Marley is all about offering those HP staff who work exclusively on the Telecom account, to come over to permanent Telecom jobs.  This will be done sensitively, I have no doubt.  It doesn’t directly impact my small team, but what it does impact is that the appetite for increased permanent head count means my manager can now hire just about as many .NET developers as he would like.  So any of my Geek friends, if you’re reading this and desiring a change, let me know and I’ll see if I can arrange you an interview!


Situations Vacant

Lots

See my paragraph above.



INETA News

A summary of Significant Dot Net User Group Chatter


PASS News

A summary of  Significant SQL Server User Group Chatter


Events Schedule

In this section, I highlight dates, times and venues of events either I am presenting at, or of interest to Geeks.  I’m available for bookings.

Date Event Venue Speaker
1-Dec-2010 LINQ to Async: An Introduction to the Reactive Extensions Xero, Wellington Ivan Towlson
2-Dec-2010 SilverLight Firestarter Redmond or Online Lots
11-Dec-2010 SharePoint Saturday Christchurch Polytechnic Institute of Technology Lots
12-Dec-2010 VEX Robotics Scrimmage Hutt Valley High School N/A
15-Dec-2010 MonoTouch and MonoDroid Xero, Wellington Nic Wise
12-13 Feb 2011 VEX Robotics Regional Competitions St Peter’s College, Palmerston Northq N/A
April 2011 ALM Conference Wellington Various


Humour

Web Designers vs. Web Developers

An infographic of the differences between them.


Thursday, August 27, 2009

What on Earth have I been up to?

I’ve been busy:

DateTitleVenue
02-Apr-09WebCast: Intro to ORM for DBAsPASS USA
16-Apr-09What’s New in Microsoft SQL ServicesWellington SQL Users
30-Apr-09Microsoft CertificationsAuckland SQL Users
14-May-09How To: Design and Develop Applications to Ensure QualityVUW
26-May-09How To: Design and Develop Applications to Ensure QualityEllerslie .NET Users
14-Jun-09Microsoft Sync FrameworkNZ .NET Code Camp, Porirua
18-Jun-09Microsoft Sync FrameworkWellington SQL Users
15-Jul-09How To: Design and Develop Applications to Ensure QualityWellington .NET Users
30-Jul-09Microsoft Sync FrameworkAuckland SQL Users & Ellerslie .NET Users
04-Aug-09Creation: Why I BelieveMalakai’s Care Group, Wellington Elim
20-Aug-09How To: Design and Develop Applications to Ensure QualitySoftware Quality NZ
13-Sep-09Microsoft CertificationsNZ .NET Code Camp, Auckland
29-Sep-09Creation: Why I BelieveJeannie’s Care Group, Wellington Elim

I’m available for bookings!

Thursday, June 4, 2009

MSDN Unplugged Roadshow Wellington

Date/Time

Friday, 5 June 2009 @ 9:am - 12:30pm

Product(s)

Microsoft Expression Blend,Microsoft Silverlight,Windows 7

Audience(s)

Developer

Presenter(s)

Mike Zeff, Nigel Parker

Event Overview

Session 1: Windows 7 for Developers




Windows 7

Windows 7 contains many new features for developers that allow you to create very rich applications for your users, including the ability to touch-enable your own applications. This session will cover how you can take advantage of new Windows 7 features using .NET 3.5 to build rich client applications and we’ll also take a look at what’s coming in .NET 4.0. Presented by ISV Developer Advisor, Mike Zeff.


Session 2: Taking your Web experience to the next level with Silverlight 3



Silverlight

Internet Explorer 8 has been released and Silverlight 3 was announced recently at MIX ‘09. This session will show you how you can take advantage of Silverlight 3 and Expression Blend 3 to create stunning web applications that can run both inside and outside the browser. We’ll also show you how to take advantage of exciting features in IE8 that make your web site more ‘sticky’ for your users. Presented by Web Developer Advisor, Nigel Parker.


Impressions

A good introduction to Multi-Touch programming for Windows 7 using Visual Studio 2010 and XAML.

Matti had a good question: "When with IE8 support HTML5?"  The background to that question is that HTML5 is a new standard everybody else is adopting except Microsoft, because it's a Silverlight killer.  No official answer (from Microsoft) exists.

I advertised next weekend's Code Camp.

I won the web-cam draw!  All-in-all a profitable meeting.

Thursday, April 16, 2009

Right Sizing Agile Development - MSDN Magazine Webinar

I logged into a web seminar this morning:
Title Right Sizing Agile Development
Audience MSDN Magazine subscribers and/or developers
Presenter

Steve McConnell is CEO and Chief Software Engineer at Construx Software where he writes books and articles, teaches classes, and oversees Construx’s software development practices. Steve is the author of Software Estimation: Demystifying the Black Art (2006), Code Complete (1993, 2004), Rapid Development (1996), Software Project Survival Guide (1998), and Professional Software Development (2004). His first two books won Software Development magazine's Jolt Excellence award for best programming books of their years.

Steve has worked in the desktop software industry since 1984 and has expertise in rapid development methodologies, project estimation, software construction practices, and third-party contract management. In 1998, readers of Software Development magazine named Steve one of the three most influential people in the software industry along with Bill Gates and Linus Torvalds. Steve was Editor in Chief of IEEE Software magazine from 1998-2002.

Steve is on the Panel of Experts that advises the Software Engineering Body of Knowledge (SWEBOK) project and was Chair of the IEEE Computer Society’s Professional Practices Committee. Steve earned a Bachelor’s degree from Whitman College and a Master’s degree in software engineering from Seattle University. Read more about Steve at www.stevemcconnell.com.

Brief

In this talk, Steve McConnell draws on Construx's extensive consulting work to dissect Agile development. McConnell names the Agile practices that have worked well for Construx's clients, describes the failure modes of Agile practices that have failed to live up to the hype, and explains how to right size Agile development for your organization.

Date/Time Friday 17 April @ 7:00AM (NZT)
Slides http://w.on24.com/r.htm?e=140117&s=1&k=1565037F2927EB78039F829A25208578
Impressions

I liked how he explained the differences between:

  • Extreme Programming:
    lots of iterations of Analysis, Design, Build, Test
    (rinse and repeat several times)
  • Agile Programming:
    few iterations of ADBT
    (staged deployments i.e. versioning)
  • Waterfall Programming:
    no iterations
    (single monolithic)
Further Comments

I missed the first 10 minutes.

Wellington SQL Server User Group Meeting April 2009

I attended a presentation last night:
<>
</>
TitleWearing multiple hats.  Being a DBA and a developer.
Audience Wellington SQL Server User Group
Presenter Dave Dustin – Wolters Kluwer Health

Dave is also convenor of the Auckland SQL Server User Group
Brief Given the size of many New Zealand companies and their respective IT departments, many IT professionals wear multiple hats.  Dave will be giving his view of coming from the development world into the DBA role, and what it means if you need to work in both areas.
Attendees About 20 – a good number for us
Date/Time Thursday 16 April @ 5:30pm
Slides Coming
Impressions

It was unfortunate that Dave’s security key was not present, so that he was unable to start his laptop and show us his slides.  However, he did remarkably well from just memory.

I was reminded of the usefulness of Test-Driven Development (TDD) aka “test-first” or “fail-first”:

  • Before you code, write a test which fails.
  • Then write the code that makes the test succeed
  • Then you have a permanent regression test case
Further Comments

He was not able to do the second half of his presentation, which was about Visual Studio Team System 2008: Database Pro edition – GDR.

Wednesday, April 1, 2009

ORM for DBAs

I gave a presentation today:
Title ORM 101: Object Relational Mappers for Database Administrators
Sub-title Why Should I Be Afraid?
Audience Professional Association of SQL Server (PASS) members
Attendees About 18
Date/Time Wednesday 1 April @ 12pm EST
Thursday 2 April @ 5AM NZT
Slides Introduction to ORM for DBA
Impressions

Newbie mistake: I ran out of material!  However, I was able to fill in with “Why get Microsoft Certified?” until the questions started flowing.

The questions were right on the ball, and added to the body of this presentation.  Specifically:

  1. What does the generated code look like? 
    • This sparked a reminder that I was meant to show an example of partial classes.  However, I couldn’t get the new method in the partial class to work! 
    • I realise now that the reason why was because I forgot about the NameSpace of the generated code.
  2. How does the dynamic SQL avoid injection attack? 
    • The answer, “via parameters” I was able to show by opening the code.
  3. Can you have different permissions/applications using the same DAL? 
    • I talked about an example solution I’m working on that has multiple Web Applications working from the same Database via the same Data Access Layer.
  4. How does it work?
    • “Duh, I dunno.”  I’m a lazy programmer.  If it works, it just works.
  5. Can you connect to more than one database at a time?
    • Great question.  This sparked an explanation of the SubSonic providers and the way that they put each of their objects into separate folders.
    • This further sparked an explanation of some of SubSonic’s provider options, where:
      • Pluralization can be preserved or eliminated;
      • Prefixes can be preserved or removed.
Further Comments

I was persuaded to put in an April Fool’s Day joke.  I did this by passing on a bogus Microsoft Announcement (attributed to Greg Low) that Azure was replacing SQL Server for the retail market.  Apparently, according to Mike the convenor, I was sufficiently convincing until I put up the “April Fool” slide.  Boy, it’s tough talking to a wall of silence!

I discovered SubSonic 2.1 is LINQ-like, but not actual LINQ.  SubSonic 3.0 is LINQ.

I made the decision not to bore the DBA audience with the creation of the presentation layer, and to concentrate on the flow of data through the layers instead.  However, I had the time, so need to think that through better next time.

The subtitle was decided because DBA’s traditionally hate Dynamic SQL for 2 reasons:

  • SQL Injection Attack – alleviated by use of parameters
  • Store Procedure Superior Compiled Performance – is a myth

The convenor did not read my bio (as I expected) so I was forced to introduce myself.  I able to speak with confidence from my credentialing (as at this time) as:

  • Microsoft Certified Professional Developer: Web Developer
  • Microsoft Certified IT Professional: Database Developer
  • Microsoft Certified Trainer
  • Microsoft Certified Solution Developer .NET

Sunday, February 22, 2009

Introduction to SQL Server Data Services

When Thursday 19 February @ 5:30pm
Where Wellington SQL Server User Group, Intergen Offices, Plunket House, Lambton Quay
What I presented on SQL Server Data Services
Impressions

Was well received.

I started with a question; whether the audience would prefer the presentation I'd prepared, or the Microsoft presentation I had received that morning.  They chose my prepared presentation.  I was a little disappointed because the Microsoft presentation had flash graphics, and I couldn't be blamed for being under-prepared!  Nevertheless, there was a fruitful to-and-fro with the audience:

  • Matty was insightful, as usual.
  • Clive was incredulous and unimpressed with the lack of features provided thus far.
  • Adrian asked a pertenant question afterwards, which I'd like to answer here as it's very relevant to the entire discussion.  He was honest about his (and I suspect many people's) confusion about Azure vs. SSDS.

Think of Azure as like a Cloud O/S.
Think of SSDS as like a Cloud DB.

Yes, you could store blobs and entities to Azure, but over time you really shouldn't be, because Microsoft is going to add more functionality to SSDS to enable relational queries, backup, restore, and BI.

My slides are here.
Microsoft's slides are here.

Wednesday, December 17, 2008

Places to Go, People to See

Just a quick note to myself really.  I've done a lot of blogging recently about two Microsoft Events I attended, however I've realised something about those posts.  Whereas I had quantity, Nigel Parker had quality.  Whereas I typed everything I was learning, I didn't really interpret their meaning.  I intend doing that over the next couple of days.  In the meantime, here are the people I met:

Live Services Jump Start
  • Kitty Chiu from Wesfarmers Industrial and Safety.  Senior eBusiness Developer and fellow Christian.
  • Lloyd S Derbyshire from Zardoz Systems Limited.  Managing Director and fellow Kiwi in Oz.
  • Nigel Parker from Microsoft NZ.  UX Development Advisor and fellow Kiwi in Oz. 

PASS

  • Kevin Swain from gen-i.  Database Administrator from Auckland
  • Simon Green from MAF.  We shared photographer and video duties on the weekend.

Monday, December 8, 2008

Live Framework .NET API Kit

Live Framework .NET API Kit
  • Dr Neil Roodyn
  • 11am
 Agenda
  • Key Take away
  • Live Framework Overview
  • Introducing the Live Framework API Kits
  • Live Framework Kit for .NET
    • Overview
    • Key Concepts
    • Accessing Live
    • Managing application’s data
    • Sharing your data
    • Taking the application Offline
 Key Take away
  • Live Framework allows you to integrate the power of the cloud in a cohesive and consistent way in your application
  • Live Framework enables you to move to the next inflection point in the software industry
  • .NET developers can use the Live Framework Client Libraries to build their application
 Overview
  • A set of libraries which can be used to program using Live fx
  • .NET, SilverLight and JavaScript Libraries available today
  • Work on various platforms and programming languages
 Design Goals
  • Expose the core Live service in a cohesive and consistent way with .NET
  • Make it easy and natural for .NET developer to consume Live Services
  • Have a symmetrical programming model
 Accessing Live
  • LiveOperatingEnvironment class
    • Connect your application to the LiveOperatingEnvironment
      • Sync and async pattern available
      • Local or remote connection available
    • Main entry point to all Live Services
    • Optimize the access to resource at connection time
 Managing application’s data
  • Mesh Object
    • Container of application defined metadata
    • Fundamental unit of extensibility, sharing and synchronisation
    • Can be replicated across a set of devices
    • Can be shared among a set of users and applications
    • Contains: Members, Mapping, News, DataFeeds, Activities
  • DataFeed
    • Store application information: Metadata and blobs
    • Receive update information
    • Has Replication and synchronization capabilities
    • A mesh object can have any number of data feeds
    • An application may create/modify/delete feeds at any time
  • DataEntry
    • Data Entries and stored in a DataFeed
    • Lowest level of storage in a mesh object
 Accessing Live
  • Users control their data
  • Delegated authorization via Live ID for web apps
  • Apps work on behalf of user
 Navigating the Model
  • It’s all about Collections!
  • Meshobject.DataFeeds collection
  • LiveItemCollection
 LiveItemCollection properties
  • Title
  • Entries
  • IsLoaded
  • LiveOperatingEnvironment
  • SelfLink
 Querying Collections
  • Collections are everywhere
  • LINQing to Mesh data
  • May want to filter, sort large data sets
  • CreateQuery vs LINQ to Entries
    • Server side filtering
    • Client caching
 Sharing your data (Members)
  • Represents a Windows Live ID’s membership in the MeshObject
  • New members have to be invited to be part of the Resource
  • Has a role based on the object: Full, Author, Writer, Reader
 Taking the application Offline
  • Local End Point
    • Leverage the Symmetrical APIS
      • Same APIs are used in the local the remote end point
    • Change the target URL to be local
    • Mesh Service takes care of the data
 Summary
  • Live Framework
    • Allows you to integrate the cloud in a cohesive and consistent way
    • Enables you to move to the next inflection point in the software industry
    • .NET developers can use the client Libraries to build their applications
  • Start using it today, we want your feedback!
 Call to action   

Mesh Enabled Web Applications

Mesh Enabled Web Applications
  • Dr Neil Roodyn
  • 12pm
 Web Apps
  • Pro
    • Access Anywhere
    • Ease of Deployment
    • Automatic Upgrades
    • Security
  • Con
    • Connectivity
    • Richness of UI
 Client Apps
  • Pro
    • Work offline
    • Rich UI
  • Con
    • Deployment
    • Upgrades
    • Platform specific
 Mesh Applications
  • Best of both worlds
  • Access anywhere
  • Data everywhere
  • Data sharing
  • News
  • Deployment
  • Security
 Installing and Running
  • Open Live Desktop
  • Go to Apps tab
  • Choose a Mesh Application
  • Click “Add to Mesh”
  • Name the instance
  • Open on the Live Desktop
 Building Mesh Applications – Dev Cycle
  • Development
  • Zip/upload
  • Deploy
  • Rinse & Repeat
    • Now deploy = auto upgrade!
 Upload Requirements
  • Application code
    • JavaScript
    • SilverLight
  • Manifest
  • HTML Start page
  • Logo.png
 Manifest
  • HTML start page
  • Application name
  • Application description
  • ReturnURL (optional)
  • Version
  • Single/Multi Instance allowed
  • Delegated Auth info
  • Default data feeds
 Visual Studio
  • LiveFX Tools
  • Project Templates
    • Mesh enabled web app
    • SilverLight Mesh enabled web app
  • Deployment
  • Debugging
  

Live Framework Overview

Live Framework Overview
  • Day Two
  • James McClutcheon
  • 9AM
  • The security tokens I was given enables me to access http://connection.microsoft.com/
  • I can do the labs later (only need Visual Studio, the tokens and download the CTP of Mesh)
 Agenda
  • Background
  • What is Live Framework
  • Example Experience
 The state of the world
  • People are increasingly “on-the-go”
  • They are using more devices
  • Connectivity is proliferating
  • Life-styles and work-styles are blending
  • They are working and playing together more digitally
  • => Increasingly Expecting – Demanding – Complete End-to-end Experiences…
 Market & Technology Trends
  • “Experience first” clients
    • iTunes/ITMS
    • Live Photo Gallery / Flickr
    • Live Mail / Photo Mail
    • Office / Office Live Workspace
    • Outlook / Salesforce Outlook Edition
  • Platform point solutions
    • Cloud storage
    • Offline application
    • Device synch and access
    • 3rd party extensibility
  • What if you had one integrated platform designed to support the rich client experience in a standard, open way?
 Getting off the island
  • Connected experience through services and devices working together
  • Connectivity and communication is everything
  • => Live Framework: Connecting devices, data and applications through a consistent, approachable framework
 Live Services
  • User-centric data:
    • Identity
    • Contacts
    • Files
    • Calendar
  • User-centric services:
    • Resource Model: Extensible, user-centric data store
    • Sync: User centric data synchronization
    • App Mgmt: Discover, provision & share apps
    • Device Mgmt: Management of a user’s devices
 Key Concepts
  • Live fx is the uniform way for programming Live Services
    • Any platform
    • Any programming language
    • Any application or device
  • Live fx makes it easy to build software + service applications
  • .NET developers can use the Live fx API Kits to build applications
 Live Framework Design Principles
  • User-centric to the core
  • Software plus Services distributed platform
    • Universal reach + “experience first”
    • Design for humans and code
  • Internet scale
  • Re-use proven assets
 What is Live Framework?
  • Platform
    • Data model and API for a S+S system
    • Integration and symmetry between devices and cloud
  • Service
    • Microsoft’s hosted instance of the Live Framework
  • Software
    • Client runtime for mesh-aware applications
    • Servers for federated Live Framework components
  • Sample application
    • Demonstrating depth of Live Framework enabled by the platform
 Live Framework Scenarios
  • Integrate Live Services into your applications
  • Opt in to as much of the Live Framework as you like
  • Expose your applications as Mesh Applications
  • => Rich + Reach Applications
 Demo
  • https://developer.mesh-ctp.com/
  • Blockbuster favourites
 Live Framework Nutshell
  • Cloud Services
  • Client Runtime
 Understanding Live Framework: Platform value
  • Key benefits
    • Distributed system for data replication
    • Designed for “optimize online, enable offline” experience
    • Symmetric API for serviceóservice and app<->service
    • Flexible data model to suit application needs
    • Microsoft-hosted data-centre and operations
    • Guaranteed communications regardless of topology
    • Great tool-ability
  • Target platform applications
    • Traditional client applications (e.g. Office, Photo Gallery, Media Player)
    • New classes of connected applications (e.g. Media Centre, Zune)
    • Rich interactive applications (e.g. New York Times Reader, MetaCafe)
    • Cloud services and universal web applications (e.g. SkyDrive, Flickr)
 Understanding Live Framework: Programming Model
  • APIs: REST
  • Resource Model: Feeds
  • Symmetric client/cloud programming model
  • Strongly typed managed code wrappers for simplified access
  • Pub/sub support for pushing notifications on most resources
 Experience Demos
  • Share file across devices
  • Access apps across the internet
  • Extend windows to the web and web to windows
 Demo Recap
  • Live Folders: Share and synchronize your information automatically across all your connected devices
  • Live Remote: Access to any application or device
  • Live PC: Browser based experience that enables access to your applications and information from anywhere
 Core Tenets
  • Symmetric programming model
  • Protocol based
  • Resource oriented
  • Simple infoset
    • Entities
    • Collections
    • Relationships
  • Standards based
  • Unified model for all Live types
 Resource Model
  • Consists of resources and their relationships
  • Resources
    • Uniquely addressable
    • Based on a simple infoset
    • Can be rendered to various wire representations
  • Relationships
    • Navigatable, can be inlined
  • Uniform access to all Windows Live resources types
    • Contacts, Profiles, News, Activities, Friends
    • MeshObjects (includes Files, Folders, Photos)
    • Devices
    • Applications
 Live Operating Environment
  • Top level container
  • Contains
    • Contact Collection
    • Profiles
    • Mesh
    • Possibly other Live data
  • Available online/offline
 Mesh
  • Owned/Controlled by the user
  • Contains all the information about: Devices, Data, Applications, News aggregation
 Mesh Objects
  • Top level resource container
  • All contained resources are related
  • Unit of permission/distribution
  • Contains: DataFeeds, Mappings, Members, News
 DataFeed
  • Unit of synchronization
  • Container for: DataEntry, FeedSync, MediaResource
  • Can contain other DataFeeds to create hierarchy
 Data Entry
  • Smallest unit of data
  • Specifies the actual data being stored
  • Can contain enclosures of application defined schema
  Authentication
  • How do I identify myself?
 Web Applications
  • Cookie token
    • Obtained from Windows Live ID
    • Connects as the user
  • Delegated Authentication
    • Token based
    • User provides consent
    • Has expiration
    • Is Revokable
    • Provides ACL like restrictions
 Smart Client Applications
  • Local Mesh is already authenticated
  • Cloud Mesh
    • App must provide log in dialog
    • App must provide credentials to cloud API
  Live fx Cloud APIs Resource Access
  • Relative URI
  • Optimistic Concurrency
  • HTTP verbs
    • GET
    • PUT
    • OPTIONS
    • DELETE
 GET a resource
  • Retrieves the feed for the resource
  • Common return codes
    • OK
    • Internal Server Error
  • Request Headers
    • Accept
    • ContentLength
    • ContentType
    • IfModifiedSince
    • Authorization
    • Cookie
 PUT a resource
  • Updates the resource
  • Common return codes
    • OK
    • InternalServerError
    • PreconditionFailed
  • Request Headers
    • IfMatch
    • ContentLength
    • ContentType
    • Authorization
    • Cookie
 DELETE a resource
  • Deletes a resource
  • Common return codes
    • OK
    • InternalServerError
    • PreconditionFailed
  • Request Headers
    • IfMatch
    • Authorization
    • Cookie
 OPTIONS for a resource
  • Returns information about the resource
    • Authentication model
    • Concurrency model
    • Whether the resource is subscribe-able
    • Whether the resource is extensible
    • List of supported media types
    • Life of supported query parameters
    • List of relationships for the resource
    • List of supported methods (Verbs)
    • XML Schema Definition (XSD) for the resource
  • Common return codes
    • OK
    • InternalServerError
    • PreconditionFailed
  • Request Headers
    • IfMatch
    • Authorization
    • Cookie
 Demo
  • The Resource Browser is your friend!
  • But I don’t know ATOM!
  • No problem
 Multiple Formats
  • Feed types available today
    • ATOM
    • RSS
    • JSON
    • POX
  But I have a lot of data!
  • No problem
 Sorting & Filtering
  • Don’t pull all the data down
  • Pre-sort the data
  • Use the power of the server
 Filter Queries
  • Used only on GETs
  • Add clauses to regular queries
 Filter Query Operators
  • Equivalence: eq, ne, gt, lt
  • Boolean: and not, or
  • Output Parameters: orderby, skip, take, top
  Can I automate it?
  • Resource Scripts
 Resource Scripts
  • What are they?
    • Small domain specific language
    • Declarative way to interact with LOE
    • Logical equivalent of batched procedures
  • Why use them?
    • Frees you from the lower level details of the HTTP protocol
    • Improves efficiency
    • Extend the Request processing pipeline with custom business logic
 Resource Scripts
  • Declarative modelling for
    • Control Flow Statements: Sequence, Interleave, Conditional, CRUD
    • Data Flow Statements: Bind statements
  • Run locally or on the server
  • Can run as triggers
  • Serialized as POX or JSON
 Statements
  • SequenceStatement: Sequentially executes child statements
  • InterleaveStatement: Executes child statements in parallel
  • ConditionalStatement: If… Else… execution
  • CRUD statements: Operate on resources
 Client vs Server
  • Server Side Execution
    • Script.RunAtServer(credentials)
    • Single HTTP request/response
  • Client Side (In Process) Execution
    • Script.Run(credentials)
    • Multiple HTTP requests/responses
    • Each statement generates request
 Triggers
  • Attach to a resource instance
  • Pre and post logic on Create, Update and Delete
  • Examples:
    • Create a thumbnail after an image resource is created
    • Remove a folder if the last child object is removed
 Authoring and Running
  • Create the statement DOM
  • Compile the DOM and generate the ResourceScript instance
  • Execute the ResourceScript instance
  • If a trigger, attach to the resource
 To use the cloud API
  • Understand the Resource Model
  • Use standard HTTP requests
  • Use the format you are comfortable with