I haven't snooped around too much here but it seems apparent from the application source that there is some need of more strict developer guidelines. There are some poor practices in place which could detract from what I find to be an excellent application thus far.
usage of the UmbClientMgr.historyManager().getCurrent() function is repeated here, wastefully.
This would be more efficiently written as follows:
var umb_current = UmbClientMgr.historyManager().getCurrent();
...umb_current != "" ? umb_current ...
just one example - most of my gripes are with non RAD coding practices [lots of onconsistency]
I'm also finding lot's of inline hardcoded styles [administrative interface] and inconsistent indenting, sloppy code formatting, etc that are detracting from the development experience. I would personally vote for google's or the Sun/Oracle developer guidelines [if I had any say].
I plan on branching this application and contributing as much as possible, was wondering if there is any concensus from contributors on guidelines.
No offense to anyone, just trying to contribute
Additionally:
All of the links on the right, "Similar Topics" pane, link to the same place?
Hi montana. Yeah, I noticed similar things early on. Although I think Microsoft's naming guidelines are more applicable than Sun or Google given the platforms we're all working with :)
Obviously the core team work incredibly hard and incredibly fast to bring new features and improvements to Umbraco, so it's a bit hard to nitpic. But at some point I'd love to see a feature freeze so they can spend some time going horizontal instead of vertical with the code base. Get the assembly names in order, remove redundancy and copied code, apply a consistent naming convention etc.
But there is an aweful lot of work in that, and that's without considering legacy wrappers created for deprecated code etc. Chances of that winning a resource race against new powerful features? Slim to none :P
Well us linux cats are a picky bunch. I'll donate a couple of days to it, I expect I'll completely rededicate this app and bring it into the RAD zone.
It's well worth it to standardize coding practices bar none. I've already gutted the app and found some things that are just not going to make it long term...
compiled code generating markup with hard coded styles for example... just not a good idea even from the quick and dirty perspective.
more MVC, less old school
I'm working on a framework right now and we're taking the approach of complete separation of interface from controller - even to the point of generating view config and then handing that to the renderer... makes skinning everything an amazingly easy thing!
Thanks for reporting. The next version of Umbraco (V5) will be rebuild (from scratch). It will be a an MVC app as steen mentioned and it will follow proper Coding Guidelines. I don't think that V4 will be refactored to folow proper guidelines because a lot of people build stuff on this API and it will cause packages etc to break.
Follow the Umbraco.org blogposts to see the progress of V5 (I've heard that they start blogging about V5 this week) and get involved on this forum
I agree it would be nice for the core to be more consistant in this way, but having worked with umbraco for a year now, and developed a number of packages, I can honesly say I have never needed to modify the core (ok, maybe I've submitted a few patches, but not many). I look at Umbraco as a base framework, and something that I can extend, rather than modify. So yea, it may not be coded the best way, but as I only work with the dlls, I can easly ensure my coding follows more rigarous standards.
Awesome news! It's definitely worthwhile to adhere tightly as possible to standards. Again let me say that I'm so happy about a .NET open source project, especially with a community and core development team with passion about making a great application. It's very exciting. It allows for developers like me to seriously look at Windows for web development [outside of corporate intranet/sharepoint] again.
I've been writing frameworks for some time now primarily in php, specifically for LAMPP [mysql/postgres]
I'm Engineering Director for my company, so of course the first thing I do is look at practical issues like overall application architecture and rigidity of development semantics... it's in my nature.
coding practices, developer guidelines
I haven't snooped around too much here but it seems apparent from the application source that there is some need of more strict developer guidelines. There are some poor practices in place which could detract from what I find to be an excellent application thus far.
I find small issues like the following:
... UmbClientMgr.historyManager().getCurrent() != "" ? UmbClientMgr.historyManager().getCurrent() ...
usage of the UmbClientMgr.historyManager().getCurrent() function is repeated here, wastefully.
This would be more efficiently written as follows:
var umb_current = UmbClientMgr.historyManager().getCurrent();
...umb_current != "" ? umb_current ...
just one example - most of my gripes are with non RAD coding practices [lots of onconsistency]
I'm also finding lot's of inline hardcoded styles [administrative interface] and inconsistent indenting, sloppy code formatting, etc that are detracting from the development experience. I would personally vote for google's or the Sun/Oracle developer guidelines [if I had any say].
I plan on branching this application and contributing as much as possible, was wondering if there is any concensus from contributors on guidelines.
No offense to anyone, just trying to contribute
Additionally:
All of the links on the right, "Similar Topics" pane, link to the same place?
"http://our.umbraco.org/forum/ourumb-dev-forum/features/NewTopic#"
Hi montana. Yeah, I noticed similar things early on. Although I think Microsoft's naming guidelines are more applicable than Sun or Google given the platforms we're all working with :)
Obviously the core team work incredibly hard and incredibly fast to bring new features and improvements to Umbraco, so it's a bit hard to nitpic. But at some point I'd love to see a feature freeze so they can spend some time going horizontal instead of vertical with the code base. Get the assembly names in order, remove redundancy and copied code, apply a consistent naming convention etc.
But there is an aweful lot of work in that, and that's without considering legacy wrappers created for deprecated code etc. Chances of that winning a resource race against new powerful features? Slim to none :P
Well us linux cats are a picky bunch. I'll donate a couple of days to it, I expect I'll completely rededicate this app and bring it into the RAD zone.
It's well worth it to standardize coding practices bar none. I've already gutted the app and found some things that are just not going to make it long term...
compiled code generating markup with hard coded styles for example... just not a good idea even from the quick and dirty perspective.
more MVC, less old school
I'm working on a framework right now and we're taking the approach of complete separation of interface from controller - even to the point of generating view config and then handing that to the renderer... makes skinning everything an amazingly easy thing!
regards
Most people around here take the more pragmatic approach! How does the app work, does it satisfy your needs, well, then use it, if not, don't!
I bet even you linux people don't believe that all code in the linux core is pure, 100%, sexy code?
Well, stick around, the next major version will be running on ASP.NET MVC.
Hi Montana,
Thanks for reporting. The next version of Umbraco (V5) will be rebuild (from scratch). It will be a an MVC app as steen mentioned and it will follow proper Coding Guidelines. I don't think that V4 will be refactored to folow proper guidelines because a lot of people build stuff on this API and it will cause packages etc to break.
Follow the Umbraco.org blogposts to see the progress of V5 (I've heard that they start blogging about V5 this week) and get involved on this forum
Cheers,
Richard
Hey Montana,
I agree it would be nice for the core to be more consistant in this way, but having worked with umbraco for a year now, and developed a number of packages, I can honesly say I have never needed to modify the core (ok, maybe I've submitted a few patches, but not many). I look at Umbraco as a base framework, and something that I can extend, rather than modify. So yea, it may not be coded the best way, but as I only work with the dlls, I can easly ensure my coding follows more rigarous standards.
Take a look at Arron Powells blog, specifically his Unit testing with Umbraco post, for some good examples. http://www.aaron-powell.com/unit-testing-with-umbraco
Matt
@richard
Awesome news! It's definitely worthwhile to adhere tightly as possible to standards. Again let me say that I'm so happy about a .NET open source project, especially with a community and core development team with passion about making a great application. It's very exciting. It allows for developers like me to seriously look at Windows for web development [outside of corporate intranet/sharepoint] again.
I've been writing frameworks for some time now primarily in php, specifically for LAMPP [mysql/postgres]
I'm Engineering Director for my company, so of course the first thing I do is look at practical issues like overall application architecture and rigidity of development semantics... it's in my nature.
Most kind regards, Thank you!
is working on a reply...