Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. What way of datastorage should be use for small aaplication

What way of datastorage should be use for small aaplication

Scheduled Pinned Locked Moved Database
databasesql-serversysadminxmlquestion
11 Posts 8 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • U Offline
    U Offline
    User 4417354
    wrote on last edited by
    #1

    Hi all, I never really played with small applications.Now I want to write an application, really small.Its only going to be used by a homeuser. Therefore its not really going to be that smart using SQL server. But I need some suggestions.What will be the best technology? I thought of XML, but Im not that clued up with it and it gives me the idea it will get tricky with big functionality.And then theres MS Access, but on the net it looks like its not really being used as much anymore.What will be the practical thing to use? Thank you

    D N J D R 7 Replies Last reply
    0
    • U User 4417354

      Hi all, I never really played with small applications.Now I want to write an application, really small.Its only going to be used by a homeuser. Therefore its not really going to be that smart using SQL server. But I need some suggestions.What will be the best technology? I thought of XML, but Im not that clued up with it and it gives me the idea it will get tricky with big functionality.And then theres MS Access, but on the net it looks like its not really being used as much anymore.What will be the practical thing to use? Thank you

      D Offline
      D Offline
      David Mujica
      wrote on last edited by
      #2

      My vote is for MS-Access. It isn't going away anytime soon. It will work fine if it is a single user application. Keep things simple. :cool:

      1 Reply Last reply
      0
      • U User 4417354

        Hi all, I never really played with small applications.Now I want to write an application, really small.Its only going to be used by a homeuser. Therefore its not really going to be that smart using SQL server. But I need some suggestions.What will be the best technology? I thought of XML, but Im not that clued up with it and it gives me the idea it will get tricky with big functionality.And then theres MS Access, but on the net it looks like its not really being used as much anymore.What will be the practical thing to use? Thank you

        N Offline
        N Offline
        Niladri_Biswas
        wrote on last edited by
        #3

        Either go with MS Access or MySql :)

        Niladri Biswas

        1 Reply Last reply
        0
        • U User 4417354

          Hi all, I never really played with small applications.Now I want to write an application, really small.Its only going to be used by a homeuser. Therefore its not really going to be that smart using SQL server. But I need some suggestions.What will be the best technology? I thought of XML, but Im not that clued up with it and it gives me the idea it will get tricky with big functionality.And then theres MS Access, but on the net it looks like its not really being used as much anymore.What will be the practical thing to use? Thank you

          J Offline
          J Offline
          J4amieC
          wrote on last edited by
          #4

          I would go with SQL Express a million times over MS-Access.

          1 Reply Last reply
          0
          • U User 4417354

            Hi all, I never really played with small applications.Now I want to write an application, really small.Its only going to be used by a homeuser. Therefore its not really going to be that smart using SQL server. But I need some suggestions.What will be the best technology? I thought of XML, but Im not that clued up with it and it gives me the idea it will get tricky with big functionality.And then theres MS Access, but on the net it looks like its not really being used as much anymore.What will be the practical thing to use? Thank you

            D Offline
            D Offline
            David Skelly
            wrote on last edited by
            #5

            You don't say what technology you are using for the application as that may offer you different choices. For example, if it's Java you could look at JavaDB, or HSQLDB (H2), or DB4O. Or, if you don't need a full-fledged database you could simply serialise your objects out to disk (or maybe use the built-in XMLEncoder class). I think DB4O might also have .NET support as well, I'm not sure. For C or C++ you have SQLite among others. Python also supports SQLite, and also has various options like pickle, shelve, gadfly. SQL Server Express might actually a reasonable choice: it can be used embedded from a number of different languages and it is free (as far as I am aware if you are using it embedded in a single user application there are no licensing costs). FireBird is also an option for this sort of thing if you don't like SQL Server for whatever reason. I would say Access is not a bad choice for a stand-alone single user system, I would not agree that it is "not being used much anymore". I've seen several .NET applications that use it internally as a local data-store on a user's PC. FoxPro is a complete all-in-one database and development environment (I haven't seen it in years myself but as far as I am aware it is still going strong with an army of loyal fans). Or if all else fails you could simply write the data out to a text file on the disk in some sort of structured format. If your application is small and data volumes will be low, that might be the easiest option. If security is a concern you will need to work something out to encrypt the data. I guess the short answer is, "It depends..."

            1 Reply Last reply
            0
            • U User 4417354

              Hi all, I never really played with small applications.Now I want to write an application, really small.Its only going to be used by a homeuser. Therefore its not really going to be that smart using SQL server. But I need some suggestions.What will be the best technology? I thought of XML, but Im not that clued up with it and it gives me the idea it will get tricky with big functionality.And then theres MS Access, but on the net it looks like its not really being used as much anymore.What will be the practical thing to use? Thank you

              R Offline
              R Offline
              riced
              wrote on last edited by
              #6

              I think it boils down to a choice between Access and SQL Server Express. Off the top of my head here's some factors to consider. Access pros: self contained, built in form designer, query wizards, reports designer etc. Can use VBA to enhance functionality. Access cons: cost money (unless you already have Office Pro), can be slow over networks (even LANs). Not as extensible as SSE - but not an issue for home use. SSE pros: 'proper' database. Easily extensible. Lots of help on internet/MSDN forums. It's a free download. Good performance on networks. SSE cons: need a front end (VB.NET Express or C#? - both free) to construct forms etc. Needs a bit more management than Access. There are also some free/open source databases you might consider (e.g. SQLLite) but I'd avoid MySQL because it's fairly heavy duty so probably over the top for what you need.

              Regards David R --------------------------------------------------------------- "Every program eventually becomes rococo, and then rubble." - Alan Perlis

              L 1 Reply Last reply
              0
              • U User 4417354

                Hi all, I never really played with small applications.Now I want to write an application, really small.Its only going to be used by a homeuser. Therefore its not really going to be that smart using SQL server. But I need some suggestions.What will be the best technology? I thought of XML, but Im not that clued up with it and it gives me the idea it will get tricky with big functionality.And then theres MS Access, but on the net it looks like its not really being used as much anymore.What will be the practical thing to use? Thank you

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #7

                SQL Server Express is free, just like MySQL. Both are database-servers, usefull if you want to work with large amounts of data. Oracle 10g Express would be the third option if you require a "real" database. SQLite, SQLCE and MSAccess are good options for smaller databases. MSAccess has been around for some years, and the drivers are usually found on most systems. What's more; Access-databases can contain reports (fully integrated with Office, viewable in MSWord) and you can use the MSAccess-runtime to show them. SQLCE is relative new, feels faster and more stable than MSAccess. It doesn't have embedded reports, and the drivers are probably not installed on the host-machine. I haven't used SQLite intensively, so I haven't formed an opinion on that one yet. Seems to be a viable alternative for SQLCE though. If you don't need an actual database, but still want to store "some" data, look at XML and LINQ-to-XML. Hope this helps :)

                I are troll :)

                D 1 Reply Last reply
                0
                • R riced

                  I think it boils down to a choice between Access and SQL Server Express. Off the top of my head here's some factors to consider. Access pros: self contained, built in form designer, query wizards, reports designer etc. Can use VBA to enhance functionality. Access cons: cost money (unless you already have Office Pro), can be slow over networks (even LANs). Not as extensible as SSE - but not an issue for home use. SSE pros: 'proper' database. Easily extensible. Lots of help on internet/MSDN forums. It's a free download. Good performance on networks. SSE cons: need a front end (VB.NET Express or C#? - both free) to construct forms etc. Needs a bit more management than Access. There are also some free/open source databases you might consider (e.g. SQLLite) but I'd avoid MySQL because it's fairly heavy duty so probably over the top for what you need.

                  Regards David R --------------------------------------------------------------- "Every program eventually becomes rococo, and then rubble." - Alan Perlis

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #8

                  The program "MSAccess" costs money, but you're not required to purchase the GUI :)

                  I are troll :)

                  1 Reply Last reply
                  0
                  • L Lost User

                    SQL Server Express is free, just like MySQL. Both are database-servers, usefull if you want to work with large amounts of data. Oracle 10g Express would be the third option if you require a "real" database. SQLite, SQLCE and MSAccess are good options for smaller databases. MSAccess has been around for some years, and the drivers are usually found on most systems. What's more; Access-databases can contain reports (fully integrated with Office, viewable in MSWord) and you can use the MSAccess-runtime to show them. SQLCE is relative new, feels faster and more stable than MSAccess. It doesn't have embedded reports, and the drivers are probably not installed on the host-machine. I haven't used SQLite intensively, so I haven't formed an opinion on that one yet. Seems to be a viable alternative for SQLCE though. If you don't need an actual database, but still want to store "some" data, look at XML and LINQ-to-XML. Hope this helps :)

                    I are troll :)

                    D Offline
                    D Offline
                    David Skelly
                    wrote on last edited by
                    #9

                    I may be wrong, but I think that LINQ-to-XML only works with .NET 3.5. Not many home users will have that installed yet. It requires a 250Mb download just to install the .NET 3.5 framework, which might be a problem for some people especially since this is just a small home-user app. ("Our new application is just 100K, which you can download and install in seconds... after you spend an hour and a half trying to download and install all this other garbage that you don't really want.") SQLite is fast and has a very small memory footprint. That's its main advantage. SQLite datatypes are a bit weird because you don't tell it in advance what the datatype of a column will be. SQLite figures it out itself dynamically. This is mostly OK but every now and again it can surprise you (among other things, SQLite thinks it's OK to store string values in a column intended for integers without warning, it will happily convert from floating point numbers to integers according to its own internal logic, and so on). Also, there is no support for date/time values. If you want to store these, you have to figure out your own solution. The biggest potential problem is that it is a single user database. Every time you update something, it locks the entire database (yes, the entire database not just the table being updated). May not be a problem for this particular application if it's a small home-user app but SQLite does not scale in terms of number of users. Personally, I don't like SQLite. It's popular with C and C++ people and some Pythonistas but I just don't see the point of using it when there are better lightweight databases available these days.

                    L 1 Reply Last reply
                    0
                    • D David Skelly

                      I may be wrong, but I think that LINQ-to-XML only works with .NET 3.5. Not many home users will have that installed yet. It requires a 250Mb download just to install the .NET 3.5 framework, which might be a problem for some people especially since this is just a small home-user app. ("Our new application is just 100K, which you can download and install in seconds... after you spend an hour and a half trying to download and install all this other garbage that you don't really want.") SQLite is fast and has a very small memory footprint. That's its main advantage. SQLite datatypes are a bit weird because you don't tell it in advance what the datatype of a column will be. SQLite figures it out itself dynamically. This is mostly OK but every now and again it can surprise you (among other things, SQLite thinks it's OK to store string values in a column intended for integers without warning, it will happily convert from floating point numbers to integers according to its own internal logic, and so on). Also, there is no support for date/time values. If you want to store these, you have to figure out your own solution. The biggest potential problem is that it is a single user database. Every time you update something, it locks the entire database (yes, the entire database not just the table being updated). May not be a problem for this particular application if it's a small home-user app but SQLite does not scale in terms of number of users. Personally, I don't like SQLite. It's popular with C and C++ people and some Pythonistas but I just don't see the point of using it when there are better lightweight databases available these days.

                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #10

                      You're right, that's a large download if you just want to save some application-data.

                      David Skelly wrote:

                      SQLite datatypes are a bit weird because you don't tell it in advance what the datatype of a column will be.

                      Like I said, I haven't used it much just noticed that it converts all datetime values to string.

                      David Skelly wrote:

                      The biggest potential problem is that it is a single user database.

                      That's also true for SQLCE. MSAccess has some more options, but isn't intended for this scenario either. They can however, be used as readonly-datastores by multiple users.

                      David Skelly wrote:

                      Personally, I don't like SQLite

                      Me neither, but it is still an option that may be considered. I'd be using SQL Server Express :)

                      I are troll :)

                      1 Reply Last reply
                      0
                      • U User 4417354

                        Hi all, I never really played with small applications.Now I want to write an application, really small.Its only going to be used by a homeuser. Therefore its not really going to be that smart using SQL server. But I need some suggestions.What will be the best technology? I thought of XML, but Im not that clued up with it and it gives me the idea it will get tricky with big functionality.And then theres MS Access, but on the net it looks like its not really being used as much anymore.What will be the practical thing to use? Thank you

                        A Offline
                        A Offline
                        Andy_L_J
                        wrote on last edited by
                        #11

                        You could alsways try www.sqlite.org[^]

                        I don't speak Idiot - please talk slowly and clearly I don't know what all the fuss is about with America getting it's first black president. Zimbabwe's had one for years and he's sh*t. - Percy Drake , Shrewsbury Driven to the arms of Heineken by the wife

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups