Which database would you recommend using with a C # (.NET) application?

I am developing a small project plan, and I came to the point where I need to decide which local data system to use.

Input data will be stored on a web server (hosting - MySQL DB). The idea is to build a process to download all the necessary data (for example, at midnight) and process it. However, there will be many inputs and processing steps, so I need to use some local database to store the application intermediate.

Which local database system would you recommend working with a C # (.NET) application?

edit: the final product (information) should be easily exported back to MySQL DB hosting.

As will be said in his answer - yes, I am for the performance and comfort of use.

+4
source share
12 answers

I want to say Microsoft Sql 2005 Express, because it (almost) becomes an obvious choice when developing in .NET.

But it all depends on what you have. If you already know MySql, and, as you said, the data should be exported back to MySql. Why not use MySql fully?

+13
source

For quick and dirty I would go with Sql Server Compact Edition. Its built-in implementation of Sql Server, so it does not work. You do not need to install any other applications.

That day, you would use the Access database for this kind of thing. But access to databases can be arbitrary.

There was no need to upload the finished data back to the production server. If you are looking for a solution that automates this process, you may have to search for a local instance of MySql locally and use any replication services that it provides.

+8
source

I say that I have Sql Server Compact Edition. This is similar to the full-blown version of SQL Server, and VS2008 has built-in support for designing tables, queries, etc. (Management Studio 2008 also has support). The biggest drawback is that you lose the stored procedures, but the growth potential is wonderful, since there is no need to install anything on the local machine of users, and it works very quickly to select data. Even colder, with SQL Metal, you can create a DBML file and use LINQ in the same way as with Sql Server.

+2
source

How about using db4o? This is an OODB that you can embed in your application. Replication is also supported. Edit: as side note - in my current favorite project using db4o I have a line (C # 3.5):

IList<Users> list = Persistence.Database.Query<Users>(u => u.Name == "Admin"); 

Using a strong typed lambda expression to get a (lazy) list of objects from a database. It also uses indexes to quickly retrieve a list.

+1
source

MS SQL Server support fails without any other drivers or settings. In addition, MS SQL Server Express is free.

You can create scripts that will export data to / from MySQL.

0
source

The โ€œobviousโ€ choice would be MS SQL Server Express. VS and .net support it initially, and if you already have experience with it (for the main database), I, of course, will be tempted to stick with it (or its express version).

But this, of course, is not the end of your options. I use SQLite a lot for cross-platform applications and web applications. It is smooth-fast, and it integrates pretty well through System.Data.SQLite - although not as much as MS SQL Server.

There is also a compact version of SQL Server that compares fairly well with SQLite.

0
source

I do not know a good database in a process that is fully syntax and type compatible with MySQL. With this in mind, you have three options:

  • Choose something like SQLlite, Access or SQL Server Compact. The problem is that you end up writing some kind of complicated conversion logic with any of them, and you have to write all your queries twice.
  • Install MySQL locally. Then you have to put up with a full database server running on your local system. You definitely want to avoid this for everything that you send to the customer, but for your own use it may be good. Fortunately, MySQL does not use as many resources as some other modern database servers, but it is still not so perfect.
  • Switch to the version of SQL Server Express on the server and use SQL Server Compact on the client. It is just as cheap as MySQL (maybe even cheaper, since you are considering purchasing MySQL for any commercial use). Given that you are using C # on the client side, you can use it with ASP.Net on the server side. And if you use an ASP.Net server, then it is easy to find a host that offers SQL Server Express. Now your databases are compatible by type, and any request that you write for a client is guaranteed to work for your server.

IMO, one of the big strengths of the MS database stack (excluding access) is that they have a compatible solution for everything you do, from desktops to clusters with multiple data centers. If the scale of the application changes or you need to send data between two different classes of the application, your database level will take care.

0
source

Select everything that is available, but only the code for the interfaces, so you can easily switch between them.

For production, I would say that MS SQL for large projects (or for intermediate level) is simply due to tight integration with VS and Sqlite for small projects.

Given the description, I would think Sqlite would be a good choice, as these are the simplest / lowest costs.

0
source

I have been testing for some time, although I would also recommend SQL Server 2005 (Express if needed), because it works out of the box, although SQL Server 2008 is new and RTM'd now.

0
source

SQL Server, as most of them mentioned ... My reason is that you can use the original control to integrate C # test cases into the database ....

Team Foundation (TFS) is one such Microsoft with a graphical interface ...

0
source

Since it is already answered. I must mention when working with CLR languages, CLR / .NET Framework Integration installs MS SQL Server 2005/2008, among others. Below are excerpts from here .

Using languages โ€‹โ€‹such as Visual Basic .NET and C #, you can use CLR integrations to write code that has more complex logic and is more suitable for computational tasks. In addition, Visual Basic.NET and C # offer object-oriented features such as encapsulation, inheritance, and polymorphism. You can easily organize related code with classes and namespaces, which means you can more easily organize and maintain when you work with a lot of code. the ability to logically and physically organize code in assemblies and namespaces is a huge advantage that allows you to better find and correlate different pieces of code in a large database implementation.

0
source

For what you described, definitely MS SQL Server. Good performance, good tools. Free.

-1
source

Source: https://habr.com/ru/post/1277497/


All Articles