Application Development Using C# and .NET

Using a simple program, this overview of Microsoft .Net discusses how its features address and solve the problems the tech community faces today. Learn how Common Language Runtime (CLR) works with .Net to build powerful applications.

This chapter is from the book

This chapter is from the book

Introduction

What kind of problems is .NET designed to solve? .NET solves problems
that have plagued programmers in the past. .NET helps programmers develop the
applications of the future. This chapter is designed to present an overview of
Microsoft .NET by looking at a simple program rather than talking in vague
generalities. While we will start discussing Microsoft .NET in detail in Chapter
6, this chapter will enable you to get a feel for the big picture right
away.

Problems of Windows Development

Imagine a symphony orchestra where the violins and the percussion sections
had different versions of the score. It would require a heroic effort to play
the simplest musical composition. This is the life of the Windows developer. Do
I use MFC? Visual Basic or C++? ODBC or OLEDB? COM interface or C style API?
Even within COM: do I use IDispatch, dual, or pure vtable interfaces? Where does
the Internet fit into all of this? Either the design had to be contorted by the
implementation technologies that the developers understood, or the developers
had to learn yet another technological approach that was bound to change in
about two years.

Deployment of applications can be a chore. Critical entries have to be made
in a Registry that is fragile and difficult to back up. There is no good
versioning strategy for components. New releases can break existing programs
often with no information about what went wrong. Given the problems with the
Registry, other technologies used other configuration stores such as a metabase
or SQL Server.

Security in Win32 is another problem. It is difficult to understand and
difficult to use. Many developers ignored it. Developers who needed to apply
security often did the best they could with a difficult programming model. The
rise of Internet-based security threats transforms a bad situation into a
potential nightmare.

Despite Microsoft's efforts to make development easier problems
remained. Many system services had to be written from scratch, essentially
providing the plumbing code that had nothing to do with your business logic.
MTS/COM+ was a giant step in the direction of providing higher level services,
but it required yet another development paradigm. COM made real component
programming possible. Nonetheless, you either did it simply, but inflexibly in
Visual Basic, or powerfully, but with great difficulty in C++, because of all
the repetitive plumbing code you had to write in C++.