Archive
Monthly
Go
|
|
DNN Blog
Jul
19
Posted by:
Ernst Peter Tamminga
2008-07-19 12:57:00Z
I have been thinking about how to get more developers interested and knowledgeable about DotNetNuke as CMS and the DNN framework, partly as preparation for my session at Open Force '08 Europe. OF'08 is part of the Software Developer Conference on 6 & 7 October in the Netherlands.
My proposal for this session was triggered by a number of occasions during the last months where we were asked for assistance on development projects where DNN was used as CMS in combination with custom development. I was surprised (disappointed might be a better word) at the level at which DNN and the framework was misused.
To give some examples:
- the developers always opened DNN in full source mode to start developing
- large portions of core modules were changed for things were commercial (reasonably priced) modules are available in the market
- there was no understanding of the principle of install packages
- the principle of version numbering and modules installation was not used: installation was done by copying .ascx files and dll's from test to production
- packing more then one screen (.ascx) module in a packages was not understood
- data base access was done in code behind form with dynamic SQL and passing SQL strings to the database
- the principle of data providers and versioning was not understood at all
- In the code quiet some hardcoded design was done, i.s.o. using skin and classes the right way
- almost no real use of the functionality of the framework was applied
- ...
And I can continue with more issues.
Were those developers non-developers?
Well, some of them were. These people are a shame for our profession, making money at a client while developing waste code. But there were also developers that I would qualify as experienced. We also found e.g. the WROX book on developing modules for DNN on the desk of those developers, so they did try to follow some guidelines.
Is it so difficult to develop for DNN with the DNN framework?
Well, DNN certainly is not the first project I would choose if I was a newbie in the field. OTOH it would be a great loss of productivity if you would develop an asp.net web application without using DNN and the framework. Even if developers grasp the possibility of DNN as basis for their web apps, a lot of functionality remains hidden in the framework, which, imo is not documented to the extend that we can profit easily enough.
I learned a lot from the windows help file (DotNetNuke470.chm) that I received from Stefan Cullman some time ago. He generated this help file (nearly 8Mb) based upon the comments that can be found in the sources of the DNN core (V 4.7.0). And although a lot of functions, methods and properties etc. are under documented, even browsing through the list in the help file helped me to better understand the richness the DNN framework.
My conclusion: A lot of development treasures remain hidden.
What next?
I have offered my help to Néstor Sánchez, the lead of the documentation group of DNN, to assist in creating better documentation of the framework. Not sure in what this will result.
What's your opinion on this point? How can we help other developers to profit from DNN and the framework to create better applications is less time? Please react. Write a comment on this blog or mail be at ernstpeter.tamminga@dotnetnuke.com.
I will be happy to share my view with yours. Attend my session at Open Force '08 Europe: DotNetNuke framework: a hidden jewel?
Ernst Peter Tamminga
P.S. Did you see my posting on the availability next (beta) version of the Events module: 04.00.02 RC1?
P.S.2 Geïntereseerd in een professionele .NET/SQL/DNN job in de omgeving van Amersfoort? Kijk dan op www.werkenbijxcess.nl.
19 comment(s) so far...
Re: The DNN framework: a hidden jewel?
I agree 100%. In fact, I have commented several times that the only people that are truely proficient in what the framework offers and how to use it, are those of us that have been around since the 1.x days when the codebase was much smaller and more straightforward.I am currently working on a project where some of the previous consultants calimed themselves to be DNN experts but in reality, had no clue how to implement the framework correctly.I've often wondered what the best way would be effectively communicate those jewels to the public. Count me in if you need help in this area.
By mathisjay on
2008-07-19 21:58:31Z
|
Re: The DNN framework: a hidden jewel?
I have dealt with this frustration for years. I have done everything I can to help the situation. However, I also feel that it is understandable for ASP.NET developers to not want to learn a bunch of "DotNetNuke specific things". This is why I am starting to make tutorials that use things like Linq to SQL so a person does not have to learn the DotNetNuke DAL. The things we have that are very helpful are things like the module packager. It is actually faster to use that then deploying assemblies manually. I also advocate the WSP method because it is easy to configure and the module packager packages it with one click for easy deployment. I think what we really need is to make module development much easier.
By AdefWebserver on
2008-07-20 08:40:08Z
|
Re: The DNN framework: a hidden jewel?
As a developer with 12+ years of experience in Microsoft technologies I am finding it difficult to feel at home in the DNN framework my first time out. We are using DNN as a CMS as well as an application framework due to time and budget constraints (small team, tight timeline). I am very impressed with architecture of the framework but the lack of proper documentation DEFINITELY slows the pace to crawl in certain areas. When it comes down to choosing between writing your own code to solve a problem versus digging through someone else's code for days to attempt to figure out where you can plug in the answer is pretty straight forward. We do this for a living and you don't make a living when you don't deliver a solution. I agree with all the sentiments 100% with the exception of your statement about commercially available modules. While there are a few modules available that are coded at a professional level the majority that I have purchased or reflected through are written by folks that I would not hire on my development staff. The UI is substandard, the code is not documented well, in many cases there is little use of the DNN framework when the module is at all complicated, and many are not even architected in an extensible way. I believe DNN would profit greatly by taking a look at itself as if it were a Microsoft product that was accessible in the MSDN library. Would you current documentation fit into that model or would there be tremendous gaps? I love open source and am always happy and greatful that others are more generous than myself and are willing to share their labors so the rest of us can ride on their shoulders so normally I would not even write a post like this. But you brought it up and in the case of DNN, a brand name that I am trying to successfully implement at the foundation of two major product releases, I think you can't claim yourselves to be a "product" or even a true "framework" when an introductory book by Wrox represents the best source of consise information about your code. I definitely believe in the project and at this point I am committed to it in my own environment. But for the time being my team will most likely be somewhere in your list of implementations that reinvented several wheels due to lack of clear documentation and understanding.
By mantrim on
2008-07-20 08:50:16Z
|
Re: The DNN framework: a hidden jewel?
@Mantrim from Ernst Peter
Nice thoughts and well formulated.
I would like to make a remark about the commercially available modules (BTW we do not make nor sell any commercial modules ourselves, we do only custom development). It is true that the quality of the majority can be discussed. OTOH the price is most of the time so low, that buying and trying well pays itself for us and our clients in the long run.
For us: we only buy modules for which we can buy a source version as well. Out of all modules we buy (we have bought more than 500 during the last years), about 10-20% are developed in a way we would do it ourselves: good quality, documentation, implementation. Some developers really stand out.
As for the rest: they might suffer from the same problem (quoting your last sentence): "lack of clear documentation and understanding."
Thank you for your comment.
By ept on
2008-07-20 08:53:19Z
|
Re: The DNN framework: a hidden jewel?
What is wrong working on modules with the full source code of DNN behind?
Without help files and other documentation (which is indeed missing), the source code is the primary source for help. "Object browser", "Goto definition", "search in files" and "show usages" inside VS guides you through the framework. It shows you how do deal with modules, users, security, etc. Unfortunately "Goto Definition" is some kind limited for C# developers, as it only generates the interface instead of jumping directly into the VB source.
Btw: the most common mistake for beginners in DNN is direct SQL access to core tables instead of using the API.
By cshark on
2008-07-20 16:34:50Z
|
Re: The DNN framework: a hidden jewel?
@cshark from Ernst Peter
What's wrong? Essentially nothing, unless people start to change the core, i.s.o. using the framework to do things. Having the source directly available is sometime tempting. I think there should be no real need to open the source. For me your examples "Object browser" and "Goto definition" e.g. is a result of the lack of the right documentation at the right time for you as developer. Compare it with this: I can download the source of the Microsoft .NET framework if I really want to, but do not need it to develop with the .NET framework...
Thank you for your reaction. Always worthwhile to learn how others work.
By ept on
2008-07-20 18:31:40Z
|
Re: The DNN framework: a hidden jewel?
Is the DotNetNuke470.chm help file you mention publically available?
EPT> I think is is public/free, but afa know it was not published. I have put the file as download link on the website of the Events team: www.DNNEvents.net
By gnomad on
2008-07-21 07:19:04Z
|
Re: The DNN framework: a hidden jewel?
I would agree with peoples comments. I have in the past been forced to work with the source version to try to understand the methods I am calling within the core. If these were documented a little better whereby Visual Studio displayed more meaningful inteli-sense tips it would not be as necessary to open the core.
Likewise I would really love to see a comprehensive document detailing the whole of the core API ala MSDN style. There are commercial products available that will extract all of the necessary documentation from the comments and meta data from your code.
All this requires code to be properly commented every time a change/modification/addition is made, and I appreciate that when your knee deep in development, going back and adding sufficient comments to this level is sometimes overlooked. After all, this is an open source effort and we're all volunteers. Maybe it would be better to have a two stage process whereby the author adds as much code as possible then another member of the team who is unfamiliar with the code attempts to use it based on what generated docs/intelisense provide.
Anything we can to improve this situation will be of benefit to all.
By webbo on
2008-07-21 09:55:23Z
|
Re: The DNN framework: a hidden jewel?
@webbo from Ernst Peter
Nice comment and agree on most points. Some comments. After 25yrs of development, I do not think developers go back to the source to document it once the project is almost finished. I personally like to document at the moment I write to code, or even before I write the code.
As for the extraction of the current comments into the .chm documentation. I've contacted Stefan Cullman (who made the .chm earlier) last week and spend a rainy Saturday evening setting up Sandcastle and various tools (all free) to do the job again.
By ept on
2008-07-21 10:00:05Z
|
Re: The DNN framework: a hidden jewel?
To me the biggest problem is the lack of standard books / etc which really take you through the whole core, in a developers since, that covers things in a simple building approach. There are some great community leaders, that have been trying to fill in the black hole, but even then I keep seeing guides / how-to's that just show you, but not explain. I lost count the number of times I have been through a guide, that tells me how to load this or that and how to change the ascx files, and then anytime something gets into the nitty gritty, you see. *copy this code into your project* Well ok yes thats great, but explain the code and why its like it and just how is it working with the DAL. Etc. So what happens, is you get a bunch of me's... I have built 10+ custom modules 2 which used the DAL, 3 which didn't just sql calls directly, 3 that were just sloppy, and 2 I coded as asp.net applications and just shoved a link into the frame work for.
Now I continue to improve and become better / more appropriate with my code, but there is just so few learning options, for budding developers, to take their expertise in asp.net and apply it to DNN Framework. Heck half the books on Amazon still reference 3.1 and the other half have a bunch of wasted areas around general asp.net programming. I have been really hoping the new book, Professional DotNetNuke Module Programming (Paperback) from Shaun and company helps to fill this void.
If not for AdefWebserver I would be pretty lost, which is where a bunch of developers are. This is why we see the whole piece, where it seems the only good programmers around have been around since 1.1 etc. It's cause they grew up with the code, have beat it to death on each stage of DNN's life.
I mean its not like DNN is part of any college's core studies.
By keeperofstars on
2008-07-21 14:38:56Z
|
Re: The DNN framework: a hidden jewel?
You really cannot appreciate the core frameworks potential and limitations until you have done several modules. I've made dozens of modules of varying complexity, and on each one I've learned a little more about how to leverage the framework.
However, in the end, people just go with what's easiest/fastest for them.
By ech01 on
2008-07-21 20:03:50Z
|
Re: The DNN framework: a hidden jewel?
Hi, I really hope this discussion will go on and the documentation will be more clear and improved for new users (like me). I really want to do things in the right way, I have most of the published DNN books on my desk and have digging around the PDF documentation. But I still miss a MSDN style documentation of the framework :-S
Another questions: I downloaded the DotNetNuke470.chm file, un-zipped, but when I try to access different nodes I got a "missing link" error, I can't get the .chm file to work :( Am I supposed to open this file within Visual Studio or something?
By magsto on
2008-07-21 20:03:55Z
|
Re: The DNN framework: a hidden jewel?
@magsto from Ernst Peter
Be sure to put the .chm file on a local disk, not on a share/network drive.
The MSDN style documentation could be a result of structured standard documentaion lines in the source extracted and changed into on-line help.
By ept on
2008-07-21 20:08:06Z
|
Re: The DNN framework: a hidden jewel?
@echo1 from Ernst Peter
Easiest/fastest: my expectation is that with the right documentation, DNN and the framework is more in this area.
Apart from that, there are projects where quality can go before easyness and development speed.
By ept on
2008-07-21 20:10:49Z
|
Re: The DNN framework: a hidden jewel?
@magsto from Stefan Cullmann please follow instructions at http://support.microsoft.com/kb/902225
By cshark on
2008-07-22 11:07:09Z
|
Re: The DNN framework: a hidden jewel?
I agree wholeheartedly with Ernst Peter and a better documented "How to DNN" would be a great asset to all DNN developers.
Thank you for volunteering to help. I am pretty new to DNN and am struggling with making some requested changes for my organization.
By ClydeStoker on
2008-07-23 18:31:02Z
|
Re: The DNN framework: a hidden jewel?
Thanks for this discussion.
I'm learning just reading it - plus everything Michael Washington has done! I'm happy to help - but unsure how to contribute.
That updated help file is available at: http://www.dotnetnuke.com/Default.aspx?tabid=825&EntryID=1919 and http://www.codeplex.com/DNNHelpSystem
EPT> Both are a result from of my work. I decided to put it on CodePlex, so it is highly visible. Contributions in this area are always welcome. Néstor Sánchez is Team lead for the documentation project. Advice: send him an email on the address nestor.sanchez AT dotnetnuke.com.
By VashJuan on
2008-07-25 12:09:31Z
|
Re: The DNN framework: a hidden jewel?
I disagree with adefwebserver pushing linq over learning the DNN DAL. Linq only creates horrible overhead and should only be used when a sql statement cannot be used in a Stored Procedure so that it's plan can be cached. i.e. Where dynamic sql is used. Sure it works fine for simple calls and less intense sites, but pushing it over learning the DAL creates bad habits.
However, I do agree with him that module development could be a lot easier. And I agree with everyone that documentation is lacking. A documented SDK explaining each method would be fantastic.
By henslecd on
2008-08-06 15:58:48Z
|
Re: The DNN framework: a hidden jewel?
I am happy to say that none of my techniques fall into your list of no, nos, however, I would echo others here to say that I often open the source just so I can locate functions that I want to use. With the documentation being so limited I have to go looking for code in the source and then analyze the functions to determine if I can use that function or write my own.
By slhilbert on
2008-08-06 15:58:31Z
|
|