.NET Devs Get Help To Spur Code, Rules Reuse

Engineers at LogicLibrary have released a version of their asset management library designed to make it easier for .NET devs to share code and business rules across projects. LogicLibrary's XML-driven Logidex provides .NET devs with (a) Best Practices for tagging and identifying software, (b) quick search tools for locating assets, and (c) techniques for making sure the code built today can be reused tomorrow. See how XML brings power and efficiency to .NET development.

Tags: Assets, Developers, Logidex, Reuse, Carlson, Libraries, Software Assets,

Devs using .NET now have an asset management tool to help them better manage and reuse their software assets, including components, apps and rules.

Engineers at LogicLibrary have released a version of their asset management library designed to make it easier for .NET devs to share code and business rules across projects. In specific, LogicLibrary's Logidex provides .NET developers with Best Practices for tagging and identifying software, quick search tools for identifying and locating just the right asset, and techniques for making sure the code a dev builds today will not be so specifically customized that it can't be easily reused next week.

Further, LogicLibray committed to integrate its Logidex library with Microsoft's Visual Studio "Whidbey" release, providing add-ins and support for Whidbey's team development features.

"The early pain points for where reuse can be most effective are: consolidation, migration, integration. It's universal with prospects," LogicLibrary's VP for technology Brent Carlson told IDN. "We go in and have a meeting with a VP of application development and we ask a simple question: 'Can you tell us what code assets, templates and other resources you have, and do you know where they are in case you'd like to use them again?' Most every time, they just can't."

LogicLibrary's approach is to provide these architects and senior developers with a way to scope their code-building and rules-setting practices so that they can identify (and parse) their coding projects to make asset reuse easier down the line.

"If these senior level [people] can 't make their list of software assets, and know where they are, it's pretty hard to do any kind of effective reuse," Carlson noted. "In fact, this 'not-knowing' is one of the key reasons why many firms don't have any real reuse practices. It's just easier, and ironically faster, they think, to keep building software from scratch. Our approach is to help make assets more identifiable, which makes it easier for a developer to locate them, and easier to draw the dotted lines [between them]."

Mapping Code for Reuse
For devs skeptical about reuse prospects, based on prior unspectacular results from 4GLs, CORBA or other approaches, The GartnerGroup has some research out that says today's approaches may finally cure what ails prior approaches.

"Enterprises can substantially improve application development productivity and quality, while also decreasing time-to-market, by a factor of five to one or more through a committed software asset reuse program," Michael Blechar, vice president and research director of Gartner, noted. "At the heart of this initiative must be the ability for analysts and developers to easily locate and reuse these assets."

From his viewpoint, Carlson lists two key elements as most important to the success of a software reuse strategy:
(1) Make sure the underlying software assets are simple and free-standing, and
(2) Wherever possible, make sure your assets use standard methods for communicating with other applications/assets (open protocols, such as SOAP, XML for data formats, etc.)

Overall, Carlson advises, "Make sure your assets are not so customized that the reuse becomes cumbersome, if not impossible."

Alan Himler, LogicLibrary's vice president of product management says the .NET version of Logidex takes advantage of "quite a lot of lessons we've learned from our work on the Java side."

For instance, Himler said, while the initial core patterns were good on the Java side, a lot of organizations using them greatly customized those patterns so reuse became limited. The key lesson for devs, Himler says, is: "As much as developers can consume the .NET patterns as vanilla as possible, that's a good thing. The more vanilla the patterns, the more things are scalable, and you don't have five different versions of the same asset in your company."

Toward that end, Logidex allows enterprise devs to map relationships among these four key elements, notably:
(1) software assets including components, services and applications;
(2) Microsoft's .NET Framework;
(3) the company's existing business processes (and technical models for defining/implementing workflow); and
(4) the "middleware" elements that tie the software assets to a set of business rules and/or workflow requirements (such as XML schemas, documentation and other key software and knowledge assets that span the application development lifecycle.)

For a quick-start approach, Logidex comes preloaded with core .NET Framework assets directly from Microsoft's Platform Architectural Guidance (PAG) Group, including Enterprise Solution Patterns, Application Blocks, and Reference Applications and Architectures.

Also available is the ability for Visual Studio .NET developers to scan a comprehensive list of Microsoft-defined .NET Framework software assets and perform model-based searches of the library on MSDN at http://lab.msdn.microsoft.com/logidex.

In addition, Logidex provides devs easy access to the library resources through what it calls its "graphical discovery engine," designed to provide an abstraction layer of the assets that lets system architects, departmental developers and even non-technical business analysts work together on designing and building .NET projects.

LogicLibrary execs say their implementation is just a first step in getting devs to think about the power of metadata.

Inside Logidex -- Anatomy of Reuse
"The key to migrating and reusing code has less to do with understanding the underlying nature of the code and/or language itself," Brent Carlson, LogicLibrary's co-founder and VP of Technology told IDN. "Rather, developers need to understand what the code is used for, what functions in an end-to-end application it performs."

Rather than complex middleware or tightly-integrated business rules with application code, much of the next wave of integration will be accomplished through XML and open messaging protocols, such as SOAP, Carlson added.

That new trend in abstracting the integration logic, Carlson said, means that developers can truly define some easy-to-implement techniques for code reuse across departments. Further, because the rules code and the underlying application code can be unbundled, that reuse can be made more effective and much less time-consuming than today's approaches.

To exploit this new level of reuse possibility, devs should ask a new range of questions of their project deliverables, Carlson said. He offers a short list of examples:
  • What functional requirements do we have?
  • Can we match those we will have in the future against projects we have already built and deployed -- no matter the language?
  • How much of my project is truly custom coding? (In other words, how much of the application, business logic or UI elements could be leveraged from other projects?)

  • Once that self-assessment is done, devs should ask another set of task-related questions, which will help them define what part(s) of their project might be candidates for reuse. Carlson suggests devs should ask:
  • What test cases do we have?
  • What model diagrams do we have?
  • If available, where are these diagrams stored? What level of customized extensions to that abstracted model is needed?

  • "Once a developer gets the answers to those kinds of questions, he can aggregate those pieces of data and resources. Then, with out -of-the-box assets from Microsoft and support for LogicLibrary, he will be able to see what's relevant for reuse in .NET." The developer can even begin to leverage non-.NET business rules and other assets with .NET-based applications, he added.

    Inside Logidex Metadata Features/Architecture
    LogicLibrary engineers have architected their system to address sharing in the context of three key business goals: consolidation; migration, and integration.

    In that vein, here is a breakdown of many of Logidex's features and capabilities, presented by discipline:

    SDA Library Components/Accessibility
    * Asset types can include components (.NET, J2EE, CORBA), legacy systems, Web services and/or knowledge assets, such as patterns and best practices, used by your development team.
    * Using patent-pending processes, SDAs are mapped to your imported business and technical architectures.
    * Preloaded library content includes Sun's Core J2EE Patterns, RosettaNet's Partner Interface Processes (PIPs), and, direct from Microsoft's Platform Architectural Guidance (PAG) Group, Enterprise Solution Patterns, Application Blocks and Reference Applications and Architectures.
    * To access a read-only version of the Logidex .NET Library on MSDN, visit http://lab.msdn.microsoft.com/logidex
    * To view and download the Core J2EE Patterns and the RosettaNet PIPs, visit the Logidex Asset Center (http://www.logidexassetcenter.com)

    Collaborative-Ready SDA Discovery Engine
    * The Logidex discovery engine offers capabilities ranging from simple keyword searches to sophisticated, model-based searches.
    * Active Design allows business analysts to create a persistent search specification from a business process model. Developers can then add technical criteria to this specification. This ability to easily define joint requirements also ensures that created applications meet your business' needs.
    * When a search is run, SDAs are identified and scored according to their 'fit' with the specified business and technical requirements.
    * Collaboration tools include discussion threads, project work areas, and persistent queries that can be accessed by any member of the project team.

    Expanding SDA ROI, Effectiveness
    * The Logidex library holds the "total asset," including a complete set of identifiers and classifiers for the SDA.
    * From Logidex, users can launch SDA artifacts, such as source code, models and documentation, into the appropriate development tool.
    * Asset relationship information is also available, making it easier to understand how assets can be used effectively together.
    * Integration with leading development and modeling tools facilitates easy access to SDAs stored in Logidex and ensures that use of your SDA library fits seamlessly into your application development process.

    Ramping Up for Reuse -- Best Practices
    To get started with helping companies' IT staffs wrap their brains around the power of XML, LogicLibrary starts with the architects, but quickly brings in the departmental developer staff.

    "We start with the architects because they are trying to lay the land across the whole life cycle," Carlson said. "It's meaningful for them to get a composite view of related pieces so they can understand how an app is put together. We allow them to search for assets and artifacts based on the asset diagram we have which looks at assets across departments and silos." And that reach "across departments and silos" is another key to successful reuse projects.

    "Developers, even the most skilled ones, are often stuck in one of those silos," Carlson said. "If these developers are going to reuse others' work, they need to understand the work, or otherwise get on the same page with their co-workers in other silos. But, they often don't have access into those other silos, so their only source of info about what's happening around them is their source code management system."

    Traditional source code management systems aren't often enough for cross-silo developers to fully use those assets, however, Carlson said. Often there isn't enough information about the code, or even if there is detailed documentation, there isn't a uniform naming system or convention to describe the code, he added. This problem often crops up with outsourcing projects.

    "Metadata stores in Logidex would enable the software developer to establish better collaboration with the offshore developer team because Logidex includes collaboration tools, even chat, which are exposed through standard web services and integration with Groove Networks," Carlson said.

    Prepping for Metadata, Longhorn
    "Asset management is all about understanding the power of XML, because XML is the basis of this universal access to assets and artifacts," Carlson said, "and Microsoft's Longhorn is all about metadata. Metadata and XML are things a developer needs to know about."

    Carlson tells how during last fall's PDC, Bill Gates gave a demo on how your related data is filed in files all over your desktop and throughout your network. Imagine, for example, that you're looking for all data on John Doe, from your AIM, email, Word and even voicemail.

    "Bill asked: 'What if you could have all those assets available to you from your desktop, and by clicking on any of them those files would act just like a local document,'" Carlson said. "Creating a metadata catalog lets you begin to explore those possibilities, for developers and eventually for end users. Using a metadata catalog, all your data is composed to be related to other data. And, by using XML, you have a catalog that doesn't disturb the actual underlying record."

    With the future in mind, LogicLibray committed to integrate its Logidex library with Microsoft's Visual Studio "Whidbey" release, providing add-ins and support for Whidbey's team development features.

    MSDN users can have read-only access to the Logidex .NET Library via either Microsoft Internet Explorer or a Logidex add-in for Visual Studio .NET 2003 (available for download at http://www.logiclibrary.com/vsadd-in.asp).

    Discovered Microsoft .NET Framework assets can be downloaded from the Logidex .NET Library directly into a user's development environment. Alternatively, users can request a 30-day trial of a hosted Logidex .NET Library that allows them to add their own SDAs to the library and map them to the Microsoft patterns and practices. Trial access to Lodidex is available at http://www.logiclibrary.com/msdn-trial.asp.

    Logidex also offers Java.J2EE solutions. Users can also access read-only libraries of Sun's Core J2EE Patterns and/or RosettaNet's Partner Interface Processes (PIPs) via the Logidex Asset Center (LAC) at http://www.logidexassetcenter.com. Discovered assets can be downloaded from the LAC directly into a user's development environment.

    Pricing for the full version of Logidex begins at $35,000 for department or project use.