- Visual Studio Tips and Tricks – Charles Carroll.
- Developing Custom Content Modules in DotNetNuke and Rainbow Portal Applications – Rahul Singh.
- Building ASP.NET Server Controls for Performance and Reliability – Chris Mazzanti.
I arrived a little late and missed a chunk of Charles’s talk, but I did managed to catch the end where Charles explained how to change ASP.NET pages on the fly without the original source, using reflector, and just in time compilation with ASP.NET. I would have liked to have seen more of Charles’s presentation, from the small snippet I got to see I gained a respect for the wealth of knowledge that Charles has to offer on the subjects in his field.
Charles Carroll, one of the originators of the WinProteam user group, is a full time professional ASP.NET expert who teaches various courses on the subject. Charles, more commonly known as Chaz, has been in the teaching business for over 20 years and is looking for a break from the teaching and to get into full time development. Charles will be teaching until February and you can sign up for ASP.NET courses via his web site.
Rahul Singh introduced the group to two portal software animals – Rainbow and DotNetNuke. Both of these portal applications are frameworks designed for displaying portlettes (Microsoft refers to them as web parts) – snippets of functionality on web sites that can be customized and dynamically placed on a web page. Rahul’s presentation focused mainly on Rainbow, his preference of the two applications, but he did find time to mention some of the differences in the portals and why he chose to use Rainbow on his own web site and not DNN.
What are portal applications? Rahul embarked his presentation by explaining that portals simplify web site development. Portals offer easy construction because page layout is inherent in the application framework and most of the typical functionality of a web site is built in an array of portlettes. Portlettes can be displayed in various positions on a web page and can by configured in real time by an administrator without having to write any code. Custom portlettes can be easily constructed in .NET in the case where the framework doesn’t provide one to meet the needs of the developer.
Rahul’s presentation continued with a demonstration of an Amazon books custom portlette. Amazon provides a Web Service to suck detailed information on book titles etc, which can be aggregated within Rainbow using a dedicated portlette. Rahul has the code available for anyone interested.
The portal presentation concluded with a short demonstration on how Rainbow manages different skins to produce a different look and feel without writing a single line of code. I came away from this presentation wondering whether I should construct my web site, RobGarrett.com in Rainbow, rather than spending hours in ASP.NET.
A quick break for yummie Free pizza 🙂
Chris Mazzanti was the final presenter of the evening – an expert developer with RDA, who was visiting the user group to give a talk on ASP.NET server controls. The previous presentation by Rahul had me seriously thinking about throwing in the towel in with my ASP.NET website (still under construction) and downloading the latest version of Rainbow. Chris refreshed my memory as to why I liked playing with ASP.NET in the first place – user and server controls.
Chris started off explaining the difference between ASP.NET web pages – ASPX, user controls – ASCX, and server controls. Essentially, they are all server controls, deriving from System.Web.UI.Control. Many developers are under the misconception that ASPX files are loaded by the framework and then translated, in a similar fashion as to how legacy ASP translates VB script pages. Chris explained that this belief is inaccurate and that ASPX and ASCX pages are simply a serialized versions of an object control tree structure, which is loaded into memory before the page is rendered. A demonstration was provided in the presentation to illustrate a server control in action.
Part of the server component talk included a slide that listed the steps involved in the process of an ASP.NET page, in order of operation. This helped to demonstrate why ASP.NET acts in the way it does when I try to get clever with server controls and manipulate the View State at different times in the process chain. I quickly noted down the details of this slide and intend to follow up with a dedicated post on this subject in this blog.
Unfortunately the evening had come to an end and Chris had to truncate his speech (his agenda was so densely packed with good material that we only got through about half of it), but he did manage to conclude with some mention about the View State – a base 64 encoded property bag used by ASP.NET to retain the state of page controls.
I would have liked to hear more from all of the speakers in this meeting, three hours was just not long enough to cover all topics in depth. However, I had ingested enough knowledge to want to go back home and try out what I had learned in the meeting. I intend to continue development of my web site on ASP.NET because I want more exposure to server controls, but I also intend to investigate Rainbow – perhaps I’ll launch a sister site. 😉