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.
Basically I wanted to know which technology and languages should I use if I wanted to build a windows application. My requirements are:
my application must be able to store data entries.
a simple GUI.
I should be able to distribute my application as an .exe file
I did some research and found out that I should use C# and wrap a mysql db in my application. Is this the correct way or is there any other and better method than this?
I am a newbie developer and have worked only with java, so please bare if its a silly question.
Aside from learning C#, as you know Java already, you can also develop a Java app and use a wrapper tool like launch4j and jsmooth to distribute it on Windows and have it configured to automatically install JRE if there's none.
There will always be arguments over the 'correct way' and whether one method is 'better' than another. Threre are also a couple of 'it depends' aspects to your question.
Having said that, yes, C# is a well recognised technology for developing windows applications, and mysql will provide a means to add database abilities to the application, so you are well on the way. (Trust your research :).
Do you intend to develop a multi user application that takes data from different sources? For this, you will need to think about deploying the database separately to the application and network/internet access etc etc. Also, if this is the case, you may want to think about a more robust database solution like sql server. There are a number of versions of this database (see here for some info: http://www.sqlmag.com/article/sql-server-2012/sql-server-2012-editions-142261).
If your application is going to be standalone, then deploying an instance of mysql within the application will work, but you may want to consider something with a smaller footprint (sql server compact, or sql lite maybe).
hth
for a newbie for such a nice and clear question. Yes you can use C# with windows form to build up your app. But You cannot pack you db inside an exe. It must be an external resource. Better go for C# with SQL Server as Sql Server is its native and has far better support than any database available. Also you have express edition of the same to use upto 10GB and most important its free....
As per my concern you can go with c# application. But nobody can tell whether it is simple to you or not. It depends on how you understand the concepts and syntax of the language. I recommend you to go with C# and MS SQL Sever Express Edition.
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 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
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.
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 work for a manufacturing company in the configuration dept so i see alot of process related data control stuff passing me by everyday. In the past i have developed some excel vbscript programmes to manage a lot of data items through a GUI and using excel as the backend to store results, but there's only so far you can take that.
I would really like to learn how to create proper databases with GUIs, multiple user logins and workflows for approval etc, but i have no idea where to start.........any advise on desktop applications or web based applications to allow the system to be used over the internet when working abroad, would be appreciated.
Thanks.
Fergie
C# and .net would be a good place to start. C# is fairly easy to learn and visual studios offers a great development environment for it.
Java is also another way you can go. Java is multiplatform and has great functionality for integrating into a web environment.
If you're looking for a comprehensive solution for desktop apps, web apps and database development, you should definitely look into Visual Studio and .NET. It's the most "cohesive" suite of tools you can use and it sounds like you have some MS programming skills already.
This is not a programming language per se and it's cost money, but FileMaker Pro is great for what you're describing. It's a RAD tool that creates a database and GUI pretty much in the same development cycle.
We use FileMaker Pro for lot of small business software we write, we also heavily use Java, and FileMaker is at least 10 times easier/faster to build things in.
One final note, FileMaker is cross-platform for Mac and Windows, unlike C# which I see mentioned here.
This is very subjective, but based on your requirements, I'd go with C#. Both Java and C# let you develop both web and client apps, but C# integrates much more smoothly with Linux and especially Windows. Also, Visual Studio has an absolutely phenomenal debugger that will make your life much easier.
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 12 years ago.
I am making a website where users can upload pictures and draw on them, add text etc. My team knows some php, but we know nothing about c#. Time is not too much of an issue. We all know java, what would the perks of each be? I have been hearing that c# will be much better for handling the canvas because there is a lot more libraries for it? Will it really matter c# of php? for both you have to use javascript and possibly jquery anyway? Keep in mind we are all more than willing to learn c# and we have a windows server also. Let me know your guys thoughts! Thanks!
If your team already knows PHP, and can already do the work in PHP, I'd stick with what they know. I don't know enough about the differences between the two to give you hard performance numbers, but I would expect that a team already fluent in PHP would do better work with the tool they know rather than learning a new one just because it meets some arbitrary definition of "better."
If your team knows something about PHP, then PHP is probably your best bet hands down.
Personally, I don't know of anything in C# (since it's a web based client, rather than desktop) that would give you an advantage over PHP.
One of the first questions you have to ask when building an application is: how and where will be application be used?
If you're building an intranet application for deployment in a Windows environment, particularly if you want to tie into Active Directory for user authentication, then you should be looking at IIS, and after that ASP.NET, which would lead you in the direction of C# (though PHP can be used as well). If you're looking at deploying your application in a heterogeneous environment, then PHP is a much more portable choice.
If you know java, moving into C# shouldn't be that hard. They are similar and the set of classes that come with Java and .NET Framework are similar, but layed out differently.
I use C# and ASP.NET (usually ASP.NET MVC) for ALL of my new web application development, partly because its what I know, but also I just really don't like php (and I'm not alone).
Thats said, if you're going to be using HTML5/Javascript (you mention canvas) then your backend code will matter less since it will mostly be persisting your data to disk on the server; however, I think that something like Flash or Sliverlight would provide a better end user experience for an on-line image minipulation tool. Either of these can be hosted from a C# web app or a php one.