views:

253

answers:

7

I'm very new at webprogramming, but got quite a lot of experience building applications with C++ and C# (winforms and WPF) on various OS'es (Windows, linux, vxworks). Currently Im also taking courses in Java and various client-side web-languages (html, css, xhtml, javascript etc.).

Now, some friends of mine decided to build a commercial webportal which will basically have all the standard stuff a commercial webportal have (users with different priveliges (sp?), browsing of various information and stuff like that) - and I've decided to help them out and build this portal for them. I'm not asking if this is a reasonable choice or not :)

What I'm asking if primarely if you guys think I should go the ASP.NET or the PHP way in doing this. If someone could list me some pros n cons for each, I'd be happy - and as a bonus question, does anyone know of any resources which in a short and descriptive way tells me about the architecture a webportal should have (taking stability, security, perfomance and the likes into account).

I know this question is very unspecified, but I'm still in the phase of trying to figure out which features is needed and which platforms to use.

[EDIT] Just wanna say thx for all the great answers. From what I see, it doesn't really matter if I go ASP.NET or PHP - both can do the job. So I guess it's ASP.NET in C#. Also, just wanna say, Im sad I can only mark 1 answer as all comments here are great :) TY

+1  A: 

If your background is C++, Java, etc. C# might be more comfortable for you since it is a compiled language. PHP is interpreted and basic errors that C# would catch (misspelled identifiers or method names, etc.) show themselves at runtime instead of compile time. On the other hand, people have built large projects in PHP (Wikipedia) successfully.

Jared Updike
Facebook is in PHP too. I would suggest C#, if you already program with it. Not too hard to learn ASP.NET.
BBetances
+1  A: 

Looking like you are looking for SharePoint / MOSS2007.

Binoj Antony
A: 

The platform you choose should be based on your existing comfort level. If you have equal parts PHP/Linux and C#/Windows experience, then in the long run it doesn't really matter. Flip a coin and get started.

If you're more familiar with one over the other, get started with the one you know better. Tinker with the other one in your spare time. Then you'll know exactly what you like about each on their own merits and can get things done while you compare.

Dave Swersky
+3  A: 

With your background, it sounds like C# is the proper language and ASP.NET or ASP.NET MVC is your direction.

Before making a firm turn in any direction, I would examine some web portal systems set up and get ideas. THere are already plenty of open source portals out there to get ideas from.

As for making money, the C# direction may be more likely to make you money, as many PHP companies are heavily horking open source, at least in the markets I have worked in. Nationwide, the stats may be different, but I would examine the market trends and make sure you have a big enough market to make it worth your while.

Also, check the competition, as the field for commercial software may be more full on one platform/language than another.

You can go off windows with either solution, as long as you stick with .NET 2.0 (Mono on Linux, Mac).

If you want to make money, consider creating a web portal that works in SharePoint. Your primary focus should be easy extensibility points, as that is a problem area with SharePoint.

Gregory A Beamer
A: 

Using C# / ASP.NET is the logical language choice since you are familiar with it from your C# / WinApps experience, and though you haven't specified the portal requirements, ASP.NET will be more than capable.

I suggest you break the rest of your question down, maybe post separate questions - you'll need to be a bit more specific to get many usable answers.

Nick
A: 

Another thing that has not been mentioned so far when discussing .NET and ASP.NET answers is that Microsoft added WebParts into ASP.NET in framework 2.0 for precisely the purpose of building portals and the different modules that make up a portal.

TheTXI
+1  A: 

Since C# is available as choice, to go to any new technology you will have to ask yourself these questions:

  1. Am I willing to learn a new language?
  2. Am I a quick learner?
  3. Will I be using this technology again?

If you can answer all of them in affirmative, go for the new technology.

Some of the Possible other alternatives for the other technology (All of these poffer excellent features and a very good community support):

  1. Ruby on Rails or Ruby + Any other associated framework
  2. PHP
  3. Java + J2EE
  4. Python + Django or any other associated framework
  5. CGI Perl
  6. Coldfusion
  7. Any other MS technology (I am not really hands on with MS Technolgy)
Swanand