As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I mainly develop Java EE webapps so I don't have any experiences with desktop application at all. Now a friend of mine needed a little tool for daily business which I've build with Seam and a MySQL db in the background. In case of my experience this was done really fast.
Now I want to go further and produce a real small desktop app for him. I've looked at various options and developing a gtk# application with Mono seems my way to go for this little project. The application should be small and fast so I was thinking if a whole MySQL server is needed for my solution here.
What options I could evaluate instead of a database server which has to run as a service on the workingmachine? Storing data as XML?
To clarify the application has now 6 entites (Products, ProductTypes, Colors, Sizes, Orders, Production). On daily basis orders and production are added to a ProductType, very simple stuff.
XML would work for small sets up data, but if you are going to have larger sets I would recommend something like sqlite.
http://www.sqlite.org/
I have looked at various options and I tend to like SQLite
for client applications on .NET. It is a file based solution that does not require a database server to be installed on the machine, much like using an Access database but better.
Try SQLite
Can be other DB will interest, for example, Db4o or SQL CE 4.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Is there any way to configure mySql as a database server with concurrency access?
I want to develop a windows application with a open source database where multiple access at the same time. as per the research I did on the internet, Mysql is the best but just want to make sure that Mysql capabilities in the above scenario.
any help appreciated.
I believe that you're misunderstanding something, but I'm not sure what, so I'll just explain stuff a bit :-)
MySQL's single and sole purpose is what you describe. It's to store data and allow it to be accessed concurrently without too many problems.
Your question is a bit like asking "Is there any way to use a hammer to hit a nail? I have a large amount of nails here, and I need to fix some pieces of wood to each other, and I need something to slam them in. Will a hammer do?"
That said, besides MySQL, there's also nice alternatives like PostgreSQL. PostgreSQL is a bit more full-featured, and has recently been taking over MySQL in popularity. Also, "MariaDB" is, effectively, the new name of the latest MySQL version, so you might want to google for that.
Finally, since you want to develop a Windows application, maybe neither of these databases are a good choice - if every user needs to install a database server in order to use your application, installation will be difficult and error-prone (believe me - I have once, maintained the installers for a Windows application that depends on a MySQL server on the user's computer, and it's hell). You could also look into SQLite, a database (which also supports concurrent access) that you can bundle immediately with the program you're making. It's really just a library that you link into your program, so it's not a server at all. But it's a full-featured SQL database.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am thinking of developing a CRM type database application in C# that I can sell to clients, and am considering using Microsoft SQL Server as the back-end.
I would like potential clients to have the option of having the back-end either local or on a hosted platform. If they choose the hosted option - that would be fine as we/third-party, could provide the SQL/Server platform. However, if they wish to run locally, I wouldn't want them to have to pay for the licencing of SQL (as well as for my software).
Is there a free distributable version of SQL Server, that is able to cope with up to 30(ish) users, and capable of quite a lot of work? I was thinking about Express - but not sure if that would be the right path.
Any suggestions (SQL Server or otherwise) would be greatly appreciated.
Thank you.
There are some limitations in SQL Server Express (10Gb per database, 1Gb of RAM and only one physical CPU).
May I suggest MySQL, open source and works well with .Net as it supports Entity Framework.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I should write little app, that will work with single table database in single user mode (only one user will be use it). This user only should view data on read only mode. He shouldn't change any data.
Data is going to be updated physically one time in a month by backup and/or copy past.
Which database is good for this? MS Access, ms sql express, ms sqlce? Application is going to be written on C# Windows Forms. And performance is necessary.
I would go for Sqlite: fast, easy with full ACID support.
It's easy: no services, no installation, just a file.
It's scallable: can have multiple tables and complicated relations between them, if it's neccessary for you, but do not have stored-procedures
Maybe an OODB is your answer. they are still faster in reading then anytype of SQL database.
I have used db4o and it's pretty amazing what it can do.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm working on a system (.NET website) that uses class libraries to manipulate data located on a MS SQL server. Lately, I've been wondering about ditching those classes and doing the data manipulation using WCF. That way I could consume the services in Android, Java, etc...
Well, some classes return a large amount of data, say a 125x10000 datatable... and I'm worried that WCF will not be able to handle that... or maybe that the system's performance will suffer too much.
What do you guys think?
Is WCF ok to to use for retrieving/updating large amounts of data on a multi-user system?
If not, what are some other options?
Maybe I'm misunderstanding what you're trying to achieve, but it sounds like what you're suggesting is moving the database load to the application side - pulling entire data tables to the application in order to run your would-be DB operation.That's kind of what the SQL server is designed for.
By doing so, you're putting all of the load onto your application server and underutilizing the DB area of concern. Write some code to handle locking and then let the database do it's job. You'll end up writing more procs, but that's normal, and better in the long run as you can edit them on the back end without having to recompile app code. IMO do all of your database operations in your stored procedure and return the smaller result sets through WCF.
I mean... are you really planning on piping that much info over a WCF service onto cellphone?!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Would it be a good choice for use within a WCF service written in C#? I'm currently using FirebirdSql, but that's giving me way too many problems. Documentation and support is also horrible.
edit: Sorry, I should have been more specific when asking the question. What I meant was whether or not SQLite is a good choice for an embedded database within C#. MS SQL is out of the question for this one.
SQLite is a great platform for any language, however there are small concerns I've had with it under .NET.
It is natively compiled. This breaks .NET's AnyCPU Implementations of .NET (i.e. you have to explicitly distribute a 32bit & 64bit version of your app, and have some hand-written rules in your .csproj (MSBUILD) file to select the different dependencies based on what you select.
It has some sticky threading issues. You're going to run into trouble if you're trying to use the same DB from multiple places (multiple instances of your app) etc. It's doable, but it basically uses a simplistic form of database/table locking to achieve this, which could be a major concern based on your program.
All In all i really like SQLite, but if I could find one that didn't require a redistributable (*cough*SQL Express*cough*), I would use another embedded DBMS for .NET Apps. To date I havent found one aside from Raven DB but that's a document DB.
Edit: Note, Raven DB Is also only free for open-source applications. It's not suitable for proprietary applications unless you're willing to shell out for a licence, so when looking into it please be sure to factor it into your budget.
SQL Express always works well