As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
For the past months I've been getting into Web Development, I tried both sides of the coin: ASP.NET and PHP, I quickly fell in love with the second, the documentation and the community was just very helpful.
I started out by reading PHP for Absolute Beginners, this gave me a decent grasp over the language.
Enter frameworks! After going around the web, it became clear that there was one framework that really suited beginners: Codeigniter. I absolutely love CI, through out my programming experience in college I've always relied on good books. CI didn't need a book. The documentation is so well written anyone with a little bit of PHP experience can get into it.
Learning CI led me to development websites (such as Stackoverflow) and I started reading things that kinda make me sad, "CI doesn't scale on big projects", "CI isn't even a framework", "CI is for newbies, get pro like me bro".
Ok, so maybe CI shouldn't be used for huge projects - at least that's what I got from the overall community. But I'm wondering here, where should I go from now? I feel like I should get some experience in at least a few MVC frameworks, but it's kinda confusing on where to go at this point, today Zend is best, tomorrow Symfony is, but damm, that Yii s looking good too! All of these frameworks are getting updated to 2.0 and the documentation is scarce, there's not many books going around (if any), the respective websites have a lot of information, but for someone coming from CI, it all just feels very intimidating to start out. Starting projects with Windows CMD? PHP accelerators?
I'm guess what I'm trying to ask here is, how do you professionals see the PHP framework world these days? Which Framework would you recommend? Should I hop into this 2.0 bubble or are these versions not stable yet? And if possible, could you point me in a general direction when it comes to documentation?
Thank you for your time.
A framework is merely a tool to achieve a purpose. For you, to get a grip on the language try continuing with CI. The things you will learn - the concepts - will translate to other frameworks, even if their implementation is slightly differnt.
I personally favour Yii, but I have dug up symfony, zend and CI as well as few others in the past. One is not better than the other for most apps; look into differnt things, see what you like and roll with it.
What framework isn't really the question. What you should be doing, IMO is, try to 'learn to learn' rather than just 'learn'.
What I mean is, you should try to learn php well rather than a specific framework X.
That way, when time comes, and you have to build a scalable[scalable isn't even on my browser's dictionary yet!] system, you can figure your way through, with the experience you would have accumulated. This is what I believe Steve Jobs refers to as connecting the dots in a famous speech.
I've used many frameworks in the past. I used CI to start and then moved over to Yii as I gained experience. Frameworks may provide the project with tools that you don't have to write yourself, saving time. However there may be performance issues. CI is great and I haven't had too much trouble with it. You can slim it down and remove functions that you are not using. With CI I have created full Web APIs with them with no problems.
I guess what I am trying to say is that it may be your preference or client preference on which framework to use.
Firstly, there web development isn’t a coin, and there’s more than two sides. There’s a plethora of web development languages: PHP, .NET, Python, Ruby and so on.
Secondly, I don’t think you should be looking at frameworks if you’re new to web development/PHP. Learn the language first. Frameworks instil framework-specific conventions only; so when it comes to working with another framework or even vanilla PHP, you’re going to be at a loss. A knowledge of PHP assists in choosing the right framework for the job. Investing in one framework this early will only make you reliant and dependant on that framework.
I speak of this from experience. I once worked for an agency that was hiring PHP developers. During the interview process, we got applicants that claimed to be PHP developers will knowledge in frameworks such as CodeIgniter. When given a simple programming task (take an all-uppercase phrase and make it title case) the majority failed. Why? Because they had built everything in frameworks and not learned PHP itself. So when they were put in a situation where their framework of choice wasn’t available, they stumbled.
Don’t make this mistake. Frameworks are good, but only when you know what you’re doing and definitely not as a language learning tool.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I need to develop a CRM system within 2 months recently. But I'm still a student and have no experience in developing such a complex system. I did alot of researches on how to develop a CRM system, but I face some problems on designing the system.
The problems that I faced are:
Does a CRM system use any framework for development? (eg: DooPHP, Yii, Zend, and so on)
How to ensure the system is secure? (use OpenSSL?)
What are the non-functionality that I need to bear in mind?
For your guys information, the CRM that I gonna develop is for a small company use. However, I hope that the system is fast in response and secure, as this is what we want when using a web application. It is ok for me to use PHP, JSP or ASP.Net.
If anyone developed the similar system before, kindly share your experience with us. If possible, share your code here.
Thanks...
A CRM system can be quite complex. In fact, I worked on a custom CRM system and the codebase is literally by far greater than 100000 lines of code. Two months can be challenging depending on what functionality you'll need.
Using a framework is up to you. I once tested XAF from DevExpress which aim to help at classic CRM/LOB tasks unless some details get not too complex. OpenSSL is only an implementation, but if the data should be safe, then one key point would be using SSL along with good authentication and authorization. Number three: that depends. A good logging framework is always worse the work.
Have you considered using an open CRM system to start over with? There is jfire or vTiger for example.
I think the best way to understand one system is to review some open source projects:
http://www.sugarcrm.com/crm/
http://www.opencrx.org/
And much more :
http://www.focus.com/briefs/top-10-open-source-crm-solutions/
Your CRM should be easy to implement but don't take anything for granted. You will have a chance to learn a lot of things in terms of language features and technology when developing such software. If you are looking forward to it, not a problem, you can easily do it.
As far as your questions.
CRM Does not have to use any framework. If you are familiar with one, good for you. You can use it to your advantage and it will be helpful.
Stick with common security features that are used in any language, particularly the language that you use. Do not be obsessed with it. You will learn a few things as you go.
No sure about the non-functionality. But be careful to stick to the features only. Do not overdo things that will increase complexity and the time it will require to complete. Implement what is asked for.
Any language will do. I personally like PHP. ASP.NET can be quite challenging. There are a lot of things that you think will work and they are quite pain to implement (if you are not a guru already). So depending on your experience and if you worked with any software development before, it is not daunting but to be honest, you must have some somewhere development experience. There is nothing strange in it.
Make sure you are well familiar with basic data types such as float, double etc. You can introduce big errors if you use them wrong.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
It seems to me that everyone on the Internet is talking about PHP/ROR/Python, but few care to mention ASP.NET. Ironically, here in China, most books concerning web development on the shelf in the bookstores are about ASP.NET. I just want to know what is "wrong" with ASP.NET on these web forums. I am really new to web development, and I've just learned a little PHP, and haven't touched anything ASP.NET yet. I would like to know the pros and cons of PHP and ASP.NET. Thank you very much!
There is nothing wrong with ASP.NET. Except the fact it's a Microsoft technology, so some communities avoid to mention it, or mention it only to say it's evil, without giving a real explanation.
Everything depends on the communities. Here, on StackOverflow, I see more questions about ASP.NET than about PHP. There are other websites which are more ASP.NET oriented.
If you want to choose what to use, try both. This is the only way for you to make a real choice, without being influenced by an opinion of a person who thinks that PHP sucks and is used only by beginners who don't know anything about programming, or a person who thinks that everything related to Microsoft is bad.
I'm assuming that you are referring to the ASP.NET, since ASP is obsolete and deprecated in some sense.
It's really difficult to compare PHP/Python/Ruby to ASP.NET. It would make more sense to compare frameworks. PHP has some popular frameworks called Zend and CakePHP. Python has Django. Ruby got, of course, Ruby on Rails. ASP.NET has MVC.
There is nothing wrong with ASP.NET. In fact, ASP.NET MVC2 is very neat. If you use it with Visual Studio, you basically don't need anything else, since you can debug your application with the visual studio webserver that comes with the IDE. MSDN has a lot of documentation on the MVC framework and a lot of people on stackoverflow are experts.
One downside is that you will need to host your site on Microsoft Server, which is typically more costly than Linux. If you are used to Linux, you will also need to consider some ramp up time and learning cost, because Windows Server is quite different. You might also want to use SQL Server 2008 because Microsoft technologies usually go well together.
There are a lot of things you need to consider when you want to create website with something you are not familiar with. I recommend you to just get started somewhere. If you are learning in order to acquire skills that may help you get some job offers, learn the skills you need. If ASP.NET is something used a lot in China, I would recommend you to pick up ASP.NET MVC and start developing, although this will cost you some money up front. Otherwise, go with PHP/Python/Ruby because there are tons of sites that use these languages and frameworks based on these languages.
For ASP.NET MVC2, this is a good starting point.
By the way, stackoverflow is built on ASP.NET MVC + SQL Server 2008 + C#
You got an IDE full of features and access to whole .NET infrastructure if using asp.net comparing to php.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
I have opened a large web project on elance for a social network. I got over 30 bids on my project and many of the providers recommended php even though they had .net knowledge. many have said that php with drupal has many advanteges over the .NET framework but did not say what they were. Its hard to believe that a scripting language has advantages over a compiled language. Am I missing something here.
PHP will run on essentially any server, for free. That's a fairly compelling feature for many folks.
There are lots of pros and cons of both, and it certainly doesn't boil down to scripting vs. compiled (incidentally, opcode caches like APC and things like Facebook's HipHop even the score on that point).
I'd say if someone's recommending PHP over ASP.NET, they code primarily in PHP. If they're recommending ASP.NET over PHP, they code primarily in ASP.NET. There's probably not much more to it than that in the responses you're getting.
Ugg, the weekly PHP vs ASP/.net argument. Let me frame it this way:
Both work. Well, actually.
Neither is really more "enterprise grade" than the other.
.Net developers (at least in my area) tend to make more. That being said, the Government "drank the microsoft Koolaid" and most jobs in my area are for government contractors. It may be different where you are.
PHP really doesn't have a great GUI yet. Not an issue to those of us who are command-line types, but it could be for you.
.net solutions tend to be relatively unified since Microsoft is driving the bus. There's about a million different ways to skin a cat in the PHP world because it is relatively fractured.
In my experience, PHP tends to be better documented with many more how-to's online. If you disagree, you might be a writer for Microsoft's tech net, which is written partially in some alien/geek mashup dialect of English.
MANY php how-tos and forums are frequented by non-native English speakers, and entire projects can be frustratingly impossible to understand because of the language barrier. It seems that Europe has picked up PHP at a higher rate than those of us in the States.
I was indirectly involved in a Microsoft Case Study that I think illustrates the difference. I worked at one Olympic non-profit on a php-based site. They opted to standardize on Microsoft and move to an entirely .net/sqlserver based. I moved over to another nearly identical non-profit (just a different sport) who was embarking on an in-house build of a PHP-based website with nearly identical functionality to the one I left.. The .net website, when completed, cost $1.5 million, involved 16 servers, and required 3 additional full-time staff hires to extend and maintain. The same level of service, programmed in-house by 3 guys on PHP in a shorter amount of time ran on 3 servers (two application, one MySQL DB) and cost about $25k when all was said and done. Microsoft published the .net solution as an official Microsoft Case Study success. You be the judge....when you compare the solutions, I'm not sure they're even. Both serve nearly identical traffic and process very similar amounts of money. I know where my time and money would go.
The most significant advantage of PHP might be that it is free and you can start developing it without having to install too many things. (Apache, PHP and an editor)
After working with the Prado framework for a while, I don't see any big differences with it anymore.
OF Course : Visual Studio makes developing and debugging ASP.NET apps a dream.
I tend to prefer c# development to php development, but both are perfectly valid choices.
One of the main advantages php has over asp.net is just the volume of ready made components, controls, libraries, and frameworks out there that are available for use.
It is entirely possible that your project could be assembled in php much faster than in asp.net if the right tools are available.
It doesn't really matter if you choose PHP or ASP.Net, both can deliver, both have a solid base, both are proven technologies. PHP is a mite cheaper, but ASP.Net is getting there.
Unless you're going to maintain the app for a long time ASP.Net's superior OOP capabilities aren't going to offer you much advantage. But if you've got a non-trival app then the multi-layered ASP.Net approach might be helpful.
Just get the coder you're most comfortable with.
I would choose ASP.NET mainly because of Visual Studios, makes programming a lot easier.
I would choose PHP mainly because of variety of frameworks, such as CodeIgniter.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 13 years ago.
I'd like to make a website, it's not a huge project, but I'm a bit out of the web design loop. The last time I made a website was probably around 2002. I figure the web frameworks and tools have come a ways since then. It's mostly the design aspect that I'd like it to make easier. I can do the backend language in any language.
My question is:
What are some tools or web frameworks that make the design aspect of making a website easier. It could be a framework in php/python/ruby.
As far as tools go, free/open source is preferred, but I wouldn't mind looking at good commercial alternatives.
You'll get many different subjective answers for your question, but as for me I would recommend django. It is flexible unlike CMS and the admin saves you alot of pain.
For PHP, I like the CMS Drupal and have found it to be very fast in getting a site up and running. Drupal also has a ton of modules to do almost anything you want. It is also very customizable (although that takes a little reading to figure out how to do it).
Ruby's de facto standard web framework is Ruby on Rails. It's a straight web framework, not a CMS like Drupal, but it doesn't take very much work to get a simple site up and running. It uses convention over configuration to be that simple, so you've got to learn the conventions to really understand what's going on.
I haven't used a Python web framework (except the one I wrote back in college), but I've heard good things about Django.
If you have experience with Java, there's a Groovy framework called Grails that is similar to Ruby on Rails, but runs on Java servers.
I once played around with CodeIgniter for a couple of weeks and found it pretty easy and fast to jump into.
Check out this list of PHP frameworks:
http://woork.blogspot.com/2008/11/20-great-php-framework-for-developers.html
Joomla is also said to be amazing, although that's more of a Content Management System than just a framework. But it makes the design of the site really simple.
It really depends on a couple things:
What are you familiar with? You indicated that you've done some web development in the past. What did you use? If you were using classic ASP, then learning ASP.NET should be less of a jump for you.
What are you trying to create? If all you need are static HTML files with a tiny bit of functionality, you could try learning PHP as it's pretty quick and easy to get going. If you need light database access, then maybe Ruby on Rails will be your cup of tea.
With that being said, I'd recommend the following in no particular order (just because I've tried them and they're all pretty decent):
Ruby on Rails
ASP.NET / ASP.NET MVC
PHP
django on Google App Engine gets you free(up to a point) and scalable hosting
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am about to begin development of a new website and have been doing research on PHP Frameworks. I'm not an advanced PHP developer, but I have been developing web sites and apps (in asp.net) for a few years now.
My website will primarily be AJAX-based (using jQuery) and making lots of calls to web services. After some research, here's what I came up with:
CakePHP: Originally started developing in this, but found it too complex. The fact that it forces you to use and learn all this new stuff just to use it was a bit daunting, so I put it aside for the time being.
Zend: The performance of the framework leaves me a bit skeptical, but I heard it has great support for creating web services. I also heard it was a bit complex.
CodeIgniter: No real reason for not using this one. Based on what I've read CodeIgniter and Yii are very similar, but Yii is a bit faster and doesn't have un-needed code for PHP4 (since I plan on developing exclusively in PHP5).
As far as Yii, the only things that scare me about it are that it is newer than the other frameworks so it has a smaller community. It also doesn't seem to have a ton of web service support (only SOAP, from my understanding) as opposed to Zend.
So my questions come down to:
Should these things worry me? (not as big of a community, poor web service support)
Is there anything else I should look into?
Is my choice of Yii over the other frameworks ok for a primarily AJAX-based web app?
Bara
You need to document the requirements of your project and the reasons behind why a framework is even required in the first place. Then look at the future of the site and associated functionality. Then choose the framework that provides the strongest functionality to satisfy those requirements. Don't get hung up on opinions. Read the documentation and identify the components you want to use, narrow your search from there and then experiment with them all.
Performing your due diligence will pay off not only for you, but for your client who is paying the bills.
To sum up:
Identify required components of site.
Research frameworks and identify matches for your requirements.
Experiment and learn which ones work best for this job.
Edit/Opinion Additions:
If this is merely a personal growth project, then I would look at using what's going to look the best on your resume. Zend has the biggest name and a solid product, so they win by default because it's the old "can't get fired for IBM argument." Some big players are using Symphony, but it's a big learning curve. Yii, Cake, Kohana all have pros and cons and are great in their own way.
I've used to be a developer of Symfony, CakePHP, Zend framework, Kohana and Code Igniter, but around 1 year ago I discovered Yii, My first (and second and third) impression was excellent:
Easy to learn
Easy to implement
Easy to use and extend
Very, very, very fast
Support of many languages
Support of many software, servers and accelerators
Support of MySQL, PostgreSQL, SQLite, and Oracle... Firebird support is beta.
Many other features that I don't remember right now.
Download it, use it and implement your project with it,... you'll be amazed.
Now I ask your questions:
Should these things worry me? The community is not as small as it seems, Currently, Yii has an active community. We are not a few.
Is there anything else I should look into? You should look your needs: Database you'll use, Web server, and others, as Randy said.
Is my choice of Yii over the other frameworks ok for a primarily AJAX-based web app? Yes, It is.
As a main developer of Yii, I'm maybe not totally fair (but want to!), however, for objectivity I should mention I tried both Zend and CodeIgniter before.
In the earlier releases of Yii, benchmark tests were very impressive, and because the leadership doesn't want to have this framework bloated, not all feature requests get implemented. This may sound a little disappointing, but if you're experienced enough in programming and design, you are already aware of its potential.
On the other hand, Yii still supports a really wide variety of practical and real-life solutions. This is somewhat subjective, but if you look at those often used classes, you will find out their power in real issues.
The documentation (especially the API) is serious-tuned and very specification-like, which you may find strange and cold in the first hours, but in the long run, it'll definitely ease your job (unlike those fashionable docbuddies, which would like to make friends in method signatures).
These all contribute to your development time. People are able to create serious applications within weeks!
In 1 1/2 year using Yii, I have about 15 sites online, all working flawlessly, fast, and Yii made very easy to create them. And most sites aren't trivial, they are large real world sites. I can provide links if requested.
So I can assure you that by choosing Yii you will certainly be able to do any kind of site you want, and it will be fast and safe.
Pretty much every modern web framework has excellent support for XHR/Ajax. It really just boils down to your personal preference based on your current knowledge of the language in which regards to framework you'll like the most.
I would also advise Kohana as it's pretty stable, mature, and has excellent support.
You won't really know until you play around with the framework, I suggest dipping your toes in a few of them.