SCHEMA-FREE AZURE
DEVELOPMENT
By Example.
C# code available from
http://ingehenriksen.wordpress.com
AZURE SCHEMA-FREE DATABASES
 Windows Azure Storage:
 Table storage NoSQL database.
 Massively scalable and Big Data capable (500 TB/Storage account).
 REST API (OData).
 Strongly typed .NET storage client object model.
 http://azure.microsoft.com/en-us/documentation/services/storage/
 NuGet: Install-Package WindowsAzure.Storage -Version 4.3.0
C# code available from http://ingehenriksen.wordpress.com
AZURE SCHEMA-FREE DATABASES
 Windows DocumentDB(released April ‘15):
 JSON document NoSQL database.
 1 TB/database.
 REST API.
 Strongly typed .NET storage client object model.
 «SQL-like» declerative query syntax.
 Supports dynamically typed declerative queries.
 http://azure.microsoft.com/en-us/services/documentdb/
 NuGet: Install-Package Microsoft.Azure.DocumentDB
C# code available from http://ingehenriksen.wordpress.com
SCHEMA-FREE ADVANTAGES
 Boost developer performance:
 No need for database schema defintions.
 No need for Object-relational mappings (ORMs).
 No need for manual entity definitions in code.
C# code available from http://ingehenriksen.wordpress.com
THE OPTIMAL SOLUTION
 Create tables on the fly.
 Create table rows on the fly.
 Create entity properties on the fly.
 Support all data types.
…Solved using Dynamic Typing.
C# code available from http://ingehenriksen.wordpress.com
IMPLEMENTING DYNAMIC TYPING
 Inherit DynStorage from
System.Dynamic.DynamicObject.
 Implement TryGetMember().
 Create a table object by table name.
C# code available from http://ingehenriksen.wordpress.com
IMPLEMENTING DYNAMIC TYPING
 Inherit DynTable from
System.Dynamic.DynamicObject.
 Implement TryGetMember().
 Create an entity object by partition key
(primary key) and rowkey.
C# code available from http://ingehenriksen.wordpress.com
IMPLEMENTING DYNAMIC TYPING
 Inherit DynTableEntity from System.Dynamic.DynamicObject, ITableEntity, and
Idictionary<string, EntityProperty>.
 Implement TryGetMember().
 Fetch entity property from dictionary.
 Implement Save() method.
C# code available from http://ingehenriksen.wordpress.com
IMPLEMENTING DYNAMIC TYPING
 Implement dictionary EntityProperty().
 Write TableQuery() using partitionkey and
rowkey.
 Implement TryGetMember().
 Create an entity object by partition key
(primary key) and rowkey.
C# code available from http://ingehenriksen.wordpress.com
THANK YOU FOR YOUR TIME!
Get started at
http://azure.microsoft.com/en-us/downloads/
Inge Henriksen
http://ingehenriksen.wordpress.com

Schema-free Microsoft Azure development

  • 1.
    SCHEMA-FREE AZURE DEVELOPMENT By Example. C#code available from http://ingehenriksen.wordpress.com
  • 2.
    AZURE SCHEMA-FREE DATABASES Windows Azure Storage:  Table storage NoSQL database.  Massively scalable and Big Data capable (500 TB/Storage account).  REST API (OData).  Strongly typed .NET storage client object model.  http://azure.microsoft.com/en-us/documentation/services/storage/  NuGet: Install-Package WindowsAzure.Storage -Version 4.3.0 C# code available from http://ingehenriksen.wordpress.com
  • 3.
    AZURE SCHEMA-FREE DATABASES Windows DocumentDB(released April ‘15):  JSON document NoSQL database.  1 TB/database.  REST API.  Strongly typed .NET storage client object model.  «SQL-like» declerative query syntax.  Supports dynamically typed declerative queries.  http://azure.microsoft.com/en-us/services/documentdb/  NuGet: Install-Package Microsoft.Azure.DocumentDB C# code available from http://ingehenriksen.wordpress.com
  • 4.
    SCHEMA-FREE ADVANTAGES  Boostdeveloper performance:  No need for database schema defintions.  No need for Object-relational mappings (ORMs).  No need for manual entity definitions in code. C# code available from http://ingehenriksen.wordpress.com
  • 5.
    THE OPTIMAL SOLUTION Create tables on the fly.  Create table rows on the fly.  Create entity properties on the fly.  Support all data types. …Solved using Dynamic Typing. C# code available from http://ingehenriksen.wordpress.com
  • 6.
    IMPLEMENTING DYNAMIC TYPING Inherit DynStorage from System.Dynamic.DynamicObject.  Implement TryGetMember().  Create a table object by table name. C# code available from http://ingehenriksen.wordpress.com
  • 7.
    IMPLEMENTING DYNAMIC TYPING Inherit DynTable from System.Dynamic.DynamicObject.  Implement TryGetMember().  Create an entity object by partition key (primary key) and rowkey. C# code available from http://ingehenriksen.wordpress.com
  • 8.
    IMPLEMENTING DYNAMIC TYPING Inherit DynTableEntity from System.Dynamic.DynamicObject, ITableEntity, and Idictionary<string, EntityProperty>.  Implement TryGetMember().  Fetch entity property from dictionary.  Implement Save() method. C# code available from http://ingehenriksen.wordpress.com
  • 9.
    IMPLEMENTING DYNAMIC TYPING Implement dictionary EntityProperty().  Write TableQuery() using partitionkey and rowkey.  Implement TryGetMember().  Create an entity object by partition key (primary key) and rowkey. C# code available from http://ingehenriksen.wordpress.com
  • 10.
    THANK YOU FORYOUR TIME! Get started at http://azure.microsoft.com/en-us/downloads/ Inge Henriksen http://ingehenriksen.wordpress.com