473,787 Members | 2,932 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

A big project

Hi everybody,
I am going to start a new company in a little while. The company will
be founded when the first project will be in the alpha version. Several
other projects will be done in future. My problem is determing what
platform I should use.

I know how to program in several languages but ignore this for the
moment.
I am going to start a big project like blogger.com, flickr.com,
cragilists or something like that. The fact that the project will be
(hopefully) popular implies security issues and application
stress/scaling issues as well.
For these reasons, I need to be very careful on the choise of the web
development platform. I have 3 candidates:

- PHP
- Ruby on Rails
- ASP.NET

My aim is SPEED OF DEVELOPMENT, LOW TIME TO LEARN THE TECHNOLOGY and
APPLICATION STRENGHT (to security and to scalability issues).

Could you tell me what do you think of these 3 technologies for my
needs. I am tempted by Ruby, but lots of people says it is not mature
enough. Php, they say is not so secure and robust. ASP.NET I need 2
years of study and 4000 pages, for doing an hello world (ok I am
overestimating :-)).

Can you help me? Tell me your comments?

Thanks in advance,
Mike

PS: THANK-YOU, it is very important for my future the choise of
platform for my company.

Sep 15 '05 #1
5 2740
Mike Novecento wrote:
Hi everybody,
I am going to start a new company in a little while. The company will
be founded when the first project will be in the alpha version. Several
other projects will be done in future. My problem is determing what
platform I should use.

I know how to program in several languages but ignore this for the
moment.
I am going to start a big project like blogger.com, flickr.com,
cragilists or something like that. The fact that the project will be
(hopefully) popular implies security issues and application
stress/scaling issues as well.
For these reasons, I need to be very careful on the choise of the web
development platform. I have 3 candidates:

- PHP
- Ruby on Rails
- ASP.NET

My aim is SPEED OF DEVELOPMENT, LOW TIME TO LEARN THE TECHNOLOGY and
APPLICATION STRENGHT (to security and to scalability issues).

Could you tell me what do you think of these 3 technologies for my
needs. I am tempted by Ruby, but lots of people says it is not mature
enough. Php, they say is not so secure and robust. ASP.NET I need 2
years of study and 4000 pages, for doing an hello world (ok I am
overestimating :-)).

Can you help me? Tell me your comments?

Thanks in advance,
Mike

PS: THANK-YOU, it is very important for my future the choise of
platform for my company.

It is nice to see that your objectives each lead to another platform.
- Speed of development will probably lead to Ruby on Rails, especially
when your projects gets bigger. Be sure to take the unit tests seriously
if you really want speed of development.
- Low time to learn suggests ASP .NET. You can "drag" a webpage together
fairly easily. However, if you *really* want things done, it is at least
as difficult as any other platform.
- As PHP gives you very much control over what exactly is sent to a
browser, it may be a good option for strength. But the strength can only
come from the programmer. It can be weakened by the platform, not made
stronger.

Best regards
Sep 15 '05 #2
It's a beautiful answer Dikkie.

Thanks,
Mike

Sep 15 '05 #3
Dikkie had a very good response - let me add my 2 cents. You said that
security is a big concern. In my experience (at least between the
platforms you mentioned) the way that you approach your coding is more
important then what platform you pick. You can make a very insecure
application on ASP.NET and a very secure application on PHP or the
reverse. The differences in security between the two platforms is
negligible compared to the security issues you as a programmer can
introduce.

As far as scalability goes: most people will tell ASP.NET is more
scalable then PHP. In my experience this is simply not true. If you
write good code and install the Zend Optimizer (which is free) your PHP
applications will be very scalable. I have a friend who runs a
PHP/MySQL site that gets over a million hits a day. He has everything
load balanced across multiple servers.

I don't have a lot of experience with Ruby so I can't speak for it's
security/scalability.

On a side note - you mentioned that you plan on building a big site. I
think this is the wrong approach and you will be very disappointed with
the results. Most of the successful sites I know of were either created
over a weekend and became popular because it was a new idea that people
liked or they were created by some big company with tons of money to
spend on advertising. My suggestion would be to take your site idea,
distill it down to what you can build in a weekend, and throw it out
there for people to try. Only after you see how people use it will you
truly understand what it is people will like using. If you try to build
it all at once you will build in lots of unnecessary features that will
just waste your time and annoy your users.

--Bradley
http://www.gtalkprofile.com/profile/2.html

Sep 15 '05 #4
"Mike Novecento" <mi************ @gmail.com> wrote:
I am going to start a big project like blogger.com, flickr.com,
cragilists or something like that. The fact that the project will be
(hopefully) popular implies security issues and application
stress/scaling issues as well.
[...]
My aim is SPEED OF DEVELOPMENT, LOW TIME TO LEARN THE TECHNOLOGY and
APPLICATION STRENGHT (to security and to scalability issues).


Contrary to the popular believe, the PHP language is a perfect choice
either for small and for large projects, provided that you follow some
guidelines:

- Prevent collisions between constants, global variables, functions and
classes adopting the naming schema MODULE_NAME.

- Security: build your set of validation routines. All the input from
the user must be validated by these functions. Every function should
return the error message or the empty string:

function Validate_TYPE($ name_of_the_fie ld, $value_of_the_f ield)

- Security: never send to the client informations about the internal
status of the WEB application. Always store them in the user session.

- Security/Rapid development: use a framework to build WEB applications
that support call-forward functions, call-backward functions and that
implement a stack of function calls. A "call-forward" is the function to
be called when the user click an anchor or a button of the current
page. The call-backward is the function that will be inserted into the
stack if the corresponding call-forward is called. The stack implements
the same concept of a processor stack of data and return address.
Just an example:

function Data_Confirm($d ata)
{
PageHeader();
echo "You entered '". Text2Html($data ) ."'. Confirm?";
Form();
# Set a button associated to the call-forward bt_return():
bt_button("No", "bt_return" );
# Set a button associated to the call-forward Data_Save($data ):
bt_button("Yes" , "Data_Save" , $data);
Form_();
PageFooter();
}

The HTML code generated by this function might be like this:

<HTML><BODY>Y ou entered 'xxxx'. Confirm?
<FORM method=post action=your_web _appl>
<INPUT type=submit name=button_1 value="No">
<INPUT type=submit name=button_2 value="Yes">
</FORM>
</BODY></HTML>

function Data_Save($data )
{
/* ...save $data... */
# back to the caller:
bt_return();
}

Note that every function generate a WEB page. Note that all the
informations about the internal status of the application are never sent
to the client, indeed they are stored inside the user session. The only
things we expect from the client are: a session cookie, the values of
the form fields, the button pressed.

- Regularly check your WEB application with a source validator. I
developed my own source validator, PHPLint, just to this pourpuse and,
although not finished yet, it promote a good programming style similar
to the Java language.

Regards,
___
/_|_\ Umberto Salsi
\/_\/ www.icosaedro.it

Sep 16 '05 #5
Hello,

on 09/15/2005 03:09 PM Mike Novecento said the following:
My aim is SPEED OF DEVELOPMENT, LOW TIME TO LEARN THE TECHNOLOGY and
APPLICATION STRENGHT (to security and to scalability issues).


If your project is Web based, with PHP your are on the right track.

If your project is big and you do not have much time, you need to use
powerful tools that let you go from design to implementation is a short
period.

My recommendation is for you to take a look at mature code generation
tools for repetitive tasks. The reason for this recommendation is that
with mature code generation tools you can drastically minimize the time
you take to write, test and debug your project.

There are code generation tools for many purposes. For instance, after
you model the classes of data objects for instance using UML tools, you
can implement such classes manually using well known design patterns
like factory and DAO. That will work but since it is a repetitive task,
you will take a lot of time to write, test and debug your hand coded
classes.

Code generation based alternative for generating data object classes,
can avoid most of those problems as you just need to specify your class
design and have the code generator tool produce the code for you
according to your tastes.

Metastorage is one tool like this that I have been using for 3 years now
with great benefits to address exactly what you mentioned: speed of
development.

There would be a lot to say about this, but for now you may find more
about Metastorage here:

http://www.meta-language.net/metastorage.html

There are some screenshots of Metastorage Web interface here:

http://www.meta-language.net/screenshots.html

You may also find a tutorial here to get you started quickly:

http://www.meta-language.net/metastorage-tutorial.html
--

Regards,
Manuel Lemos

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

PHP Reviews - Reviews of PHP books and other products
http://www.phpclasses.org/reviews/

Metastorage - Data object relational mapping layer generator
http://www.meta-language.net/metastorage.html
Sep 21 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
1553
by: public heath vb developer | last post by:
We have a solution with 29 projects including a main menu and 28 dlls. One of the projects (Project B) was created by copying an existing project (Project A), making changes including the assembly name, root namespace, form name, and internal code. When the new project (Project B) was added to the solution and a reference to it was attempted to be added to the main menu project (Project MainMenu), the new project (Project B) reference did not...
2
4786
by: Rudy Ray Moore | last post by:
How can I modify the project build order of a multi-project workspace under "Visual Studio .net 2003 7.1 c++"? I tried to modify the .sln by hand to influence the build order, but it didn't seem to help. It looks like it's in reverse alphabetical order with upper case characters winning. Contents from my "Output" window: Build started: Project: Utility Build started: Project: USMTF Build started: Project: Tracking
1
1799
by: Jerad Rose | last post by:
Hello, I have searched all over for the answer to this, to no avail. I have a web project already set up and running on a remote server, that I created from my home computer. I am now trying to connect to it from my work computer, but cannot figure out how to set up the project. Here are the various methods I've already tried: 1) When I try Open > Project From Web, I type in the URL, and then it
11
7739
by: Dave | last post by:
I copied the project files from an ASP.NET project on one computer and want to create the project on another computer, There is no connection between the two computers so I simply copied the project files from the first computer onto a memory stick and then from the memory stick into my Visual Studio Projects folder on the second computer. But when I open Visual Studio on the second computer and try to create a project by pointing to...
4
2889
by: Brad | last post by:
I'm not one to rant or flame....so please excuse me while I do so for this once. I've now spent a bit of time working with VS2005 beta 2 to see how it functions for web development, especially how our current extensive number of .Net 1.1 web apps convert to it. After a week's time I dont's mind the converted app code that was broken and had to be changed, due to deprecation, new framework classes (some of which have names identical to...
7
1630
by: Mantorok | last post by:
Hi all We have an ASP.Net project (and the Solution) under source-control. Here is the example - I create the Solution, I create an ASP.Net project and then check it all in to source control, now, when another user pulls down the solution/project from source and then tries to open it the Solution says it can't find the project. The temporary solution we have so far which is far from convenient is to
6
2830
by: liu | last post by:
Hi all, in my vb.net solution, i have 3 project: 1. Main-this is the startup or the base of my window application. 2. Sales-this is the project that contains all the sales info 3. Product-this is the project contains all product info in my Sales project, i added the reference of the Product to Sales project because I need to shows the Product info in my Sales. in the other hand, i also need to show the Sales in my Product. now the
9
5449
by: Anubhav Jain | last post by:
Hi, I am having few .net source files(.cs or .vb) and I want to dynamically generate the corresponding .net project file(.csproj or .vbproj) for them without using visual studio.So that I could be able to generate and compile the project on the enviroments where Visual Studio.Net is not installed. Thanks and Regards, Anubhav Jain MTS Persistent Systems Pvt. Ltd. Ph:+91 712 2226900(Off) Extn: 2431 Mob : 094231 07471
3
2199
by: Jerad Rose | last post by:
This is regarding Visual Studio 2003 (framework 1.1). We have several projects/libraries. Of course, many of these reference each other. If we only had one solution, we would simply add all of the libraries that we wish to debug to the solution, and make project references to the other projects within the solution. All other library references would be file references, since they were not included in the solution. However, the...
29
2823
by: Tony Girgenti | last post by:
Hello. I'm developing and testing a web application using VS.NET 2003, VB, .NET Framework 1.1.4322, ASP.NET 1.1.4322 and IIS5.1 on a WIN XP Pro, SP2 computer. I'm using a web form. How do I move this project/solution from a local development xp pro computer which uses IIS/localhost, to another xp pro computer that is on a Windows 2003 server domain. I want to be able to use the Windows 2003 server IIS instead of localhost.
0
9655
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9497
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10363
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10169
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10110
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
1
7517
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6749
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5398
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5534
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.