locked
Information about program in C# RRS feed

  • Question

  • Hi all,

    what should I use when I want to create program in C#? I mean for better speed maybe, which type of database etc.

    For now I work with WPF and as database I use MS Access connected to OleDb database. Nothing more. Or is better something else than WPF?? And when that program is finished there is two files, one program.exe and database.mdb ... It looks there is something missing, maybe some installation or ... I dont know what else.

    Simply ... I would like to know that basic information for creation a desktop app.

    Thank you for answers.


    Tuesday, May 10, 2016 10:31 AM

Answers

  • For Display technolgy you have Winforms, WPF and UWP at choice. As well as Console, ASP.Net and XNA.
    WinForms is simple, but a bit dated in areas. Think of it as the grandparent of the other two. While WinForms is not the most current it is still the easiest to learn this side of console.
    WPF is it's modern brother. UWP is the young hip brother of WPF, specially designed for Apps that run on Windows 8.1 and 10 only, but adaption depending of where that one is installed (anywere from smartwatch to a server).

    Console is what you use for very early learning, before you delve into GUI's. And for simple non-GUI programms and service development.
    ASP.Net is what you use for web applications.
    XNA is what you would use for proper games.

    For the database you have 3 choices:
    Central Server (SQL Server or similar), a Embedded DB or Distributed Database (usually a combination of the first 2 with synchronsaition worked into the design).

    Installation:
    By default a proramm does NOT need a installer. Simple programms can be copied and run. However with the ever increasing security measures it has become customary to provide a instaler for anything that is more complex then extracting a .zip archive.

    Earlier versions of VS had a isntaller project. With 2010 or 13 it was phased out. Use a 3rd party tools like Instal Shield for this work.

    Storing any data in the Programm directory is a dated concept, back from the DOS and Win 98 eras. It should no longer be used as you can't even expect to have write rights there.
    Store this kind of data in the User profile. Aquire the paths using the Specialfolder enumeartion. You can still store a template file in the programm directory (if the file has any level of complexity). But the actuall read/write can not be done there without Elevation.

    • Proposed as answer by Kristin Xie Friday, May 20, 2016 9:16 AM
    • Marked as answer by DotNet Wang Monday, May 23, 2016 1:23 PM
    Tuesday, May 10, 2016 11:49 AM

All replies

  • Hi,

    The answer is based on, what do you want to do ?

    Is it for customer, internal use ? 

    Is it a APP / Server application ?

    By example,  your WPF application and a local database could be a good thing for your application if you are alone to use it.

    But, if you would like a desktop app and a database updated by every desktop customer, you will need to create a server side database (your server or an Azure database)

    Do you want an API to update the database (it's better) or would you change the database from the desktop App (not really good)

    Do you need a cross platform APP. WPF is not supported by Mono by example. But for a very nice UI on Windows it's perfect.

    Sory, I have a lot of question but it's more some way to define your architecture.

    Regards

    Cedric

    Tuesday, May 10, 2016 11:07 AM
  • - this app is for one customer,

    - he has a lot of customers and some information about them

    - i have no experiencie with server side database (till now I use that MS ACCESS database which is stored in NAS (network-attached storage) ... and every computer throught adress \\192.168.*.*\public\some_file come here and open from here that program (there is also stored a database) ==> no idea what I am doing wrong ... I just do what I know at this moment

    - I dont know what technology to use ... I did hear about Ling-sql, Elastic search driver ... or ... but what to use ...

    Tuesday, May 10, 2016 11:41 AM
  • For Display technolgy you have Winforms, WPF and UWP at choice. As well as Console, ASP.Net and XNA.
    WinForms is simple, but a bit dated in areas. Think of it as the grandparent of the other two. While WinForms is not the most current it is still the easiest to learn this side of console.
    WPF is it's modern brother. UWP is the young hip brother of WPF, specially designed for Apps that run on Windows 8.1 and 10 only, but adaption depending of where that one is installed (anywere from smartwatch to a server).

    Console is what you use for very early learning, before you delve into GUI's. And for simple non-GUI programms and service development.
    ASP.Net is what you use for web applications.
    XNA is what you would use for proper games.

    For the database you have 3 choices:
    Central Server (SQL Server or similar), a Embedded DB or Distributed Database (usually a combination of the first 2 with synchronsaition worked into the design).

    Installation:
    By default a proramm does NOT need a installer. Simple programms can be copied and run. However with the ever increasing security measures it has become customary to provide a instaler for anything that is more complex then extracting a .zip archive.

    Earlier versions of VS had a isntaller project. With 2010 or 13 it was phased out. Use a 3rd party tools like Instal Shield for this work.

    Storing any data in the Programm directory is a dated concept, back from the DOS and Win 98 eras. It should no longer be used as you can't even expect to have write rights there.
    Store this kind of data in the User profile. Aquire the paths using the Specialfolder enumeartion. You can still store a template file in the programm directory (if the file has any level of complexity). But the actuall read/write can not be done there without Elevation.

    • Proposed as answer by Kristin Xie Friday, May 20, 2016 9:16 AM
    • Marked as answer by DotNet Wang Monday, May 23, 2016 1:23 PM
    Tuesday, May 10, 2016 11:49 AM