Home
        Wiley Professional Web Parts and Custom Controls with ASP.NET 2.0
         Contents
1.    Creating Your Own Controls    ASP NET comes with its own set of server side controls    so why create your own  And why  would you need three different kinds of controls  custom controls  Web Parts  and user controls     By creating your own controls  you can build powerful  reusable visual components for your  Web application   s user interface  including components that allow your users to customize and  personalize your application  This chapter introduces you to the two primary types of controls   custom controls and Web Parts  along with user controls  You ll also see how creating your own  controls can simultaneously improve the quality of your Web applications  make you more pro   ductive  and improve your user interfaces     The Three Kinds of Controls    Why three different kinds of controls  Part of the reason is historical  Custom controls and user con   trols were introduced in the first version of ASP NET  while Web Parts are new to ASP NET 2 0 and  add functionality that wasn   t available in user controls and custom controls  So  from one perspec   tive  Web Parts are different from user controls and custom controls because they are    newer       not  a very important difference  As you ll see  Web Parts are really just an extension of custom controls   but that new functionality provides developers with the opportunity to deliver something new  the  ability for users to customize Web pages  But even that description doesn   t really help distinguish  among
2.   So  in addition to building applications  you can  provide the tools that allow users to build their own solutions     Allowing Customization with Web Parts    Initially it may seem that incorporating Web Part tools into your application isn   t all that different from  incorporating Web Part components into your page  When you decide to use a control as a Web Part  it may  appear that all you   ve done is delay when the control will be incorporated into a page or when the control   s  properties will be set  For instance  instead of adding your control to a page at design time  vou ve delayed  adding the control to the point when the page is being used at run time  You may be thinking that all that   s  required is some additional planning to ensure that your page will work correctly no matter when controls  are added  You may even be thinking that all you ll really need to do is add some more error handling to  your code in order to deal with conditions that may not have been considered at development time  If you  do  then you   re missing the point of Web Parts     Here   s the point  Incorporating Web Parts into your application development makes it possible to create  a new kind of Web application  SharePoint  where Web Parts first appeared  was designed to empower  users to build solutions that met their needs  With Web Parts now part of the ASP NET developer   s  toolkit  you  and every other ASP NET developer  also have the ability to empower your users  Instead  o
3.  Price  Cooking with      Less Than Select   Computers business  11 95 6 9 1991    Surreptitious Balance     Exactly Sheets       Greater Than  Straight Talk About  SCH Select   Computers business  19 99 6 22 1991    Find Books          File Edit View Favorites Tools Help  O Back   O  gt  Il e  A  A Search   Favorites ama ae          Custom Books  Pat Vogel E Vogel    Title Torst Tast Name Price  Name    Cooking with Computers   Surreptitious Balance Sheets    Cooking with Computers   Surreptitious Balance Sheets    Select You Can Combat Computer Stress  Marjorie Green  2 99  Select Straight Talk About Computers Dean Straight  19 99    Computer Phobic AND Non   Select Phobic Individuals  Behavior Stearns MacFeather  21 59  Variations    Computer Phobic AND Non   Select Phobic Individuals  Behavior ivi Karsen  21 59    4 D  len     omaa    Figure 1 2    Select Michael O Leary  11 95    Select Stearns MacFeather  11 95 Compute          Implementing Reusability with Controls    One of the key ways to improve your productivity as a developer is through the re use of components  If  vou ve been building any kind of application  you   ve been using  or thinking about using  reusable objects   If you   ve been developing with ASP NET  then vou ve been using  or thinking about using  custom  controls and user controls as a means of creating reusable components     Chapter 1    When most developers think of    objects    they think of middleware components     items used to  encapsula
4.  add to your Web Part  The client side code must be generated from your  server side code  rather than typed into the HTML view of a Web Page  Without the benefit of the Visual    15    Chapter 1    Studio  NET designer  it   s going to take much longer to lay out your user interface  And  without the  benefit of Visual Studio  NET   s IntelliSense support for writing client side code  it   s going to take longer  to write bug free client side code  also     You should use a custom control only if there is some compelling reason for not using a user control  In  the days of the ASP NET 1 0 and 1 1  there were several benefits to using custom controls compared to  user controls     custom controls had a design time interface and could be shared among projects  for  instance  However  with ASP NET 2 0  some of those differences have gone away  With ASP NET 2 0   there are only three reasons that might cause you to consider using a custom control     Q You should use a custom control whenever the control will be used in more than one project     Q You should use a custom control when your HTML can   t be generated by some combination of  existing ASP NET controls        Q You should use a custom control when you want to extend an existing ASP NET control  rather  than write all the functionality yourself   While you can extend an existing ASP NET control by  wrapping it inside a user control  it   s often easier to extend an existing control by inheriting  from the existing cont
5.  as the anonymous user  then the user may be silently logged  on using whatever credentials are currently available  for instance  the user ID and password that the  user logged on to his workstation with   If no valid credentials are available  the user may be asked to  enter a user ID and password  After the user has logged on to your site   s server  your application may  have an additional level of security that requires the user to enter a user ID and password into your  application   s login page     Creating Your Own Controls    All of this work  both in the infrastructure that supports your Web application and in the application  code behind your login page  has just one purpose  to establish who the user is  the user ID  and to  authenticate that claim  the password   Once a user is authenticated  she is then authorized to perform  specific activities     Whatever mechanism is used to authenticate the user  when the process is completed successfully  the user  has been assigned an identity  From this point of view  security is just the base level of personalization   security assigns an identity that is authorized to perform some activities  and forbidden to perform others    Personalization extends this security feature up from the ASP NET infrastructure and into the application  domain  Personalization allows you to manage your application on the basis of who the user is     The identity you are assigned when you log onto the Web server is used just within the appl
6.  can  build and the easier it is to build specific items  a car is considerably easier to build if  your kit includes wheels and axles  for instance   Within any application domain   domain specific tools are more useful than general purpose tools     With Web Parts  your job is to provide your user with a set of building blocks that your  users can build solutions with  And  besides  who doesn   t enjoy playing with Legos           Undoubtedly  the user community for your application will contain a variety of users  many with special   ized needs  It   s entirely possible that every user has a unique set of needs  As a result  different users may  assemble the Web Parts that you   ve built in different ways  Instead of building a single application that  must meet the diverse needs of all of your users  you build the Web Parts that your users need  and let your  users each build a set of unique applications that meet their needs  Instead of building a single application   you enable the creation of an infinite number of applications  each tailored to its user  This is the ultimate  goal of user customization  Each user builds a custom application for himself  With customization  each  user sees her own custom version of the underlying application  as shown in Figure 1 2     This is X customization  eXtreme customization  But you don   t have to go that far in order for Web Parts  to be useful to you  If you do allow users to customize your application  it   s likely that you
7.  contact information     In this book application  users can list books in many different ways  for instance  wish lists  gift registries   recommended books  reminder lists   The application supports a variety of different customer types  such  as individual consumers  companies  or libraries  and a variety of ways for customers to order books   individual orders  bulk orders  recurring orders  and so on   Customers can buy books using several  different purchase mechanisms such as credit card  check  or purchase orders  Refer to Figure 1 2 to see  typical pages from the bookstore Web site  listing books that match criteria entered by the user     Creating Your Own Controls    Obviously  many components in this application can be written once and then reused  For instance  a set  of business rules that calculate a customer   s creditworthiness or calculate the discounts available on an  order shouldn   t be duplicated in all the places where an order can be made     there   s just too much  danger that different versions of this code will get different answers  However  this code is implementing  business rules and should be put in an object that is accessed by the parts of the application that need that  processing     There are a number of places in this application   s user interface where a standardized  reusable control  would be useful  Each page  for instance  should have the company logo and basic page information at  the top  ASP NET   s master pages sound like a so
8.  ll support  only limited customization of restricted portions of your application  And  in all likelihood  rather than  each user building a unique application  a single customization will be implemented by many users in  the user community     But you can still consider X customization as the ultimate goal of Web development     empowering  your users with the tools they need to meet their goals     Customization doesn   t have to be limited to your application   s users  You probably already recognize   that you have different kinds of users in your user community  As a result  you may be planning different  parts of your site to serve different user types  As part of this design process  you can create a series of  roles for your application  where each role represents a different segment of your user community  The  next step is to create a set of controls that can be assembled in different ways to create the pages that make  up your application  You can then go one step further and  after adding your controls to the Web page   use the controls as Web Parts and customize them for various types of users  The final step is to assign  users to roles so that when a user logs on  she receives the pages designed for her role     Creating Your Own Controls         Microsoft Internet Explorer    File Edit EA Favorites Tools Help    EEDE d     2 Search   Favorites ef Meda      e    Price   Published      The Busy Executive s   business x  Database Guide business  19 99 6 12 1991 
9.  only and isn   t extending some other control  There are many benefits to using user controls        The drag and drop design interface supported by user controls is the simplest and fastest way  to create your controls    user interface     Q You can put any amount of server side code behind a Web user control  so you can have your  Web Part perform any server side processing that you want     Q You can give your Web Part custom properties  methods  and events  increasing the flexibility of  the Web Part     Q  You can include client side code and HTML in your Web Part along with ASP NET WebForm  controls and server side code just by switching to HTML view  This also lets you take advantage  of Visual Studio  NET   s support for writing client side code  including IntelliSense      Q   Inaddition to being more powerful than pure HTML  ASP NET WebForm controls generate  their HTML at run time and can configure the HTML they generate to match the device that is  requesting them     Because a user control can be used in a single project only  if you want to use a user control on two Web  sites  you have to copy the control from the project that it was created in and paste it into the other project  that it will be used in  This means that you will eventually end up with multiple copies of the same user  control  When that happens you lose two of the benefits of components     Q Standardization  Inevitably  the multiple copies of the user control will start to diverge  Each  ve
10.  the three types of controls  while Web Parts are a special class of control  you can use both  user controls and custom controls as Web parts  although they won   t have all the customization  facilities of a full fledged Web Part      Web Parts  custom controls  and user controls all allow you to create reusable components that can  be used  in turn  to create Web pages in ASP NET  Web Parts  custom controls and user controls in  ASP NET 2 0 look very much alike when you are using them to build Web pages  All can be used  in Design view  for instance     you can drag them onto a page  resize them  and set their properties  in the Property window  The major difference is that you drag custom controls and Web Parts from  the toolbox in Visual Studio  NET but you drag user controls from Solution Explorer  However        Chapter 1    because both user controls and custom controls can be used as Web Parts  you can drag customization  components from both the Toolbox and Solution Explorer  full fledged Web Parts appear in the  Toolbox   Whether you are building Web Parts  custom controls  or user controls  you can add your  own properties  methods  and events to them     User Controls    While the focus of this book is on custom controls and Web Parts  user controls shouldn   t be ignored  For  developers  the major difference between user controls and custom controls is in ease of development      a powerful incentive to use user controls  User controls provide an easy way to cr
11.  through a provider model can be enhanced or replaced with a provider  written by you  or some third party  such as IBM s Tivoli for transaction management   Once you have  built a new provider  you plug it in to the list of available providers and select it when you build your  application  which is why providers are said to be    pluggable      The main requirement of a provider is  that it has to reproduce the interface  methods  properties  events  for the provider that it extends or  replaces  However  what happens behind that interface is up to the developer that creates the provider     20    Creating Your Own Controls    The final component of the personalization framework is the profile service  A profile is all the data  associated with a specific identity  The profile service allows you to store and retrieve data for a particu   lar identity or role  To access the profile service  you need a profile provider that handles all the data  access for you  The profile service is very flexible  you can store any data from simple datatypes  for  example  strings  right up to an object  provided that the object can be serialized   In addition  saving  and restoring data from the profile is handled for you automatically        The personalization framework allows you to store  as part of a profile  the Web Part  customizations associated with some identity  The membership provider allows you  to keep track of which identities are being used  The login controls assign identit
12. b Parts that end users can add to their pages in order to create their own  solutions  Think of Web Parts as reusable visual tools  rather than just visual components   Web Parts  are tools that users employ to meet their goals  When you create a user control or a custom control you  design it to help you and other developers solve problems in creating applications  With Web Parts you  create controls designed to let end users solve problems  often in situations that you may not have even  thought of     This opportunity is challenging because it   s difficult to predict all the ways that users will find to employ  a genuinely useful Web Part  If building a reusable visual tool isn   t enough of a challenge  you can also  offer users the capability to customize your Web Part to meet their needs  In addition to adding your  Web Part to a page  users can also modify the way that your Web Part behaves     Developing with Web Parts isn   t about what you can do for your users  Web Parts are about what you can  allow your users to do for themselves     how you can empower your users  You can give users the ability  to add Web Parts to pages  remove Web Parts from pages  move Web Parts from one location to another  on the page  customize the Web Parts on a page  and join Web Parts together so that they can pass infor   mation between themselves  Users can perform all of these activities through your site   s user interface      other than a browser  no additional tools are required
13. bly a need for two controls  a detailed book control that would display all the  information on a book  and a summary book control that would display only basic information  Because  the detailed information control would use a wide variety of controls and formatting to display all the  information  it might be easiest to create it as a user control  Because the summary information control  requires fewer controls  it might be easily created as a custom control  Figure 1 4 shows examples of  these two Web Parts  with the detailed display above the summary display     11    Chapter 1    12       om Boo Deta e TENE erne ore  Of x  File Edit View Favorites Tools Help   A  O Back       gt   x    i   2 Seach s Favorites ef Meda lie    Address Lei http   localhost 1416 Pro4SPNetControlsCS  BookList aspx  gt   E Do   Links  gt                        Books For You    Title   Finding My Home  Author  Jan Williams Visit the author s page  Price   46 50    M Discounts Available    Reviews     Perhaps one of the most   exciting  climber  books published   this year  Jan s account of climbing   Everest solo and without oxygen is   not only a physical quest  but a Jan  spiritual one  After the end of his Williams    marriage lan travale ta tha tan nf          om Boo a e oso erne ore   O1x  File Edit View Favorites Tools Help   2  Back r  E    x   2    _ Search       Favorites 7 Media  lt 4     hy E    Address E http   localhost 1416 Pra4SPNetContralsCS  BookList2  aspx  gt   E Do   Links  
14. cation data  These objects would be called from code in the application   s user interface and  in turn   update the application data in the database     The ASP NET tools  however  work only in the presentation layer  where they become an integral part  of the user interface  In terms of the three benefits of using objects  productivity  standardization   simplification   the ASP NET tools allow you to create a consistent user experience across many Web  pages  and  with custom controls Web Parts  across many Web sites   In addition  middle tier objects  can execute only on the Web server and are accessible only from application code that executes on your  Web server  Web Parts  on the other hand  support writing code that will execute on both the server and  in the browser  on the client  With the ASP NET tools you can include client side code that will be added  to the HTML page that goes to the user and  as a result  executes in the Web browser     Controls in Action    10    As an example of using controls to implement reusability in a user interface  consider a Web based  application that allows users to browse a catalog of books and order books  A user can log on to the  application  search for a book by a list of criteria  read the details on a book  and place an order  Before they  can access the site  users must register by entering information about themselves  In addition  when buying  a book a customer must enter  or review and confirm  her billing  shipping  and
15. ce  author  title  publisher   while another control might offer options only of interest to  collectors  allowing the user to specify particular editions or publication dates  for instance      17    Chapter 1    Q Listing books  One control might provide a single column with limited options for sorting the  list  another control could support complex sorting options  another control might format the  user into a rigid grid format with a single line for each book  and yet another control might  allow the list to    snake    through multiple columns  allowing more books to be listed on a page     Q Displaying book information  Different controls might vary in the amount of information  displayed about a book or which information stands out  One control might be formatted so that  information about book size and weight stands out for retail buyers concerned about reducing  shipping costs     information that the typical reader isn   t interested in     With those controls created  you could add a page to your application that consists of two areas     Q One area at the top of the page to place one of the search criteria controls       Q   Anarea below that to put one of the controls for listing books    Users could draw from your toolkit of Web Parts to build the search page that they want  Users would  be able to put the search criteria Web Part that most meets their needs at the top of the page and put the  listing Web Part they want below that  To work with the listing cont
16. ciated with the  log on process  including sending forgotten passwords to users   For personalization  these controls allow  a user to be assigned an identity  Separate from this process  the site administrator has to register with the  personalization datastore the identities that users can be assigned  Figure 1 6 illustrates the three elements  of the personalization framework  login controls  membership providers  and profile services     19    Chapter 1       A Custom Books   Login   Microsoft Internet Explorer MEEI  Die Edit View Favorites Tools Help r    sl Seach     Favortes bd    Address L    hin  Aocathost 1416 ProtSPNetCont_         E  6 Links          LogIn  User Name    Pass              Remember me next time           Membership  Log In  Providers Profile  4 Services      Done SJ Local intranet       Login Controls       Figure 1 6    Within the area of user management  some other features of SharePoint have also migrated into  ASP NET 2 0  Within SharePoint  it   s possible for authorized users to create new SharePoint sites  new  users  new pages  and perform other administrative tasks     In ASP NET 2 0  as part of the personalization framework  it   s possible to implement user management  functions within the site itself  although you still can   t create a whole new Web site from within an  application   ASP NET even comes with a set of pre defined user administration pages that you can  incorporate into your site     Logging in is more than just assigning 
17. common to dif   ferent pages  you are guaranteed that the functionality is implemented in a common way     Simplification  By dividing functionality between specialized components and other parts of  the application  such as workflow management  business logic  data access   the complexity in  any one part is reduced     Web Parts  custom controls  and user controls provide all three of these benefits  Web Parts add features  that custom controls and user controls do not  These features include     Q   m        m     Integration  Web Parts on the same page can find one another and exchange information     Property settings that can be changed by the user  At run time  users can change property set   tings for a Web Part to further customize the application for themselves or others     Page design  Web Parts can be added or removed from the page  relocated to other parts of the  page  or just minimized to    de clutter    the page     The benefits of reusability with object oriented development are so well known that they form part of  the conventional wisdom of modern application developers  But Web Parts also provide another benefit   customization  The benefits of customization are not as commonly known  however  so the next section  describes why customization matters to you     Creating Your Own Controls    Beyond Reusability with Web Parts    Through customization  Web Parts give you the opportunity to gain a new and more challenging class  of benefits  you can create We
18. ductivity by letting your users build parts of the application  for you  This section offers a few examples based on the bookstore application  Your users will certainly  come up with many suggestions for customizing your application by using Web Parts     Creating Your Own Controls    When you build an application  you are faced with decisions on what user interface will work best   for your users  For instance  the application   s designers may have decided not to display book detail  information on the same page as a book list  The site   s designers may have thought the amount of  information on a page with both a list and detailed book information would be overwhelming     for most   but not all  users  So  while users can generate a list of books with summary information  when the user  wants to look at detail information he has to click a button and go to a new page  To continue to work  through the list  users must click a button to return to the list  The result is that users    ping pong    back  and forth between the list and detail pages  For many users  this is the optimal design     But there may be users out there who resent having to click an item in a book list in order to go to a new  page that displays the detail information on a book  They would prefer to have the list display the detailed  book information  rather than just the summary information  Given access to the controls already dis   cussed  using those controls as Web Parts would let users build t
19. eate reusable controls   If you know how to create a Web page in ASP NET  then you know how to create a user control  As an  example  you can add controls to your user control the same way that you add controls to a Web page     by dragging and dropping the controls onto a design surface  Figure 1 1 shows a user control in Design  view in Visual Studio  NET     29 ProASPNetControlsVB   Microsoft Visual Studio                                                          File Edit View Website Build Debug Data Format Layout Tools Window Commurity Help  a  H  Gog yanl  G D  Bi 9 doaie sf    TimesNewRoma   122    B ZU A  7      i  j  ke      WebUserControl ascx   BookDispley yb   Stat Page   Test4 aspx  5 Controls     Hal Blea 4 g  k EE      Wl wkl  S   BookDisplay Hame EE S  GA Controls     Standard H  Ea Properti  Sec i E  E Pale   e a  BookDi   a Label Bity F S  i ControlsvB   labi TextBox n 8 Sa  My Prog  Button Bountry  Canada  gt   Ya  BookDi   E LirkButten n   F    EE State Province   Alberta D cH     7  A HypeiLink z See  Sch Sae   Delete  E7  ListBox DOCUMENT ha  EI CheckBox 7    eB     elo a sexe    SS H    etn   e BNS e So     u Langus   A Image     de nex   LA Oar   LD 0 Mesesas  Stict   2 ImageMap     Description    F  Lre    Column    Project         Tae Debug      BulletedList Indicates whether the   HiddenField zl ett  Left  239px Top  204px  Figure 1 1    Of course  nothing comes for free  In order to gain this ease of development  user controls have several  limitat
20. f just designing an application to perform some task  you can consider the entire range of activities that  your users need to perform and build tools that support those activities in any combination  Instead of  delivering a rigid system that implements your design  you can build a discrete set of tools that allows  users to meet their own needs  As your users    needs change and grow over time  they can call on your  tools to deal with those changes     Chapter 1       Piggy Banks and Lego Kits    What   s the difference between building a standard application and building a cus   tomizable solution  Let   s say that you have some spare change rattling around in a  drawer  or  worse  in several drawers   The obvious solution is to go out and buy a  piggy bank  The piggy bank is a great tool for collecting and holding coins     but that   s  all it can do  Most piggy banks don   t even do a very good job of holding paper money   let alone all the other things that you might want to save     So instead of buying a piggy bank  you could buy a Lego kit  With a Lego kit you can  build your own piggy bank     perhaps even figure out how to build a bank that works  well with all the different things that you want to save  You can also build a tower  a  plane  a car  and anything else that you can think of     In addition  different Lego kits have different building blocks  The greater the variety  of Lego building blocks available to you  the greater the variety of things that you
21. gt                           Author   Name    Select   oe Data Deprivation  Four Case White  19 99 k  Select   The Busy Executive s Database Guide Green  19 99  _Select   You Can Combat Computer Stress  Green  2 99  Select   But Is It User Friendly  Carson  22 95   Select  Sushi  Anyone  O Leary  14 99   Select SE oe Ge dere O Leary  11 95   Select   Straight Talk About Computers Straight  19 99  Select   The Busy Executive s Database Guide Bennet  19 99       he A E       Figure 1 4    Creating Your Own Controls    It would be convenient to have a single control that could be used to build all lists  This control could be  implemented in one of two ways  it could either accept a set of criteria for building a list of books  or  accept a list of book identifiers generated by some other part of the application  Either way  this control  would use the previously created book summary control to display the individual books on the list in a  standard way     Throughout the application  customer information is gathered and displayed  Rather than make the user  work with several different formats for customer information  why not create a customer information  control  This control would work in two modes  data entry and data display  In the data display mode   the control would retrieve customer information from the database and display it  In the data entry  mode  the control would accept customer information and do whatever validation is appropriate to the  user interface  ensur
22. his detailed list page by dropping the  detail book Web Part onto a page with the listing control  Look again at Figure 1 4  The top portion shows  the standard book listing using the detailed book information Web Part  while the bottom portion  illustrates the same listing  but now using the summary book information Web Part     With Web Parts  any user can build a page to meet her unique needs  the only limits being the toolkit of  Web Parts that you provide  For instance  the application probably has a page that displays all the books  purchased by the current customer  The user just navigates to the page to see the books she   s bought   However  it   s not hard to imagine that customers might want to list all the books purchased by their  company or some other buying entity that they have permission to view  To get this list by using one of  the application   s built in lists  the customer has to navigate to the page  enter the name of the organiza   tion into the search criteria  and then generate the list  You could expand your application to hold the  customer   s various affiliations and automatically display books purchased by affiliated organizations      but where does this stop     Instead  you could allow your users to build a dedicated search page  The first step would be to enhance  the customer information control so that the user can set the properties on the control  including the  customer name  A user could then drag the customer information control to a 
23. ication   When your code accesses other services  for example  reading or writing a database   those accesses are  normally performed by an identity that represents ASP NET   On Windows 2003  this identity is called  NETWORK SERVICE  on other versions of Windows the identity is called ASPNET   In your applica   tion   s Web Config file you can turn on impersonation  which causes the ASP NET application to adopt  the identity used to log on to the server  the anonymous user if anonymous access is enabled  the user e  identity if anonymous access is not enabled     Understanding the Personalization  Framework    The good news is that the personalization framework will take care of itself     by and large you can just  build on the personalization framework and count on it to work  However  there are some decisions that  you will need to make as part of setting up a Web site  for example  selecting the correct provider for your  site   In order to make those decisions you need to understand the components of the personalization  framework     The personalization framework has three main components     Q   Login controls  Q Membership providers    Q Profile services and providers    The first components of the personalization framework that a user encounters are ASP NET 2 0   s new  login and user controls  Rather than write all the code necessary to log in a user  you can simply drag and  drop the new login controls to a Web page  These controls handle all the typical tasks asso
24. identities  For sites that have a small number of users  implement   ing personalization on an identity by identity basis is a viable choice  However  as the number of  identities increases  the costs of maintaining personalized information increases  While costs increase  with the number of identities  the benefits of personalization don   t increase  In all likelihood  the cus   tomizations made for one identity will be applicable to other identities  In any user community  you can  probably break your user community up into several groups  This can be handled by assigning individual  users to roles and implementing customizations on a role by role  group  basis  As a result  you need a  mechanism that not only assigns identities to users but also assigns users to roles     The next component of the personalization framework  the membership provider  handles this  The  membership provider is the glue that binds the site to the users that access the site and binds the site   s  functionality to the various user roles  Membership providers also handle all the tasks around storing  user and role information  Two membership providers come with ASP NET 2 0  one for storing informa   tion in Microsoft SQL Server and one for storing information in a Jet database  If you want  you can even  build your own membership provider to connect to other data stores     A provider is a component that extends or replaces some existing ASP NET function  Any part of  ASP NET that is implemented
25. ies  to users        Summary    In this chapter vou ve learned about the two types of controls that you can use in ASP NET     Q   User controls  A combination of content  static HTML  ASP NET tags  and code  built using the  same tools that you use to create Web pages     Q Custom controls WebParts  A code only solution  very similar to ASP NET custom controls   Unlike custom controls  you cannot inherit from other controls when building a Web Part   These controls are the focus of this book     By the end of this book you ll have learned how to build the more powerful and flexible custom con   trols  I also show you how to use these controls as Web Parts and how to extend custom controls to let  users customize your site  Along the way  you ll also see how easy it is to build user controls     and both  how to add custom control features to user controls and use them as Web Parts     While it   s good to know about controls  what   s important to you is what you do with those controls   You   ve seen how these ASP NET tools support two different scenarios     UI Reusability  Controls support reusability in the user interface  or presentation  layer rather than in  the business rules layer  Like other reusability tools  controls enable you to provide a standardized  set of services and improve your own productivity        Customization  Web Parts allow you to support customization to a degree that simply wasn   t  possible in earlier versions of ASP and ASP NET  With Web Par
26. ing the customer phone number is correctly formatted  for instance   Once the data  has passed validation  the control would take care of updating the database     Here is a case where using a Web Part would be the best choice  If  for example  the Web page contains  multiple controls  how do these controls commit their changes to the database  For instance  the Web  page that lets customers order books might contain the control for entering customer information and   a control for entering sales order header information  If these controls interact with the database  or  middle tier objects  individually  processing updates from the page could be very inefficient  The code   on the Web page could coordinate updates from the controls  but then you lose some of the benefits of  reusability that controls are supposed to provide  By taking advantage of the capability of Web Parts to  find other Web Parts on the page and communicate with them  the code in the Web Parts could coordinate  their updates  All the display oriented Web Parts could look for an    update    Web Part on the page and  send their updates to that Web Part for processing     In either display or update mode  the customer control would have a set of properties that would expose  the customer information to the application that   s using the Web Part  Figure 1 5 shows the customer  information Web Part in two different pages     It   s not hard to see that in addition to the benefits of standardization  there ex
27. ions  The first major limitation in the functionality of user controls is that they cannot inherit from  other ASP NET controls  while a custom control can inherit from other controls  The capability to inherit    from other controls enables you  for instance  to create a custom control that inherits from the ASP NET  ListBox control and extends that control     However  this limitation often just means thinking about the problem differently  If you want to create  a user control that functions like a ListBox  you could just drop a list box on your user control and then  add any new methods  properties  or events that you want  with a custom control  you would have to do    Creating Your Own Controls    all of your development without the benefit of a drag and drop designer   As you ll see in this book  all  the features that you can take advantage of in a custom control are available to you in a user control      it   s just that the user control   s drag and drop designer means that you don   t need them     The second major limitation of user controls is in their reusability  user controls can   t be shared among  projects or Web sites  A user control can be used only on Web pages in the project that the user control is  part of  There is no way around this limitation     Custom Controls    Custom controls are a more code intensive way to create reusable components for Web applications  For  instance  to add new controls to your custom controls  you must write code that wi
28. ist significant opportunities  to improve the productivity of the person building or extending this application  When it   s time to build  a page that displays all the books for a specific customer  the developer who   s building the page can  start by adding the customer information control and the book listing control  which  in turn  uses the  book summary control   From that point on  the developer just needs to add any specialized code  required by the particular page     Exploring the Different Kinds of Controls    Now that you   ve been introduced to the possibilities of Web Parts  custom controls  and user controls   you may be wondering how to decide which control to use in which situations  In this section  I offer  guidelines on when you should use a user control or a custom control  remember that Web Parts are just  a kind of custom control   Nothing is free  of course  so you also see what costs you incur by picking  each type of control     13    Chapter 1          Untitled Page   Microsoft Internet Explorer    File Edit View Favorites Tools Help A    O Back       gt   x  E   A Seach se Favorites e Meda   O7 2 B       Bill To        File Edit View Favorites Tools Help    O Back      v  x  iz   Search s e Favorites e Meda lie o B       Save Changes       a E N    Figure 1 5       14    Creating Your Own Controls    When to Use a User Control    User controls should be your first choice for creating Web Parts where the control will be used on a sin   gle Web site
29. ll create the controls  and add them to the Controls collection of your custom control     there is no drag and drop facility as in  a user control  In return for taking longer to create  custom controls offer you more power     Custom controls are more flexible than user controls  You can create a custom control that inherits from  another server side control and then extend that control  You could  for instance  create a custom control  based on another custom control     even one as complex as the TreeView control     and then add new  methods or properties to create your own  even more powerful control     Custom controls are more reusable than user controls  You can share a custom control among projects   Typically  you ll create your custom control in a Web Custom Control library that is compiled separately  from your Web application  As a result  you can add that library to any project in order to use your custom  control in that project     Web Parts    It   s not really correct to compare Web Parts with user controls and custom controls  User controls and  custom controls can be used as Web Parts  although they will lack all of the features of a full fledged Web  Part  But  if you want to take full advantage of the Web Part feature set  then you must build your control  as a Web Part right from the beginning  As you ll see  Web Parts are an extension of custom controls      think of full fledged Web Parts as custom controls with superpowers     Web Parts actually fir
30. lution to this problem     but the page information isn   t  exactly the same for every customer  the customer name is included in the page   s title bar  for instance    A Web Part would allow you to build a standard title bar for the top of the page that a user could modify  to include their name as they want to be addressed and that would be automatically reloaded when that  user returns to the site  For this Web Part  very little code may be required    just a set of properties that  allow the Web Part   s text and graphics to be updated may be sufficient  Figure 1 3 shows the title bars  from two different pages implemented through the same Web Part        ee Last Name Price  ame       Figure 1 3       While the application allows many different ways to list books  the way each book is displayed should be  the same  By standardizing the way that book information is displayed  users can quickly figure out where  to find particular information  such as price  genre  and so on   To meet this need  a custom control that can  display a single book   s information would be very useful  Because most of the book information is kept in  a database  this Web Part could include the code to gather the information from the database either directly  or by interacting with a middle tier object  All that the application would have to do is pass a book   s  unique identifier to the custom control and the control would take care of displaying the book   s data     In fact  there   s proba
31. page  Users can add Web Parts to  a SharePoint page only if the Web Part is in one of the galleries for the site  Galleries aren   t part of the  ASP NET 2 0 implementation of Web Parts           While Web Parts have become part of the toolkit for all ASP NET developers   currently Web Parts developed in ASP NET 2 0 can   t be used in SharePoint  and  Web Parts built for SharePoint can   t be used outside of SharePoint   However   Microsoft has committed to providing an upgrade to SharePoint that will allow  ASP NET 2 0 Web Parts to be used in SharePoint in the near future           The    Benefits of Reusable Controls    By creating your own controls  you can build a toolkit of controls to draw on when building a Web  application  Think of these controls as reusable visual components  A control can range from something  as simple as displaying a title to being a complete business application in itself     Much of the talk about the benefits of creating objects and components seems to revolve around abstract  features  encapsulation  polymorphism  and so on   For a developer working in the real world  creating  components really provides three practical benefits in terms of reusability     m     m        m     Productivity  By creating reusable components  you don   t have to re invent the wheel when  implementing similar functionality in different applications  or parts of the same application      Standardization  By using the same components to perform operations that are 
32. page and customize the  control by setting the customer name to some buying entity that they are allowed access to  With that  done  your user could drag the listing Web Part onto the page and connect it to the customized customer  information Web Part  The listing Web Part would now display the books purchased by the entity  entered in the customer Web Part  The user could redisplay the list just by navigating to the page     As this example indicates  you may want to create Web Parts whose sole purpose is to support user  customizations  For instance  the application has several places where users can enter search criteria for  listing books  However  it may not make sense to build a separate control for entering search criteria   or listing books because there   s no opportunity for reuse  It may be that every search page supports a  different set of criteria and each list has a unique format for displaying the books found in the search  In  addition  this version of the application uses only the summary book information and detail book infor   mation Web Parts     Even though there   s no opportunity for reuse  it may still make sense to create controls just to support  customization  To create opportunities for customization  you could create sets of Web Parts for     Q Entering search criteria  One control might provide a limited number of search criteria  just  author and title   another control might provide an extensive list of options familiar to the general  audien
33. rol  they could add the book infor   mation Web Part that supports them best  This is a solution aimed purely at giving users the opportunity  to create the application they need     Providing for Personalization    18    In order to implement customization  you also need personalization  Your users won t be happy if they have  to recreate their application each time that they return to your site  or if  when they return  they get some  other user   s customization  Customization is of no use unless the application remembers what changes  a user has made and associates those changes with the user that made them  Fortunately  ASP NET 2 0  comes with a personalization framework  The ASP NET 2 0 personalization framework allows you to  implement an application that tracks users and the choices they make so that when the users return to  your application  they find their own customizations waiting for them  Each user is connected to his  customized application after he logs on with little effort on your part     This description makes personalization sound like a    nice to have    feature  In fact  personalization is  really just the extension of identity based security  which is essential in building an application  When  users access your Web site  they are automatically logged on to your Web site   s server  The logging in  process assigns the user an identity  even if it   s only the default    anonymous user    assigned by IIS  If  vou ve turned off the capability to log on
34. rol and modifying it in some way     Web custom controls do offer another benefit  they expose all the code involved in creating a control    a  good thing in a book about creating your own controls     In the book site example  a user control would be the best choice for the title bar because the title bar is  limited to a single Web site and is built from existing Web server controls  The properties exposed by the  title bar Web Part would allow the code behind a page to insert the text that the page needs  The listing  control described in the case study would be best implemented through a custom control that extends  the ASP NET DataList control     Web Parts in Action  Customization    16    But when should you use a Web Part  First  remember that any control can be used as a Web Part  When  used as a Web Part  user controls and custom controls can be customized in several ways     Q The control can be added or removed from the page     Q The control   s appearance can be modified        Q The control can be moved to a different location on the page     Users will also be able to set the control   s property values interactively at run time  However  if you  build a control as a Web Part from the ground up  you can give your control even more features     the  capability to pass data between other controls  for instance     When considering how you can use Web Parts  ask yourself if it   s necessary that you build every page in  your application  Can you improve your pro
35. rsion of the user control will be tweaked to work with the project that it   s being used in  As  a result  the functionality embedded in the user control will start to work differently in the  different versions     Q Productivity  The first loss in productivity occurs because multiple developers continue to  develop the different versions of the user control  The second loss occurs because developers will   eventually  have to take time to reconcile the different versions of the user control  For instance   when a bug is discovered  or a change is required because of changes in the organization  or  the opportunity for an enhancement is recognized  developers will have to chase down all the  versions of the control to make the change     When to Use a Custom Control    Custom controls can do anything that a user control can do     it just takes longer to build them   This  makes custom controls an excellent choice if you are paid by the hour   When building a custom control  you may find that you have to write the server side code that generates the client side portion of your  Web Part  including any HTML  This means that you give up the way that ASP NET   s standard controls  automatically adapt their HTML to the client that requested them     You can still use ASP NET WebForm controls in your Web custom control  but you must write code to  add those WebForm controls to your user interface rather than using drag and drop  The same is true of  any client side code that you
36. st appeared not in ASP NET but in Windows SharePoint Services  in 2003  when  SharePoint was re architected to run on top of ASP NET   SharePoint is Microsoft   s Web based tool for  creating document based solutions that can be customized by the user  As part of visiting a SharePoint  site  users can build pages in SharePoint by adding Web Parts to a SharePoint page or modifying the  Web Parts already on the page  With ASP NET 2 0  a version of Web Parts was added to ASP NET     For most developers  the statement that    users can build pages in SharePoint    seems counterintuitive   The usual division of labor is to have developers build Web pages and users       well  users just use the  pages  SharePoint  however  was designed to empower users  to let users build the pages they needed  without having to call on the IT staff  In ASP NET  Web Parts can be used to fulfill the same function  to  let users build the pages they need from the inventory of Web Parts available to a page  Because of this  ability  Web Part developers have a new and more interesting job to do  Web Part developers don   t just  build applications  they build components that enable users to build applications     Chapter 1    This description of how a Web Part is used on a SharePoint site omits an important step  After a Web  Part is created it is added to one of several Web Part galleries available to the SharePoint site  Once a  Web Part is available to a site  developers then add the Web Part to a 
37. te business logic and data access that are called from the application code to perform some  task  One example of these kinds of objects is the ADO NET objects that are used in  NET to retrieve and  update data  or the DAO and ADO objects in the COM world   There are two fundamental differences  between that definition of objects and the ASP NET specific tools  custom controls  user controls  and  Web Parts      The first difference is that ASP NET custom controls  user controls  and Web Parts can be used only  with ASP NET  The ADO NET objects  for instance  can be accessed from any kind of code  It doesn   t  matter if your code is in a Windows Form  an ASP NET page  or a middle tier object  you can use the  ADO NET objects  However  limiting user controls  custom controls  and Web Parts to ASP NET has its  compensations  the ASP NET tools  because they are tailored to ASP NET  leverage the capabilities of the  ASP NET environment     The second difference between the ASP NET tools and what most developers think of as    objects    is where  the ASP NET tools are used  Most of the objects that developers create are designed to implement business  logic and to reside in an application   s middle tier     between the presentation layer  the user interface    and the data layer  the database   As part of creating a sales order system  for instance  a developer might  create Customer  SalesOrder  and Invoice objects to handle all the activities involved with managing the  appli
38. ts  you can allow your users to  create customized versions of existing pages  or to create pages that were not intended to be  included in the application  While this empowers your users  it also opens up a whole new set  of challenges for the developer  both in determining what Web Parts the user community will  need and ensuring that those Web Parts will work in all the different ways that users want     Finally  in order to support customization  you also need personalization  the ability to keep track of a  user   s choices  remember those changes from one session to another  and connect the user to his cus   tomized pages  Personalization is the extension of identity based security into application development   Over the rest of this book  you ll see how to build custom controls  user controls  and Web Parts     21    
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Dymax UVCS Light-Curing Conveyor System Manual  2.8MB  Maxdata FAVORIT 100XS  Mise en page 1    Cobra XRS 9370  caution - Sunbelt Transport Refrigeration  HOJA TÉCNICA Plastiment® Regulador  Sony Radio ICF-SW7600 User's Manual  DPA UPSCALE RI 10 - 80 kW Bedienunganleitung    Copyright © All rights reserved. 
   Failed to retrieve file