Change the Rules Distributed data apps with.NET Zlatko Knezevic Developer Evangelist Microsoft zlatko.knezevic@microsoft.com.

Post on 14-Dec-2015

224 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Change the Rules

Distributed data apps with .NET

Zlatko KnezevicDeveloper Evangelist

Microsoftzlatko.knezevic@microsoft.com

Data options in .NET world

Some history included

• Native interfaces• ODBC as a abstraction layer• OLE DB• ADO.NET as a wrapper with .NET–With factories in 2.0 world

• ORMs as of 3.0

Today, things are different

• Client-server is a past paradigm

• Services talking to one another

• Distribution of data, applications, infrastructure

• TDD/DDD/BDD as a development practice

SQLServer

SQLAzure

Visual Studio “Quadrant”

SQL Server Modeling Services

Entity Framework

ADO.NET “M”/EDM

Data Services

Change the Rules

ENTITY FRAMEWORK 4.0

Entity Framework 1.0 had too many pain points

• The designer!• Model First not supported• Poor support for Stored Procedures• No Pluralization/Singularization• Foreign Keys hidden• Lazy Loading not supported• Missing LINQ Operators vs LINQ to SQL• Generated SQL unreadable• No support for Plain Old CLR Objects• N-Tier difficult

New in Entity Framework 4• Model-first development• Automatic pluralization• Foreign keys in models• POCO class support (Add-in)• Lazy loading• T4 Code Generation• Template customization• IObjectSet• Virtual SaveChanges• ObjectStateManager control

• Self-tracking entities• SQL generation

improvements• More LINQ operator

support• LINQ extensibility• ExecuteStoreQuery• ExecuteStoreCommand• SPROC import

improvements• Model defined functions• WPF designer integration• Code-First development

(Feature CTP)

Better Tools and Design Experience

• Model First• Templated code generation• Stored Procedures• Pluralization/Singularization • Complex Types• Better delete and search

More powerful/flexible runtime

• Deferred Loading (aka lazy loading)• Foreign Keys surfaced• More complete LINQ implementation• ExecuteStoreQuery• EntityFunctions and SqlFunctions• Improvements to generated SQL

Persistence Ignorance

• First class support for Persistence Ignorance

• No modifications to your classes!

N-Tier

• Self Tracking Entities

Code Only database modelling

• All above is nice, but you still need the edmx file

• What if you want the code to be “the truth”?

• Code-only modelling means just that• Currently only in CTP

Change the Rules

DEMO

Change the Rules

ODATA (WCF DATA SERVICES)

oData?

• What is it?

• Why should we care?

• How are we supposed to use it?

A little bit of history…

• MIX07 was a birthplace of “Astoria”• Later renamed ADO.NET Data

Services• Requirements for web data services– Plain HTTP– Uniform patterns– Focus on data– Abstract

Basic idea

The basic idea is simple

You already have this HUGE platform and API thing

Why not build on top of it??

In a way that is friendly and automatic??

RESTREPRESENTATIONAL

STATETRANSFER

| !protocol| !standard| !format

REST

REST == architectural style

| decoupling| scalability| layering

REST

OData

• Uniform way of representing structured data– Atom, JSON formats

• Uniform URL conventions– Navigation, filtering, sorting, paging, etc.

• Uniform operations– Addressability– GET, POST, PUT, DELETE always mean the same

Expose

• Any data over HTTP• Through either JSON or XML (Atom)• Your source needs to be

IQueryable<T>• Works like a charm for Entity

Framework contexts

Data Source Options

Data Services Runtime

HTTP traffic

Entity Framework Provider

Reflection Provider Custom Provider

.NET Classes[+ LINQ provider]Entity Framework

Database Data Source

Data Source

Custom providers:- IDataServiceMetadataProvider- IDataServiceQueryProvider

Updates:- IDataServiceUpdateProvider

Special features:- IDataServiceStreamProvider- IDataServicePagingProvider

Consume

• Data on any platform• Bindings and POC code for– PHP– Java– JavaScript

• Client libraries for .NET• Power Pivot and other means

got an HTTP stack?

business logic

store

service interface

data service != gateway to database

oData point: SharePoint 2010

• SharePoint needed 2 things in this space

• Flexible data interface–Maximize reach, minimum barrier of entry– Data centric, but enforcing business logic

• Developer story– Libraries for as many clients as possible– Great Visual Studio integration

oData consumer: PowerPivot

• “Self-service business intelligence”– Let people find and use their own data– …but where’s the data?

• Broad direct database access is impractical– OData feeds expose data over application logic– PowerPivot can handle OData natively

• Reports often represent the best data sources– All reports in Reporting Services are now OData

feeds

Servers• WCF Data Services• SharePoint 2010• SQL Server Reporting Services 2008 R2• SQL Azure• IBM WebSphere eXtreme Scale• Microsoft Media Room• WCF RIA Services

Services• Netflix• Mix 2010• Nerd Dinner• Vancouver’s vanGuide• Open Government Data Initiative• Open Science Data Initiative• Microsoft Codename “Dallas”• City of Edmonton

Clients• Excel + PowerPivot• LINQPad• OData Explorer

Client libraries• .NET• Silverlight• Windows Phone 7 Series• Javascript• Java• Objective-C• PHP

http://odata.org/producers

http://odata.org/consumers

Change the Rules

DEMO

Change the Rules

SQL SERVER 2008 R2

SQL Server 2008 at a glance

• A lot of improvements for next-generation apps• Beyond rational data types

– Spatial Data type– Hierarchy data type

• Improvements in rational engine– FILESTREAM data type– New DateTime functions

• Support for sparse columns• Better management• And a lot more…

SQL Server 2008 R2

• Adding on the solid foundation that is SQL 2008

• Improvements in management, reporting and federation

• StreamInsight™ • Support for oData in Reporting Services• Better business insight with new BI

advances– PowerPivot

Visual Studio 2010 & SQL Server 2008 R2

• Continued “DB professional” support– Offline database projects– Provides a place for the DB in ALM cycle

• New T-SQL IDE and developing features

• Data-tier Application projects

Data-tier Applications

• Improved Transact-SQL IDE• Supports offline development,

refactoring, versioning, policy• Builds single unit of deployment

containing all database objects (DACPAC)

• Registered with SQL Server when deployed

top related