Thursday, April 05, 2007 7:04 PM bart

The IQueryable tales - LINQ to LDAP - Part 0: Introduction

Here we are again for some cool LINQ stuff. In the past I've been blogging on C# 3.0 language innovation quite a lot, including the core features that enable LINQ in its cute and nice form:

These posts focused on how C# 3.0 provides new constructs on top of existing ones in order to make various things simpler. In case you didn't read these posts yet, do it right now :-).

As you probably know by now, LINQ consists of a few pieces. One is the integration of querying syntax in programming languages like C# 3.0 and VB 9.0. This is what the integrated portion stands for. At the other side, different APIs exist that provide us with a gateway to underlying data sources. Today five of these are delivered by Microsoft in the current CTPs:

  • LINQ-to-Objects - talks to in-memory objects (see my LINQSQO project; SQO stands for Standard Query Operators)
  • LINQ-to-SQL - talks to SQL Server databases
  • LINQ-to-XML - talks to hierarchical data represented in XML
  • LINQ-to-DataSets - talks to DataSet objects and underlying DataTables with their relationships
  • LINQ-to-Entities - talks to "entities", part of ADO.NET 3.0

There are a few differences between all of these however. Although the query syntax remains the same (it's integrated with the language after all and it has a "universal" character), the mechanisms that drive the functionality are different. For LINQ-to-Objects, the entire query expression is translated into IL at compile time by some mechanical procedure as outlined below:

List<Person> lstPersons = new List<Person>() { new Person { Name = "Bart", Age = 24 }, new Person { Name = "John", Age = 59 } }; var res = from person in lstPersons where person.Name == "Bart" select new { Name = person.Name.ToUpper() };

becomes

List<Person> lstPersons = new List<Person>() { new Person { Name = "Bart", Age = 24 }, new Person { Name = "John", Age = 59 } }; var res = lstPersons.Where(person => person.Name == "Bart").Select(person => new { Name = person.Name.ToUpper() });

where methods like Where and Select are extension methods to IEnumerable<T> that take a lambda expression as their parameter. The whole mechanism is driven by iterators behind the scenes.

However, LINQ query "providers" like LINQ-to-SQL and LINQ-to-XML work in a different way. Here we want to be able to translate the LINQ query to another domain specific query language (respectively SQL and XPath/XQuery) at runtime. In order to make this possible, the C# compiler doesn't generate IL code representing the query right away, but instead it spits out the code to create an in-memory representation of the query in the shape of an expression tree (see this link too). The compiler is told to do so when it encounters an IQueryable interface implementation used in a query expression.

In subsequent posts in this "The IQueryable tales - LINQ to LDAP" series, we'll talk about the creation of a query provider for LINQ that's capable of talking to Active Directory (and other LDAP data sources potentially) over LDAP. To set your mind, take a look at the concept of filtering expressions in LDAP on RFC 2254 and on TechNet (yes, an IT Pro resource on a developer's blog). As a little example to wet your appetite, take a look at a few queries below:

var users = new DirectoryObject<User>(new DirectoryEntry("LDAP://localhost"), SearchScope.Subtree); var groups = new DirectoryObject<Group>(new DirectoryEntry("LDAP://localhost"), SearchScope.Subtree); var res1 = from usr in users select usr; Console.WriteLine("QUERY 1\n======="); foreach (var w in res1) Console.WriteLine("{0}: {1} {2}", w.Name, w.Description, w.PasswordLastSet); Console.WriteLine(); var res2 = from usr in users where usr.Name == "A*" select usr; Console.WriteLine("QUERY 2\n======="); foreach (var w in res2) Console.WriteLine("{0}'s full name is {1}", w.Name, w.Dn); Console.WriteLine(); int n = 10; var res3 = from usr in users where usr.Name == GetQueryStartWith("A") && usr.LogonCount > n && usr.Description.Contains("Built-in") select new { usr.Name, usr.Description, usr.Groups, MaxLogonCount = n }; Console.WriteLine("QUERY 3\n======="); foreach (var w in res3) { Console.WriteLine("{0} has logged on {2} times or more and belongs to {1} groups:", w.Name, w.Groups.Length, w.MaxLogonCount); foreach (string group in w.Groups) Console.WriteLine("- {0}", group); } Console.WriteLine(); var res4 = from usr in users where (usr.Name.StartsWith("A") && usr.LogonCount > 2 * n) || usr.Name == "Guest" select new { usr.Name, usr.Description, usr.Dn, usr.PasswordLastSet, Stats = new { usr.PasswordLastSet, usr.LogonCount, TwiceLogonCount = usr.LogonCount * 2 } }; Console.WriteLine("QUERY 4\n======="); foreach (var w in res4) Console.WriteLine("{0} has been logged on {1} times; password last set on {2}", w.Name, w.Stats.TwiceLogonCount - w.Stats.LogonCount, w.PasswordLastSet); Console.WriteLine(); var res5 = from usr in users orderby usr.Name ascending //not supported in LDAP; alternative in-memory sort select usr; Console.WriteLine("QUERY 5\n======="); foreach (var w in res5) Console.WriteLine("{0}: {1}", w.Name, w.Description); Console.WriteLine(); var res6 = from grp in groups where grp.Name.EndsWith("ators") select new { grp.Name, MemberCount = grp.Members.Length }; Console.WriteLine("QUERY 6\n======="); foreach (var w in res6) Console.WriteLine("{0} has {1} members", w.Name, w.MemberCount); Console.WriteLine();

The result of the queries above looks like this on my test machine (including the corresponding LDAP queries that were created at runtime):

You'll be able to execute those against a live Active Directory domain controller or an ADAM instance pretty soon! This being said, you should be warned not to expect a feature complete query provider for LDAP but rather a hands-on demo implementation. In the meantime, get ready for subsequent posts in this series by installing the March 07 CTP of Orcas (if you haven't done yet).

Read on ... The IQueryable tales - LINQ to LDAP - Part 1: Key concepts

Del.icio.us | Digg It | Technorati | Blinklist | Furl | reddit | DotNetKicks

Filed under: ,

Comments

# The IQueryable tales - LINQ to LDAP - Part 1: Key concepts

Friday, April 06, 2007 8:14 AM by B# .NET Blog

Introduction Welcome to the first real part of our LINQ-to-LDAP series. So far, we've been discussing:

# The IQueryable tales - LINQ to LDAP - Part 2: Getting started with IQueryable<T>

Friday, April 06, 2007 5:45 PM by B# .NET Blog

Introduction Welcome back to the LINQ-to-LDAP series. So far, we've been discussing: Part 0: Introduction

# re: The IQueryable tales - LINQ to LDAP - Part 0: Introduction

Saturday, April 07, 2007 12:23 PM by Roger Jennings

# LINQ to LDAP - Implementation Details

Saturday, April 07, 2007 1:04 PM by ((Research + Development) - Sleep) > 24

Today, Sam Gentile noted a series of posts by Bart De Smet describing (in great detail) how LINQ queries

# The IQueryable tales - LINQ to LDAP - Part 3: Why do we need entities?

Saturday, April 07, 2007 6:31 PM by B# .NET Blog

Introduction Welcome back to the LINQ-to-LDAP series. So far, we've been discussing: Part 0: Introduction

# New "Orcas" Language Feature: Lambda Expressions

Sunday, April 08, 2007 4:22 PM by ScottGu's Blog

Last month I started a series of posts covering some of the new VB and C# language features that are

# New "Orcas" Language Feature: Lambda Expressions

Sunday, April 08, 2007 4:39 PM by BusinessRx Reading List

Last month I started a series of posts covering some of the new VB and C# language features that are

# New "Orcas" Language Feature: Lambda Expressions

Sunday, April 08, 2007 4:40 PM by ASP.NET

Last month I started a series of posts covering some of the new VB and C# language features that are

# New LINQ flavors: LINQ to Flickr, LINQ to NHibernate, LINQ to LDAP

Monday, April 09, 2007 2:18 PM by Linq in Action News

In the spirit of LINQ to Amazon now comes LINQ to Flickr . Mohammed Hossam El-Din ( Bashmohandes ) proposes

# New LINQ flavors: LINQ to Flickr, LINQ to NHibernate, LINQ to LDAP

Monday, April 09, 2007 2:18 PM by Fabrice's weblog

In the spirit of LINQ to Amazon now comes LINQ to Flickr . Mohammed Hossam El-Din ( Bashmohandes ) proposes

# 新Orcas语言特性:Lambda表达式

Monday, April 09, 2007 10:35 PM by shoutor

什么是Lambda表达式?Lambda表达式为编写匿名方法提供了更简明的函数式的句法,但结果却在编写LINQ查询表达式时变得极其有用,因为它们提供了一个非常紧凑的而且类安全的方式来编写可以当作参数来传递,在以后作运算的函数。

# 新Orcas语言特性:Lambda表达式

Monday, April 09, 2007 10:38 PM by shoutor

什么是Lambda表达式?Lambda表达式为编写匿名方法提供了更简明的函数式的句法,但结果却在编写LINQ查询表达式时变得极其有用,因为它们提供了一个非常紧凑的而且类安全的方式来编写可以当作参数来传递,在以后作运算的函数。

# The IQueryable tales - LINQ to LDAP - Part 4: Parsing and executing queries

Tuesday, April 10, 2007 3:15 PM by B# .NET Blog

Introduction Welcome back to the LINQ-to-LDAP series. So far, we've been discussing: Part 0: Introduction

# Nueva caracter??stica de "Orcas": Expresiones Lambda &laquo; Thinking in .NET

# The IQueryable tales - LINQ to LDAP - Part 5: Supporting updates

Tuesday, April 10, 2007 6:29 PM by B# .NET Blog

Introduction Welcome back to the LINQ-to-LDAP series. So far, we've been discussing: Part 0: Introduction

# Coming soon - The return of IQueryable<T> - LINQ to SharePoint

Friday, April 13, 2007 4:09 PM by B# .NET Blog

Earlier this week, "The IQueryable Tales" were published on my blog, with great success. This series

# Building Custom LINQ Enabled Data Providers using IQueryable<T>

Friday, April 20, 2007 6:16 AM by Tom's MSDN Belux Corner

Bart De Smet wrote a hands-on tutorial that explains quite in-depth how one can build a custom data provider

# LINQ to SharePoint

Thursday, April 26, 2007 2:52 PM by Claudio Brotto

Chi ha seguito " The IQueryable Tales " ? Sottotitolo: come scrivere un query provider per LINQ, e già

# Community Convergence XXVI

Sunday, May 06, 2007 6:42 PM by Charlie Calvert's Community Blog

The biggest news in the C# community is the official announcement of Silverlight at the MIX conference.

# New "Orcas" Language Feature: Lambda Expressions

Tuesday, May 08, 2007 1:22 AM by Tyrannosaurus Rex

Last month I started a series of posts covering some of the new VB and C# language features that are

# Linq Resources

Friday, May 11, 2007 11:29 AM by Joycode@Ab110.com

Sacha Barber 在CodeProject上的Linq文章(介绍了DLinq和Xlinq,并且一个Linq to Flickr/WPF的实现): Part I , II and III 。 Linq

# Community Convergence XXVII

Sunday, May 13, 2007 11:13 PM by Charlie Calvert's Community Blog

Welcome to the 27th Community Convergence. I use this column to keep you informed of events in the C#

# Creating A LINQ Query Provider &laquo; The Wandering Glitch 2

Pingback from  Creating A LINQ Query Provider &laquo; The Wandering Glitch 2

# United States of .NET &raquo; Blog Archive &raquo; LINQ

Thursday, June 07, 2007 6:23 AM by United States of .NET » Blog Archive » LINQ

Pingback from  United States of .NET  &raquo; Blog Archive   &raquo; LINQ

# LINQ to Everything

Friday, June 08, 2007 3:33 AM by Віктор Шатохін [MSFT]

Во вторник рассказывал о новых возможностях платформы .Net и в том числе как LINQ повлиял на эти возможности.

# LINQ and Dynamic Queries

Friday, June 15, 2007 11:43 AM by Mike Taulty's Blog

After quite a few LINQ talks, people have asked me about dynamic queries and I always feel a bit of a...

# 新Orcas语言特性:Lambda表达式。

Sunday, June 24, 2007 9:38 AM by 勤勤同学

随VS 2005发布的C#2.0引进了匿名方法的概念,允许在预期代理(delegate)值的地方用“行内(in-line)”代码块(code blocks)来做替代。

# How to implement IQueryable

Monday, July 09, 2007 7:04 PM by Kevin's VB Adventures

In the Orcas timeframe, Microsoft will be supplying a couple of specialized flavors of Linq to address

# How to implement IQueryable (Part 1)

Monday, July 09, 2007 7:48 PM by Noticias externas

In the Orcas timeframe, Microsoft will be supplying a couple of specialized flavors of Linq to address

# The IQueryable tales - LINQ to LDAP - Part 5: Supporting updates

Friday, July 27, 2007 5:42 AM by B# .NET Blog

Introduction Welcome back to the LINQ-to-LDAP series. So far, we&#39;ve been discussing: Part 0: Introduction

# How-To: Create your own provider

Thursday, August 02, 2007 3:12 PM by Roller

Links to articles detailing how to create IQueryable providers: Matt Warren: blogs.msdn.com/.../linq-building-an-iqueryable-provider-part-i.aspx

# Rolling your own LINQ Provider

Wednesday, August 08, 2007 9:38 AM by Darth Bundy

I recently spend a few (many) hours doing some research into the workings of LINQ providers for an internal

# Por fin, cómo hacer un proveedor LINQ basado en IQueryable

Thursday, August 09, 2007 1:11 PM by Sobre C#, LINQ y algo más...

Después de que muchos (un servidor incluido) se hayan roto literalmente la cabeza durante meses investigando

# 10 Links Today (2007-08-28)

Tuesday, August 28, 2007 8:20 AM by 10 Links Today (2007-08-28)

Pingback from  10 Links Today (2007-08-28)

# 如何创建自己的Linq provider (实现IQueryable)(翻译)

Thursday, October 18, 2007 2:03 AM by 李小刀

# LINQ to いろいろ

Tuesday, October 30, 2007 7:50 PM by かるあ のメモ

LINQ to Fliker の記事を見てから Web で検索したら結構出てきた。 Third-Party LINQ Providers (OakLeaf Systems) Community Convergence XXVII(Charlie Calvert's Community Blog) ColePlex で LINQ を検索した結果 を見てみるとこんなものが現在開発中のようですね。

# LINQ to Active Directory (formerly known as LINQ to LDAP) is here

Sunday, November 25, 2007 11:23 PM by B# .NET Blog

Within a few seconds from now I&#39;ll hit the &quot;Publish This Project&quot; button in CodePlex. Back

# LINQ to Active Directory (formerly known as LINQ to LDAP) is here

Sunday, November 25, 2007 11:23 PM by Elan Hasson's Favorite Blogs

Within a few seconds from now I&#39;ll hit the &quot;Publish This Project&quot; button in CodePlex. Back

# Lambda Expressions

Tuesday, December 11, 2007 9:42 PM by Gyun's Blog

Lambda Expressions

# LINQ to Active Directory (formerly known as LINQ to LDAP) is here

Friday, December 21, 2007 7:44 AM by Developer Blogs

Within a few seconds from now I&#39;ll hit the &quot;Publish This Project&quot; button in CodePlex. Back

# TerraServer Sample: A LINQ Provider

Sunday, January 06, 2008 5:34 PM by Charlie Calvert's Community Blog

Over the holidays Alex Turner, Mary Deyo and I added a new sample to the downloadable version of the

# TerraServer Sample: A LINQ Provider

Sunday, January 06, 2008 6:33 PM by Noticias externas

Over the holidays Alex Turner, Mary Deyo and I added a new sample to the downloadable version of the

# LINQ to Active Directory

Saturday, January 19, 2008 3:17 PM by Henry Cordes

LINQ to Active Directory

# .NET3.5?????????,Lambda????????? | Richie's Blog

Monday, January 21, 2008 8:57 PM by .NET3.5?????????,Lambda????????? | Richie's Blog

Pingback from  .NET3.5?????????,Lambda????????? | Richie's Blog

# TerraServer Sample: A LINQ Provider

Monday, January 28, 2008 9:15 PM by eScience @ Microsoft

Ran across this post on Charlie Calvert's Community Blog using TerraServer's Web Services with LINQ...why

# TerraServer Sample: A LINQ Provider

Monday, January 28, 2008 9:15 PM by Dan on eScience & Technical Computing @ Microsoft

Ran across this post on Charlie Calvert's Community Blog using TerraServer's Web Services with LINQ...why

# Ale?? ??turala | Blog &raquo; Blog Archive &raquo; LINQ

Saturday, February 09, 2008 3:23 AM by Ale?? ??turala | Blog » Blog Archive » LINQ

Pingback from  Ale?? ??turala | Blog  &raquo; Blog Archive   &raquo; LINQ

# Jb Evain: An elegant LINQ to db4o provider, and a few LINQ tricks

Monday, February 11, 2008 5:24 PM by 工程師的雞排攤

Last year, when I was working at db4objects on db4o , I insisted on the need for db4o to act as a LINQ

# [转贴].NET3.5新特性,Lambda表达式

Wednesday, February 13, 2008 5:02 AM by 菩提树下的杨过

【原文地址】New

# Links to LINQ

Thursday, February 28, 2008 11:27 AM by Charlie Calvert's Community Blog

Here are some useful links to LINQ information. Use the comments or write me if you want to add to this

# Link to Everything: A List of LINQ Providers

Thursday, February 28, 2008 11:47 AM by Charlie Calvert's Community Blog

I've recently updated the list of LINQ Providers found on my Links to LINQ page, accessible from the

# Link to Everything: A List of LINQ Providers

Thursday, February 28, 2008 12:26 PM by Noticias externas

I&#39;ve recently updated the list of LINQ Providers found on my Links to LINQ page, accessible from

# 万般皆LINQ

Saturday, March 01, 2008 4:36 AM by TerryLee

微软在.NET3.5中推出了LINQ,现在各种LINQProvider满天飞,刚才在老外站点上看到了一份LINQProvider列表,近30多个:LINQtoAmazonLINQto...

# 万般皆LINQ

Saturday, March 01, 2008 4:39 AM by TerryLee

# Extensibilidad de LINQ: LINQ Flavours!

Sunday, March 02, 2008 3:55 AM by Blog del CIIN

Como sabéis, una de las grandes novedades de Visual Studio 2008 y de .NET Framework 3.5 es el Language

# Extensibilidad de LINQ: LINQ Flavours! &laquo; Pasi??n por la tecnolog??a&#8230;

Pingback from  Extensibilidad de LINQ: LINQ Flavours! &laquo; Pasi??n por la tecnolog??a&#8230;

# Hecgo.com &raquo; Linq to ... everything: A List of LINQ Providers

Pingback from  Hecgo.com  &raquo; Linq to ... everything: A List of LINQ Providers

# Learning LINQ - No excuses

Thursday, March 13, 2008 6:59 AM by Shawn Cicoria - CedarLogic

There are really a whole bunch of great resources out there that help the community get up &amp; running

# Learning LINQ - No excuses

Thursday, March 13, 2008 7:03 AM by Shawn Cicoria

There are really a whole bunch of great resources out there that help the community get up &amp; running

# Learning LINQ - No excuses

Thursday, March 13, 2008 7:28 AM by Noticias externas

There are really a whole bunch of great resources out there that help the community get up &amp; running

# LINQ To ...

Wednesday, March 19, 2008 12:06 AM by Hilton Giesenow's Jumbled Mind

I mentioned in a post a little while ago about the various LINQ To projects I had seen, but Charlie Calvert

# Jacques Snyman &raquo; LINQ To &#8230;

Wednesday, March 19, 2008 3:02 AM by Jacques Snyman » LINQ To …

Pingback from  Jacques Snyman &raquo; LINQ To &#8230;

# Providers para Linq

Saturday, March 22, 2008 7:47 AM by Carlos Fernando Paleo da Rocha
SBS MVP in Brazil

LINQ Providers LINQ to Amazon LINQ to Active Directory LINQ over C# project LINQ to CRM LINQ To Geo

# Providers para Linq

Saturday, March 22, 2008 8:16 AM by Tecnologias

LINQ Providers LINQ to Amazon LINQ to Active Directory LINQ over C# project LINQ to CRM LINQ To Geo

# http://community.bartdesmet.net/blogs/bart/archive/2007/04/05/the-iqueryable-tales-linq-to-ldap-part-0.aspx

# Linq to everything

Tuesday, April 08, 2008 3:48 PM by Gerry Heidenreich

Linq to everything

# LINQ to [AnyWhere]

Thursday, April 10, 2008 3:33 AM by web-crossing Blog

LINQ to [AnyWhere]

# LINQ to [AnyWhere]

Tuesday, April 22, 2008 2:08 PM by web-crossing Blog

LINQ to [AnyWhere]

# Different Flavors Of LINQ | One .Net Way

Thursday, August 14, 2008 4:46 AM by Different Flavors Of LINQ | One .Net Way

Pingback from  Different Flavors Of LINQ | One .Net Way

# Book Links

Tuesday, August 19, 2008 10:25 AM by Programming Linq Book Log

# LINQ to ...

Tuesday, November 11, 2008 10:57 AM by Alex Krakovetskiy's blog

Офіційні: LINQ to SQL (DLINQ) LINQ to XML (XLINQ) LINQ to XSD LINQ to Entities BLINQ PLINQ Неофіційні

# LINQ to ...

Офіційні: LINQ to SQL (DLINQ) LINQ to XML (XLINQ) LINQ to XSD LINQ to Entities BLINQ PLINQ Неофіційні

# A List of LINQ Providers &laquo; vincenthome&#8217;s Tech Clips

Saturday, November 29, 2008 9:27 AM by A List of LINQ Providers « vincenthome’s Tech Clips

Pingback from  A List of LINQ Providers &laquo; vincenthome&#8217;s Tech Clips

# LINQ-To-Everywhere – List of LINQ Providers

Monday, April 27, 2009 2:23 AM by knom's developer corner

This weekend I’ve built a small application, which queries the “Simpsons” seasons guide data and updates

# Tune Up Your PC &raquo; Post Topic &raquo; LINQ-To-Everywhere ??? List of LINQ Providers

Pingback from  Tune Up Your PC  &raquo; Post Topic   &raquo; LINQ-To-Everywhere ??? List of LINQ Providers

# 万般皆LINQ

Wednesday, November 25, 2009 8:54 PM by 周骏

摘要:微软在.NET3.5中推出了LINQ,现在各种LINQProvider满天飞,TerryLee在老外站点上收集了一份LINQProvider列表 微软在.NET3.5中推出了L...

# ???Orcas???????????????Lambda????????? | A18??????

Monday, December 28, 2009 4:56 PM by ???Orcas???????????????Lambda????????? | A18??????

Pingback from  ???Orcas???????????????Lambda?????????  | A18??????

# ???Orcas???????????????Lambda????????? - Java??????

Thursday, September 02, 2010 6:43 AM by ???Orcas???????????????Lambda????????? - Java??????

Pingback from  ???Orcas???????????????Lambda????????? - Java??????

# Notification

Thursday, September 16, 2010 3:32 PM by Notification

Pingback from  Notification

# LINQ Expressions fun | Cirrus Minor

Tuesday, November 02, 2010 3:04 AM by LINQ Expressions fun | Cirrus Minor

Pingback from  LINQ Expressions fun | Cirrus Minor

# LINQ Tutorial, LINQ Overview, LINQ Interview Questions | The Opening Batsman

Pingback from  LINQ Tutorial, LINQ Overview, LINQ Interview Questions | The Opening Batsman

# Morning Coffee 115 &#8211; DevHawk

Sunday, April 17, 2011 3:52 PM by Morning Coffee 115 – DevHawk

Pingback from  Morning Coffee 115 &#8211; DevHawk

# ?????????? LINQ-???????? ??????: LINQ ???????? ?? | alisite

Wednesday, February 01, 2012 10:13 AM by ?????????? LINQ-???????? ??????: LINQ ???????? ?? | alisite

Pingback from  ?????????? LINQ-???????? ??????: LINQ ???????? ??  |  alisite

# ?????????? ?????????????? LINQ | alisite

Wednesday, February 01, 2012 1:26 PM by ?????????? ?????????????? LINQ | alisite

Pingback from  ?????????? ?????????????? LINQ  |  alisite

# LINQ to X | BrunoRodrigues.info

Wednesday, June 27, 2012 8:03 PM by LINQ to X | BrunoRodrigues.info

Pingback from  LINQ to X | BrunoRodrigues.info

# LINQ : تکنولوژی Linq چیست؟&nbsp;|&nbsp;آموزش حرفه ای برنامه نویسی &#8211; Prolearn-vs

Pingback from  LINQ : تکنولوژی Linq چیست؟&nbsp;|&nbsp;آموزش حرفه ای برنامه نویسی &#8211; Prolearn-vs

# Dlinq ldap | Zukonline

Sunday, March 10, 2013 6:36 AM by Dlinq ldap | Zukonline

Pingback from  Dlinq ldap | Zukonline

# ???????? ?????????? ???????????????? linq | ???????????? ???????? ?????????? ???????????????? linq | ?????? ?????? ???????????? ???? ???????? ???????????????? | ?????????????????? | ???????? ?????????? ???????????? ???????? | ???????? ?????????? ???????? ?

Pingback from  ???????? ?????????? ???????????????? linq | ???????????? ???????? ?????????? ???????????????? linq | ?????? ?????? ???????????? ???? ???????? ???????????????? | ?????????????????? | ???????? ?????????? ???????????? ???????? | ???????? ?????????? ???????? ???????????? ???????? ???? | ???????? ???????? ?????????? ?????????? | ???????????? ???????? ???????????? | ?????????? ???????????? ??????????, ?????????? ?????? ???? ???????? ???? ?????????????? ???? ????????,llinq, ?????????? ???????????????? ???? ???????? ???? ?????????????? ???? linq | ???????? ?????????? ??????????|???????? ?????????? ???????????? ??????????|???????????? ???????? ????????????|?????? ??????????|???????????? ??????????????????

# LINQ to SharePoint | Claudio Brotto

Thursday, August 29, 2013 9:02 AM by LINQ to SharePoint | Claudio Brotto

Pingback from  LINQ to SharePoint | Claudio Brotto