Basically I'm building a big website which will have many users. I am using Dreamweaver CS5 on mac.
It will have a similiar kind of set up as the silicon cape website.
So should I use any advice will be appreciated since I am relatively new to web development.
Dreamweaver primarily solves the visual design (and HTML output, to a large degree) part of a web site, not the application programming and integration between the visual design and the application itself.
Drupal is a pre-built content management system that likely offers much of the functionality that is offered on this web site, and using it would mean not having to do the majority of the programming work involved in providing it. You could then take the visual design and import it into Drupal as a theme, and you could get pretty far along your path. This will probably allow you to achieve a lot very quickly, but you will hit a learning curve once you want to do more complex things. The same goes with other pre-existing content management options available to you.
Alternatively, you will need to choose a programming language in which the application part of your web site will be written in. This choice will follow from your existing knowledge of programming and programming languages, the resources available to you (your friends and others who are willing to help you learn the languages they know), and other factors mostly specific to you. I can recommend Python (using Django, especially) or PHP (using one of many pretty decent frameworks) if you don't know where to start. It will take you longer to get started using this route, but you will learn a lot, and you can make things exactly as you want to make them.
I am sympathetic to your goals but at the same time a little puzzled. You say that you wish to build "a similiar kind of set up as the silicon cape website" and if as they say emulation is the sincerest form of flattery, then that must be good :-)
But then comes the confusing part where your ambition is for a "big user based website". We currently have here over 4500 members, and are constantly growing with Ning coping quite well with this. How much more than this do you need your choice of platform to be able to handle?
I commend your choice of Dreamweaver as I am myself a great fan of it and have used it to build my own personal web sites. It provides you a lot of pre-built templates and components for your web site. And if these do not meet all your requirements, why don't you check out the CFML (ColdFusion Mark-up Language), which you can also leverage from your dreamweaver IDE?
If your need is to be able to tie in a data handling back-end to your web site, DW will provide you CFML standard templates for the more common transactions, without you needing to do any, or much programming. You can also pick up enough basic CFML to enable you cope with the simpler actions you will wish to have performed, without having had to prematurely invest too much effort in learning a new programming language before you decide which language you wish to learn over the long haul.
Whatever you decide to do, it is important that you check before you settle on a provider to host your web site, that they do indeed have the servers, which support your choice of technology, whether this be JSP (Java Server Pages), Coldfusion, PHP, ASP.NET etc. (Although not essential, it also helps if their servers support Dreamweaver extensions!). In other words, your final choice of language / technology and the availability of the corresponding server engine at the I.S.P.s are two inter-connected issues!Wishing you the best of luck,
Building a web site for a few tens of thousand monthly active users is very different (both technically and organisationally) from building one for a few hundred thousand, which in turn is very different from each of a few million, few tens of million, and few hundreds of million, which is where Facebook is.
The types of decisions you need to make to support various user volumes are vastly different. Supporting larger user groups requires a lot more moving parts, which requires more attention, more discipline, and generally a lot more time.
While a million users might be a great goal, I can guarantee you that you will most likely have to struggle with acquiring the first tens, hundreds, and thousands of users. Instead of trying to build for a million, try build for a few tens of thousands - this is something that a single dedicated person or small team can achieve with the great resources available to build web sites and to manage/co-ordinate yourself and small teams. These initial users will allow you to understand how accurate your current vision for your end-goal is, and allow you to change your plans based on how your theories are working in the real world.
Again, good luck, and keep on asking questions.
Herewith some general knowledge, to help you discover terminology and to find more things to discover and read about.
thinking of very large websites, data and managing it.
1) the delivery of server content to the client (dns, network cards, bandwidth)
2) the processing of data, calculations (server code, power of hardware)
3) accessing storage whether it files, databases (data)
In all cases there are many ways to scale. scale up - and scale out (example. look at http://en.wikipedia.org/wiki/Scalability )
Load Balancing is another term for you to research on, basically when you go to www.google.com you are redirected to one of many servers which is being used to separate users (so you all not hitting one machine).
Databases also require work to avoid being too slow. Sharding is a term you can look at. denormalized and normalized database design is another.
Speed of the hard-drive (read/write time is also very important), consider the speed of the network card, the pipe you are sending data through and the speed in which you read and write the data on the other side of that pipe.
Caching is a good technique for point number 1, 2 and 3 (above), as it reduces the amount of data reading, processing etc
you get different types of caching.
Of course shared hosting is not something you want for large volumes of users (anything in excess of 10 000 users).
calculations will be needed on a per project basis.
How many users per day, how many are simultaneous requests? or is it spreadout?
how much data is being processed and returned per user. many many questions.
After reading if you have any other questions give me a shout.
PHP is the now and future. As Neil said Drupal is one open source Content Management System (CMS) that makes the job easy for you.
Another CMS, which is my personal favourite, and I develop my websites on is Joomla. You can pretty much get the SC like wall as an off-the-shelf application, check JomWall ($69). Design a Joomla template or buy a Joomla template and have it customised and you are sorted.
I'm not bringing you down. Just providing my observations.
I didn't mean to insult you.
Francois, we started on the same path that you are on about 3 years ago. Just learning the basics of code and dreaming big. That's great and don't ever forget what you are aiming for.
We can save you a h*** of a lot of time. DRUPAL. If you learn how to install it. Learn how to use "Views" and "Panels" which should take you about 2-3 months you'll be able to build a better website than most. We built http://www.muisbosskerm.co.za/ after 4 months and www.market-fleas.com after a year (which is a fully incorporated ecommerce site with social networking . The best thing about Drupal is that it worries about the more complicated, techinical back-end stuff. Learn Drupal.