Building a dabase for a network of users. I need your thoughts.


I am a recent computer science graduate and I am developing a small (but growing) software application for my employer.  The design of the application is in its infancy and I am in need of “Experts” who can coach my direction with its development.  

Application Information:
-      The  application will be used to collect, process and publish information in real time.  I intend to leverage a platform independent user interface and a database backbone to accomplish this.

-      initially the application will be used by 300 to 400 users – but this may quickly increase to something between 3,000 and 10,000 users.

-      The application will need to display information from the DB to the user, and allow the user to update that information relatively quickly.

-      The application will need to produce reports for the user – similar to the reports in MS Access ( I WILL NOT USE MS ACCESS.)

Development tool information:

-      I can code in C#, SQL, VB, C++, and a variety of other popular languages.  I am most comfortable with C# , C++, and SQL.  I very much enjoyed using visual studio but have not fully explore how easily it integrates with a declarative language (SQL).  After some initial research, I am seriously considering using Visual Web Developer and MS Sequel Server.  I am a novice at integrating SQL with other languages.

-      I need to find a good reference (preferably a textbook) that can aid my understanding of how databases, and platform independent user interfaces are appropriately designed.

Given this information, I now need your thoughts on ANYTHING that will be useful for me to know about the above issues, or others, that I have not even addressed.

Thank you for your time,

Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

When you are going to manage large amount of users, your application should be so dynamic and should be coded properly to be able to support such users.

If you are going to have large amount of data in SQL and alot of queries, I suggest you to use Oracle database. Fast, secure, but not easy!

If this software will be client/server based, I suggest you to have good authentication and encryption support and if it is available run the server in a different platform such as Solaris and code server in Java.

If you think your clients can use different operating systems, I suggest you to code in Java as it is most OS independent language.

Ask your questions and I'll try to answer them...
Given that you are in need of both a good DB Server, that you are comforatble in C# and need something that integrates easily (DB & Logic) I'd say you should definetly go with Visual Studio 2005 + SQL Server 2005. This will allow you to write in C# and T-SQL, Visual studio even has Wizards that will help you utilize your SQL and it let's you use Crystal reports for reporting.

I would have to disagree with CSecurity on reccomending java on the grounds of beeing platform independent; as long as you're coding a web-app the only dependency you will be creating is to the server OS.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
>> The  application will be used to collect, process and publish information in real time.  I intend to leverage a platform independent user interface and a database backbone to accomplish this.

- So OS indepentance is needed! Also I think for large options and supporting such large users you need to have client/server based software. Not web interface as web interface is limited.
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

I disagree with CSecurity.
Large number of users is not a limitation web-based application (quite the opposite is true).
Large number of users isn't limitation for web-based application.
Web-based application have limitation in coding... For example deploying cryptography and sending custom commands to clients or broadcasting live and stream data... And alot of other limitations!
Hi Travis,
I myself, am currently working on such a project (90% complete). I want to give you an idea of how I went about completing this task to create an infinitly expandable application.

My design started around my off premise database, which is on a very powerful server and could be expanded via cluster services (running on windows 2003 server). The next step was to develop a way for this information to be accessed from anywhere in the world, but to have limitations on that access. So I created a service in Win32/C++ that sits on a server with access to the database, that listens on a spec. port for incoming connections (TCP). Services are applications that are monitored by the operating system and can be started as a SYSTEM user so that no login is needed for the application. The connections pass their autorization information, and once validated they are then able to send packets that will actually respond with data from the DB. My client application, due to the complexity and situation, was written in MFC/C++ and stores login info in the registry for fast loggin in. This entire application is built upon a unique protocol that I created to satisfy the complex needs of the client applications (modeled after Cisco's SCCP/Skinny). I would recomend this route because you will quickly find how expandable this server/client situation can be. In the future - from our web site - we will be able to program a COM dll to interface with ASP to perform the same capability of the MFC client software from our web site!

As you can see, the most important peice of the puzzel to this project was our server service, that acts as the client autenticater and traslater. I chose Win32 for the speed and low overhead. Though I had to use some MFC (CDatabase/CRecordset) for the SQL interface ;). My favorite Code Projector, Nish, wrote a great beginners article on C++ services:

The key here, is flexablity and expandablity.

I hope this will serve as some insight for your project. Good luck,
travishabermanAuthor Commented:
Thank you for the insight one and all.  I will have more questions comming soon!  Thanks again, Travis...
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.