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

12,777

Solution 1

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

Solution 2

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!

Share:
12,777

Related videos on Youtube

Lunan
Author by

Lunan

Student, searching for a place to hangout :D

Updated on April 19, 2022

Comments

  • Lunan
    Lunan about 2 years

    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

  • jrista
    jrista almost 14 years
    While I think NHibernate is a good product, I would disagree that it is the best of the bunch. EF v4 has radically improved from v1, and offers many things that NHibernate does not. It is a very solid product, with considerable flexibility and extensibility, fantastic LINQ support, amazing tooling (far out-pacing anything available for NHibernate), and pretty amazing multi-tier support with self-tracking entities. Forthcoming improvements like Code-Only support only solidify EF v4 as a major contender for the ORM crown.
  • Codeman
    Codeman almost 11 years
    This is not an answer. This is much more suited to a comment.
  • Stefan Steiger
    Stefan Steiger about 9 years
    @jrista: Entity framework simply is still way too slow for a large application. I'd go with a lightweight DAL/Mapper like Dapper.NET which is actually used here on stackoverflow. Also, while SQL-Express is a good choice for Enterprise, I'd go with PostGreSQL instead (though maybe for a database beginner, SQL-Express will be the much better choice).
  • jrista
    jrista about 9 years
    Well, these days, some five years on, I've ditched SQL databases entirely. I use no-sql stores most of the time, usually MongoDB with a bit of Solr here and there. I've found both of those are significantly faster than SQL in any fashion most of the time, with a very few exceptions. I've also moved on from C#/.NET in general to JavaScript stack, AngularJS, Node.js, and MongoDB for full-JS stack. It's a breath of fresh air, the simplicity of it all, if an age-old seasoned veteran of C# does say so himself. ;)