Difference between Web Application Framework and a

2020-02-23 03:51发布

问题:

Are both completely different concepts? Or is there an overlap in their meaning?

Would it be correct to say that a Web Framework is used for the creation of a front-end, while a CMS is used for the back-end?

If yes, then should the Web Framework use the same technology as the CMS? For example could Ruby on Rails be used in combination with Drupal? Or doesn't that make any sense at all?

回答1:

Are both completely different concepts? Or is their an overlap in their meaning?

A web (application) framework is a lower level, generic toolkit for the development of web applications. That could be any type of system managing and processing data while exposing it's data and services to human users(via web browsers and other interactive clients) as well as machines via the http protocol.

A CMS is one type of such applications: a system to manage content shown in websites. Usually/historically, this mainly means managing (pieces of) text of "pages" shown in a web site, and useres that have different levels of access to manage this content. That's where the C and the M come from.

With a CMS, you can manage web content. With a Web framework, you build web applications.

Would it be correct to say that a Web Framework is used for the creation of a front-end, while a CMS is used for the back-end?

No. It would be correct to say that a web framework can be used to create a CMS. Both contain parts that work on the backend as well as on the front end. Often, a CMS is based on a web framework - sometimes CMS developers build there own web framework, and sometimes they even expose the API of this framework, so a developer can create extensions to the CMS in a way as if he would develop an application with a web framework. Drupal really does this, so you can create real web applications based on the integrated framework - with the upside that they will also be easily to integrate into the CMS. But that(exposing the API of a web framework) is no necessary criteria for being called a CMS.

If yes, then should the Web Framework use the same technology as the CMS? For example could Ruby on Rails be used in combination with Drupal? Or doesn't that make any sense at all?

It's be possible to combine two existing systems build with these two, (e.g. because you want to show some data in a web site managed by drupal, that already exists in a Rails-based system). But as Drupal also provides you some of the genric functionality of it's underlying web framework, it might not be necessary. You would have to manage and learn two very different systems and handle all the problems with there interoperation. So, I'd try to build a Website with only one of these if possible and only combine them if theres a good reason to.



回答2:

They're different concepts. A CMS can be built on top of a web-app framework, but a web-app framework has no direct relationship to a CMS. Its at a lower level, providing a platform for any type of web-app to be built on top of it, of which a CMS is an example.



回答3:

Drupal runs on php and Ruby on rails runs on, well, Ruby, so they wouldn't play together.

Just to muddy the waters a bit, Drupal describes itself as a content managment framework which is essentially a content management system with hooks to extend it. Which does create an overlap. The drupal overview describes this better than I could.



回答4:

Would it be correct to say that a Web Framework is used for the creation of a front-end, while a CMS is used for the back-end?

It's not "correct" but it's not wrong, either. A web framework is a general concept -- many things count. A CMS is a specific concept, often built within a web framework. Sometimes CMS's are stand-alone web applications. More often, however a CMS is a back-end things that require a customized presentation front-end.

Should the Web Framework use the same technology as the CMS?

Shouldn't matter. At the end of the API definition, the Framework and CMS can have any implementation at all.

Web App Frameworks -- generally -- must either serve HTTP requests or plug into something like Apache.

A CMS is a glorified database, and any sensible API is good. Most often, however, they're also using HTTP as their interface protocol.

Could Ruby on Rails be used in combination with Drupal?

Sure. Purists will object, but there's no technical reason why they can't cooperate.