|
Doing .NET Right ... Looking at the Critical Success Factors
Published: April 1, 2002
Published in TDAN.com April 2002 IntroductionThe recent Microsoft announcement and the subsequent significant advertising program has made .NET a hot item. Some companies have adopted .NET as their architecture of the future and many others are investigating it. Interesting enough, .NET is not a Microsoft peculiar product but is based in part upon standards developed by ECMA (1), an international industry association, with headquarters in Geneva, founded in 1961 and dedicated to the standardization of information and communication systems. Microsoft, Sun, and IBM, among others, are members of ECMA. The Microsoft .NET (MS .NET) Suite is a product suite, based upon the .NET standards that enables organizations to build application systems, usually web-based, and enterprise-class Web Services. .NET Project Technology-oriented Critical Success Factors Critical Success Factors (CSFs) are “those limited number of areas where ‘things must go right’ “(John Rockart of MIT, 1982). A Microsoft .NET development project has both management and technology critical success factors. The .NET project technology-oriented CSFs include:
MS .NET Best PracticesIn a Microsoft only environment, MS .NET architecture should be strongly considered. The MS .NET (see Framework Diagram) contains a variety of system components that handle various languages, web services, user interfaces, data handling, XML (extended Markup Language) handling, the Common Language Run Time (CLR) component, and interfaces to various servers. MS NET is language-neutral platform within a Microsoft environment for developing business services over the Web. It is highly interoperable and fully object-oriented. .NET incorporates the best of Microsoft and Internet technologies and is an evolving de-facto model for distributed computing. .NET Objects/Components can be made to be extensible into TRUE Web Services. MS .NET Framework Diagram (2)MS .NET systems should be implemented utilizing an N-Tier Architecture (see .NET Logical Tiered Architecture diagram below). The .NET Presentation Layer Tier should utilize MS ASP.NET and be based upon Use Case analysis and prototyping and upon User Interface Standards and Best Practices. The .NET Business Logic or Middle Tier(s) Components should utilize .NET compatible languages, especially VB.NET or C# and be based upon Use Case analysis. The .NET Data Services Tier should utilize MS .NET ADO.NET and be based upon Use Case analysis.
Figure - .NET Logical Tiered Architecture (3)
UML Object Oriented ApproachA UML object-oriented approach should be followed in developing a .NET application. Objects are everywhere. The universe is made of objects. Objects are made of objects. Albert Einstein and Stephen Hawking have studied objects. Objects may be tangible or intangible. The Object Paradigm can be implemented with rigor, for completeness, while retaining its inherent flexibility. Object-orientation (OO) is an industry standard method for developing robust business services delivered over the Web. OO organizes a business domain in terms of Objects and their responsibilities. Objects represent real-life business entities. Example: Business Party Roles (for example, Underwriters or Customers), Products, Resources, Money, etc. Objects have real-life business responsibilities Example: Underwriters manage Risks, Customers buy products. OO provides reuse - “Build once, use and/or reference many times”. OO is supported by the Unified Modeling Language (UML). The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The Object Management Group (www.omg.org) has adopted UML as the industry standard. UML provides standard notation and semantics UML provides traceability/connection between business concepts and the technical artifacts of software applications. UML is the industry standard method for:
UML enables architects to develop technical blueprints out of business specifications. UML is platform neutral and OO Centric. Service-based Component Architecture.NET applications should be designed using a Service-based Component Architecture. Components should be analyzed and managed according to Component Levels. Enterprise Conceptual Components should be developed, and documented. Solution Design Components should be derived from Conceptual Components. Implementation Components should be derived from entity and composite solution design components. A Service-based Component Methodology should be implemented. A component, by definition, contains one or more well-defined interface. A component can handle one or more business or system event. The decision event action triggered by the event handler constitutes a part of the methods or behavior of a component. Components should be designed to apply the principal of "separation of concerns". Middleware should provide the implementation mechanism for component architecture. .NET Project Management-oriented Critical Success Factors (4)The .NET project management-oriented Critical Success Factors include:
Business Driven ApproachA business driven approach is critical for any large application development effort. It ensures that the requirements of the business are clearly understood and completely represented in the solution application. Getting the Business Requirements right is therefore the most important part of the software development process. A Business Driven Approach ensures:
We recommend the business driven, object-oriented UML approach to .NET software development because it provides the tools that support a business focus in all phases of the software development process. Skilled Development TeamThe .NET technology choice not only imposes the need for object orientation in the business architects and designers but in the developers as well. The .NET environment is brand new. .NET is based on a true object model. Therefore, developers must have experience in object oriented programming environments to effectively use the .NET environment. The .NET Integrated Development Environment (IDE) is a new object-oriented technological environment that requires a skilled development team that:
Programmers with no OOP experience but with strong VB skills can probably build applications in .NET, but the deployment may tend to be sub-optimal and difficult to maintain and evolve. Effective Project ManagementProject Management Best Practices are to:
A .NET project manager will balance cost, schedule and functionality. Successful Knowledge TransferKnowledge Transfer is critical for the effective transition of the application to the deployment and maintenance teams. It facilitates quick system problem resolution when they arise in production and ensures system extensibility when additional functionality is needed. Knowledge transfer is important because it allows for an effective transition of the .NET application to the business knowledge-worker environment. A combination of mentoring and training ensures that the knowledge required to take over the application, and maintain it, is effectively transferred to the appropriate personnel who will take charge of the system. .NET and Web Services"Web services are self-describing, self-contained, modular applications that can be mixed and matched with other Web services to create innovative products, processes, and value chains. Web services are Internet applications that fulfill a specific task or a set of tasks that work with many other web services in an interoperable manner to carry out their part of a complex work flow or a business transaction. In essence, they enable just-in-time application integration and these web applications can be dynamically changed by the creation of new web services. Various applications that are available on the Internet can be accessed and invoked at run time without prior knowledge and programming requirements to enable business processes and decision-making at Web speeds.” (5) Both J2EE and .NET can be used to develop Web Services. According to WebServices.Org, the key benefits of Web Services (6) are:
The relevance of Web Services to the point being made here is that Web Services are natural components, as defined above, which can be constructed using either .NET or J2EE technology. The N-Tier Component-based Architecture approach, using business-based UML best practices as discussed above, is the key. Using .NET, the Web Service external interface will use SOAP. The Data Services will use ADO.NET and the middle tier will utilize .NET managed components. Web Services ExamplesFor a hospitality industry application, flight arrangements and car rentals are natural Web Services. For a financial services company, we have identified certain risk mitigation and foreign exchange components that will likely be implemented as web services. The Bottom Line.NET and J2EE as technology architectural frame works are comparable. Any performance advantage is likely to be temporary. The decision to use one over the other will likely focus upon the overall technology architecture environment and upon staff knowledge considerations. The bottom line to success in present and future project endeavors will be the critical success factors discussed above:
(1) See http://www.ecma.ch (2) See materials related to http://microsoft.com/net (3) CIBER .NET Best Practices (T Finneran, D Solensky, W D’Costa, A Verma) (4) This section was developed, in part, by a proposal team, including T Finneran, D Solensky, W D’Costa. (5) IBM alphaWorks web site - (www.alphaworks.ibm.com) (6) See Webservices.org article Why Web Services Go to Current Issue | Go to Issue Archive Recent articles by Tom Finneran
Tom Finneran -
Tom Finneran is a Consultant with CIBER, Inc. (http://www.ciber.com). Tom is an accomplished project manager, systems architect, data, object, and process modeler, systems engineer, as well as a successful entrepreneur. He has developed, and successfully implemented, methodologies in business and systems planning, enterprise analysis, business process redesign, object-oriented analysis and design, data and event/process modeling, technology assessment, and Client/Server systems analysis, design, and development for domestic and international environments. He has experienc in the communications industry, the pharmaceutical industry, the airline industry, and in sales, marketing, order entry, logistics, manufacturing, distribution, finance, personnel, technology assessment, systems development, data administration, systems architecture, end user computing, and computer law. A Patent Lawyer, Tom has developed a methodology for analyzing and documenting inventions. He can be reached at tfinneran@ciber.com. |