I'm currently writing a program which will need to incorporate writing its output to a database rather than flat text files.
I know that if you use a Database system like SQL Compact, when you build and publish the program (or just build and distribute), your client will have to download and install SQL Compact Server.
My question is:
When using the built in Microsoft Office exports (like writing a Word File, or Writing an excel file), does the client need to have Microsoft Office installed on their machine to make use of these?
When writing to an Access Database, does the client user need to have Microsoft Access installed on their computer?
I'd appreciate any response.
Yes to Excel. You could create the Access database via ADO or ODBC, and that comes with Windows itself. You could store data from your app there, and the clients would use it through your app (or any other that can connect via ADO/ODBC).
Using the MS Office COM automation requires that the MS Office product be installed on the machine running the automation.
There are third-party code libraries that replace that functionality with their own code, meaning your app could create it's own Excel-compatible files. However, your users would still need Excel to use them.
You can also use other databases (eg., MySQL, Firebird, SQLite, and others) that are available that wouldn't necessarily cost your client anything if they installed it (or, for some, if you included it in your installation for them).
Related
I am developing desktop app using wpf mvvm,however I am confused as to how should I proceed with developing standalone application using sqlite,sql server compact etc
If you need a database (really need a database), I suggest using Entity Framework using the code first approach. This can create a local database for the application w/o the need of a database server.
However, strongly consider if you could just use files in the file system. It is amazing how much you can load into memory and if you want this to run on client machine, you likely don't have so much data that you can't just load the data into memory.
SQL Server Compact requires a separate installation step with administrative credentials.
SQLite is a library that can be compiled directly into the application.
In the case of .NET, it is a part of the System.Data.SQLite package, so it is automatically available when your application is shipped with this package (see SQLite deployment for .net application).
I'm creating a VB-based application in Virtual Studio 2013, and up until now I've been testing the tables used for its operation in a local MDF file. Obviously, I need to find a better solution for deployment as this will need to be used by multiple users. I decided to go with a SharePoint list for ease of access and better local control. (We have SharePoint Server 2010 running)
When I try to add a SharePoint Connection in the Server Explorer, it tells me I don't have Foundation or Server installed. Checking our corp's software request tool, I didn't find either of those. There's a 'SharePoint Designer' option, and another that sounds promising is 'Microsoft SSIS SharePoint List Adapters with SharePoint'. I couldn't find any info online about whether those would fit the bill. Would either of those serve the purpose of standing in for Foundation or Server? If not, I'm sure I could find a way to request Foundation but I'm sure that would add quite a bit of delay while they vet it for business use.
Also, if I install the necessary software for development on MY machine, will those dependencies be included in the executable so my clients wouldn't have to install those SharePoint tools as well?
If you want to access and manipulate with your sharepoint list from your code, you can look at Sharepoint CSOM. It allows you to remotely connect and proceed CRUD operations with sharepoint list.
Hi I have a Visual Basic Project Exe which runs fine on a Single Machine i Want it to be Execute for Multi User in LAN. I Have Used Crystal Reports in My Project and database is MS Acess. Please Help me how run the Project in LAN..
A VB EXE is a client architecture which usually needs installing on each client machine using it. The code in the EXE could/would normally then connect to external shared, singular resources over a network (such as databases, reporting servers etc.) but the actual EXE itself would typically be duplicated upon each client computer.
If you need all the users to open the exe and have it always run on the same machine, then you could create client shortcuts or use a script with a CreateObject("application.NameHere","serverToRunAppOn") call &/or modify the DCOM settings for the app through the dcomcnfg tool...
However I'd sugguest instead re-evaluating your architecture. Possibly turning your app into a better practice web-based or MS Access shared MDE+MDB solution for clients to connect to.
I have a database system that I use for work which is self developed. I use an Ms Access database to collect the information from the form. The application works fine and I have no issues with it.
My company is taking my desktop PC away from me and replacing it with a laptop, however they've pre-warned that office will not be available on this laptop as we can hot desk if office applications are required.
The question is, will my application still be able to databind to the Ms Office (.accdb) database and write via SQL, even though office is not installed?
Your VB.NET application can manipulate Access .accdb database files without having the Microsoft Access or Microsoft Office applications installed. You do need to have the Access Database Engine installed, which is available as a free download here:
Microsoft Access Database Engine 2010 Redistributable
consider I write a desktop software in C# for example,and it reads/writes data to/from sql server,Can I run this software on a system without having sql server installed.
I saw the two links of stackoverflow,but did not get my answer.
I want to know CAN THAT BE DONE OR NOT?
if yes,how?
thanks in advance.
Sql Server must be installed, and running, somewhere to be able to use it. However, this does not need to be on local machine. The most common scenario for Sql Server is to be installed on a dedicated server machine off in a data center somewhere, and either many clients will connect to and use the same database, or one or a few web servers will connect potentially many times per second with different requests. It's not really intended for desktop use.
If you want to build a desktop app, and you want a database to use only as a local data store, Sql Server is actually a really poor choice for this. That includes the free Sql Server Express. Don't use it for applications that will be distributed to end users, where all the data will kept on each user's local system. It is a server-class engine, and works best when it can run on dedicated hardware.
Instead, you want a desktop-class or in-process database engine, such as Sqlite, Sql Server Compact (not Express) Edition, or even MS Access.
There are many SQL engines that can be embedded in desktop application. For example SQLite, there should be one with C# interoperability.