I am using Drupal for my CMS.
I have significant functionality that I need to develop in addition to the Drupal functionality. I have two options:
1. Build a Drupal module
2. Build a separate web app alongside Drupal
What's better? Interested in opinions.
If I build a separate web app, I can use the framework of my choice, and isolate the relevant database functionality. However, I have to ensure the same look & feel and authentication/authorization, that I have to build.
I was not sure whether creating a Drupal module that will have a big code base as a separate module was the best idea. Is there any circumstance when not building a drupal module and building a separate app is the best idea?
Any opinions/past experiences/feedback welcome.
Comments
depends on what new function
depends on what new function u are going to build.....
say, i dont think u can build a drupal module as a Flash rtmp server,..
but for simple functions, a drupal module is a more simple way to go.
Interested only in web functions
If you have a complex web function, such as building, say every employee logs in, views his hierarchy in the organization, and can view his salary. HR can update his salary etc.
Basically the technology is still web based.
By simple functions, if you meant web based functionality, I understand that you suggest a Drupal module. Have I understood you correctly?
Thanks for the feedback.
Let me tell you what I did
I have 7 different external systems that I Integrate with in Drupal. Its always better to build a module and library of another class that you can instantiate in the module.
So basically have a .module file that handles logic or the business flow and then pull the necessary information using your class.
It worked for me, because if ure working on drupal better do it drupal way :). I know the learning curve, I have experienced it, its a pain but its worth it. There are so many things you don't have to worry if you stick with Drupal like authentication for example.
Thanks for the feedback
For authentication & look & feel, the Drupal way does seem better at first sight. I was only worried about the system eventually growing into a massive system, in which case the module would be massive as well. I was just wondering if there are any known issues with maintaining large modules.
sustaining and maintenance
Yeah sustaining and maintenance have always been a challenge to any software.
If you have too much code better split it in to different includes. I have split my 4 steps Multistep form in to 4 includes so that I don't have to scroll down 4000 lines to reach the end of the page.
That way it is better readable and easier to maintain.
Another important aspect to consider is the major release of Drupal. For example with the Drupal 6 release, many of my Drupal 5 modules became obsolete. So had to make lot of modifications to the code.
So I always feel for the huge code base proper design framework is extremely important. Yes you can stick to Drupal for huge code base at least you have support here to assist you if you need help desperately.
This thread is older, but the
This thread is older, but the question is still quite legitimate, so I wanted to add in some thoughts for those at a simiar crossroads.
The first question is if you should build out new functionality as a Drupal module, or as a stand-alone application which you'd then integrate with Drupal later.
After having built several of my own stand-alone systems, and then moving to building and using Drupal modules exclusively, I can give you a number of reasons why it pays off to use Drupal as a base:
The second question is how do you structure such a huge module? There's a couple of ideas here that will help. One is that your module can be composed of several smaller modules. It's good practice to do draw your focus to generalization of functionality, and can be helpful when enabling / disabling modules when testing. As someone else mentioned, you can also use include files, which can improve performance if done correctly.
Upgrading can take some time, but most of the time isn't too hard, and there are automated tools to help, like Deadwood (almost fully automated conversion) and Coder (manual conversion).
So, my advice would be to go for Drupal. Coding form scratch seems easier at first, but it quickly becomes a rabbit hole that's difficult to work your way back out of.
Cheers,
Chris
Build a Module.com - The definitive video guide to Drupal development
Learn virtually any aspect of Drupal on BuildAModule, where I've recorded over 2200 video tutorials.