|
|
Hi to All,
I am working on C# Winform application (Visual Studio 2010) with MySql as back-end. Meanwhile I am looking for a suitable solution to a problem about How will I deploy this application along with MySql server. As this will be multiuser application, embedded database is not an option. It need to be a server based.
There should be one server, for which this combine deployment is required, for client, ofcourse only application installation is required.
So what are the options do I have for deployment? If I am offering this application available for download from a website, should I break it into 2 separate downloads? One is MySql itself (I am using XAMPP bundle for MySql because it is easy and portable), Second is the application alongwith it's all dependencies. If this approach is followed, then I've to setup whole database required by application from within the application (which I think is not so difficult). But then end user have to download the whole package of MySql, is there anyway I can reduce the size of whole XAMPP package as I am only using MySql database, As I don't use anything else in XAMPP (PHP/Apache/Mercury Mail etc) can I remove them so that size of bundle will be small enough for end user to download?
I've searching long for the solution, and many forums has many questions about it, but there are no helpful solutions. I am looking for better solution from experts of this forum.
Thanks and best regards
Ahmed
|
|
|
|
|
There should be some tutorials out there explaining how to create a .Net deployment (including sub-installs...). This requires some fiddling around though, but it can certainly be done.
A second option is to write an install script yourself. This is probably the easiest way. You create a zip folder the people can download with an install.xxx or setup.xxx script that executes the correct install programs included in the zip file.
Third option is as you say. It is less user friendly so you're required to write a good reference about how they should install it, complete with troubleshooting guide.
Hope this helps.
|
|
|
|
|
V. Thanks for your reply, I guess 2nd option will be more feasible for me. Can u guide me to some good tutorials/samples related with my issue? Like MySql and C# winform application.
Regards
Ahmed
|
|
|
|
|
if you're deploying on windows machines any batch or WMI script will certainly do the trick as they run natively. (eg perl or python need the libraries installed) For Unix systems you'll need another script.
There are plenty tutorials out there so I advice to choose one and go through it. When you get the hang of it you need to check how to install MySql and .Net assmblies through command lines. Google will present more information then I can.
There is no quick solution I can give you as this custom for your situation. Google is your friend.
In this case, there is no shortcut or quickfix, this will have to go via the hard way...
|
|
|
|
|
V. Thanks for your reply again, despite of fact that there are no quickfix or shortcut, and if choose between WMI Scripts or batch, end-use still have to download the complete bundle alongwith MySql server, if the server installation is required. Only then will batch or script will work.
|
|
|
|
|
No, you install the server. The end user just needs to install the client.
Perhaps only some dll's are necessary, perhaps it's worth while to look that up.
|
|
|
|
|
Ahh...I think I've not make myself clear regarding my issue.
This application is not for my organization, it is commercial software, general purpose accounting application. So any organization that needs it will download from website and do the install (server or client). I need to provide them some quick and easy way to do both installations as an when required. For server PC, the installation will be Application + MySql Server and for client PC only Application required.
|
|
|
|
|
In that case I would just write a disclaimer stating MySQL server is required for this application to run, with a link where you can get it. In principle it is not a part of the application and it's best to avoid "responsibility" for something you don't own.
|
|
|
|
|
But I thought MySql is free or opensource? doesn't that make it freely distributable? Secondly, how about I distribute XAMPP with my application? As it is lot easier to use then to configure/install actual MySql server?
|
|
|
|
|
ahmed_one wrote: But I thought MySql is free or opensource?
It is free, but you don't "own" it? I'm not sure what your problem is here .
MySQL is a fully supported system with documentation, tuning packages, blogs, forums and what not.
And yes you "can" distribute it, but if you do, you're basically stating that you will provide support when it doesn't work. IOW if I would use your product and I install the server and it does not work, I will call you. If you tell the user MySQL is a requirement for your application to run, the client needs to install and configure MySQL himself. The first person to call in case of problems are the MySQL people.
Also make sure that your installation creates the database
I have no experience with XAMPP so I can't say anything about that.
|
|
|
|
|
Yes that was confusing till now...Thank you...
So then I will let the user know that MySql is must for using the application. Or point them to XAMPP so that they only need to download the package without having the trouble of configuring it, it's just download and run, so it will be much less hassle for them.
Thanks a lot for your guidance.
Regards
Ahmed
|
|
|
|
|
no problem. Glad to have been of some humble assistance
|
|
|
|
|
I have a WPF userControl which consists of two text boxes, one of which is read only. I use this control in a TreeView. When enabled it works fine, however, when enabled is false and I click on it the selection color is displayed (this doesn't happen when enabled is true). I would like it to not display the selection when the control is disabled. How would I do this?
|
|
|
|
|
You might get a better response int the Silverlight-WPF forum[^]
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952)
Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)
|
|
|
|
|
I'm looking for a working example that I can load into Visual Studio and connect to my Sharepoint server and enumerate through the subsites pages. For the last 6 hours I've been trying to figure out how to connect to the Sharepoint web services and do read only and have been failing and have literally made 0 progress. Something is wrong with my understanding
I need a generic working basic example so that I can use that as my baseline and build from that.
Thanks
|
|
|
|
|
You may get better help by asking this in the Sharepoint forum.
|
|
|
|
|
As ths subject, vs2012+.net4.5
when I try to do some test, there comes a wrong message "EventSource does not have event property!"
But the exmples use "EventSource.Event"
does anyone have some clues?
modified 27-Mar-14 2:42am.
|
|
|
|
|
coinci wrote: does anyone have some clues? Yes, there is something wrong in your code. However, unless you show us the actual lines of code where the error occurs, we cannot offer anything more.
|
|
|
|
|
Thanks for your reply.
Because a class of the exmple has the same name in the SDK,
I misunderstood the meaning.
Thanks anyway!
|
|
|
|
|
I'm looking for some advice on an approach to implement PC to PC communications.
Here's the scenario:
PC #1 - Running a VB6 application that receives data from several vision inspection systems. This data is received at a rate of roughly 1KB per 50mS.
PC #2 - Running a C# application that is essentially a terminal with a nice GUI and manages production statistics.
An additional "nice to have" would be to have the GUI application on PC #2 start the VB6 application on PC #1 with some event args that denotes the configuration file for the inspection systems.
I'm struggling to think of the proper approach to load the VB6 application from PC#2 and move the data from the VB6 application to PC #2 (C# application) preferably real-time.
My initial thoughts were to build a small Socket server application that resides on PC #1. Build a winsock application for the existing VB6 application, and Socket application for the C# application on PC #2.
I would expect the example above to follow the routine below:
1) C# application PC #2 initiates a connection to server application on PC #1.
2) C# application on PC #2 gives server application the configuration file in which to load.
3) Server application starts the local VB6 application. 4) The VB6 application begins sending data to the local server application (PC #1).
5) The server application receives the data and forwards it over to the C# application on PC #2
6) Once production is complete, C# application tells the server application to shut down the VB6 application.
Are there any better / simpler approaches? Sockets? TCPListeners? Pipes? etc.
Thank you in advance..
|
|
|
|
|
Your options here are:
- DCOM
- TCP or server on machine 1 and client in the UI on machine 2
- UDP transceivers in both machines
- Some kind of high level service on machine 1 (e.g. REST, WCF) and client code on machine 2
DCOM is disgusting and horrible and I really wouldn't go that way.
All the other options require a daemon (in Windows land, a service) that is always on, so you can request that it starts the other application.
Depending on how strict you want 'real time' to be, I'd pick either a TCP client/server or UDP open channel model. What you want to communicate is simple enough that imo high level service frameworks are overkill, and they add bandwidth and latency.
UDP is faster but less reliable (i.e. packets can arrive out of order or be dropped). If you want to get the latest data and don't care about prior updates then use UDP and send an update in a single packet (1KB will easily fit in a packet). If you want the full ordered stream to create timeseries data then use TCP and some kind of message protocol (see my article for one way you can do that).
|
|
|
|
|
|
No it is not urgent and you need to at least attempt to do your homework yourself.
|
|
|
|
|
Member 10702142 wrote: please help me out
Steps
1. Learn basics of programming in C#
2. Create a design
3. Implement the design using 1 and 2
4. Test and debug 3
|
|
|
|