Sunday, September 30, 2007

WARDY IT Solutions - September 2007 SQL Server Newsletter

The September 2007 edition of the WARDY IT Solutions SQL Server Newsletter has been released and can be viewed at http://www.wardyit.com/newsletters/sep2007.htm.

In this issue we cover:

To subscribe to the newsletter send an email to newsletter_add@wardyit.com.

Saturday, September 29, 2007

TechEd Barcelona 2007 Sessions

TechEd-Developer and TechEd-IT Forum are only a month away so I've started putting together a rough schedule of the sessions I'd like to attend. The great thing about TechEd Barcelona is that Developer and ITPro sessions are separated into two conferences which means that I can attend most of the sessions I want without having to sacrifice Dev for ITPro and vice versa. The only thing that usually plays havoc with my schedule is Proctoring and Ask-the-Experts duties; however Ronald is pretty good and will modify (within reason) your work schedule if there are some sessions you really don't want to miss.

This year I'm going to concentrate on SQL Server Compact Edition 3.1/3.5 and SQL Server 2005/2008. Here are the sessions I'm hoping to attend:

TechEd-Developers

  • DAT03-IS Set-Based Thinking for the T-SQL Developer: Insights from Microsoft IT
  • DAT06-IS Data Modeling For OLTP Developers: Insights from Microsoft IT
  • DAT08-IS Using Powershell and SQL Server Management Objects (SMO) Together to Manage SQL Server
  • DAT201 Entity Framework Introduction
  • DAT202 The Next Release of Microsoft SQL Server: Overview of SQL Server 2008
  • DAT302 Database Design Patterns: Architecting the Right Data Model for the Right Application
  • DAT303 Entity Framework: Application Patterns
  • DAT304 Managing Unstructured Data in SQL Server 2008: Introducing the FileStream Datatype
  • DAT305 Microsoft SQL Server 2005 Compact Edition in Action
  • DAT306 Optimizing Online, Enabling Offline with SQL Server Compact Edition and Sync Services for ADO.NET
  • DAT307 Best Practices for Optimizing Procedural Code and Queries in SQL Server 2005 and Beyond
  • DAT310 Best Practices for Optimizing Transactional Code in SQL Server 2005 and Beyond
  • DAT311 Best Practices for Optimizing XML Queries in SQL Server 2005 and Beyond
  • DAT312 Programming SQL Server 2008
  • DAT313 SQL Server 2005 Security and Innovations in SQL Server 2008 Security
  • DAT314 The Future of Sync Services for ADO.NET: Better on SQL Server 2008 and the Peer to Peer Provider
  • DAT315 T-SQL Querying: Tips and Techniques DAT317 Replication Best Practices and What’s New in SQL Server 2008
  • DAT318 XML / XQuery Improvements in SQL Server 2008
  • DAT319 Building Location-Aware Applications in SQL Server 2008: Introducing the Spatial Data Type
  • TLA308 LINQ to SQL: Accessing Relational Data with Language Integrated Query
  • TLA317 Real World Unit Testing with Team System for Database Professionals
  • TLA321 Visual Studio 2005 and 2008 Team Edition for Database Professionals: Integrating Database Developers in Your Software Management Life Cycle
  • MED01-PAN Windows Mobile© Application Development Panel Discussion
  • MED203 Improvements in Visual Studio 2008 and .NET Compact Framework 3.5 for Windows Mobile developers
  • MED303 Building Mobile Applications with the Patterns & Practices Mobile Application Blocks
TechEd-IT Forum

  • DAT01-IS Upgrade Best Practices, Tips, and Tricks
  • DAT01-PD Database Recovery Techniques
  • DAT02-IS SQL Server 2005 Database Mirroring: Setup to Implementation to Monitoring
  • DAT02-PD EXECUTE AS and the SQL Server Execution Context
  • DAT03-ILL SQL Server Always On Technologies Instructor-Led Lab: Part 1 - Database Mirroring
  • DAT04-ILL SQL Server Always On Technologies Instructor-Led Lab: Part 2 - Database Snapshots
  • DAT05-ILL SQL Server Always On Technologies Instructor-Led Lab: Part 3 - Online Operations
    DAT03-IS Spaitial Support in Microsoft SQL Server
  • DAT04-IS New T-SQL Programmability Features in Microsoft SQL Server 2008
  • DAT06-IS Microsoft SQL Server 2005 Security Best Practices
  • DAT07-IS DBCC Internals
  • DAT08-IS Adhoc Reports with Report Builder
  • DAT201 An Overview of the Next Release of Microsoft SQL Server
  • DAT202 Introducing SQL Server 2008 Resource Governor
  • DAT205 The Next Release of Microsoft SQL Server: Manageability Overview
  • DAT207 SQL Server 2005 Security and Innovations in SQL Server 2008 Security
  • DAT301 SQL Server Indexing - Unravelling the Unknown 08 SQL Server Intergration Services (SSIS): Zero to Hero
  • DAT401 Where Is My Memory? Understanding SQL Server Memory Usage And Management
  • DAT310 SQL Server 2008 – Enhancement for the Relational Data Warehouse
  • SRV307 How to Implement and Manage Windows Server virtualization
  • SRV312 How Windows Server 2008 Impacts IT Infrastructure
  • SRV321 Windows Server 2008 & Branch Offices
  • SRV05-IS Q&A: Windows Server 2008 Features Which Support Branch Offices
  • SRV08-IS Q&A: Windows Server Virtualisation
  • WSI02-IS Troubleshooting Web Sites on Microsoft Internet Information Services (IIS) 7
  • WSI204 Microsoft Internet Information Services (IIS) 7 for IT Professionals

Friday, September 28, 2007

More TechEd Barcelona Facebook Resources

Richard Costall has created a group on Facebook called Microsoft TechEd Developers 2007 Barcelona.

So far there are 82 members and lots of resources about some of the things happening at the event; including a discussion board where people are discussing everything from accommodation, competitions and what parties are being organised.

Check it out!

Monday, September 24, 2007

Book: Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1

Rob Tiffany has nearly completed his book titled "Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1". Chapters 1 to 4 (Installing and configuring Web Synchronization on your IIS server) are now feature complete and Rob has posted PDF versions of these on his blog for review. Chapter 5 (Programming the device to sync with SQL Server 2005) should be finished shortly.

PDF versions of the first 4 chapters, including a SQL Server backup file of the database used in the examples, can be downloaded from here.

Saturday, September 22, 2007

Telstra Palm Treo 750 Running Windows Mobile 6

PLEASE NOTE: Telstra have now released their official upgrade for the Treo 750.

If you're a Palm Treo 750 owner who's phone was purchased from a Telstra dealer and you're sick and tired of waiting for Palm/Telstra to release the Windows Mobile 6 upgrade; wait no more.

Last night I downloaded the 3 Mobile Windows Mobile 6 upgrade from Palm and successfully used it to upgrade my Telstra branded Treo 750. The only thing I've noticed missing is all the annoying Telstra branding, however the benefits of now having a super fast Windows Mobile device with embedded SQL Server CE 3.1 and .NET Compact Framework, not to mention enhancements such as:

  • Improved Calendar management with enhanced User Interface
  • Enhanced E-mail messaging, HTML/Smart Filtering, SharePoint access and more
  • Voice command via Bluetooth
  • USB cable charging

was well worth the sacrifice.

For information on how to do this, read the following threads:

BTW, if you follow these steps you'll also end up with an unbranded and unlocked Treo 750.

Enjoy!

Wednesday, September 19, 2007

TechEd Barcelona Facebook Events

Two TechEd Barcelona Facebook Events have been setup to enable members to discuss the Developer and IT Forum events and form friendships. Here are the links for each event group so come join us and meet some of your fellow attendees:

TechEd-Developer
TechEd-IT Forum

TechEd-Developer Barcelona Here I Come!

Well, that didn't take long.

Just got confirmation that I've been selected to work as a MCT proctor for the hands-on-labs (HOL) for Tech.Ed Developer Barcelona (Spain) from 5th-9th November 2007. Same deal as per TechEd-IT Forum.

November is going to be one hell of a month :-D

TechEd-IT Forum Barcelona Here I Come!

Got confirmation today that I've been selected to work as a MCT proctor for the hands-on-labs (HOL) for Tech.Ed IT Forum Barcelona (Spain) from 12th-16th November 2007.

As an MCT proctor we are expected to assist attendees with the hands-on-labs PLUS work one shift at the Ask-the-experts (ATE) booths. Yet to find out what HOL or Booth I'll be responsible for but they will probably relate to SQL Server given my involvement in the SQL Community.

Fingers crossed that I'll get selected as a MCT proctor for Tech.Ed Developer Barcelona from 5th-9th November 2007.

Saturday, September 15, 2007

Helping Aussie Partners Get Ready for the 2008 Wave Launch

Microsoft have kicked off the Australia 2008 Wave Launch Blog which is aimed at helping Aussie Partners get ready for the 2008 Wave Launch of Windows Server 2008, SQL Server 2008 and the next version of Visual Studio.

There is already some great content on this site like the "2008 Global Launch Wave" countdown gadget for your Vista Sidebar and a link to the Windows Server 2008 Faces website, and you can also subscribe to a RSS feed to keep up-to-date with what's going on with the 2008 launches.

Drop on by and check it out for yourself.

Friday, September 14, 2007

SBS 2003 Partner Readiness Training for Canberra

On the 12th September 2007 I blogged about Microsoft's change in heart with scheduling events in Canberra. Well, it's only been two days and it's happened. The SBS 2003 Partner Readiness Training for Australia is coming to Canberra on 18th October 2007. This is great news.

Event Details

This technical training focuses on the Small Business Server 2003 Release 2 and will be delivered in two sessions, with each session focusing on a different aspect of SBS Server 2003 R2. The sessions will run for approximately three (3) hours with a lunch break in between the sessions. The session’s outlines are:

Session 1 - Microsoft SBS 2003 R2 – Exchange 2003 and Outlook 2003 SP2 Features

This session introduces the new features on SBS 2003 R2 in regards to Exchange 2003 SP2 and Outlook 2003 SP2. After completing this course, you will be able to:

  • Describe the new flexible client licensing in SBS 2003 R2.
  • Identify ways to increase mobile security and efficiency through new Windows Mobile 5.0 policies and Direct Push technology.
  • Provide increased message hygiene by using the Open SPF standard as well as an improved Intelligent Message Filter.
  • Show how to allow for more storage with an increased mailbox size limit of 75GB.

Session 2 - Microsoft SBS 2003 R2 – Windows SharePoint Services V2.0\V3.0 Features

This session will introduce WSS v2.0, however it will be mainly focused on WSS V3.0. Students will learn the advantages of using Windows SharePoint services in their SBS 2003 R2 environment. After completing this course, you will be able to:

  • Describe the benefits of using SharePoint as an information sharing tool.
  • Show the advantages of using WSS V3.0 in their environment.
  • Preparing for and upgrading to WSS V3.0.
  • Integrate WSS V3.0 into Microsoft SBS 2003 R2 environment.
  • Utilizing advanced WSS V3.0 features to enhance the current environment.

REGISTER NOW : https://www.local.microsoft.com.au/australia/events/register/home.aspx?levent=400723&linvitation

Thursday, September 13, 2007

MSDN Webcast: Windows Communication Foundation Top to Bottom (Part 15 of 15) - Extensibility

This series is being presented by Michele Leroux Bustamante (Chief Architect, IDesign Inc, Microsoft Regional Director for San Diego, MVP XML Web Services) and author of Learning WCF (O'Reilly, 2007) and touches on the fundamentals and practical approaches of WCF development.

This session covered:

  • How to apply extensibility features of WCF
  • Customising ServiceHost initialisation
  • Adding or modifying behaviors at the service, endpoint, contract, or operational level
  • Techniques for intercepting, inspecting, and manipulating messages
  • Providing custom context
  • Creating custom binding elements and channels

Some of the key points from this session (this was a hard one to summerise as it contains lots of demo's that really need to be watched to understand the concepts of extensibility) :

  • ServiceHost and ServiceHostFactory
    • ServiceHost
      • Responsible for initialising the hosting environment for a service type
      • Can extend ServiceHost to
        • Override how the service description is created
        • Encapsulate initialisation overrides
    • ServiceHostFactory
      • Customising ServiceHost works for self-hosting environments
      • IIS and WAS provide ServiceHost
        • Via .svc endpoint and @ServiceHost directive
      • To override, provide a type derived from ServiceHostFactory
  • Behavior Extensions
    • Can apply behavior extensions to the entire service, an endpoint, a contract or an operation
    • Behavior extensions provide several common hooks into channel initialisation
  • Binding Elements and Channels
    • Bindings comprise many binding elements
    • Binding elements compose the channel stack
    • Can create custom binding elements
      • Add to an existing binding
      • Extend an existing binding
      • Create a new binding
    • Bindings comprise of many binding elements
    • BindingElement instance constructs channel factory or channel listener
    • Clients: A custom channel factory can create a custom channel
    • Services: A custom channel listener can create a custom channel
    • Custom channel provides functionality
    • Configure via code or configuration element 

 

This webcast is available for download from here along with a copy of the Powerpoint deck.

That was the last webcast in this series (phew!) and I'd like to thank Michele for writing such a brilliant book and delivering such an excellent webcast series.

Wednesday, September 12, 2007

Canberra (un)Snubbed By Microsoft

It seems that my previous post on Canberra being snubbed by Microsoft has set off a few alarm bells within Microsoft as I have had numerous emails from those associated with event scheduling assuring me that events will now be coming to Canberra.

Sharmilla Gosai (Partner Development Manager : Readiness, Microsoft Australia) has advised that they are currently working on a delivery schedule with a select group of Canberra based Microsoft Partners to make it happen (hint hint!). I also have a meeting scheduled with Microsoft next Thursday to discuss 2008 launch events etc (thanks OT).

Really hoping that all the promises eventuate as I know I'm not the only person who's feeling neglected and we really need to do something to liven up the Microsoft Community in Canberra..

Tuesday, September 11, 2007

Canberra SQL Server User Group Presentation: SQL Server 2005 Compact Edition: A DBA's Primer

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) is the rebranding of Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile 3.0) without the desktop restriction.

SQL Server Compact extends the SQL Server Mobile technology by offering a low maintenance, compact embedded database for single-user client applications for all Windows platforms including tablet PCs, pocket PCs, smart phones and desktops. Just as with SQL Server Mobile, SQL Server Compact is a free, easy-to-use, lightweight, and embeddable version of SQL Server 2005 for developing desktop and mobile applications.

In this session Jeff will cover:

  • What is SQL Server 2005 Compact Edition (SSCE)?
  • Obtaining SSCE
  • SSCE Deployment Architecture
  • Managing SSCE Databases
  • Verifying and Repairing SSCE Databases
  • Compacting and Shrinking SSCE Databases
  • Locking, Concurrency and Isolations
  • Synchronisation
  • Securing the SSCE Database
  • Performance Tuning
  • Resources

When: Wednesday, 12 September 2007
Where: Canberra Microsoft Office, Level 2, 44 Sydney Avenue, BARTON
Duration: Pizza & drinks from 5:00 pm for a 5:30 pm start. Finish approximately 7:30pm
Registration: www.sqlserver.org.au

Hope to see you there

Cheers
Jeff

Saturday, September 08, 2007

More SSCE Books and Resources

Whilst reading through the description for the Facebook group Windows Mobile Data Synchronization with SQL Server 2005 and SSC 3.1, I discovered two more books that cover SSCE. One is still being written by Rob Tiffany and is titled "Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1" and the second, titled "Microsoft Mobile Development Handbook", was written by the Windows Mobile MVP "Dream Team" of Andy Wigley, Peter Foot and Daniel "The Moth" Moth (now at Microsoft).

I had the pleasure of meeting Andy at Tech.Ed Developers Barcelona last year and completely forgot that he told me he would be releasing a Windows Mobile book in mid 2007. Sorry Andy, will make it up to you at Tech.Ed Barcelona this year :-D

Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1

This book is for the IT Professional and according to the tentative chapter list will cover:

  1. Introduction
  2. Domain Security
  3. Configure the Distributor
  4. Configure the Publisher
  5. Configure Web Synchronization
  6. Build the Client
  7. Ongoing Maintenance

The great thing Rob is doing with this book is making each chapter available as a PDF download prior to the books release. The idea behind this concept is that Rob is giving people a jumpstart in their efforts to implement a mobile data replication strategy. At the time of writing this entry, Chapters 2, 3 and 4 had been released.

Microsoft Mobile Development Handbook

This book is "one of the first books to cover the .NET Compact Framework 2.0 and SQL Server 2005 Compact Edition, it even gives the reader coverage of Visual Studio 2008, and .NET Compact Framework 3.5 technologies such as WCF, LINQ, Compression, and 'on-device' Unit Tests" (Rob Tiffany, 2007).

It has over 600 pages and contains the following chapters:

  1. .NET Compact Framework—a Platform on the Move
  2. Building a Microsoft Windows Forms GUI
  3. Using SQL Server 2005 Compact Edition and Other Data Stores
  4. Catching Errors, Testing, and Debugging
  5. Understanding and Optimizing .NET Compact Framework Performance
  6. Completing the Application: Packaging and Deployment
  7. Exchanging Data with Backend Servers
  8. Networking
  9. Getting Connected
  10. Security Programming for Mobile Applications
  11. Threading
  12. Graphics Programming
  13. Direct3D Mobile
  14. Interoperating with the Platform
  15. Building Custom Controls
  16. Internationalization
  17. Developing with Windows Mobile
  18. Introducing .NET Compact Framework Version 3.5 and Visual Studio "Orcas"

Enjoy!
Jeff

SQL Server 2005 Compact Edition Presentations

I seem to be getting a lot of requests from people about when I will be presenting my SQL Server 2005 Compact Edition DBA/Developer Primer presentations so thought it would be far easier for me to list them here and then point people to my blog. So, here are the session details:

Screencasts of a DBA and Developer Primer session will been uploaded to http://wardyit.com/resources.aspx by mid October 2007.

MSDN Webcast: Windows Communication Foundation Top to Bottom (Part 14 of 15) - Message Queuing

This series is being presented by Michele Leroux Bustamante (Chief Architect, IDesign Inc, Microsoft Regional Director for San Diego, MVP XML Web Services) and author of Learning WCF (O'Reilly, 2007) and touches on the fundamentals and practical approaches of WCF development.

This session covered:

  • WCF implementation of queued messaging on top of Microsoft Message Queue Server (MSMQ)
  • Sending messages to a queue
  • Receiving messages from a queue
  • Transactional and non-transactional queues
  • Handling delivery failures

Key points from this session:

  • Reliability
    • WCF provides reliable features
      • Reliable sessions (session 12)
      • Support for transactions (session 13)
      • Durable queued messaging (covered in this session)
  • Queued Messaging
    • Messaging queues increase system availability and scale-out potential
    • Guaranteed delivery even if receiver goes offline or server is unavailable
    • Participation in distributed transactions
    • Durable storage
    • Automatic retries and storage for failed or poison messages
  • MSMQ Overview
    • WCF implements queued messaging on top of MSMQ
      • MSMQ v3.0 for the Windows XP or Windows Server 2003 OS
      • MSMQ v4.0 for the Windows Vista or Windows Server 2008 OS
    • Can access queues using System.Messaging
    • WCF provides bindings for MSMQ
  • NetMsmqBinding
    • WCF services listen at an MSMQ address
    • NetMsmqBinding
      • Send messages to queues from WCF clients
      • Receive messages from queues at WXF services
    • MsmqIntegrationBinding
      • Integrate QCF with pre-existing MSMQ deployments
  • Queued Service COntrats
    • MSMQ bindings require all one-way operations on the service contract
  • Binding COnfiguration
    • Provide an endpoint for NetMsmqBinding
    • Address the queue with prefix net.msmq
    • Local queues require "provate"
    • Remote queues use the computer name or IP address
      • No $ required for WCR addressing
  • Requiring Queued Delivery
    • Apply DeliveryRequirementsAttribute
    • Set the RequireQueuedDelivery property to NoAllowed, Allowed or Required
    • Ensure the binding supports queued delivery
    • Apply to a contract for all implementations
  • Transaction Queues (guarantees messages are not lost)
    • Client: messages are written to the local or remote queue as a transaction
    • Queue-to-queue: messages are forwarded from local to remote queue as part of a transaction
    • Service: messages are played to the service as a transaction
    • Service operation contracts must allow or require transactions
    • Service operations must require transactions to join the MSMQ transaction
    • Transaction queues must be durable
  • When to Use Queued Messaging
    • Asynchronous behaviors that require durability and guarantee delivery
    • Need to withstand computer restart

This webcast is available for download from here along with a copy of the Powerpoint deck. The next Webcast (session 15) has already been presented and is titled "Extensibility". A schedule on the complete series can be found here.

MSDN Webcast: Windows Communication Foundation Top to Bottom (Part 13 of 15) - Transactions

This series is being presented by Michele Leroux Bustamante (Chief Architect, IDesign Inc, Microsoft Regional Director for San Diego, MVP XML Web Services) and author of Learning WCF (O'Reilly, 2007) and touches on the fundamentals and practical approaches of WCF development.

This session covered:

  • WCF implementation of transactional programming
  • Underlying standards and interoperability
  • Configuration options for bindings, service contracts, service behaviors, and operations

Key points from this session:

  • Reliability
    • WCF provides reliable features
      • Reliable sessions (session 12)
      • Support for transactions (covered in this session)
      • Durable queued messaging (session 14)
  • WCF Transactions
    • Enable transaction flow on the binding
    • Transaction protocol must be selected
    • Service operations specify support for transactions
    • Service operations must explicity agree to join a transaction, or create one
  • Binding Support
    • Several bindings support transaction flow across service boundaries
      • NetNamePipeBinding
      • NetTcpBinding
      • WSHttpBinding
      • WSDualHttpBinding
      • WSFederationHttpBinding
    • Each defaults to a particular transaction protocol
  • Enabling Transaction Flow
    • Disabled by default
    • Can be enabled in binding
      • transactionFlow="true"
    • Can be enabled in code
      • netTcp.TransactionFlow = true (example)
    • TransactionFlowOption (controls whether the service allows or requires a client transaction)
      • NotAllowed
      • Mandatory
      • Allowed
  • Service Operations
    • OperationBehaviorAttribute
      • TransactionScopeRequired property
        • Set to true to join a client transaction, or create a new transaction
        • Set to false (default) to do nothing
      • TransactionAutoComplete property
        • Set to true to automatically vote to commit
        • If exception thrown, will vote to abort
  • Client Configuration
    • For clients to flow transactions they must
      • Enable transaction flow on the binding
      • Have a transaction to flow
      • Have transaction flow options set to Mandatory or Allowed on the proxy's service contract
  • Transaction Protocol Options
    • WCF supports serveral transaction protocols
    • OleTransactions: cross process and network boundaries
      • Named Pipes and TCP default
        • Support configuring transaction protocol
        • Can control setting i code
    • WSAtomicTransaction11: cross service boundaries over HTTP
      • The only option for HTTP
        • default to WSAtomicTransactionOctober2004 (for backward compatibility) today
        • Can control with custom binding
  • Transaction Timeout
    • Defaults to 60 seconds
    • Can be controlled in configuration or code
  • Controlling Isolation Level
    • IsolationLevel enumeration
      • Chaos, ReadCommitted, ReadUncommitted, RepeatableRead, Serializable, Snapshot and Unspecified
    • Services join the client's isolation level by default

This webcast is available for download from here along with a copy of the Powerpoint deck. The next Webcast (session 14) has already been presented and is titled "Message Queuing". A schedule on the complete series can be found here.

Friday, September 07, 2007

MSDN Webcast: Windows Communication Foundation Top to Bottom (Part 12 of 15) - Reliable Messaging

This series is being presented by Michele Leroux Bustamante (Chief Architect, IDesign Inc, Microsoft Regional Director for San Diego, MVP XML Web Services) and author of Learning WCF (O'Reilly, 2007) and touches on the fundamentals and practical approaches of WCF development.

This session covered:

  • WCF implementation of interoperable reliable messaging standards
  • Underlying architecture
  • Binding support and detailed configuration options
  • Dealing with sessions, timeout, and exceptions
  • Demonstrations of failed messaging and recovery

Key points from this session:

  • Reliability
    • WCF provides reliable features
      • Reliable sessions (covered in this session)
      • Support for transactions (session 13)
      • Durable queued messaging (session 14)
  • Reliable Sessions
    • Makes it possible to overcome transient interruptions in network connectivity
    • Delivery guarantees
      • Deliver exactly once
      • Deliver in order (if desired)
    • Binding support
      • Standard bindings that support reliable sessions
        • NetTcpBinding
        • WSHttpBinding
        • WSDualHttpBinding (always enabled)
        • WSFederationHttpBinding
      • Can also support with CustomBinding
    • Enabling Reliable Sessions
      • Set <reliableSession> setting for the binding
      • Initialise in code using the binding constructor
  • WCF Architecture
    • A reliable session is established at the channel layer
    • Buffers at both ends manage reliability
    • Delivery notifications handled by acknowledgements sent to client channel
    • Missing acknowledgements trigger retry attempts for a configurable number of retries
  • Reliable Messaging Standards
    • Web Services Reliable Messaging (WS-RM) OASIS Committee
      • WS-Reliability OASIS standard Nov. 2004
    • Web Services Reliable Exchange (WS-RX) OASIS Committee
      • WS-ReliableMessaging (WS-RM) Aug. 2006
      • WS-RM Policy Assertion Aug. 2006
    • WCF implements WS-RM and associated policy assertions
  • Retry Attempts
    • Occurs when a message acknowledgement has not returned within an expected time
    • By default, 8 retries are attempted for a particular message
      • Proxy is unaware unless all retires fail
    • Once the retry count is exhausted, the reliable session is faulted at the client
      • Server channel will ultimately timeout
  • Session Identifier
    • Unique session identifier is used to correlate message between client and service
      • Negotiated during first call to the service
      • Accessible via the SessionId property
  • Session Timeout
    • Governed by binding receiveTimeout or reliable session inactivityTimeout
      • Lesser of two wins
      • If application session exists, the former wins
    • Best to use receiveTimeout as it is used to initialise timeout for all session types
  • Handling Exceptions
    • Timeouts fault the service channel, thus the client channel
    • Services should throw faults, not exceptions
    • Clients must catch exceptions and begin a new reliable session
  • When to Use Reliable Sessions
    • Remove risk associated with transient network connectivity issues
    • Confirmed delivery of any message, regardless or order
    • Enforce ordered delivery of messages
    • Achieve a level of reliability across interoperable boundaries
  • Things to Consider
    • Reliable sessions have the same caveat as other sessions
      • Exceptions fault the channel
      • Susceptible to timeouts
    • Additional messaging overhead
      • Calls to establish and terminate sessions, acknowledgements, transfer of session identifier
    • Acknowledgements are received at the channel layer
      • No acknowledgement of which message failed

This webcast is available for download from here along with a copy of the Powerpoint deck. The next Webcast (session 13) has already been delivered and is titled "Transactions". A schedule on the complete series can be found here.

MSDN Webcast: Windows Communication Foundation Top to Bottom (Part 06 of 15) - Hosting

After much delay, the full webcast of this session has been uploaded.

This series is being presented by Michele Leroux Bustamante (Chief Architect, IDesign Inc, Microsoft Regional Director for San Diego, MVP XML Web Services) and author of Learning WCF (O'Reilly, 2007) and touches on the fundamentals and practical approaches of WCF development.

This session covered:

  • Overview of hosting options
  • Self-hosting
  • Internet Information Services (IIS) and Windows Activation Service (WAS) hosting
  • Windows Applications
  • Windows Services

Key points from this session:

  • Hosting Environments
    • Self-hosting
      • Console application, Windows application, Windows service
      • Protocols: HTTP, TCP, Named Pipes, MSMQ
      • A ServiceHost instance must be initialised (manually) to expose enpoints
      • Each ServiceHost is associated with a specific service type
      • ServiceHost Core methods
        • Open() - Opens channel listeners
        • Close() - Closes channel listeners
          • Allows existing calls to complete before closing
      • ServiceHost Events
        • Opening, Opened
        • Closing, Closed
        • Faulted, UnknownMessageReceived
      • Can programmatically interact with service behaviors
    • IIS/Microsoft ASP.NET/Windows Activation Service (IIS 7)
      • IIS/Microsoft ASP.NET
        • Protocols: HTTP
      • Windows Activation Service
        • Protocols: HTTP, TCP, Named Pipes, MSMQ
      • Requests mapped based on .svc file extension
      • Service type associated by @ServiceHost declaration
      • ServiceHost instantiated for service type
      • Hosting Features
        • Basic
          • Process and application domain
          • Service configuration
        • Extended Features
          • Service activation
          • Health monitoring and recycling
          • Management tools
          • Only provided by IIS/WAS
    • Windows Application
      • Windows Forms or WPF
      • Exposing service from client machines
      • Must be aware of synchronisation context
        • UI thread or not
      • Depends on
        • When ServiceHost is opened
        • If the service prevents context synchronisation
      • If ServiceHost is opened on a non-UI thread, services operate on a new thread
    • Windows Services
      • Useful for unattended server machines
      • Can also be useful for client deployments
        • Requires additional setup for Windows service
      • Host environment initialised when machine starts, can be configured to restart on failure
      • Open and close ServiceHost instances on start and stop of the Windows service
  • Self-Hosting vs. IIS/WAS
    • Self-hosted endpoints are directly configured
    • IIS/WAS endpoints are relative to .svc file
  • Hosting Scenarios
    • Typical options for hosting on each platform
    • Windows Server 2003
      • IIS 6 for HTTP
      • Windows services for non-HTTP
    • Windows Server 2008
      • IIS 7/WAS for all protocols
    • Windows XP Service Pack 2 and Windows Vista
      • Client machines will usually host in a Windows application, possibly a Windows service

The seventh webcast has already been delivered and is available for download from here along with a copy of the Powerpoint deck. I will blog about it shortly. The next Webcast (session 8) is scheduled for 13th August 2007 and is titled "Instancing Modes". A schedule on the complete series can be found here.

Thursday, September 06, 2007

Palm Rolls Out Windows Mobile 6 Upgrade for Treo 750

Today Palm Australia finally commenced rolling out their Windows Mobile 6 upgrade for the Treo 750 after advertising it on their website for the last 2-3 weeks.  At the moment the upgrade is for 3 Mobile devices only but their technical support centre advised that other carrier updates should start rolling out next week.  When I asked if the Telstra upgrade would be rolled out next week, I was given the same reply; "Other carrier upgrades should start rolling out next week". 

Not sure whether they rolled out 3 Mobile first due to its smaller subscriber base or whether they are having issues getting the Telstra upgrade out.  Telstra has the largest subscriber base and were the first carrier to release the Treo 750 in Australia.  Either way, it looks like the upgrade will by available very very soon.

WCF and Certificate-Based Authentication and Protection

Micth Denny has put together an excellent post on using Certificate-based Authentication and Protection with Windows Communication Foundation (WCF).

One thing to point out is that using x509FindType=’FindBySubjectName’ doesn't guarantee uniqueness as it uses a case-insensitive string compare and finds all certificates with the subject name containing that string, regardless of other subject values. It is recommended to use ‘FindBySubjectDistinguishedName’ or ‘FindByThumbprint’ to guarantee uniqueness.

Also, ‘FindByThumbprint’ should be used if you are using SAML (Security Assertion Markup Language (SAML) v2.0) as 'Thumbprint' is one of the values supported by SAML as guaranteeing certificate uniqueness.