Advice designing .NET system
Posted on 2004-09-15
I need advice on how to structure a full software system solution.
I have some ideas but need to know which technologies should form each component part and how they should interract.
I anticipate using some form of .NET solution but open to suggestions.
There will be a central system with access to many external devices (via com ports) These devices will both send and recieve all the necessary infomaiton to and from the outside world (sensors and actuators etc)
The central system will sit and process the i/o recieved, updating the database with current informaiton and processing the inputs to produce outputs. This will happen 24/7 all the time.
Safety is critical - client would preffer to see this written in c++ but could be persuaded otherwise with good reasoning.
The central system needs to publish all its functionality via a com interface (customer request)
The other side to the system will be a user interface. It is the job of the user interface to get information from what is percieved to be the central system (system + database). I am assuming that the user would not need any info that is not in the database.
The user will be able to initiate certain actions in the central system at the click of a button (eg send a specific message to a specific item of io connected to central system). The user would then be able to view the results of the action on their screen in real time (as monitored with the inputs attatched to central system).
The users interface would essentially have no intelligence, just send and get info depending on button presses.
It is anticipated that it would look and feel like a normal windows program.
There is the possibility for the central system being needed to provide an interface that is web enabled in the future and can also communicate with mobile devices.
This goes hand in hand with possibility needed for dial up access to control server functionality and monitor system (or over IP)
My background is a windows application developer very proficient in Borland Builder needing to switch to visual studio for this job.
QUESTIONS I NEED ANSWERING ??????????????????????????????????????????????
1) Whether the above system sounds reasonable or needs re-ordering
2) What technology would form the user interface ... would it be WinForms ?
3) How would user's client system communicate with central system ? .... would it be SOAP?
4) Should client user interface should be written in c# .... any thoughts?
5) What exactly is the central system classed as ? ... a service ?
what facilities can it provide and how would it work handling requests whilst running the critical management tasks on the io
6) What are the sub components of the 'central system' should i write its controlling code in c++?
7) Can the 'central system' provide a COM interface .... is this the best type of interface to publish?
8) Should the client use the 'central system' as an intermediary or go straight to the database for info itself ?
9) How should i do the database section - external database eg. SQL Server or use a local db on the 'central sytem itself'?
such that the 'central system' deals directly with the info without needing to go through another intermediary
10) The system will need to use crystal reports to provide data summaries. Would this run on the server or client
..... where would such non functionality critical tasks take place ... server/ client? ideally want client as thin as poss.
Please provide a fully detailed answer explaining each section with options and reasons for your choice
MANY MANY THANKS. will be very interested