Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Planning a programming project by example (C# or C++)

I am in the last year of undergraduate degree and i am stumped by the lack of example in c++ and c# large project in my university. All the mini project and assignment are based on text based database, which is so inefficient, and console display and command, which is frustrating.

I want to develop a complete prototype of corporate software which deals in Inventory, Sales, Marketing, etc. Everything you would usually find in SAP. I am grateful if any of you could direct me to a books or article or sample program.

Some of the question are :

  1. How to plan for this kind of programming? should i use the concept of 1 object(such as inventory) have its own process and program and have an integrator sit for all the program, or should i integrate it in 1 big program?

  2. How to build and address a database? i have little bit knowledge in database and i know SQL but i never address database in a program before. Database are table, and how do you suppose to represent a table in a OOP way?

  3. For development type, which is better PHP and C++ or C# and ASP.NET? I am planning to use Web Interface to set form and information, but using a background program to handle the compute. .NET is very much integrated and coding should be much faster, but i really wonder about performance if compared to PHP and C++ package

thank you for the info

like image 348
Lunan Avatar asked Mar 17 '10 05:03

Lunan


People also ask

How can I make a project in C?

From the menu bar, click File > New > Project. In the Select a wizard window, expand C/C++, select C++ Project, and then click Next. In the Create a C++ Project window, in the Project name field, enter a name for the C++ project. From the Project type list, select Makefile Project/Empty Project, and then click Finish.

Should I plan before I code?

Being prepared and having a plan can do a lot of good to your code. Making sure you exactly know what you're going to build and how you're going to build it can help you increase the quality of your code.


2 Answers

This may not answer your question directly, but I thought this might help you get started in some way. So here it goes: I would say, "think through the process". This means, think through the software development process:

  • Gather requirements
    • Identify and define the problem.
    • Get as much information/facts as you can. (turn on green light, think about everything that you want to go into your software)
    • Come up with a baseline (turn on red lights, what you really want? the minimum functionality your software "must have" - cant live without)
  • Analyze
    • Know what you don’t know, what are the missing facts?
    • Evaluate your information or lack of it/reliability of information source.
    • Infer facts that you don’t know.
    • Form an assumption, opinion, or possible solutions.
    • Consider alternatives and implications of each solution.
    • Form an action plan.
    • Identify technology pros/cons.
    • Decide technology
    • Comeup with a functional specs.
  • Research
    • Dig into stuff that you would want to know (Best database, ORM, design practices, code samples - gather everything, read about inventory systems that are already there)
  • Design
  • Develop
  • Test
    • Fix
  • Prepare deployment plan
  • Release the product
  • Gather user feedback
  • Analyze user feedback
  • Plan for items in next release.
  • Repeat steps

And Enjoy!

like image 94
KMån Avatar answered Sep 21 '22 19:09

KMån


Before I start this is a shallow answer to a deep question.

1) It looks like you have a reasonable grasp of the major components of your target application. As a .net developer I'd build assemblies that matched broad areas of functionality (not sure what the equivalent is in PHP) and then you can use those assemblies together as a single large app, or seperately as required. It's unlikely you'll get it right first time, so build it how it feels right, and then do some ruthless refactoring to make it better once you've got a handled on the problem.

2) This whole area is covered by Object Relational Mapping - ORM, NHibernate is the best of the bunch in the .Net world. BTW if you learn that you'll be way ahead of the game come graduation/work time. Raw sql is so last decade. I guess you know that Sql Server Express is a free download?

3) For development go with the languages/environment you feel most comfortable in. My preference is .net, and the integrated coding is much faster. Performance is definitely good enough, especially as this is learning project - SO runs on .Net and that supports a gazillion users pretty well.

Enjoy

like image 35
MrTelly Avatar answered Sep 24 '22 19:09

MrTelly