0

I'm asking here not because I never used visual studio but because I'm starting a new project (a desktop application) that needs to use a database.

While my experiments didn't use visual studio in "the best way", because I used third party libraries or things that weren't very well integrated with the IDE, I would like to build a project in "the correct way" this time, but I need suggestions about how should be done.

Questions:

  1. WPF to build the user interface
  2. The program will handle some documents of MS-Word
  3. I don't mind if the "database" is XML or mysql or sqlserver or sqlite database, I need to work with it "easily" (I mean without big problems and things like that), a suggestion on what type of database could I use it's nice
  4. The program may need a sort of "central" database which is common to all documents
  5. -deleted-
  6. If I don't use a central database but "every document it's a database" (like an sqlite file), should I createa Database project in my solution?
  7. Can I use SQLServer express to create a single file database, I think it's better integrated with visual studio rather than sqlite
  8. If I want handle the database tables as classes and rows as instances of these objects, what should I use (proposed by microsoft): Linq to Entities, Linq to SQL, I don't know if there are others, possibly well integrated with visual studio interface (Designers and things like that) that possibly don't need other fees
  9. Database tables needs to handle a lot of bools (each table has around 60+ bools), should I create a column for each bool or should I build a column that it's handled through bit manipulation? What happens in this case if I need to do complex select queries based upon values of this bit-field-column?
  10. I read in visual studio that there are some "project types" that I never used, like Linq to Entities project, Database project... what should I use? I need obviusly a WPF project, what should I add to my solution?
  11. Linq to Entites, Linq to SQL are "models" (as I know), which is the newest? I read something around and I understood that Linq to Entities it's the newest. I need to study one model library, what's the best one that could I study at the moment (which could be the most useful in these years also to get a job, I'm young).

Thanks to everyone and sorry but english is not my native language (and the language that I should use in this case is quite specific)

I will update the question if anything else will come in my mind

Update 1:

Sorry if my question were a bit "confused", I'm confused about all these technologies! By the way can SQL Server Express create a database on a single file? (like sqlite does) Are there any wrapper about MS-Word implementation (3rd party libraries are ok, expecially if they are free)? (I noticed that is not "beautiful" with all "ref missing" things...)

Ah and thanks about clarification, now I understood that what I was looking for is Entity framework with Linq to Entities

Francesco Belladonna
  • 11,361
  • 12
  • 77
  • 147
  • 2
    Waaaay too many items for one question. Also, "how it should be done" is a question that's always left to a designer who's familiar with the requirements. Finally, half of your "requirements" are just questions, very confusing. – Chris Eberle Jul 11 '11 at 15:12
  • I knew it but I don't know a better way to propose this in a single question, I can't do 11 questions, and expecially I need an answer inherent to the whole project – Francesco Belladonna Jul 11 '11 at 15:51

1 Answers1

2
  1. WPF is a good choice - most developers will opt for WPF in a new project as opposed to the more legacy WinForms.
  2. The handling of MS-Word documents is fine - there is interop API available and various articles explaining the various aspects of programmatically interacting with MS-Word
  3. From your requirements you could either opt for Client Side SQL Compact Databases, or have your applications converse with a server side component. SQL Express can be used server side and allows you to upgrade to a more facilitating edition in the future if needs be.
  4. See point 3 regarding Server Side Database Storage
  5. Difficult to work out what you mean here
  6. If there is no "central database" then you should not need a database project. If there is a "central database" there is still no actual need to have a database project.
  7. Yes, SQL Server Express can be used and integrates with Visual Studio easily by use of the Server/Data Explorer and various other VS modules.
  8. Linq to Entities isn't an ORM. Linq to SQL is, as is Entity Framework 4. There are many ORM's available - as a very brief summary I have found Linq to SQL Best for Rapid Development, and Entity Framework (both more complex and more facilitating) to be better for larger solutions. There are many alternatives.
  9. I've never had to deal with 60 Booleans in a single table - it may be worth considering your design. Google for "Database Normalisation" and read tutorials on the subject to be sure your design is correct before continuing here. If the 60 Bools are required, I would keep them as such in the database for ease of maintenance.
  10. This depends on how large you envisage your solution becoming. I would recommend searching google for "N-Tier Applications" to get a general overview.
  11. Take a look here
Community
  • 1
  • 1
Smudge202
  • 4,689
  • 2
  • 26
  • 44
  • Your answer is somewhat great, sorry for point 5 I didn't explain it very well, if there were any way to give you more reputation I would have done it. Really a complete answer, thanks again! – Francesco Belladonna Jul 11 '11 at 22:40
  • @Fire - most welcome, hope it helps. As @Chris said, try to keep your questions shorter in the future if possible though please! =) – Smudge202 Jul 12 '11 at 06:16