General field of module

This is a forum to suggest new features for mojoPortal. 

This thread is closed to new posts. You must sign in to post in the forums.
3/30/2010 11:18:51 AM
Gravatar
Total Posts 171
I am a Russian programmer

General field of module

Hi, Joe

Now I'm writing some modules for mojoportal and noticed a peculiarity: each module contains a set of identical fields:

[ItemID] int NOT NULL,
[ModuleID] int NOT NULL,
[CreatedDate] datetime NULL,
[UserID] int NULL,
[ItemGuid] uniqueidentifier NULL,
[ModuleGuid] uniqueidentifier NULL,
[UserGuid] uniqueidentifier NULL,
[LastModUserGuid] uniqueidentifier NULL,
[LastModUtc] datetime NULL

Why are these fields have not been transferred to a separate table with primary key ItemID (Of course it would be necessary to develop standard operating procedures for this table)?

At first I wanted to write here all the advantages of such action. But you are a strong programmer must understand these advantages.

Maybe you'll create a table with these fields and develop standard procedures for working with it?

Best regards, Alexander

3/30/2010 12:55:22 PM
Gravatar
Total Posts 18439

Re: General field of module

Hi Alexander,

Sounds more like architectural criticism than a feature request.

You are certainly entitled to your opinion but I do not agree that these fields should be split into a separate table. I see no benefit to doing that at all and see several reasons not to. I also don't think there is anything wrong with having these similar fields on the feature specific tables.

First of all ItemID is not unique across features so a blog post can have the same itemid as a links module link or an imagegallery image etc.

Secondly if those fields were in a separate commonly shared table now I have to join to a table that has potentially a large number of rows since it would contain rows from many features. This would not be good for performance and would make the system more complex than needed.

Best,

Joe

3/30/2010 5:04:39 PM
Gravatar
Total Posts 111
Matt Millican InternetMill

Re: General field of module

It seems like he is trying to over-normalize the database.

I had an entire class in college about database normalization.  Although it is recommended in web (and other) applications, if you ask me, it's possible to 'over-normalize.'  Like you were saying Joe, it would require joining an additional table, and once you do it for all the features I could see that severely impacting performance for installs that have a lot of sites.

Not to mention the time it would take to pull those fields out of their tables and more or less re-create the structure for them.

I think it's just fine like it is.  I have to bring out that saying "if it isn't broke, don't fix it" (of whatever it is).

3/31/2010 11:36:16 AM
Gravatar
Total Posts 171
I am a Russian programmer

Re: General field of module

I'm more worried about the stability of the system and simplicity of writing modules for it, than a small speed reduction system. I did not call for changing the existing modules. If the module is working correctly, it can not be changed. My message was not about the architectural features of the system. Other worries me. The fact that absolutely no modules for the system developed by outsiders to programmers. That's what I propose, will simplify writing new modules.

Best regards, Alexander

3/31/2010 12:29:46 PM
Gravatar
Total Posts 18439

Re: General field of module

Hi Alexander,

Nothing stops you from using your preferred approach in your own custom features. I have no plans to to promote that approach, it has no appeal at all to me and I see zero benefit to do that.

mojoPortal has an open architecture that allows people to implement things they way they want in their custom features. We offer a base class SiteModuleControl which provides some convenience but one can use a plain old UserControl, one can use an OR Mapper or LinqToSql or anything they want. Or they can follow the proven patterns that I use.

In fact lots of people have implemented custom features to meet their project needs but that is a different thing than producing commercial features which requires more work and support. Since I myself am just barely managing to live on the revenue for my paid products it is not surprising to me that there are not lots of commercial add ons from 3rd party developers yet. As mojoPortal continues to become more popular and as I manage to make a decent living then it would become more attractive for third parties to develop add on features for sale.

Also it is not a true statement:

that absolutely no modules for the system developed by outsiders to programmers.

The Poll and Survey features were contributed to the project by community members, the metaweblog api was contributed by a community member, the initial version of the Feed Manager was contributed by a community member, the workflow system was implemented by a community member, the initial pgsql data layer, the initial sqlite data layer and the initial firebird support, and the initial support for LDAP/Active Directory were all contributed by community members.

Success of a project does not happen overnight, you seem to hold it against mojoPortal that we are not already as popular as other solutions and do not already have as much market share as other solutions. If I knew a way to magically get to that level of success overnight I would certainly do it. The only way I know to get to large success is to accumulate small success over time and that is what I am trying to do.

If you have so many worries about using mojoPortal perhaps you should use something else. There exist lots of alternatives and I have never claimed that mojoPortal is the best solution for every need. If the number of third party components available is of great importance you can certainly find a CMS that already has a large amount of add on features you can buy. The irony for me of course is that you have never purchased any of my products so it seems strange you are so concerned that more products are not for sale. Or I guess you expect there will be lots of great free add on features. In any case if you are not finding what you look for with mojoPortal perhaps you should keep looking and you can find something you like better.

Best,

Joe

3/31/2010 2:14:42 PM
Gravatar
Total Posts 111
Matt Millican InternetMill

Re: General field of module

Joe,

Normally I would not want to do this on public forum, but I do have to agree with you.  I know I've told you this before, but I really think you have a great system.  It's truly easy to develop custom add-ons for and to understand where things are coming from.

I've been through the database and SPs that you're using and they all seem good to me (not that I'm an expert by any means) and I've also started going through the code.  I think it's made of "strong" classes that help make the system run smoothly.

Also, Alexander, you mention that you would sacrifice "a little speed."  However, if you ask me, once you have multiple sites (some potentially with high traffic) running on mojo, I think if you had to join another whole table in the queries that you would notice a difference.  Maybe not always to the end user, but more in server performance.

3/31/2010 2:14:43 PM
Gravatar
Total Posts 171
I am a Russian programmer

Re: General field of module

Hi, Joe

I think that with such a strategy development system, you, unfortunately, never make a lot of money. Unable to work alone and be rich. It can only be glorified. Something must be working for you and also sell their program or as part of other systems or other systems ashamed to sell your system. Necessary to change the business model, if you want to be rich.

Best regards, Alexander

3/31/2010 2:45:54 PM
Gravatar
Total Posts 18439

Re: General field of module

Hi Alexander,

You are a real bringer of joy.

So you don't like my architecture and you think I have a bad business model, anything else you'd like to criticize while you are being so generous with criticism?

Criticism is the easiest thing in the world to do, building anything of value takes much more effort and talent.

I'm not aware of your experience in building a successful open source project, is there one I don't know about?

Have you ever built your own successful business from scratch?

I am not trying to please everyone and I will continue to do things my way.

Best,

Joe

 

3/31/2010 2:57:00 PM
Gravatar
Total Posts 171
I am a Russian programmer

Re: General field of module

Hi, Joe

I was not talking about architecture. I'm talking about ease of creating modules for the system. These modules are created by users of the system, you can sell through their online store and still have interest. Give you examples of companies that operate on this principle?

I repeat can not become rich by working independently

Best regards, Alexander

3/31/2010 3:00:29 PM
Gravatar
Total Posts 18439

Re: General field of module

Well, one thing I know for sure, I will never become rich trying to make you happy.

3/31/2010 3:01:10 PM
Gravatar
Total Posts 111
Matt Millican InternetMill

Re: General field of module

I'm not sure that the line "you can not become rich by working independently" is true at all.  there are many entrepreneurs out there who have been very successful by working independent. Not to say that you can't become rich by working as a team, but you can become rich by working alone as well.

You must sign in to post in the forums. This thread is closed to new posts.