Google
 

Friday, May 25, 2007

Best Practices for Accelerating Problem Resolution in .NET Applications and Web Services

The Basics of Microsoft .NET


• Microsoft .NET is Microsoft's platform for building N-tier
applications. Microsoft .NET encompasses a family of products built
on industry and Internet standards that provide for each aspect of
developing (Visual Studio .NET), managing (.NET Servers) and
using Web services.
• Web services is a software technology that is used to connect
applications and users over standard Internet protocols. Web services
can be implemented through Microsoft Windows DNA, Microsoft
.NET, and J2EE applications.
• XML (Extensible Markup Language) is the universal format for
Web services. XML is a set of rules for designing text formats for
data, in a way that produces files that are easy to generate
and read (by a computer), and that are unambiguous and
platform-independent.
• SOAP (Simple Object Access Protocol) is a protocol built on XML.
Using SOAP, applications call each other in a standard, loosely
coupled way, making it possible to build applications that are
distributed across the Internet. If you think of the interactions
between XML Web services as a phone call, XML describes the
things that applications say to each other in their conversations
and SOAP describes how they call each other on the phone.
• CLR (Common Language Runtime) is a core component of the
Microsoft .NET Framework. Similar to a Java Virtual Machine, the
CLR is a native Windows program that provides various services,
such as memory management, security management and error
handling, to .NET managed applications. Programs can be written
for the CLR in any .NET language, including C# and VB.NET.
ASP.NET, the new version of Microsoft's ASP, is a programming
framework built on the CLR that can be used on a server to build
.NET Web applications.
ADO.NET, the new version of Microsoft's ADO, provides .NET
applications with optimized access to data sources such as
Microsoft SQL Server, as well as data sources exposed through
OLE DB and XML.
• Remoting is a .NET technology for calling procedures over the
network using XML, SOAP, and HTTP just as if they were hosted on
the same computer (you can think of Remoting as the .NET version
of DCOM).
• Interop is the process of getting managed and unmanaged
objects (e.g. COM objects) to work together.
• Assembly is the .NET logical equivalent of a DLL, a reusable
application component.
• GC (Garbage Collection) is the .NET mechanism for managing
memory, designed to absolve developers from tracking memory
usage and knowing when to free memory.

Common Problems with .NET Applications

Common Problems with .NET Applications
While Microsoft .NET addresses many of the issues historically
associated with building and deploying distributed applications, it
presents many new challenges related to deployment and support.
This is due to the following reasons:
• .NET applications are typically highly distributed; hence problem
triage is complex and time-consuming.
• .NET is a gigantic new set of technologies and concepts. As with
any new software platform, problems are common and inevitable.
• Web services often translate to significantly higher levels of
dependency between applications and a growing number of endusers,
thus increasing the direct and indirect costs of problems and
inefficiencies in the support process.
The following are some of the common problems associated with
.NET applications:

Performance Problems

As with any software environment, performance problems are
common and often difficult to pinpoint. The possible causes for
these problems include:
• Inefficient code ( e.g. frequent exceptions, many large objects,inefficient database calls – using ad hoc queries rather than
compiled stored procedures).
• Memory consumption (e.g. not freeing objects when they are no
longer used, allocating too much memory per request, inadequate
definition of maximum number of Worker and IO threads).
• Improper application settings (e.g. inadequate session-state
provider, buffering disabled on a Web Forms page).
• Interoperability with legacy Windows code ( e.g. marshaling a lot
of data from COM/COM+ to managed .NET objects).
• Infrastructure problems (e.g. bad network response times that
cause degradation in application performance).

Functional Problems

The Microsoft .NET Framework has been designed to free the
developer from dealing with various programming tasks, such
as memory allocations and security. However, just like in any
development platform, coding errors are still in abundance.
Some of the most common coding errors are:
• Incorrect business logic (e.g. incorrect calculation of interest rate).
• Thread deadlock situations.
• A severe error which leads to an application crash.


Configuration Problems

While .NET promises to resolve "DLL-hell" issues, configuration
problems are far from gone. The following detail some of the
common configuration issues with .NET applications:
• Insufficient permissions to access a resource (e.g. no permission
to write to an application directory).
• Incompatible components (e.g. incorrect versions of assemblies or
COM/COM+ objects).
• Incorrect application settings in .NET configuration files
• Conflicts with other applications (e.g. an anti-virus tool that causes a
Web application to restart intermittently).

User Errors

.NET applications are built to serve end-users. As with any software
application, users make mistakes. Some of these mistakes are resolved
quickly, while some take days to figure out.


--
Happy day, happy life!

No comments: