Archive
Monthly
Go
|
|
DNN Blog
Sep
19
Posted by:
Jon Henning
9/19/2005
Last time I attended PDC was back in 2000 when they unveiled this thing called the .NET Framework. I remember being there amazed at the depth of thought that was put into it. Being drawn towards web development, I keyed in on the new advancements in ASP.NET, especially WebControls. Finally, there was an easy way to encapsulate some of the complexities involved for creating controls to be utilized on the internet. It was then that I decided to write the Solution Partner's menu. I planned on taking the knowledge I gained from PDC and other sources and document each step involved in the development of the control. I published several articles on my companies website and eventually ended up with a cover story in ASP.NETPro magazine. The initial effort in those days was to provide a rich design time experience for the developer, which was the primary focus of that article. I had several hundred uses of my menu when I was contacted by what I thought to be just another average user (Shaun Walker) wanting to incorperate my menu in his product. It wasn't long before I continued to get emails from him "pushing the envelope" on what the control did. For, his product was not what I would call a typical end user of mine. He did not care about design time support, since the menu was rendered inside a usercontrol for his users. The way he expected to interact with the menu was through CSS. Most of my efforts for the menu was to expose properties like FontColor, BackColor, and Width which simply translated to styles, not CSS. Not seeing a reason not to pursue this direction I modified my menu to meet his applications needs.
It was about this time that I realized that his product actually had more end users than all my others combined. Additinally, the requests for modifications were continuing and generally were all good ideas. The major turning point in the menu's development came when he asked if I could host more than one menu on a page at a time. The way the menu had its event handlers set up there was no easy way to do this. That is, until I discovered that javascript was indeed a real and very powerful language that could handle many Object Oriented concepts. I remembered my excitement back then at the seemingly endless possibilities. I soon realized that I could incorperate much functionality inside client side objects in a manner similar to the .NET Framework. It was then that I came up with the idea of developing a ClientAPI. In doing so I had two choices. Make a library like this available from Solution Partners or reach an even broader audience through DotNetNuke. Obviously I chose to go the DotNetNuke route and through a little persuading got the ClientAPI incorperated into v3 of DNN. My initial scope for that release was limited, for I wanted to lay a decent foundation for versions to come and I wanted to minimize the risk involved, for I feared if the code I released was buggy I would loose the confidence of the inner core and not be permitted to realize my dream for a cross browser client side library.
Once 3.0 released successfully I started work on an area that I knew would be important, allowing the client to make a call into the server side. In fact, around this time is when I found that Microsoft had similar ambitions in its ASP.NET 2.0 client callback functionality. I quickly coded this functionality into the core around March 2005 and was hoping to get it integrated. Unfortunatly, the DNN project had other more important priorities and my code was delayed. Soon after the AJAX craze hit and I got a flood of emails asking how the ClientAPI fit into this seemingly new technology. Part of me wishes that I could have been "first out of the gates", but part of me is glad that I was able to utilize this functionality inside of some of DNN's controls, namely Populate On Demand (POD).
Having worked really hard over the past 9 months on updating the ClientAPI I was relieved to hear that I got the green light to integrate my work into the 3.2 release. At the same time I heard a rumor that Microsoft was going to release this ASP.NET 2.0 add-on called Atlas. From what I heard it sounded very much like the ClientAPI.
- Client side namespaces
- Client side objects
- Single library to write against that worked cross-browser
- Incorperation of diagnostic objects that allowed for unit tests
easily extensible for 3rd parties (clientapi is currently lacking)
- Rich client side controls, including object models, events (DotNetNuke.WebControls)
I can't tell you how anxious I was to attend this years PDC, where they were going to feature Atlas (among other things). I would be lying if I said I wasn't a little nervous that my effort over the past couple months would be wasted. In fact, after the first 2 sessions I attended I was feeling a little depressed, but admittedly I hadn't "got my heard around it" yet. It wasn't until the 4th session that a lightbulb clicked.
Atlas can be viewed in much the same way as the .NET Framework, they will handle all the intricices of writing your objects and laying out a lot of the OO contstructs (something I had intended to do at some time, but never really had a chance to do). Additionally, they offer many features, some of which overlap existing ClientAPI functionality, but this doesn't stop me from integrating my work into their Framework, in fact I envision utilizing their framework inside the ClientAPI namespaces at some point (when we are no longer worrying about supporting .NET 1.1). Actually, Atlas will not even be available until sometime in 2006, so there is a lot of time for me to layout and adjust my roadmap to make sure I can fully take advantage of the cool new features that Microsoft is exposing.
I wouldn't have thought it was possible for me to come away with the same excitement from this PDC as the one from 5 years ago, but the having Microsoft build a framework around javascript seems to have sparked a new flame. The future for both the ClientAPI and Atlas seems bright! Unfortunately unlike 2000, I have a full plate of existing DNN things to look after (3.2 release, beta of webcontrols, navigation provider), so I won't be able to jump right into the Atlas stuff... hopefully shortly after the 3.2 release I can prioritize my research and enhancements into Atlas.
|