On Fri, Oct 23, 2009 at 11:09 PM, mdipierro <mdipie...@cs.depaul.edu> wrote:
> > It seems to me this would move us completely in the wrong direction. > First, since you are not writing in context, I will guess you are talking about the concept that suiato presented of all [model, view, controller] in on class. This concept as is, is simply not workable, as you can see from simple "units" analysis - models and controllers are Python code; views are / consist of html/template code (different base). I agree with massimo that it makes no sense to organize this particular way. However, a plugin_controllers class, and plugin_models class might have more merit for discussion - but has the problem of consistency: what would the "matching" idiom be for plugin_views (well, it could be just an anolog in directory structure). This leaves on the table the discussion: is directory structure or class structure a better way to incapsulate (Massimo: you will note, please, that I am still very firmly of the stance that mixing in code with files called plugin_[plugin_name].py is not an acceptable idea - not acceptable for me, because of all the issues I see down the road with it; I have seen NO data which even slightly moves me from that position, so I will not consider that structure as a viable option). It would create a lot of structure one would need to remember. It > creates a new programming paradigm where for plugin models/view/ > controllers are no longer separated in files but stored together in > the same file. > I think the statement of models/view/controller as separated, similar to the rest of the app is clear. There is no reason to think that this kind of structure would be of any benefit / use. > I like the idea of a web2py online conference. I could actually > organize one in Chicago at no cost (except for flight, lodging and > food) but would be people be available to fly here? Online may be a > better option. > Online: there are several options, including IRC. A good topic would be review of design of web2py, and workshops to identify problem areas (coupling) where attention would reap the biggest benefits. Plugins (and specifying them) would be a good topic, but for this to produce useful results, the participants would have to be senior engineers / computer scientists (novices will have many ideas, and can help with specification, but structure - architecture and design discussions - will require more seasoned participants for satisfactory results). - Yarko > > Massimo > > On Oct 22, 11:10 pm, suiato <homm...@gmail.com> wrote: > > hi all, > > > > although i'm a mere user who may not have full understanding of web2py > > mechanisms, i'm interested in how the web2py plugin system is > > developed thru these discussions. because it will affect the evolution > > path of this software, and probably decide if or how i am going to use > > this system in the future. complex/commercial/enterprise applications > > like CMS or e-commerce would benefit from smart and easy plugin (or > > add-on or extension) systems. > > > > 2009/10/23 Yarko Tymciurak <resultsinsoftw...@gmail.com> > > > > > > > > > Or what about one plugin file, where each plugin is a class - perhaps > one for controller, one for model - no views allowed (only app or gluon > facilities; could worry about separate view plugins as that is different > enough).... > > > > i am interested in the idea, too. expressed use of classes in [web2py: > > 32128]. > > a class-based MVC? like > > in plugins/myPlugin.py, > > class MyPlugin(Plugin): > > def model(...): > > ... > > def cotroller(...): > > ... > > def view(...): > > ... > > > > an application uses it as, e.g., > > in models/mydb.py, > > myP = Plugin.MyPlugin() > > ... do something useful with myP.model(...) ... > > in controllers/mycntl.py > > ... do something useful with myP.cotroller(...) ... > > in views/mycntl.html, > > ... do something useful with myP.view(...) ... > > > > * note myP.view() is not to output to browser but to input to views/ > > mycntl.html. > > * the plugins directgory can be anywhere in the path and imported. > > * as long as used/executed in non gpl applications, plugins need not > > be gpl licensed if gpl codes are not used/imported. > > * system plugins are in web2py/plugins (gpl) > > * application-shared plugins are in web2py/applications/plugins (gpl > > or non gpl) > > * application-specific plugins are in web2py/applications/myApp/ > > plugins (follow myApp's license) > > * plugins codes are copied and managed thru appadmin. > > * appadmin may not modify plugin codes. > > > > * all the above can be done without changing web2py or breaking its > > backward compatibility. > > * forgive me it's just contemplation, not implementation. > > > > recently, trying to meet the needs of a customer, i looked for a CMS > > with simple shop functionalities and found ezPublish(http://ez.no) > > interesting. learned that it's a quite elaborate accumulation of lots > > of work over 10 years by volunteers and companies. their site showed > > celebrating its 10th anniversary in a conference with over 250 people > > (http://www.youtube.com/watch?v=je6CqRWjwfo). its codes are based on > > components (http://ezcomponents.org), and structured with libraries, > > extensions, packages, etc. its slogan is "share your information". i > > think its framework's elaborate structuring of codes helped it to > > evolve to include lots of developers/users/companies. its learning > > curve is still rather steep for me, and i'm sure they'd do better if > > they have another chance to restructure. with the passion/power/ > > prowess (and with Python) in this community, web2py has a good > > opportunity to do better than others. > > > > it's nice to dream attending a web2py conference, whether online of > > offline, in some years, to share information and celebrate the > > accomplishment by web2py developers/users. > > > > cheers, > > Teru > > > > > > > > > On Thu, Oct 22, 2009 at 2:58 PM, mr.freeze <nat...@freezable.com> > wrote: > > > > >> I see how it would be a performance hit to enumerate all of the files > > >> in those folders. What about a compromise where all plugins live in > > >> one subfolder so we get the separation. Thinking out loud: > > > > >> applications > > >> --myapp > > >> ----plugins > > >> ------models > > >> --------plugin1.py > > >> --------plugin2.py > > >> ------views > > >> --------plugin1_index.html > > >> --------plugin2_index.html > > >> ------controllers > > >> --------plugin1.py > > >> --------plugin2.py > > >> etc... > > > > >> Do you think plugins should be accessible by URL outside of their > > >> parent app or just take parameters and render html? Also, is/should > > >> there be a mechanism to apply auth to a plugin? > > > > >> On Oct 22, 1:48 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > >> > One issue is models: > > > > >> > Let's say we have a normal model > > >> > models/db.py > > >> > and two plugin models in > > >> > plugins/p1/models/a.py > > >> > plugins/p1/models/x.py > > >> > plugins/p2/models/e.py > > > > >> > In which order should they be executed? whatever order we use we > would > > >> > have to merge the results of multiple listdir and then sort them. > > >> > Takes some extra time. Now that everything is one folder things are > > >> > straightforward. > > > > >> > Another issue is controllers? What would be the url for a function > > >> > index in the controller below? > > > > >> > plugins/p3/controllers/default.py > > > > >> > Mind that we cannot break backward compatibility! > > > > >> > Massimo > > > > >> > On Oct 22, 1:38 pm, "mr.freeze" <nat...@freezable.com> wrote: > > > > >> > > That's not as limiting as I thought at least. Did you already try > the > > >> > > sub-app approach and hit obstacles or is it something that might > be > > >> > > worth prototyping so we can compare > performance/benefits/drawbacks? > > > > >> > > On Oct 21, 7:20 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > >> > > > Yes you would be limited to one model file, one controller file > but as > > >> > > > many views as you have actions and as many modules and static > files as > > >> > > > you need. > > > > >> > > > On Oct 21, 6:08 pm, "mr.freeze" <nat...@freezable.com> wrote: > > > > >> > > > > Man oh man! I've been at a SharePoint conference all day (hey, > I have > > >> > > > > to make money!) so I'm still sifting through all of the > discussion but > > >> > > > > I have another question: With the current implementation > plugins would > > >> > > > > be limited to one view, one controller, one model, etc., > because of > > >> > > > > the naming convention, correct? If so, do you think this will > be too > > >> > > > > constraining? > > > > >> > > > > On Oct 21, 11:39 am, mdipierro <mdipie...@cs.depaul.edu> > wrote: > > > > >> > > > > > Physically plugins are not in the own folder because it > would make > > >> > > > > > web2py very clunky, it would have to search for plugins in > the folder > > >> > > > > > structure. > > > > >> > > > > > Logically the are listed as separate. > > > > >> > > > > > On Oct 21, 11:16 am, "mr.freeze" <nat...@freezable.com> > wrote: > > > > >> > > > > > > I like how the plugin system is shaping up but have one > question about > > >> > > > > > > the folder structure. It seems more manageable to > structure it like > > >> > > > > > > this: > > > > >> > > > > > > applications > > >> > > > > > > -- my app > > >> > > > > > > ---- models > > >> > > > > > > ---- views > > >> > > > > > > ---- controllers > > >> > > > > > > ---- plugins > > >> > > > > > > ------ myplugin > > >> > > > > > > -------- models > > >> > > > > > > -------- views > > >> > > > > > > -------- controllers > > > > >> > > > > > > This way a plugin would basically be a sub-app, making it > easier to > > >> > > > > > > install/uninstall/upgrade and could also have multiple > models/views/ > > >> > > > > > > controllers. I remember some discussion about it but > can't remember > > >> > > > > > > what the reasons against it were. > > > > >> > > > > > > On Oct 21, 10:18 am, mdipierro <mdipie...@cs.depaul.edu> > wrote: > > > > >> > > > > > > > The new web2py in trunk (1.68.2) also contains an > improved > > >> > > > > > > > experimental solution for plugins. > > >> > > > > > > > Here is a new video about it > > > > >> > > > > > > >http://www.vimeo.com/7182692 > > > > >> > > > > > > > It includes suggestions from various people but I am > sure it still > > >> > > > > > > > needs a lot of work. Anyway, give it a try and let us > know what else > > >> > > > > > > > would you expect from a plugin system. > > > > >> > > > > > > > The interface for uploading/downloading plugins is > missing, among > > >> > > > > > > > other things. > > > > >> > > > > > > > Massimo- Hide quoted text - > > > > >> > > > > > - Show quoted text -- Hide quoted text - > > > > >> > > > - Show quoted text -- Hide quoted text - > > > > >> > - Show quoted text - > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---