Skip navigation

Developer .NET UPDATE, March 11, 2003

Developer .NET UPDATE—brought to you by the Windows & .NET Magazine Network.
http://www.winnetmag.com


THIS ISSUE SPONSORED BY

Microsoft ASP.NET Connections & Visual Studio Connections

http://www.devconnections.com

Windows & .NET Magazine Connections

http://www.winconnections.com
(below DEVELOPER .NET PERSPECTIVES)

SPONSOR: MICROSOFT ASP.NET CONNECTIONS & VISUAL STUDIO CONNECTIONS

Microsoft ASP.NET Connections + Visual Studio Connections + SQL Server Magazine Connections equals the largest gathering of Microsoft product architects and independent Tech gurus, delivering four days of hard-core drill-down sessions that you will not find anywhere else.

The Microsoft product team delivers over 35 cutting-edge sessions on the latest product releases. In addition, you can choose from over 100 in-depth sessions presented by our world-class speakers, authors, and consultants who share real-world solutions that will save you months of trial and error.

Visit our expo hall to see the latest technology and have a chance to win a Harley Davidson among other cool give-always. After an intense day of sessions unwind at events like "Microsoft Unplugged," where no question is out of line, or march in the Mardi Gras Parade to the House of Blues for a night to remember.

Register early and get three power-packed events for the price of one. May 6-9, 2003, in New Orleans. Also, save $200 when you register before the Early Bird deadline. For more details, call 800-438-6720 or visit our Web site at

http://www.Devconnections.com

March 11, 2003--In this issue:

1. DEVELOPER .NET PERSPECTIVES

  • Putting Architecture Patterns to Work

2. ANNOUNCEMENTS

  • Join the HP & Microsoft Network Storage Solutions Road Show!
  • SQL Server Magazine University E-Learning Center

3. RESOURCE

  • Featured Thread: Member Needs Help with ASP.NET Module

4. NEW AND IMPROVED

  • Find and Resolve Network-Related Application Problems

5. CONTACT US

  • See this section for a list of ways to contact us.

1. DEVELOPER .NET PERSPECTIVES

(contributed by Bill Sheldon, [email protected])

  • PUTTING ARCHITECTURE PATTERNS TO WORK
  • Last week, I discussed how architecture is starting to take a more visible role in the development of solutions. Application architecture plays an important part in this role, and one responsibility of an application architect is to recognize common patterns within software. Although talking about theoretical patterns can be interesting, developers who serve as a project's application architect typically have more pressing tasks to perform in their daily jobs. The challenge then is to find a way to capture commonly occurring patterns in the real world.

    Patterns can be simple, and many simple real-world patterns have already been captured. For example, every major GUI has a text-input box. This component can be described as a control for which you can customize the source code--in other words, it's a pattern that's been captured and implemented as code.

    Patterns can move beyond the basic building blocks of applications. A step above the basic level of a control is the application block. Application blocks are projects that contain some standard code to solve common problems. Rather than rewriting the same functions or classes for every project, you can create an application block that contains the common elements. Because an application block is based on a pattern, it isn't an out-of-the-box solution. Although the code will compile and run, you typically need to modify elements in the application block to meet an application's custom requirements.

    Take, for example, Microsoft's Exception Management Application Block for the Windows .NET Framework. This application block provides a baseline set of classes for managing exceptions after your application has thrown them. You can't just drop the Exception Management Application Block's code into your application and expect the application block to manage your application's exception-handling logic. Instead, you need to use the application block to help answer questions, such as "How will I log errors?" or "How should I format the error display?" The answers to these questions might differ from application to application, depending on each application's unique requirements. For example, one application might need to place error messages in the server's event log, whereas another application might need to place error messages in a central database. However, regardless of these differences, in each case you have a common structure or pattern associated with actions that typically occur in response to an error.

    The Exception Management Application Block provides a standard set of interfaces and classes that you can leverage. In this way, the actions that occur following an exception become familiar not only across your organization's applications but also across Microsoft developers' applications. In many ways, using application blocks is similar to using custom controls, except instead of having a component that you reuse in a black-box fashion, you're working on what is known as a white-box solution. Part of this white-box solution is a Help file that provides information about not only the methods but also the design of the exception-management code.

    The "Microsoft Application Blocks for .NET" Web site (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp) provides information about the Exception Management Application Block, including how to download and install it. Microsoft provides the Exception Management Application Block in an .msi file.

    After you install the Exception Management Application Block's associated project files and assemblies, you have the option of building the exception-management classes and referencing them from your application. You can then modify projects and change key elements. For example, the default implementation of the Exception Management Application Block logs errors into an event log. Although this implementation works great when you have a central server and an administrator to monitor that server's event log, it introduces a security challenge. Creating the event source that will be associated with sending messages to the event log is a privileged operation. Thus, if your code is running as part of a Web application, you need to ensure that the installation logic associated with the Exception Management Application Block's assemblies is run to register the event sources.

    To make the assemblies compatible with Xcopy-style deployments to a Web server, you might want to have your application enter error messages in a database or email the error messages to a support account. In either case, you can still use the Exception Management Application Block as your starting point, but instead of keeping the default publisher, you can create a custom publisher for your application. By modifying the source code and recompiling the result, you can control the behavior of your exception-handling components. You can then integrate and use your custom application block across several different projects, thereby letting you devote more of your time to designing and setting up the business logic.


    SPONSOR: WINDOWS & .NET MAGAZINE CONNECTIONS

    REAL-WORLD TECHNICAL TIPS HERE FOR YOU

    Chock full of "been there, done that" information from experts who use Microsoft technology in the real world. Get the latest tips on Exchange 2000, Exchange 2003, AD basics to advanced, security, wireless networks, Windows 2000, Windows Server 2003, Windows XP, IIS, Group Policy, and more.

    Microsoft is sending its "Scripting Guys"--members of its TechNet Script Center who are also responsible for the "Scriptomatic" tool. Don't miss your chance to attend this special one day pre-conference and enhance your scripting skills firsthand from the experts who know Microsoft scripting technologies the best.

    For security-minded IT pros, we provide in-depth coverage from the world's top gurus on Windows security: "Keeping Up with Service Packs and Security Patches," "Identity Management with PKI," "Implementing Security with Group Policy," "Securing Wireless LANs," and "Managing AD Security with ADSI and WSH." Other sessions will show you how to defend your networks by planning your own "Hack Attack", how to use event Logs to identify intruder activity, how to make IIS a Secure Web Server, and more.

    Don't miss this exclusive opportunity to interact first hand with Windows & .NET Magazine writers you trust: Minasi, Russinovich, Hill, Wells, Deuby, Moskowitz, and more. Plus, attendees will have a chance to win a FREE Florida vacation. Early registrants will save $300, so visit us today:

    http://www.Winconnections.com

    2. ANNOUNCEMENTS
    (brought to you by Windows & .NET Magazine and its partners)

  • JOIN THE HP & MICROSOFT NETWORK STORAGE SOLUTIONS ROAD SHOW!
  • Now is the time to start thinking of storage as a strategic weapon in your IT arsenal. Come to our 10-city Network Storage Solutions Road Show, and learn how existing and future storage solutions can save your company money--and make your job easier! There is no fee for this event, but space is limited. Register today!

    http://www.winnetmag.com/roadshows/nas

  • SQL SERVER MAGAZINE UNIVERSITY E-LEARNING CENTER
  • The industry's best instructors have teamed with SSMU to bring you the finest live online SQL Server training! Whether you're at the advanced level or just beginning, you'll find training to meet your needs. Plus, you don't have to leave your desk; events are delivered live over the Internet! Click here:

    http://www.sqlmag.com/ssmu

    3. RESOURCE

  • FEATURED THREAD: MEMBER NEEDS HELP WITH ASP.NET MODULE
  • Forum member scrtagt69 is working on an ASP.NET module that tells users how many new email messages they have. He was wondering where Microsoft Exchange Server or Active Directory (AD) stores unread email messages so that he can count and display them in the module. If you can help, join the discussion at the following URL:

    http://www.winnetmag.com/forums/rd.cfm?cid=40&tid=55575

    4. NEW AND IMPROVED
    (contributed by Sue Cooper, [email protected])

  • FIND AND RESOLVE NETWORK-RELATED APPLICATION PROBLEMS
  • Shunra Software released Shunra/Stratus, network-readiness software that lets developers test the behavior and performance of an application module over a virtual WAN. Shunra/Stratus lets you locate and resolve network-related design, functionality, and usability flaws while sitting at your workstation. Without prior networking knowledge, you can configure the virtual WAN parameters, then point-and-click to run end-user scenarios to test your application module over the WAN. Shunra/Stratus supports any IP-based distributed application in Windows XP/2000/NT environments. Contact Shunra Software at 212-279-8895, 877-474-8672, or [email protected].

    http://www.shunra.com

    5. CONTACT US
    Here's how to reach us with your comments and questions:

    • ABOUT DEVELOPER .NET PERSPECTIVES -- [email protected]
    • ABOUT THE NEWSLETTER IN GENERAL -- [email protected] (please mention the newsletter name in the subject line)
    • TECHNICAL QUESTIONS -- http://www.winnetmag.com/forums
    • PRODUCT NEWS -- [email protected]
    • QUESTIONS ABOUT YOUR DEVELOPER .NET UPDATE SUBSCRIPTION? Email Customer Support -- [email protected]
    • WANT TO SPONSOR DEVELOPER .NET UPDATE? [email protected]
    • This weekly email newsletter is brought to you by Windows & .NET Magazine, the leading publication for Windows professionals who want to learn more and perform better. Subscribe today.
      http://www.winnetmag.com/sub.cfm?code=wswi201x1z

      Receive the latest information about the Windows and .NET topics of your choice. Subscribe to our other FREE email newsletters.
      http://www.winnetmag.com/email

    Hide comments

    Comments

    • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

    Plain text

    • No HTML tags allowed.
    • Web page addresses and e-mail addresses turn into links automatically.
    • Lines and paragraphs break automatically.
    Publish