Forum Moderators: open
I would much rather use a hydraulic jack to lift a car with a flat tire rather than the flimsy jack provided my auto manufacturers. This decision comes after using both.
Hosting is cheap, and it is easy to learn, so the barriers to entry are low.
If you need to build something rather than customise an existing solution, there are a lot frameworks out there (Django, Rails, Catalyst, etc) including some PHP ones (CakePHP, Zend, Code Igniter, etc.). Why pick .net?
I currently use Wordpress and Modx, including one site that uses both. I am also working on a Django based site.
As someone who comes from a totally web background I found it much harder to grasp than PHP, in fact it felt like I was having to learn how to develop a windows app in order to create a web app, and it took a whole day to do something which I could have done in a few minutes in PHP. My colleagues who were windows developers however grasped it quite easily.
The easier something is to program websites with the worse it is in my opinion. If it is easy that means that whoever made that program is making decisions for you. In the case of asp.net MS has made some horrible decisions. Code bloat is a bad thing. Having all pages with the same URl is a bad thing. Having pages load with a 302 instead of 200 is bad. Session ID's are bad. The easier .net gets to program the worse it is for the user and search ranking.
Most of things aren't .NET decisions, but what .NET controls you choose to use.
.NET doesn't force all page to have the same URI, that's up to the programmer.
.NET doesn't force SessionIDs, that's up to the programmer.
I don't know what you're referring to
I know. "Old school." "Cranky old men with bad attitudes."
I've programmed in .asp, CF, PHP . . . my preference is still perl. It's as rock solid today as when it was still "duct taping the Internet" 15 years ago. It's just a beautiful language.
But give me a Windows-based server, and it almost has to be .net/.asp. It's just natural.
The easier something is to program websites with the worse it is in my opinion.
This is my basis for not liking PHP as much as perl, on two points. This first is that many of the things programmed in perl by hand/module are existing functions in PHP. I have a bit of a problem passing data to a "black box" and hoping it all works out. I have the same problem using perl modules (which I know is against the core idea of perl, "don't re-invent the wheel.") But if I code it myself, I can find it and fix it, whereas with a module, I cannot - or that module may get updated and break the overall code.
The second reason is, as said, and is often rephrased as "a little bit of knowledge is dangerous." PHP is extremely easy to learn, and is a great way to come to an understanding of OOP. The problem is many new PHP programmers learn only what they need to to get the check cut. I've seen so much code that is just an accident waiting to happen, particularly in respect to security issues. A large portion of my work is plugging up these holes.
But if I had to choose - PHP is still "perl-in-the-page" in my opinion and I'd go with PHP. You can run PHP without too much pain on a Windows server, but the inverse is not exactly easy on a 'nix server.
And if a person writes garbage using .NET, there's a good chance they can't write good code without it either. What I mean is, if they generate bloated code, they probably would have written it that way anyhow.
I'll not touch a windows server with a flagpole so that rules out asp/asp.net for me.
Learning a new language is just a bit of time to invest, that should not hold you back, but managing "forever" an environment you hate to have to manage: no way.
There are a also lot of other good alternatives: Python and Ruby in particular - most of which can work reasonably well on any platform (although there tends to be a bias towards Unix).
I've always felt that ASP.NET was designed to help Windows developers to do web development.
I had that experience too. I took a couple of dot-net 1.0 training courses and the places were full of VB developers. They had problems grasping the whole idea of web programming.
I feel that dot-net has great tools for making an average web app quickly, with the Visual Studio GUI. If you are not using Visual Studio, and are writing the web pages by hand, I don't see much of an advantage to dot-net.
With dot-net is you are really locked into MS, and there are costs involved. PHP or Perl sites are much cheaper to host, in my experience.
The overwhelming majority of people that venture into the world of programming do not do so in order to become a programmer. Most people start out programming because they want to make a game, a website, a robot, etc. The faster that they see positive results, the further they dig into it.
Beginning with the release of Visual Basic 1.0 in the early '90s, Microsoft has embraced this fact. They make it easy for people to produce meaningful results with a minimum of invested effort. The depth and breadth of their tools then sucks the beginning programmer in deeper. Finally, their rate of change and planned obsolescence makes it difficult to transition away from MS once you have come to rely on it. .Net lives here.
I use .Net for a lot of my work, but not all of it. When I do use .Net I never use the server controls or built-in post-back functionality. I am a pretty firm believer in a tiered architecture and run away from things that comingle presentation, business, and data storage/retrieval logic. Over the years I have inherited many systems that do so and they are a nightmare to manage.
If you maintain a clear segregation of the application tiers, use a good object model, and, as was stated by another poster, know what your code is doing, then .Net can serve you well. Of course that is also true of PHP. If you don't do these things, then no tool can save you.
If you are writing websites or applications where there is no chance that they will need to evolve over the years, then it really doesn't matter that much. These topics become hot issues when you need to open the code up after some time and make significant changes.
I find that many excel commands have a vb.net twin.
if i can do something in excel, generally i Cn find a similar command to do something similar in vb.net
as far as i can tell, .net itself is a framework just like its name says, and the code to manipulate the frame work can be generated via c#, v.c++, vb.net,,,,,
Moved over to php for that reason. I'm no code guru, but get on with it well. My code seems shorter and tidier, though that's probably more because I'm getting the hang of it more. There's a lot of stuff on the internet for when I get stuck including the php manual which is excellent.
I've ended up on a dedicated windows server, but I'm running only php (together with the odd windows batch file and executable). I like the mix - I very rarely come up against limitations.
ASP.NET is great for Intranet web applications and the only way I go for that. It's even better for developing projects that need to be passed around to multiple developers. For me the thicker the application the more likely I am to use .NET. The AJAX is simple, WCF/Sliverlight are getting easier and the ability the manipulate services/WCF quickly makes it hard to pass up.
That being said if you have an ASP.NET AJAX application fire up Fire Bug and check out how much extra crap gets thrown around with requests.