Presentation is loading. Please wait.

Presentation is loading. Please wait.

LinqToSharePoint SandBoxed Solution Shakir Majeed Khan

Similar presentations


Presentation on theme: "LinqToSharePoint SandBoxed Solution Shakir Majeed Khan"— Presentation transcript:

1 LinqToSharePoint SandBoxed Solution Shakir Majeed Khan http://sharepointtechies.wordpress.com/ http://sharepointtechies.wordpress.com/

2 MySelf User Group Leader of SharePoint Techies, Working independently on SharePoint technologies. Trainer for Microsoft Office SharePoint Server 2007 and Window SharePoint Services 3.0 at AUC Technologies. http://junooni.wordpress.com/ shakir.majeed@gmail.com www.facebook.com/shakir.majeed

3 Agenda session is divided into two LinqtoSharePoint SandBoxed Solution Questions

4 What’s wrong with this SqlConnection c = new SqlConnection(…); c.Open(); SqlCommand cmd = new SqlCommand( @"SELECT c.Name, c.Phone FROM Customers c WHERE c.City = @p0"); cmd.Parameters.AddWithValue("@p0", "London“); DataReader dr = c.Execute(cmd); while (dr.Read()) { string name = dr.GetString(0); string phone = dr.GetString(1); DateTime date = dr.GetDateTime(2); } dr.Close(); Queries in quotes Loosely bound arguments Loosely typed result sets No compile time checks

5 What’s wrong with this

6 LINQ ( pronounced Link ): Language INtegrated Query

7 Language Integrated Query Simplified, object-oriented way to query Bridges OOP and relational data Compile-time checked queries Provides IntelliSense inside Visual Studio Unified syntax for querying any data source

8 Linq to SQL public class Customer { … } public class Northwind : DataContext { public Table Customers; … } Northwind db = new Northwind(…); var contacts = from c in db.Customers where c.City == "London" select new { c.Name, c.Phone }; Classes describe data Strongly typed connections Integrated query syntax Strongly typed results Tables are like collections

9 CAML(Collaborative Application MarkUp Language) SPWeb web; SPQueryquery = newSPQuery(); query.Query= String.Format(“ Shakir 16 ”) SPListItemCollectionl Coll= web.Lists[“Employee”].GetItems(query); Queries in quotes Loosely bound arguments No compile time checks

10 Demo

11 C# Enhancments for LINQ IEnumerable, IQueryable IEnumerable, IQueryable Automatic Properties Object and Collection Initializers Lambda Expressions Query Syntax Anonymous Types

12 IEnumerable, IQueryable IEnumerable, IQueryable Contained in System.Collections.Generic Implemented by the query provider Supports a simple iteration or a query against that type This is what allows LINQ to query

13 Automatic Properties Allows short-hand property declarations Compiler emits getters and setters Used in LINQ to surface properties public class Contact { public string FirstName { get; set; } public string LastName { get; set; } }

14 Object and Collection Initializers //Traditional approach Contact c= new Contact(); c.FirstName = “shakir"; c.LastName = “majeed"; //Object Initializer Contact c= new Contact{ FirstName=“shakir", LastName=“Majeed" }; //Collection Initializer List contacts = new List { Contact c= new Contact{ FirstName=“shakir", LastName=“majeed"}, Contact c= new Contact{ FirstName=“aamir", LastName=“majeed" }, Contact c= new Contact{ FirstName=“zakir", LastName=“majeed" }, };

15 Lambda Expressions Compact way to write anonymous functions // passing parameter using an anonymous delegate IEnumerable results = contacts.Where( delegate(Contact c) {return c.FirstName==“shakir”;} ); // equivalent code using a lambda expression IEnumerable results = contacts.Where( c => FirstName=="shakir" );

16 Query Syntax Offers a readable alternative to Method syntax IEnumerable results = contacts.Where( c=> FirstName=="shakir"); IEnumerable results = from c in contacts where c.FirstName.Equals("shakir");

17 Anonymous Types Allows developers to use variables without declaring the type. Still strongly typed, but inferred var results = from c in contacts where c.FirstName.Equals("Mike");

18 Demo

19 Thank You Facebook: http://www.facebook.com/shakir.majeedhttp://www.facebook.com/shakir.majeed Blog: http://junooni.wordpress.com/http://junooni.wordpress.com/ Email: shakir.majeed@gmail.comshakir.majeed@gmail.com


Download ppt "LinqToSharePoint SandBoxed Solution Shakir Majeed Khan"

Similar presentations


Ads by Google