jeudi 21 janvier 2010

Quelques exemples en C#


Maintenant que je suis prêt à me re-jeter corps et âme dans l'environnement .Net, j'ai installer Visual Studio C# 2008 Express sur mon PC.
C'est ainsi que j'ai eu le bonheur de retrouver quelques vieux exemples datant de Juin 2008 (ça date l'air de rien).
A l'époque, j'explorais la plateforme .Net et essayais de trouver les notions .Net correspondantes à certains concepts Delphi.
 
26/12/2009, Aujourd'hui, ces exemples sont un excellent point de départ pour me replonger dans le bain.
06/01/2010, Ajouté quelques exemples concernant les IEnumerable, les collections, Linq, Lamba expression, etc
17/01/2010, Ajouté des exemples sur les types anonymes, l'extraction d'ExeName, Manipulation de nom de fichier, et surtout quelques exemples XML
21/01/2010, Ajouté des exemples sur XmlReader, compression de stream (& string), encryption AES.

Voici une petite liste récapitulative des éléments explorés:
Basic Demo
  F1: detecting F1 key-press
  1 : test delegate
  2 : using 'ref' keyword
  3 : returning an newly created object
  4 : Constructor Parameters
  5 : Singleton (using abstract)
  6 : FileWriter and IDisposable interface
  7 : Property
  8 : Enumeration (and Flagged Enumeration)
  9 : Raise Exception
  a : Abstract
  b : Interface Demo (and enumeration)
  c : Struct
  d : Arrays
        - array of int
        - array of objects (inheritance, base call)
        - Multidimensionnal array.
        - Strairs/cascading array.
        - Array toolbox (for string handling)
            *
        - Sorting array of object
  f : Yield Return & IEnumerable
  g : Debugging
        - Assertion via System.Diagnostic.Debug.Assert()
        - OutputDebugString (Debug.WriteLine)
        - Tracing via System.Diagnostic.Trace.WriteLine()
  h : Collections
        - Indexer (Access class as an Array)
        - Implement IEnumerable to use the "foreach" on the class.
        - List<T> (AddRange, Exits, Any)
        - List<T> (LINQ, IEnumerable, ToList, ToArray, String.Join)
        - Queue<T> (LinQ, ToList, ForEach and LAMBDA expression)
        - Stack<T> (populate from LinkQ + Lambda,
                    populate from IEnurable + foreach
                    Create from IEnumerable )
        - InspectEnumerator: Display content of a IEnumerable<String>
                    (via the IEnumerator<String> GetEnumerator() )
  i : Anonymous type
        - Create complex structure
        - Array of anonymous type
        - List of anonymous type!!!
  j : ExeName
        - with executing security consideration
        - ASSEMBLY.GetExecutingModule()
        - Path.xxx (decomposing filename)

XmlDemoApp
    1: Create & Display an XmlDocument
            - initializer member (very nice)
            - XmlDocument, CreateElement, CreateAttribute, CreateCDataSection
                CreateXmlDeclaration
            - Save & Load (NOT USING stream & XmlReader/WmlWriter)
            - XPath (selectSingleNode, selectNodes)

    2 : XSL transformation
            - XmlNavigator, XslCompiledTransform
            - File.Exists, File.Delete
            - FileStream

    3 : XML Reader
            - XmlTextReader
            - USING keyword
            - Test a XmlNodeType value against a list of possible values List<T>
            - MoveToNextAttribute

MiscDemoApp 
    1: Compress/Uncompress String
            - Encoding.UTF8 (convert string to UTF-8 byte[] buffer)
            - GZipStream and MemoryStream
            - System.Buffer handling (BlockCopy)
            - BitConverter
            - Convert.ToBase64String

    2 : Compress and Transport Thousands of struct.
            - Interesting et very fast method based on Buffer Copy

    3 : AES Encryption
            - Create the AesHelper class
                    Using Crypto Stream & buffer
            - Encrypt & Decrypt String
            - Wrong passPhrase would cause exception

Télécharger le code source des exemples.

1 commentaire:

jyce a dit…

A lire très attentivement pour la suite !