ASP.NET
  Home arrow ASP.NET arrow An Object Driven Interface with .Net
IBM developerWorks
Dev Articles Forums 
ADO.NET  
Apache  
ASP  
ASP.NET  
C#  
C++  
ColdFusion  
COM/COM+  
Delphi-Kylix  
Design Usability  
Development Cycles  
DHTML  
Embedded Tools  
Flash  
Graphic Design  
HTML  
IIS  
Interviews  
Java  
JavaScript  
MySQL  
Oracle  
Photoshop  
PHP  
Reviews  
Ruby-on-Rails  
SQL  
SQL Server  
Style Sheets  
VB.Net  
Visual Basic  
Web Authoring  
Web Services  
Web Standards  
XML  
Dedicated Servers  
Actuate Whitepapers 
Moblin 
IBM® developerWorks 
Sun Developer Network 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
ASP.NET

An Object Driven Interface with .Net
By: Paul Stevens
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 4 stars4 stars4 stars4 stars4 stars / 20
    2003-08-24

    Table of Contents:
  • An Object Driven Interface with .Net
  • Part 2: Creating our Business Object
  • Part 3: The Interface Generator
  • Part 4: Using our Interface Generator

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT

    Stay one step ahead of the competition. Evaluate and give feedback on some of the hottest web development tools on the market today. Make your opinion heard! Click Here

    An Object Driven Interface with .Net


    (Page 1 of 4 )

    Using .Net, Paul will demonstrate how to generate an object driven interface. A rich source of support material is included with this article so you can start building interfaces today. 

    To make it possible for us to specify attributes related to our properties in our Business Object we will start by creating a custom attributes class; this class will help us to specify details we will later use in the Interface Generator.

    The Custom Attributes Class

    Our first step in creating a custom attributes class is to create a class that inherits from System.Attribute

    <AttributeUsage(AttributeTargets.Property, AllowMultiple:=False)> _
    Public Class WizardAttributes
    Inherits System.Attribute
    ......
    End Class

    We specify in the Attribute usage attribute that the attribute can only be used on properties and that we do not allow multiple copies of this attribute per property, in order to get some meaningful data to our interface generator we will later use the WizardAttributes Class to add attributes to out property declarations some of the attributes we might want to specify for a property would be.

    a. Type a System.Type Object that will allow us to specify the type of control we want to render for the property
    b. ListBoxLines a Int16 That will allow us to specify how many lines a list box should display should we choose to use a listbox control for our property
    c. Label, the label we want to display in our interface
    d. Required, do we require a value from the user for this field
    e. SectionName, we want to be able to divide the Property Page into sections similar to the way it is done in Visual Studio to do that we need to be able to specify a section name for Each property
    f. Locked, to determine whether the property is rendered as read only
    g. Helptext, to display to the user when he/she selects the rendered property
    h. ListIndex for use with List Controls
    i. SelectedIndex for use with listControls

    Each of these fields will be created as public properties allowing you to use them when specifying attributes for a Property in the Business Object Class.

    <AttributeUsage(AttributeTargets.Property, AllowMultiple:=False)> _
    Public Class WizardAttributes
    Inherits System.Attribute
    'Private fields.
    Private lType As System.Type
    Private lListBoxLines As Int16
    Private lLabel As String
    Private lRequired As Boolean = False
    Private lSectionName As String = "Misc"
    Private lLocked As Boolean = False
    Private lHelpText As String
    Private lListIndex As Int16 = -1
    Private lSelectedIndex As Int16 = -1
    Private lValidationExpression As String = ""
    Private lValidationText As String = ""
    'This constructor defines the required label property.
    Public Sub New(ByVal Label As String, ByVal Type As System.Type)
    lLabel = Label
    lType = Type
    End Sub
    Public Overridable Property Type() As System.Type
    Get
    Return lType
    End Get
    Set(ByVal Value As System.Type)
    lType = Value
    End Set
    End Property
    Public Overridable Property ListBoxLines() As Int16
    ......
    End Class

    Our attribute class has two required properties. These are Label and Type, In order for us to create an interface with any meaning, we need to have a Label to tell the user what we are asking and a Input Control of some sort such as a Textbox which is specified by the Type Property, we create a New Constructor with these two values are Parameters in the above code thereby making them required when the user adds the attributes to his property declaration.

    The Base Class

    Now that we have created our attributes class we have one more class that we need to create before we can start using attributes and create a business object. We can not pass a list of items to be used in for example a dropdown list as an attribute since attributes need to be constants, so in order for us to gain the ability to specify the elements in a dropdown list and to make sure our interface generator can always find these lists of items we are going to create a base class that our business object needs to inherit from, this base class will contain certain properties and functions that our interface generator will assume are always present in the objects we pass it.

    Public MustInherit Class WizardBase
    Private lLists As System.Collections.Hashtable
    Private lList As System.Collections.Specialized.StringCollection
    Public ReadOnly Property List(ByVal Index As Integer) As _ System.Collections.Specialized.StringCollection
    Get
    Return lLists(Index)
    End Get
    End Property
    Public Function CreateList(ByVal ParamArray Items As String()) As Integer
    lList = New System.Collections.Specialized.StringCollection
    Dim item As String
    For Each item In Items
    lList.Add(item)
    Next
    If lLists Is Nothing Then
    lLists = New System.Collections.Hashtable
    End If
    lLists.Add((lLists.Count + 1), lList)
    Return lLists.Count
    End Function
    End Class

    The class is marked as MustInherit which means it can not be created using the new keyword but must be inherited by another class, the class contains two collections lLists and lList, this allows us to add as many lists as we need to the class and as many items to each list as we need, the lists can be returned by calling the List Property with the index number of the list we want to use, this will the return a collection containing the items belonging to the list, it also has a Function CreateList that allows you to create the lists that you need.

    That’s it for the Attributes and base class, now we can create a business object that will utilize what we have done so far.

    More ASP.NET Articles
    More By Paul Stevens


     

    ASP.NET ARTICLES

    - How Caching Means More Ca-ching, Part 2
    - How Caching Means More Ca-ching, Part 1
    - Reading a Delimited File Using ASP.Net and V...
    - What is .Net and Where is ASP.NET?
    - An Object Driven Interface with .Net
    - Create Your Own Guestbook In ASP.NET
    - HTTP File Download Without User Interaction ...
    - Dynamically Using Methods in ASP.NET
    - Changing the Page Size Interactively in a Da...
    - XML Serialization in ASP.NET
    - Using Objects in ASP.NET: Part 1/2
    - IE Web Controls in VB.NET
    - Class Frameworks in VB .NET
    - Cryptographic Objects in C#: Part 1
    - Sample Chapter: Pure ASP.Net







    © 2003-2008 by Developer Shed. All rights reserved. DS Cluster 1 hosted by Hostway