SQL CE & Windows Phone

Post on 24-Feb-2016

42 views 0 download

Tags:

description

The easy way. SQL CE & Windows Phone. Paul Scivetti paul@synergensoftware.com @ TheIdeaGuy BuzzTheCloud.com. January 17, 2012. SQL CE + Win Phone!. Table Designer. Stored Procs. MS Dev Tools. T-SQL. Entity Framework. L2S + “Code First”. Seriously?. #%*$!!. SQL CE . Better - PowerPoint PPT Presentation

Transcript of SQL CE & Windows Phone

SQL CE & Windows Phone

Paul Scivettipaul@synergensoftware.com

@TheIdeaGuyBuzzTheCloud.com

The easy way

January 17, 2012

SQL CE +Win Phone!

MS Dev Tools

EntityFramework

TableDesigner

T-SQL

StoredProcs

L2S + “Code First”

Seriously?

#%*$!!

SQL CE

Better Way?

•Simple

•Useful

•Balanced

• SQL CE Basics

• Tools

• Using L2S

• Performance

Demo

SQL CE Basics

• Where is the Database?

• Create / Modify Database

• Create Tables

Where is the Database?using System.Data.Linq;

public partial class DBDataContext : DataContext { public DBDataContext() : base("Data Source=isostore:/PhoneDemoDB.sdf") { OnCreated(); } }

Create DatabaseDBDataContext db = new DBDataContext();

if (!db.DatabaseExists()){

db.CreateDatabase();

var updater = db.CreateDatabaseSchemaUpdater();updater.DatabaseSchemaVersion = DB_CURRENT_VERSION;updater.Execute();

}

Update Schemavar updater = db.CreateDatabaseSchemaUpdater();int dbVersion = updater.DatabaseSchemaVersion ;if (dbVersion < DB_CURRENT_VERSION){

if (dbVersion < 2) {updater.AddTable<Log>();

updater.AddColumn<Food>("Calories");}

updater.DatabaseSchemaVersion = DB_CURRENT_VERSION; updater.Execute();}

Code

SQL CE Basics

• Where is the Database?

• Create / Modify Database

• Create Tables

#%*$!!

SQL CE

• SQL CE Basics

• Tools

• Using L2S

• Performance

2. Run SQLMetal

3. Tweak code

4. Use L2S in App

1. Design Tables

SQLMetal

• Windows SDK

• Command line tool

• Generates mapping classes

• Almost WinPhone Compatible

.\SqlMetal.exe /server:.\sqlexpress /database:phonedemo /code:c:\metal\phonedemo.cs /context:DBDataContext /pluralize /namespace:PhoneApp2

Code

• SQL CE Basics

• Tools

• Using L2S

• Performance

Query Syntax:DBDataContext db = new DBDataContext();

var qry = from f in db.Foods orderby f.Description select f;

foreach (Food item in qry){ // process each food item}

Fluent Syntax:DBDataContext db = new DBDataContext();

var qry = db.Events.OrderByDescending(o => o.MeetingDate) .ThenBy(o => o.Topic);

foreach (Event item in qry){ // process each event}

CRUD: InsertDBDataContext db = new DBDataContext();

Food f = new Food();f.Description = “Mushroom Pizza”;

db.Foods.InsertOnSubmit(f);

db.SubmitChanges();

Code

• SQL CE Basics

• Tools

• Using L2S

• Performance

using System.Threading.Tasks;private async void LoadFoodAsync(){

ObservableCollection<Food> res = new ObservableCollection<Food>();

await TaskEx.Run(() =>{

DBContext db = new DBContext();var qry = from s in db.Food select s;res = new ObservableCollection<Food>(qry);

});this.FoodItems = res;

}

Async Access

Performance Tuningusing System.Data.Linq;

public partial class DBDataContext : DataContext {

// default buffer size: 384K public DBDataContext() : base("Data Source=isostore:

/PhoneDemoDB.sdf;max buffer size=1024") { OnCreated(); } }

ResourcesWindows Phone Development

create.msdn.com LINQ to SQL

SQL CE & Windows Phone

Paul Scivettipaul@synergensoftware.com

@TheIdeaGuyBuzzTheCloud.com

The easy way

January 17, 2012

SQL CE & Windows Phone

Paul Scivettipaul@synergensoftware.com

@TheIdeaGuyBuzzTheCloud.com

The easy way

January 17, 2012