开发者

What would you recommend for this project? [closed]

开发者 https://www.devze.com 2023-01-21 18:02 出处:网络
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, a
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 have a to create an application using C# for the Windows Platform.

Normally all of the work I've done was on a single machine: It had Visual Studio 2010, Microsoft SQL Server and a range of other tools.

If I use Entity Framework for example, I know it'll work because I have a SQL engine installed.

Here comes my problem and the point of this question:

  1. What would you use to save information? This software will be sold to various 3rd party companies and I can't imagine going company to company installing the SQL Server, then the tables, and then, finally it would work. It needs to Just Work™

  2. I need to be able to search through the 'records'; by dates, ID's, names, locations, etc. Using SQL would be pretty easy, but I fall back to the problem of numbers 1.

I'm sure I'm missing something every dev learns at some point so thank you in advance for the guidance.

Edit: Missed the most important part of the question, what's the project?

Basically it saves information from a receipt, then you can scan the receipt (I'll use the Office API for this), and associate that scan to the entry entered earlier. So it would be ID, Name, Amount, ScannedImage. In a nutshell.

Edit 2: Another bit of important information:

This will only have a single concurrent user and whatever persistance tool I use it must be able to save large quantities of information. I don't really know how much space plaintext with the ocassional image woul开发者_开发技巧d take up, but I'd rather have extra room than have a want for more room.


You may take a look at SQLite. It's portable, don't need to install anything and it is supported by common ORMs.


you can automatically install sql server express edition and programmatically setup the SQL database at install time. This is common practice

if you dont need all the bells and whistls of SQL server then use SQL compact edition. THis is much simpler to install but is not multi-user etc.

SQLite is cool too

SQL express is limited to 4gb. SO another common tactic is to default to doing sql express install and database setup but allow user to choose existing sql server installation and you then just setup the DB (using the same setup code)

You should tell us how much data , how many users, etc.


If you are prepared to look at something outside of the SQL square you might want to look at a document centric database such as RavenDB or MongoDB

Congratulations on going out on your own.


I've used Firebird on a couple projects. It can be xcopy deployed and, if needs change, can also become a decent server. It runs on Linux and MacOSX if needed (using Mono for the .Net implementation).

This is just to provide an additional option. SQLite looks like a good option too.


I'm going to take a wild and crazy risk here and make a completely ludicrous suggestion.

Have you seriously considered XML as your data store? LINQ to XML makes querying this stuff a snap and it's highly performant. No additional installation is required to support it. It satisfies your It Just Works™ requirement. That just leaves the disk space issue.

However, disk space is cheap. And with the space you'll be saving from additional software installations, you might not have as much to worry about as you think.

It's an option worth considering (or reconsidering).

Just throwing that out there.


If you use .net i think easiest way is setup a Sql Server Compact database, its a kind of sqlite but made by microsoft, easy to integrate to VS .Net.

Under is the description paste from the site http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx where you can download it free.

Embedded Database for Building Client Applications

Microsoft SQL Server Compact is a free SQL Server embedded database ideal for building standalone and occasionally connected applications for mobile devices, desktops, and Web clients.

Top Features

  • Free to use and distribute
  • Supports desktops and mobile devices
  • Small footprint for easy deployment
  • Fully embeddable architecture
  • No administration required
  • Single file, code-free database format
  • Support for ClickOnce, XCopy, MSI, CAB, and non-admin embedded installation options
  • Supports all Microsoft Windows embedded, mobile, desktop, and server operating systems
  • Supports a rich subset of Transact-SQL syntax and SQL Server data types
  • Microsoft Visual Studio 2008 integration
  • Supports ADO.NET, LINQ to SQL, LINQ to Entities, and the ADO.NET Entity Framework
  • Supports multiple concurrent local connections


With all details you provide, embedded databases will be best solution, go with System.Data.SQLite.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号