sql ce & windows phone

40
SQL CE & Windows Phone Paul Scivetti [email protected] @TheIdeaGuy BuzzTheCloud.com The easy way January 17, 2012

Upload: lara

Post on 24-Feb-2016

42 views

Category:

Documents


0 download

DESCRIPTION

The easy way. SQL CE & Windows Phone. Paul Scivetti [email protected] @ 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

Page 1: SQL CE & Windows Phone

SQL CE & Windows Phone

Paul [email protected]

@TheIdeaGuyBuzzTheCloud.com

The easy way

January 17, 2012

Page 2: SQL CE & Windows Phone

SQL CE +Win Phone!

Page 3: SQL CE & Windows Phone

MS Dev Tools

EntityFramework

TableDesigner

T-SQL

StoredProcs

Page 4: SQL CE & Windows Phone
Page 5: SQL CE & Windows Phone

L2S + “Code First”

Page 6: SQL CE & Windows Phone

Seriously?

Page 7: SQL CE & Windows Phone

#%*$!!

SQL CE

Page 8: SQL CE & Windows Phone

Better Way?

Page 9: SQL CE & Windows Phone

•Simple

•Useful

•Balanced

Page 10: SQL CE & Windows Phone

• SQL CE Basics

• Tools

• Using L2S

• Performance

Page 11: SQL CE & Windows Phone

Demo

Page 12: SQL CE & Windows Phone

SQL CE Basics

• Where is the Database?

• Create / Modify Database

• Create Tables

Page 13: SQL CE & Windows Phone

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

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

Page 14: SQL CE & Windows Phone

Create DatabaseDBDataContext db = new DBDataContext();

if (!db.DatabaseExists()){

db.CreateDatabase();

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

}

Page 15: SQL CE & Windows Phone

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();}

Page 16: SQL CE & Windows Phone

Code

Page 17: SQL CE & Windows Phone

SQL CE Basics

• Where is the Database?

• Create / Modify Database

• Create Tables

Page 18: SQL CE & Windows Phone
Page 19: SQL CE & Windows Phone
Page 20: SQL CE & Windows Phone
Page 21: SQL CE & Windows Phone
Page 22: SQL CE & Windows Phone
Page 23: SQL CE & Windows Phone

#%*$!!

SQL CE

Page 24: SQL CE & Windows Phone

• SQL CE Basics

• Tools

• Using L2S

• Performance

Page 25: SQL CE & Windows Phone

2. Run SQLMetal

3. Tweak code

4. Use L2S in App

1. Design Tables

Page 26: SQL CE & Windows Phone
Page 27: SQL CE & Windows Phone

SQLMetal

• Windows SDK

• Command line tool

• Generates mapping classes

• Almost WinPhone Compatible

Page 28: SQL CE & Windows Phone

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

Page 29: SQL CE & Windows Phone

Code

Page 30: SQL CE & Windows Phone

• SQL CE Basics

• Tools

• Using L2S

• Performance

Page 31: SQL CE & Windows Phone

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}

Page 32: SQL CE & Windows Phone

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}

Page 33: SQL CE & Windows Phone

CRUD: InsertDBDataContext db = new DBDataContext();

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

db.Foods.InsertOnSubmit(f);

db.SubmitChanges();

Page 34: SQL CE & Windows Phone

Code

Page 35: SQL CE & Windows Phone

• SQL CE Basics

• Tools

• Using L2S

• Performance

Page 36: SQL CE & Windows Phone

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

Page 37: SQL CE & Windows Phone

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(); } }

Page 38: SQL CE & Windows Phone

ResourcesWindows Phone Development

create.msdn.com LINQ to SQL

Page 39: SQL CE & Windows Phone

SQL CE & Windows Phone

Paul [email protected]

@TheIdeaGuyBuzzTheCloud.com

The easy way

January 17, 2012

Page 40: SQL CE & Windows Phone

SQL CE & Windows Phone

Paul [email protected]

@TheIdeaGuyBuzzTheCloud.com

The easy way

January 17, 2012