Calendrier

Décembre 2009
L M M J V S D
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
<< < > >>

Présentation

Recherche

W3C

  • Flux RSS des articles

.NET 3.0 et 3.5

XML to Schema Tool for Visual Basic 2008

"If you are working with LINQ to XML in Visual Basic 9, this utility may significantly improve your editing experience by adding XML schemas (.xsd files) to your project that then provides IntelliSense for XML properties. The tool can also be used as a way to create an XML schema set from a set of existing XML documents"

http://msdn2.microsoft.com/en-us/vbasic/bb840042.aspx
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander

Visual Studio 2008 videos,white papers,..

- Videos :Get up to speed on Visual Studio 2008 (Quick clips and training videos)

http://msdn2.microsoft.com/en-us/vstudio/bb655906.aspx


- White paper :An Overview of Microsoft Visual Studio 2008 White Paper(docx,pdf,xps)
http://www.microsoft.com/downloads/details.aspx?FamilyId=17319EB4-299C-43B8-A360-A1C2BD6A421B&displaylang=en

- un article Linq sur le blog de Noah Coah (il y a pas mal de liens qui peuvent etre interessants)
http://blogs.msdn.com/noahc/archive/2007/09/10/a-little-linq.aspx

Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
101 LINQ Samples VB

Exemples pour :
- Linq To Objects
- Linq To SQL
- Linq To DataSet
- Linq To XML


vivement que la même chose soit disponible pour C# !! :p

http://msdn2.microsoft.com/en-us/vbasic/bb688088.aspx
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
Rappel des liens Expression - wpfe - Silverlight

http://blogs.msdn.com/mithund/archive/2007/09/05/it-s-here-now.aspx
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander

LINQPad beta

"LINQ query expression tool that you can use to quickly try out LINQ expressions.
You can think of LINQPad as SQL Query Analyzer, but with LINQ expressions as the queries."
http://sharptoolbox.com/tools/linqpad

Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander

Beth Massi - 3 videos "How do i"  Linq To SQL et Linq To DataSet (VB.NET)

http://blogs.msdn.com/bethmassi/archive/2007/08/20/more-linq-how-do-i-videos-just-released.aspx

Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
Par Romagny13
Ecrire un commentaire - Voir les 1 commentaires - Recommander
new Hands-on Labs and Samples Available for Visual Studio 2008 Beta 2

http://blogs.msdn.com/charlie/archive/2007/07/26/visual-studio-2008-beta-2-released.aspx
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
Jongler entre Linq To SQL et Linq To Objects
Linq-.jpg


Les interfaces pour Linq To SQL
   public interface IQueryable : IEnumerable
    {
        // Properties
        Type ElementType { get; }
        Expression Expression { get; }
        IQueryProvider Provider { get; }
    }
    public interface IQueryable<T> : IEnumerable<T>, IQueryable, IEnumerable
    {
    }
    public interface IOrderedQueryable : IQueryable, IEnumerable
    {
    }
   public interface IOrderedQueryable<T> : IQueryable<T>, IEnumerable<T>, IOrderedQueryable, IQueryable, IEnumerable
    {
    }
 
Les interfaces pour Linq To Objects
    public interface IEnumerable
    {
        IEnumerator GetEnumerator();
    }
    public interface IEnumerable<T> : IEnumerable
    {
        // Methods
        IEnumerator<T> GetEnumerator();
    }
public interface IOrderedEnumerable<TElement> : IEnumerable<TElement>, IEnumerable
    {
        // Methods
        IOrderedEnumerable<TElement> CreateOrderedEnumerable<TKey>(Func<TElement, TKey> keySelector, IComparer<TKey> comparer, bool descending);
    }
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
Toutes les méthodes d’extensions pour Linq To Objects et Linq To SQL
public static class Enumerable
    {
        // Methods
        public static TSource Aggregate<TSource>(this IEnumerable<TSource> source, Func<TSource, TSource, TSource> func);
        public static TAccumulate Aggregate<TSource, TAccumulate>(this IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func);
        public static TResult Aggregate<TSource, TAccumulate, TResult>(this IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func, Func<TAccumulate, TResult> resultSelector);
        public static bool All<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static bool Any<TSource>(this IEnumerable<TSource> source);
        public static bool Any<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static IEnumerable<TSource> AsEnumerable<TSource>(this IEnumerable<TSource> source);
        public static decimal Average(this IEnumerable<decimal> source);
        public static decimal? Average(this IEnumerable<decimal?> source);
        public static double? Average(this IEnumerable<double?> source);
        public static double? Average(this IEnumerable<int?> source);
        public static double? Average(this IEnumerable<long?> source);
        public static float? Average(this IEnumerable<float?> source);
        public static double Average(this IEnumerable<double> source);
        public static double Average(this IEnumerable<int> source);
        public static double Average(this IEnumerable<long> source);
        public static float Average(this IEnumerable<float> source);
        public static decimal Average<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector);
        public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector);
        public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
        public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector);
        public static decimal? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector);
        public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector);
        public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector);
        public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector);
        public static float? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector);
        public static float Average<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
        public static IEnumerable<TResult> Cast<TResult>(this IEnumerable source);
        private static IEnumerable<TResult> CastIterator<TResult>(IEnumerable source);
        public static IEnumerable<TSource> Concat<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
        private static IEnumerable<TSource> ConcatIterator<TSource>(IEnumerable<TSource> first, IEnumerable<TSource> second);
        public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value);
        public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value, IEqualityComparer<TSource> comparer);
        public static int Count<TSource>(this IEnumerable<TSource> source);
        public static int Count<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static IEnumerable<TSource> DefaultIfEmpty<TSource>(this IEnumerable<TSource> source);
        public static IEnumerable<TSource> DefaultIfEmpty<TSource>(this IEnumerable<TSource> source, TSource defaultValue);
        private static IEnumerable<TSource> DefaultIfEmptyIterator<TSource>(IEnumerable<TSource> source, TSource defaultValue);
        public static IEnumerable<TSource> Distinct<TSource>(this IEnumerable<TSource> source);
        public static IEnumerable<TSource> Distinct<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource> comparer);
        private static IEnumerable<TSource> DistinctIterator<TSource>(IEnumerable<TSource> source, IEqualityComparer<TSource> comparer);
        public static TSource ElementAt<TSource>(this IEnumerable<TSource> source, int index);
        public static TSource ElementAtOrDefault<TSource>(this IEnumerable<TSource> source, int index);
        public static IEnumerable<TResult> Empty<TResult>();
        public static IEnumerable<TSource> Except<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
        public static IEnumerable<TSource> Except<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);
        private static IEnumerable<TSource> ExceptIterator<TSource>(IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);
        public static TSource First<TSource>(this IEnumerable<TSource> source);
        public static TSource First<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source);
        public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector);
        public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer);
        public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector);
        public static IEnumerable<TResult> GroupBy<TSource, TKey, TResult>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TKey, IEnumerable<TSource>, TResult> resultSelector);
        public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer);
        public static IEnumerable<TResult> GroupBy<TSource, TKey, TElement, TResult>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<TKey, IEnumerable<TElement>, TResult> resultSelector);
        public static IEnumerable<TResult> GroupBy<TSource, TKey, TResult>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TKey, IEnumerable<TSource>, TResult> resultSelector, IEqualityComparer<TKey> comparer);
        public static IEnumerable<TResult> GroupBy<TSource, TKey, TElement, TResult>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<TKey, IEnumerable<TElement>, TResult> resultSelector, IEqualityComparer<TKey> comparer);
        public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, IEnumerable<TInner>, TResult> resultSelector);
        public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, IEnumerable<TInner>, TResult> resultSelector, IEqualityComparer<TKey> comparer);
        private static IEnumerable<TResult> GroupJoinIterator<TOuter, TInner, TKey, TResult>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, IEnumerable<TInner>, TResult> resultSelector, IEqualityComparer<TKey> comparer);
        public static IEnumerable<TSource> Intersect<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
        public static IEnumerable<TSource> Intersect<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);
        private static IEnumerable<TSource> IntersectIterator<TSource>(IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);
        public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector);
        public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey> comparer);
        private static IEnumerable<TResult> JoinIterator<TOuter, TInner, TKey, TResult>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey> comparer);
        public static TSource Last<TSource>(this IEnumerable<TSource> source);
        public static TSource Last<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static TSource LastOrDefault<TSource>(this IEnumerable<TSource> source);
        public static TSource LastOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static long LongCount<TSource>(this IEnumerable<TSource> source);
        public static long LongCount<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static decimal Max(this IEnumerable<decimal> source);
        public static double? Max(this IEnumerable<double?> source);
        public static double Max(this IEnumerable<double> source);
        public static int? Max(this IEnumerable<int?> source);
        public static long? Max(this IEnumerable<long?> source);
        public static int Max(this IEnumerable<int> source);
        public static decimal? Max(this IEnumerable<decimal?> source);
        public static TSource Max<TSource>(this IEnumerable<TSource> source);
        public static long Max(this IEnumerable<long> source);
        public static float? Max(this IEnumerable<float?> source);
        public static float Max(this IEnumerable<float> source);
        public static decimal Max<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector);
        public static double Max<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector);
        public static decimal? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector);
        public static double? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector);
        public static int Max<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
        public static TResult Max<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);
        public static int? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector);
        public static long? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector);
        public static long Max<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector);
        public static float? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector);
        public static float Max<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
        public static decimal Min(this IEnumerable<decimal> source);
        public static double Min(this IEnumerable<double> source);
        public static decimal? Min(this IEnumerable<decimal?> source);
        public static double? Min(this IEnumerable<double?> source);
        public static TSource Min<TSource>(this IEnumerable<TSource> source);
        public static int? Min(this IEnumerable<int?> source);
        public static long? Min(this IEnumerable<long?> source);
        public static float? Min(this IEnumerable<float?> source);
        public static int Min(this IEnumerable<int> source);
        public static long Min(this IEnumerable<long> source);
        public static float Min(this IEnumerable<float> source);
        public static decimal Min<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector);
        public static double Min<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector);
        public static long? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector);
        public static int Min<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
        public static double? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector);
        public static float? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector);
        public static long Min<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector);
        public static decimal? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector);
        public static int? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector);
        public static float Min<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
        public static TResult Min<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);
        public static IEnumerable<TResult> OfType<TResult>(this IEnumerable source);
        private static IEnumerable<TResult> OfTypeIterator<TResult>(IEnumerable source);
        public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector);
        public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IComparer<TKey> comparer);
        public static IOrderedEnumerable<TSource> OrderByDescending<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector);
        public static IOrderedEnumerable<TSource> OrderByDescending<TSource, TKey>(this IEnumerable<TSource> source,
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
 
        public static IEnumerable<int> Range(int start, int count);
        private static IEnumerable<int> RangeIterator(int start, int count);
        public static IEnumerable<TResult> Repeat<TResult>(TResult element, int count);
        private static IEnumerable<TResult> RepeatIterator<TResult>(TResult element, int count);
        public static IEnumerable<TSource> Reverse<TSource>(this IEnumerable<TSource> source);
        private static IEnumerable<TSource> ReverseIterator<TSource>(IEnumerable<TSource> source);
        public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);
        public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, int, TResult> selector);
        private static IEnumerable<TResult> SelectIterator<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, TResult> selector);
        private static IEnumerable<TResult> SelectIterator<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, int, TResult> selector);
        public static IEnumerable<TResult> SelectMany<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, IEnumerable<TResult>> selector);
        public static IEnumerable<TResult> SelectMany<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, int, IEnumerable<TResult>> selector);
        public static IEnumerable<TResult> SelectMany<TSource, TCollection, TResult>(this IEnumerable<TSource> source, Func<TSource, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector);
        public static IEnumerable<TResult> SelectMany<TSource, TCollection, TResult>(this IEnumerable<TSource> source, Func<TSource, int, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector);
        private static IEnumerable<TResult> SelectManyIterator<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, IEnumerable<TResult>> selector);
        private static IEnumerable<TResult> SelectManyIterator<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, int, IEnumerable<TResult>> selector);
        private static IEnumerable<TResult> SelectManyIterator<TSource, TCollection, TResult>(IEnumerable<TSource> source, Func<TSource, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector);
        private static IEnumerable<TResult> SelectManyIterator<TSource, TCollection, TResult>(IEnumerable<TSource> source, Func<TSource, int, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector);
        public static bool SequenceEqual<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
        public static bool SequenceEqual<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);
        public static TSource Single<TSource>(this IEnumerable<TSource> source);
        public static TSource Single<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static TSource SingleOrDefault<TSource>(this IEnumerable<TSource> source);
        public static TSource SingleOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static IEnumerable<TSource> Skip<TSource>(this IEnumerable<TSource> source, int count);
        private static IEnumerable<TSource> SkipIterator<TSource>(IEnumerable<TSource> source, int count);
        public static IEnumerable<TSource> SkipWhile<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static IEnumerable<TSource> SkipWhile<TSource>(this IEnumerable<TSource> source, Func<TSource, int, bool> predicate);
        private static IEnumerable<TSource> SkipWhileIterator<TSource>(IEnumerable<TSource> source, Func<TSource, bool> predicate);
        private static IEnumerable<TSource> SkipWhileIterator<TSource>(IEnumerable<TSource> source, Func<TSource, int, bool> predicate);
        public static double Sum(this IEnumerable<double> source);
        public static decimal? Sum(this IEnumerable<decimal?> source);
        public static decimal Sum(this IEnumerable<decimal> source);
        public static int Sum(this IEnumerable<int> source);
        public static long Sum(this IEnumerable<long> source);
        public static double? Sum(this IEnumerable<double?> source);
        public static int? Sum(this IEnumerable<int?> source);
        public static long? Sum(this IEnumerable<long?> source);
        public static float? Sum(this IEnumerable<float?> source);
        public static float Sum(this IEnumerable<float> source);
        public static decimal? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector);
        public static double? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector);
        public static decimal Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector);
        public static int? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector);
        public static double Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector);
        public static int Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
        public static long Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector);
        public static long? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector);
        public static float? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector);
        public static float Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
        public static IEnumerable<TSource> Take<TSource>(this IEnumerable<TSource> source, int count);
        private static IEnumerable<TSource> TakeIterator<TSource>(IEnumerable<TSource> source, int count);
        public static IEnumerable<TSource> TakeWhile<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static IEnumerable<TSource> TakeWhile<TSource>(this IEnumerable<TSource> source, Func<TSource, int, bool> predicate);
        private static IEnumerable<TSource> TakeWhileIterator<TSource>(IEnumerable<TSource> source, Func<TSource, bool> predicate);
        private static IEnumerable<TSource> TakeWhileIterator<TSource>(IEnumerable<TSource> source, Func<TSource, int, bool> predicate);
        public static IOrderedEnumerable<TSource> ThenBy<TSource, TKey>(this IOrderedEnumerable<TSource> source, Func<TSource, TKey> keySelector);
        public static IOrderedEnumerable<TSource> ThenBy<TSource, TKey>(this IOrderedEnumerable<TSource> source, Func<TSource, TKey> keySelector, IComparer<TKey> comparer);
        public static IOrderedEnumerable<TSource> ThenByDescending<TSource, TKey>(this IOrderedEnumerable<TSource> source, Func<TSource, TKey> keySelector);
        public static IOrderedEnumerable<TSource> ThenByDescending<TSource, TKey>(this IOrderedEnumerable<TSource> source, Func<TSource, TKey> keySelector, IComparer<TKey> comparer);
        public static TSource[] ToArray<TSource>(this IEnumerable<TSource> source);
        public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector);
        public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer);
        public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector);
        public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer);
        public static List<TSource> ToList<TSource>(this IEnumerable<TSource> source);
        public static ILookup<TKey, TSource> ToLookup<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector);
        public static ILookup<TKey, TSource> ToLookup<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer);
        public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector);
        public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer);
        public static IEnumerable<TSource> Union<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
        public static IEnumerable<TSource> Union<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);
        private static IEnumerable<TSource> UnionIterator<TSource>(IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);
        public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
        public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, int, bool> predicate);
        private static IEnumerable<TSource> WhereIterator<TSource>(IEnumerable<TSource> source, Func<TSource, bool> predicate);
        private static IEnumerable<TSource> WhereIterator<TSource>(IEnumerable<TSource> source, Func<TSource, int, bool> predicate);
 
    }
 

  http://msdn2.microsoft.com/en-us/library/system.linq.enumerable_members(VS.90).aspx

System.linq.Queryable
http://msdn2.microsoft.com/en-us/library/system.linq.queryable_members(VS.90).aspx
System.linq.Expressions.Expression
http://msdn2.microsoft.com/en-us/library/system.linq.expressions.expression_members(VS.90).aspx

Passer d’un IQueryable à un IEnumerable

Pour éviter qu’une requête Linq To SQL ne soit exécutée depuis l’interface il suffit des retourner un IEnumerable,ainsi la requete sera  executée en Linq To Objects
Exemple :
Couche DAL
    public class ContactDAO
    {   
        public static IQueryable<Contact> GetContacts()
        {
            ContactDataContext contactDataContext = new ContactDataContext("Data Source=.;Initial Catalog=ContactDB;Integrated Security=SSPI;");
            return contactDataContext.Contacts;
        }
    }
 
Couche BusinessObjects
        public IEnumerable<Contact> GetContacts()
        {
            return ContactDAO.GetContacts();
        }
 
Couche Gui
 IEnumerable<Contact> Contacts;
 
        private void button1_Click(object sender, EventArgs e)
        {
            BLL bLL = new BLL();
            // 1 requete Linq To SQL
            Contacts = bLL.GetContacts().ToList();
 
            // 2 requete Linq To Objects(filtre et tri sur la couche businessObjects)
            // si j'avais retourné un IQueryable depuis la couche BusinessObjects
            // la requete aurait été du Linq To SQL
            var Query =
                from c in Contacts
                where c.Contactname.StartsWith("B")
                orderby c.Contactname
                select c;
      
            dataGridView1.DataSource = Query.ToList();
        }
  
les méthodes  AsEnumerable() AsQueryable() permettent également de passer de l'un à l'autre 
exemple (dans le cas ou Contacts serait un IQueryable) :

 

IEnumerable<Contact> q = Contacts.AsEnumerable<Contact>();
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander

Visual Studio 2008 Beta 2 disponible

images disc,VPC et versions Express

Visual Studio 2008
http://msdn2.microsoft.com/en-us/vstudio/default.aspx

Visual Studio 2008 Library
http://msdn2.microsoft.com/en-us/library/bb409849(vs.90).aspx

specifications
http://msdn2.microsoft.com/fr-fr/vstudio/aa948851.aspx

Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
DynamicExpression – un projet du package d’exemples de Orcas - mieux comprendre "la mécanique" de Linq et des expressions

Dans les exemples fournis pour Orcas sur le site MSDN
Il y a un projet assez interessant(tous le sont :p)
DynamicExpression il permet de mieux comprendre la « mécanique » de Linq pour la création d’expressions (Lambda entre autres) , enfin à condition bien sur de regarder dans le code
 
Exemple :
var query =
    db.Customers.
    Where("City = @0 and Orders.Count >= @1", "London", 10).
    OrderBy("CompanyName").
    Select("new(CompanyName as Name, Phone)");
 
 
Autre exemple  avec paramètre :
Je sélectionne tous les contacts dont l’age est supérieur à 20
var Query =
                oContactDataContext.Contacts.Where("ContactAge > @0", 20)
                .OrderBy("ContactName");
 
En fait chaque  « clause » (Whrere,OrderBy,Select,etc. est parsée afin de générer l’expression lambda correspondante), interessant même presque trop on se rend compte comment l’ensemble marche, pour moi il y a beaucoup trop de reflexion d’utilisée
 


Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
 
[C# 3] - Mon début de créations d’expressions permettant de faire du MOR (mapping objet relationnnel)
 
Bon c’est un début mais il y a quand même quelques bases J
Je crées 2 méthodes d’extensions :
-          Une GetList<T>() simple retournnant l’ensemble des lignes de la table correspondant à la classe passée
-          Une GetList<T>() permettant de faire un filtre par l’intermediaire d’une classe nommée « stringPredicate » (peut etre certains voient de quelle classe je parle ;) s’ils ont téléchargés quelques unes des sources que j’ai posté sur Codeplex ou CodeS-SourceS)
Bon on est d’accord le code et la structuration est vraiment à améliorer mais l’idée est la
On peut tout à fait imaginer avoir des attributs personnalisés pour faire le mapping entre le nom des champs des tables et des properties des classes
En 1 > je construis la requete SQL
En 2 > j’execute la requete (ici avec un DbDataReader)
En 3> je rempli petit à petit la liste generic à renvoyer avec les données reçues par le DbDataReader
   public static class MORExpression
    {
        private static string _SQLQuery;
 
        public static string SQLQuery
        {
            get { return _SQLQuery; }
            set { _SQLQuery = value; }
        }
      
        public static List<T> GetList<T>(this IEnumerable<T> source)
        {
            int nPosition = 0;
            T Class = (T)Activator.CreateInstance<T>();
            PropertyInfo[] Properties = Class.GetType().GetProperties();
 
            // 1 build SQL
            SQLQuery = "SELECT ";
            foreach (PropertyInfo Property in Class.GetType().GetProperties())
                if (nPosition == 0)
                {
                    SQLQuery += Property.Name;
                    nPosition += 1;
                }
                else
                    SQLQuery += "," + Property.Name;
 
            SQLQuery += " FROM " + Class.GetType().Name;
 
            // 2 Execute Query
            DbProviderHelper.CreateConnection();
            DbDataReader oDbDataReader = DbProviderHelper.ExecuteReader(DbProviderHelper.CreateCommand(SQLQuery, DbProviderHelper.DbConnection, System.Data.CommandType.Text));
 
            // Fill List<T>
            List<T> result = new List<T>();
            while (oDbDataReader.Read())
            {
                T NewT =(T) Activator.CreateInstance(Class.GetType());
                foreach (PropertyInfo Property in Properties)
                {
                    if (oDbDataReader[Property.Name] != DBNull.Value)
                        Property.SetValue(NewT, oDbDataReader[Property.Name], null);
                }
 
                result.Add(NewT);
            }
 
            return result;
        }
 
        public static List<T> GetList<T>(this IEnumerable<T> source,stringPredicate Predicate)
        {
            int nPosition = 0;
            T Class = (T)Activator.CreateInstance<T>();
            PropertyInfo[] Properties = Class.GetType().GetProperties();
 
            // 1 build SQL
            SQLQuery = "SELECT ";
            foreach (PropertyInfo Property in Class.GetType().GetProperties())
                if (nPosition == 0)
                {
                    SQLQuery += Property.Name;
                    nPosition += 1;
                }
                else
                    SQLQuery += "," + Property.Name;
 
            SQLQuery += " FROM " + Class.GetType().Name;
            switch (Predicate.Condition)
            {
                case stringCondition.StartsWith:
                    SQLQuery += " WHERE " + Predicate.Property + " LIKE '" + Predicate.Value + "%'";
                    break;
            }
            // 2 Execute Query
            DbProviderHelper.CreateConnection();
            DbDataReader oDbDataReader = DbProviderHelper.ExecuteReader(DbProviderHelper.CreateCommand(SQLQuery, DbProviderHelper.DbConnection, System.Data.CommandType.Text));
 
            // Fill List<T>
            List<T> result = new List<T>();
            while (oDbDataReader.Read())
            {
                T NewT = (T)Activator.CreateInstance(Class.GetType());
                foreach (PropertyInfo Property in Properties)
                {
                    if (oDbDataReader[Property.Name] != DBNull.Value)
                        Property.SetValue(NewT, oDbDataReader[Property.Name], null);
                }
 
                result.Add(NewT);
            }
 
            return result;
        }
  
Utilisation :
 
        private void button1_Click(object sender, EventArgs e)
        {
           dataGridView1.DataSource = Contacts.GetList<CONTACT>();
 
           dataGridView2.DataSource = Contacts.GetList<CONTACT>(new stringPredicate(stringCondition.StartsWith, "nom_contact", "a"));
        }
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
Créer des « expressions » en .NET 3.0 et .NET 2.0 comme Linq
En .NET 3.0

je fais 2 méthodes d’extension (C#3.0)
- L’une permet de filtrer (MORFilter)
- L’autre permet de trier (MOROrder)
Je les ai préfixé de MOR vu que Select et Order existent déjà en méthode d’extension pour enumerable (System.Linq.enumerable)
Bon elles sont ce qu’elles sont c’est un début et mon idée serait d’essayer de générer des requêtes SQL que j’exécute via un dbprovider et je remplie une liste générique d’objets métiers que je retourne en résultat (d’où le prefixe MOR pour mapping objet relationnel)
public static class MORExpression
    {
        public static List<T> MORSelect<T>(this IEnumerable<T> source, PredicateHandler<T> Predicate)
        {
            List<T> result = new List<T>();
            foreach (T t in source)
            {
                if (Predicate(t))
                    result.Add(t);
            }
            return result;
        }
        public static List<T> MOROrder<T>(this IEnumerable<T> source, System.Collections.Generic.IComparer<T> Predicate)
        {
            List<T> result = new List<T>();
            result.AddRange((List<T>)source);
            result.Sort(Predicate);
            return result;
        }            

    }
 
Utilisation
 private void button1_Click(object sender, EventArgs e)
        {
 
            List<Contact> Contacts = new List<Contact>();
            Contacts.Add(new Contact(1, "Romagny"));
            Contacts.Add(new Contact(2, "Bellin"));
            Contacts.Add(new Contact(3, "Mariz"));
            Contacts.Add(new Contact(4, "Benon"));
            Contacts.Add(new Contact(5, "Felin"));
 
 
            GenericComparer<Contact> GenericComparer = new GenericComparer<Contact>("ContactName", SorterMode.Ascending);
            stringPredicate stringPredicate = new stringPredicate(stringCondition.StartsWith, "ContactName", "B");
            List<Contact> result = Contacts.MORSelect<Contact>(stringPredicate.Predicate).MOROrder<Contact>(GenericComparer);
 
//OU  encore plus rapide >>
            List<Contact> result = Contacts.MORSelect<Contact>(new stringPredicate(stringCondition.StartsWith, "ContactName", "B").Predicate).MOROrder<Contact>(new GenericComparer<Contact>("ContactName", SorterMode.Ascending));
 
 
            dataGridView1.DataSource = result;
        }
    }
 
A  MORSelect je passe une méthode qui sera appelée par le délégué pour filtrer
A MOROrder je passe un System.Collection.IComparable<T>
En .NET 2.0
 il faut passer par une CLASSE generic (et oui à tout factoriser on se retrouve parfois obligé de « redévelopper » d’ailleurs je me demande un peu si les méthodes d'extensions de C# 3.0 ne sont pas un remède au fait que tout est factorisé même si l’avantage c’est que l’on peut étendre des classes dont on a pas le source)
 public class GenericCollection<T> : List<T>
    {
        public GenericCollection<T> MORSelect(PredicateHandler<T> Predicate)
        {
            GenericCollection<T> result = new GenericCollection<T>();
            foreach (T t in this)
            {
                if (Predicate(t))
                    result.Add(t);
            }
            return result;
        }
        public GenericCollection<T> MOROrder(System.Collections.Generic.IComparer<T> Predicate)
        {
            GenericCollection<T> result = new GenericCollection<T>();
            result.AddRange(this);
            result.Sort(Predicate);
            return result;
        }
    }
Utilsation
 private void button1_Click(object sender, EventArgs e)
        {
 
            GenericCollection<Contact> Contacts = new GenericCollection<Contact>();
            Contacts.Add(new Contact(1, "Romagny"));
            Contacts.Add(new Contact(2, "Bellin"));
            Contacts.Add(new Contact(3, "Mariz"));
            Contacts.Add(new Contact(4, "Benon"));
            Contacts.Add(new Contact(5, "Felin"));
 
            //
            List<Contact> result = Contacts.MORSelect(new stringPredicate(stringCondition.StartsWith, "ContactName", "B").Predicate).MOROrder(new GenericComparer<Contact>("ContactName", SorterMode.Ascending));
 
 
            dataGridView1.DataSource = result;
        }
 
 
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander

Ressources Linq et téléchargement  windows server 2008 

bon un lot de liens ca fait un moment que j'ai pas une minute à moi

le centre de developpement us de CSharp semble disposer de ressources sur Linq (Linq to sharepoint,linq to nhibernate,linq to dom,etc.)

http://msdn2.microsoft.com/en-us/vcsharp/default.aspx


Windows server 2008 (Longhorn) Beta 3

http://msdn2.microsoft.com/en-us/evalcenter/bb383571.aspx

7 webcasts pour découvrir Wibdows server 2008 (quelle bonne idée :p)
http://www.microsoft.com/france/technet/seminaires/seminaires.mspx


Evaluation Office 2007 et office project server 2007
http://www.microsoft.com/france/technet/eval/default.mspx


Microsoft Forefront and System Center Demonstration Toolkit
http://www.microsoft.com/downloads/details.aspx?FamilyID=4D7329B8-2BD1-4AB4-A73C-75E9E0912DE8&displaylang=en


SilverLight Learning guide (pas mal de liens peut être interessants)
http://searchvb.techtarget.com/generic/0,295582,sid8_gci1256287,00.html?track=NL-462&ad=591788&asrc=EM_NLN_1537243&uid=5231204
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander
Par Romagny13
Ecrire un commentaire - Voir les commentaires - Recommander