megavan said:
Well basically how to go about it, the different languages / softwares I'l require and an overview on how they'l be working together.
And thanks for the welcome
hmm, i will try to be as detailed as possible.
first of all, there are 2 major preveland technologies you can utilize to develop a complete software architecture. and you can mix and match between them also.
for frond end, you can go for either a Web based GUI or a Application based GUI.
If you choose to implement a Web based GUI then you have a lot of choices:
- PHP5: the easy to learn and implement PHP. this has developed into a very powerful platform and in its latest incarnation, it has acquired Object Oriented (henceforth OO) characteristics so you are given the oppurtunity to really organize the code and develop it in a modular and extensible fashion (something which was greatly amiss in the previous versions and therefore required the use of file includes etc.)
- .NET: another platform which has a lot of future aspect (meaning doing this project will actually benefit you a lot down the line) This has Microsoft's push behind it and from the looks of it, M$ is weaving this technology deeper and deeper into the inards of Vista and that can only mean only one thing: more demand for developers adept in .NET and associated technologies.
The Web GUI part is dealt with using a combination of technologies. The mark up language is called ASP.NET and it is basically a super refined form of the classic ASP. However, now the technology is not only mature, but also draws heavily from OO concepts which only lend to making the life of a software programmer that much easier. With the latest introduction of concepts like "ServerControls" (ok not that recent ) and "MasterPages" some of the major concerns of any software developer while developing the software are dealt with.
Also another neat feature is code behind. That means, a transparent and easy to use interface for separating code from "UI" elements is given (and used by default.) And that only HELPS irradicate sleepless nights due to the nighmarish problems which happen because of spaghetti code (mixture of UI + logic code = :huh: )
Ofcourse, you are not limited to any one language to develop the code. You have choices between C#/VB.NET/Java.NET etc. However, amonst them, C# (pronounced C Sharp) is most prominent due to the familiarity with C/C++ Overall the technology is easy to learn and the curve is not as steep as it is in case of Java (and sons )
- Java/JSP: The third and most prominent (as well as recommended choice) would be a combination of EJB/JSP/J2EE/Java 2. This is a trialed and tested method which has proved its worth over time. Many mission critical applications are based on this very architecture. The technical soundness also lends itself to easy implementation of 2, 3, n tier applications (like UI + Middle-level-logic + Database access and abstraction)
For developing a application based GUI, the technologies are also similar. But they are a bit more mature (and user friendly) compared to similar offerings for Web GUIs. This is because Application based GUIs are legacy, meaning they came first and therefore enjoy maximum software and WYSIWYG support (what you see is what you get) from the various IDEs (Integrated Development Environments.)
I am listing a few links which will hopefully help you out:
For Java:
Tutorials:
The Java™ Tutorials
Main Site:
Java Technology
JDK download:
Java SE Downloads
J2EE:
Java EE Downloads
A very popular IDE for Java:
Eclipse downloads home
For .NET:
Mother of all sites:
Microsoft Corporation
.NET 2.0 SDK:
.NET Framework Developer Center: SDKs, Redistributables & Service Packs (you can use this to easily do development in ASP.NET, C#, etc.)
Visual Studio IDE (the best IDE in town for .NET):
Visual Studio Express (these are the express editions. will serve wonderfully well for learning the technology.)
For PHP:
Mother:
PHP: Hypertext Preprocessor
PHP downloads:
PHP: Downloads
Loads of resources:
PHP Editor Review - PHP IDE
For backend development (and maintaining the cost low) the choices boil down to choosing one of the many freely available high quality databases.
Amongst them, MySQL stands out. It has been around for a number of years now and most recently (with the introduction of version MySQL 5) a lot of features have been added (most prominently, Stored Procedures, triggers, etc.) This brings MySQL up to the level of many commercially available database servers (in terms of features atleast.)
Links:
you know what:
MySQL AB :: The world's most popular open source database
Downloads:
MySQL AB :: MySQL Downloads
Documentation:
MySQL 5.1 Reference Manual P i know its long, but its worth every page
)
Back end logic code programming is best done in a OO supporting language. Till date, C#, Java, COBOL, etc etc have been used in various incarnations to program the back end logic. However, because THIS code is responsible for driving most of the business core, it requires a lot of experience to be able to fully grasp the situation and code accordingly. As they say, Rome didnt get its KFC in a day! :tongue:
My advice for you:
I suggest you implement a 2 tier architechture using a technology like .NET and use the easily available Express IDEs to do it. This will eliminate some of the learning curve associated with grasping the technologies and will allow you to focus on writing code, and NOT trying out which configuration file goes where. Once you have learnt the basics, the whole sky is yours and you can explore and shift to which ever technology you deem fit for your career.
Now I hope this helped.....Take care and dont frown to ask more queries.....
Here to help
Karan