IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Actualités Discussion :

SQLite vient d'être porté sous C# pour fonctionner avec .NET

  1. #1
    Expert éminent sénior

    Inscrit en
    Juillet 2009
    Messages
    3 407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 407
    Points : 149 059
    Points
    149 059
    Par défaut SQLite vient d'être porté sous C# pour fonctionner avec .NET
    SQLite vient d'être porté sous C# pour fonctionner avec .NET

    SQLite vient d'être porté sous C# par Noah Hart.
    Si le résultat s'avère plus lent que l'original, il ouvre cependant la porte à une nouvelle utilisation de la base de données.
    Elle pourra à présent être utilisée dans des projets conçus avec les outils de Microsoft.NET sans utiliser P/Invoque ou des lignes de code peu sûres.

    De nombreux produits, dont Adobe AIR ou Silverlight, fonctionnent avec SQLite.

    Le code source de SQLite-C# est sous Creative Common (Licence Libre).
    Il a passé plus de 30.000 tests pour, aujourd'hui, un nombre minime d'erreurs restantes (9 d'après Noah Hart).

    L'exécutable pèse 528 KB (contre 506 à l'original).
    Quant à la question de la relative lenteur du programme, Noah Hart avoue ne pas s'être encore penché sur l'optimisation de ses performances.
    Pour autant, il considère qu'elles sont d'ores et déjà acceptables.

    N'étant pas affilié à SQLite.org, ce projet reste une version non-officielle de SQLite dont le créateur, Richard Hipp, refuse que cette version porte le nom de son programme.

    Richard Hipp a cependant accepté l'appelation SQLite-C# qui devrait donc devenir le nom officiel du portage.


    Source : La page officielle du portage SQLite-C# sur Google Code.

    Lire aussi :
    - SQLite sur le comparatif SGBD
    - Le forum SQLite
    - Le forum C#


    Et vous, pensez-vous que ce portage soit une bonne idée ?
    Envisagez-vous d'utiliser cette librairie dans vos projets professionels ?

  2. #2
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Excusez ma question d'ignare mais je vois pas en quoi sql-lite devrait-être porté en C# pour fonctionner avec .NET...

    Ils ont pas porté oracle en C# pour que je puisse l'utiliser "proprement" avec du C#...

    Par contre c'est original de voir un SGBD en code managé

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 789
    Points : 18 930
    Points
    18 930
    Par défaut
    Parce que SQLite est un SGBD Embeded.

    Quand tu utilises Oracle, tu installes oracle, puis ton appli. Tu peux installer les deux à la suite avec un programme d'installation mais ça reste deux logiciels.

    SQLite existant en code C#, tu peu avoir une appli avec le SGBD inclus et le tout en C#, donc tout en code managé, donc à l'arrivée un truc simple, light et performant.

    Excellente solution pour diffuser des applications qui n'ont pas besoin d'un SGBD poids lourd...

    Pour plus d'informations :
    - SQLite sur le comparatif SGBD
    - Le forum SQLite
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  4. #4
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 33
    Points : 65
    Points
    65
    Par défaut
    ce n'est pas bien que ça ne soit pas reconnu par Richard Hipp.

  5. #5
    Expert éminent sénior

    Inscrit en
    Juillet 2009
    Messages
    3 407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 407
    Points : 149 059
    Points
    149 059
    Par défaut
    Bonjour Sidev,

    C'est pas tellement qu'il ne le reconnait pas.
    Il ne veut juste pas laisser le nom.

    Ceci dit, comme je l'ai mis dans l'article, il a tout de même accepté l'appellation "SQLite-C#"...

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Points : 154
    Points
    154
    Par défaut
    Bonne nouvelle!
    Ça tombe bien, je travaille actuellement sur une application ou j'utilise sqLite (p-invoke), pour le moment m'en fou des performances, l'essentiel c'est it work .
    Y a des gens qui sont vraiment très motivés (porter tout le code), merci ! ce sont des personnes comme vous qui nous facilite la tache
    Bravo monsieur Noah Hart.

  7. #7
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    Excellente solution pour diffuser des applications qui n'ont pas besoin d'un SGBD poids lourd...
    Fourni avec Visual Studio, y a aussi SQL Server Compact que j'ai utilisé pour plusieurs applis et qui fonctionne très bien.

    Bon évidemment y a des "trucs" qui s'installent au déploiement de l'application et ça n'est pas léger au point d'SQLite, mais ça marche très bien également.
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par Pierre Louis Chevalier Voir le message
    .
    SQLite existant en code C#, tu peu avoir une appli avec le SGBD inclus et le tout en C#, donc tout en code managé, donc à l'arrivée un truc simple, light et performant.
    embarcadero fait cela depuis longtemps avec Blackfish
    http://www.embarcadero.com/products/blackfish-sql

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    y a encore mieux : http://sqlite.phxsoftware.com/

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par stailer Voir le message
    Fourni avec Visual Studio, y a aussi SQL Server Compact que j'ai utilisé pour plusieurs applis et qui fonctionne très bien.
    La version Firebird embedded fonctionne aussi très bien.

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 789
    Points : 18 930
    Points
    18 930
    Par défaut
    Citation Envoyé par VLDG Voir le message
    embarcadero fait cela depuis longtemps avec Blackfish
    http://www.embarcadero.com/products/blackfish-sql
    Depuis longtemps il faut pas trop exagérer, je pense que SQLite existait avant Blackfish. C'est quoi le modèle économique de blackfish ? Je n'ai pas pu le savoir avec certitude sur le site d'embarcadéro. Pour SQLite c'est "OpenSource et gratuit" au moins c'est clair et net.

    Pour ce qui est de SQL Server Compact 3.5 il y à un runtime ça n'est donc pas du vrai embeded. Pour Blackfish c'est vraiment très léger, c'est peut etre du vrai embeded, pour Java et .NET mais je n'en suis pas sur.
    SQLite c'est du vrai embeded, avant avec C++ et maintenant en plus avec C#.


    Bon alors d'après ce que j'en ai compris, récapitulons :

    - Bonnes solutions de sgbd light : Firebird et SQL Server Compact 3.5.

    - Presque embeded : Firebird Embeded (sous forme de DLL)

    - Vrais solutions de SGBD embeded : SQLite et peut etre Blackfish ?

    Des commentaires ?
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  12. #12
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Définition de wikipédia :

    An embedded database system is a database management system (DBMS) which is tightly integrated with an application software that requires access to stored data, such that the database system is “hidden” from the application’s end-user and requires little or no ongoing maintenance.
    Si je comprends bien, du moment que c'est inclus dans ton logiciel (dans le livrable global - donc exe ou dll) et transparent pour l'utilisateur c'est considéré comme du embedded.

    Voici la liste qu'ils fournissent :
    • Empress Embedded Database
    • Extensible Storage Engine
    • eXtremeDB
    • Firebird Embedded
    • InterBase
    • ITTIA DB
    • NexusDB
    • Oracle Berkeley DB
    • Raima Database Manager
    • ScimoreDB
    • SolidDB
    • SQLite
    • SQL Server Compact
    • Valentina DB
    • VistaDB
    Emmanuel Lecoester
    => joomla addict.

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 789
    Points : 18 930
    Points
    18 930
    Par défaut
    Intéréssant ceci dit il serait intéréssant de savoir si on à les memes performances quand on est sur une solution en full managé que quand on à un mélange (avec une DLL).

    Donc ça n'est pas la meme chose mais est ce que cela fait une différence ?
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  14. #14
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Citation Envoyé par Gooom Voir le message
    y a encore mieux : http://sqlite.phxsoftware.com/
    +1 :p


    Et il existe depuis déjà quelques années...
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 789
    Points : 18 930
    Points
    18 930
    Par défaut
    En quoi c'est mieux d'utiliser la version C avec un provider ADO plutot que d'embeder le code C# de Sqlite ?

    Quelle est la version la plus performantes et la plus fiable pour embeder dans une application C# ? la version C ou la version C# ? Pourquoi ?
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  16. #16
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Je ne sais pas si c'est vraiment une bonne idée. C'est vraiment un "portage" du code en C sans aucune considération de ce qui fait que le C# est le C#. Le C# est un langage objet avec des exceptions et tout le tralala : là je vois du code C à la sauce .NET avec des constantes partout et des horreurs genre :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    static void sqlite3_free( ref string x )
        { x = null; }
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    using HANDLE = System.IntPtr;
    using i64 = System.Int64;
    using u32 = System.UInt32;
    Ou alors un truc horrible :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
        //typedef struct DateTime DateTime;
        public class DateTime
        {
          public sqlite3_int64 iJD; /* The julian day number times 86400000 */
          public int Y, M, D;       /* Year, month, and day */
          public int h, m;          /* Hour and minutes */
          public int tz;            /* Timezone offset in minutes */
          public double s;          /* Seconds */
          public byte validYMD;     /* True (1) if Y,M,D are valid */
          public byte validHMS;     /* True (1) if h,m,s are valid */
          public byte validJD;      /* True (1) if iJD is valid */
          public byte validTZ;      /* True (1) if tz is valid */
     
          public void CopyTo( DateTime ct )
          {
            ct.iJD = iJD;
            ct.Y = Y;
            ct.M = M;
            ct.D = D;
            ct.h = h;
            ct.m = m;
            ct.tz = tz;
            ct.s = s;
            ct.validYMD = validYMD;
            ct.validHMS = validHMS;
            ct.validJD = validJD;
            ct.validTZ = validJD;
          }
        };

    Alors que dans le Framework il y a bien entendu le type System.DateTime déjà définit, beaucoup plus complet que cette horreur et qu'il aurai été préférable de l'utiliser plutôt que cette chose. D'ailleurs les "classes" définies dans le code sont des vraies blagues, avec que des fonctions statiques et des opérations hasardeuses.

    Franchement, pour maintenir ça il faudrait des codeurs C pur car je doute qu'un mec ayant l'habitude de programmer en C# ai la foi (à moins qu'il soit vraiment motivé) de rajouter/corriger des choses dedans.

    Donc voilà, ça a peut être demandé beaucoup de temps de travail mais AMHA SQLite doit être utilisée en C, ou alors via des providers en C# qui eux traduiraient les appels en C via quelque chose de structuré respectant la manière de programmer en .NET (surtout, avec de la vrai programmation objet) ou alors redéveloppée en C# en utilisant les standards de programmations de ce langage. Là c'est une chimère sans nom ...

  17. #17
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    @smyley :
    Ce que tu soulèves ici est ce que je considère comme l'inconvénient majeur de ce portage. Les personnes ayant fait le portage l'ont fait à un instant t sur une version "figée".

    Maintenant il se pose plusieurs alternatives :
    • sqlite C ne bouge plus (çà m'étonnerait) => RAS
    • sqlite C continue son évolution et sqlite dotnet "suit" => il faudra à chaque version sqlite C faire un diff de chaque fichier source et répercuter les corrections dans le code dotnet. C'est pour cela que le portage a du être minime histoire de réduire cette adaptation future. C'est un travail conséquent surtout sur une version majeure et nous aurons toujours un delta entre la version C et la version dotnet (le temps d'adapter le code)
    • sqlite dotnet se met au gout du dotnet (on corrige les absurdités et autres) et sqlite C continue son évolution => on part vers un branch du projet


    C'est une belle performance que ce portage mais est-il utile à la communauté et sera-t-il je ne sais pas
    Emmanuel Lecoester
    => joomla addict.

  18. #18
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Quitte à faire du portage, pourquoi ne pas avoir porté HSQLDB. Le portage Java vers C# aurait sans doute été moins compliqué, non ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  19. #19
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par Pierre Louis Chevalier Voir le message
    Depuis longtemps il faut pas trop exagérer, je pense que SQLite existait avant Blackfish.
    Avant SQLLite en c#, je voulais dire.

    BlackFish permet de coder les procédures stocker en c# (enfin si mes souvenirs sont bons)

    Je n'ai jamais vraiment utiliser car ce n'est pas gratuit.

    Moi, actuellement, j'aurai ce type d'appli a faire : j'opterai pour sqlLite (normal) ou Firebird.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/10/2012, 13h47
  2. Quelle CMS simple pour fonctionner avec ACCESS
    Par Debutant10 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 25/09/2011, 21h51
  3. Réponses: 6
    Dernier message: 02/02/2011, 11h13
  4. Réponses: 0
    Dernier message: 05/07/2010, 13h15
  5. [VB.NET] font.colorindex pour excel avec .NET
    Par beegees dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/07/2006, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo