About This Volume

On This Page

Introduction to Volume 4 Introduction to Volume 4
Layout of the Guide: Volume 4 Layout of the Guide: Volume 4
Organization of Content Organization of Content
Resources Resources

Introduction to Volume 4

Volume 1 of the UNIX Custom Application Migration Guide discussed how to apply the Envisioning and Planning Phases of the Microsoft® Solutions Framework (MSF) Process Model when conducting a UNIX to Microsoft Windows® migration project. This volume, Volume 4: Migrate Using .NET, applies the next phases in the Process Model—the Developing Phase and the Stabilizing Phase—and directs it specifically for using Microsoft .NET. This volume describes the architectural and potential coding differences between the UNIX and Windows environments using .NET and discusses various ways to implement these differences in the Windows environment using .NET. This volume addresses these potential coding differences by looking at the solution from various categories. These categories are:

  • .NET interoperability.

  • Process management.

  • Thread management.

  • Memory management.

  • File management.

  • Infrastructure services.

  • User interface migration.

  • Deployment considerations and testing activities.

  • Stabilizing Phase activities.

For each of these categories, this volume:

  • Describes the implementation on the .NET environment.

  • Outlines options for converting the code using .NET.

  • Illustrates the options with source code examples.

This information helps you in choosing the solution that is appropriate to your application. Sufficient code examples and references are provided in this volume to aid you in the migration process. You can also refer to the .NET Framework and .NET class library documentation to obtain more details on .NET.

This volume considers Microsoft Visual Studio® .NET 2003 as the integrated development environment (IDE) for developing .NET applications. Although newer technologies exist, the guide is based on best practices developed by partners and customers. As new practices establish, they will be incorporated into future releases of the guide. These latest technologies and their features are briefly described in the “Roadmap for Future Migrations” section of Chapter 2, “Operations” of Volume 5: Deploy and Operate of this guide.

For more information on activities in the Developing Phase as they relate to a migration project, refer to Chapter 2, “Developing Phase: Process Milestones and Technology Considerations” of this volume.

Intended Audience

The technical information in this volume is provided to support the activities undertaken during the Developing Phase of a migration project. It is intended for developers and testers who are involved in migrating UNIX code to Windows using .NET. The developers could be UNIX or Windows programmers involved in developing the solution on Windows using .NET. Using the guidance provided in this volume, a UNIX programmer will learn how to rewrite code so that it can be recompiled to run in a .NET environment, and a Windows programmer will learn how to use .NET for achieving the functionality.

Specific advantages that this volume provides the developers and testers are:

  • Developers. Developers can learn about the various alternative methods for migrating from UNIX to Windows using .NET and how to choose the best strategy to fit their environment and the application types.

  • Testers. Testers can gain more insight on the testing methodology that is best suited for their migration scenario. With the help of this guide they can test the application for such aspects as functionality, management, performance, and stability.

Knowledge Prerequisites

The readers of this volume should possess the following knowledge prerequisites:

  • Basic knowledge of the UNIX and Windows environments.

  • Basic understanding of process and thread management, file and memory management, and various infrastructure services features.

  • Hands-on experience on Windows environments.

  • Hands-on experience on any one of the .NET programming languages.

  • Hands-on experience on using Microsoft Visual Studio .NET 2003.

  • Familiarity with UNIX administration skills.

It is also recommended that you read the “About This Guide” section in Volume 1: Plan as well as the rest of the Plan volume before reading this volume.

Layout of the Guide: Volume 4

The following diagram depicts the layout of the guide and how the volumes of the guide correlate with the components of the MSF Process Model. The portion shaded in white depicts the position of the current volume in the layout of the entire guide.

Figure 0.1. UCAMG organization

Figure 0.1. UCAMG organization

Organization of Content

  • About This Volume. This chapter provides information on the organization of the guide and about its intended audience. It also lists the knowledge prerequisites required for this volume and provides resources, such as document conventions, used in this guide.

  • Chapter 1: Introduction to .NET. This chapter introduces the Microsoft .NET architecture, application security, and .NET XML Framework. It explains the different paths, scenarios, and techniques for migrating a UNIX application to .NET using Visual Studio .NET 2003.

  • Chapter 2: Developing Phase: Process Milestones and Technology Considerations. This chapter provides information on starting the Developing Phase and provides insight into the development environment for the migration exercise. It also discusses the major tasks and deliverables that should be identified and planned at the start of the Developing Phase.

  • Chapter 3: Developing Phase: .NET Interoperability. Microsoft .NET provides several interoperability mechanisms to interoperate with the native code, thus facilitating the migration process and preserving the investments in the existing code. This chapter discusses how these interoperability mechanisms can be applied to reuse the existing code with minimal changes.

  • Chapter 4: Developing Phase: Process and Thread Management. This chapter discusses the differences between the UNIX and the Microsoft .NET environments in the context of process and thread management programming. In addition, this chapter outlines the various options available for converting the code from the UNIX to the Windows environment using .NET and illustrates these options with appropriate source code examples.

  • Chapter 5: Developing Phase: Memory and File Management. This chapter discusses the programming differences between the Microsoft .NET Framework and the UNIX environment in the following two categories: memory management and file management.

  • Chapter 6: Developing Phase: Migrating Using .NET. This chapter discusses the programming differences between UNIX and Microsoft .NET Framework. These differences are addressed in the following categories: signals and events, exception handling in .NET, sockets and networking, interprocess communication, daemons versus services, and database connectivity.

  • Chapter 7: Developing Phase: Migrating the User Interface. This chapter describes how to migrate from a UNIX-based user interface (UI) to a Microsoft Windows UI using Windows Forms provided by Microsoft .NET.

  • Chapter 8: Developing Phase: Additional Features in .NET. This chapter describes some of the other features of the Microsoft .NET Framework that you can use in migrating applications from UNIX. These features include securing applications in .NET, isolated storage, serialization, .NET remoting, XML Web services in .NET, Enterprise Services in .NET, and enterprise templates.

  • Chapter 9: Developing Phase: Deployment Considerations and Testing Activities. This chapter discusses the key development considerations for deploying applications migrated to the Microsoft .NET Framework. It also discusses the testing activities involved in the Developing Phase.

  • Chapter 10: Stabilizing Phase. This chapter describes the suggested strategy for stabilizing an application that has been migrated from UNIX to the Microsoft Windows operating system. The Stabilizing Phase involves testing the application for the expected functionality and improving the quality of the application to meet the acceptance criteria set for the project.


This section describes the various resources that are included in the UNIX Custom Application Migration Guide and information that will assist in using the guide.


Please see the Acronyms list accompanying this guide for a list of the acronyms and their meanings used in this volume.

Document Conventions

The document conventions used in this volume are primarily designed to help you to quickly identify the operating system and the interface (command line or graphical) being discussed. The platforms discussed in this volume are Microsoft Windows and UNIX. In general, Windows operating system commands are executed by clicking user interface (UI) elements, and these elements are visually distinguished in this volume by the use of bold text. In contrast, the UNIX operating system typically uses a command-line interface, and these instructions are visually distinguished in this volume by the use of monospace font.

These interface and execution differences are not absolute; and in cases where visual cues do not clearly delineate between operating systems, the text will clearly make this distinction.

Table 0.1 lists the document conventions used in this volume.

Table 0.1. Document Conventions

Text Element


Bold text

Used in the context of paragraphs for commands; literal arguments to commands (including paths when they form part of the command); switches; and programming elements, such as methods, functions, data types, and data structures.

Also used to identify the UI elements.

Italic text

Used in the context of paragraphs for variables to be replaced by the user.

Also used to emphasize important information.

Monospace font

Used for excerpts from configuration files, code examples, and terminal sessions.

Monospace bold font

Used to represent commands or other text that the user types.

Monospace italic font

Used to represent variables that the reader supplies in command- line examples and terminal sessions.

Shell prompts

The MS-DOS® prompt is used in Windows.


Represents a note.


Represents code.

Code Samples

The build volumes, Volume 2: Migrate Using Windows Service for UNIX 3.5, Volume 3: Migrate Using Win32/64, and Volume 4: Migrate Using .NET, of this guide contain several code samples to illustrate certain programming concepts. These code samples are available as source files in a Tools and Templates folder in the download version of this guide, available at http://go.microsoft.com/fwlink/?LinkId=30864.

Chapter 1: Introduction to .NET

Chapter 2: Developing Phase: Process Milestones and Technology Considerations

Chapter 3: .NET Interoperability

Chapter 4: Developing Phase: Process and Thread Management

Chapter 5: Developing Phase: Memory and File Management

Chapter 6: Developing Phase: Infrastructure Services

Chapter 7: Developing Phase: Migrating the User Interface

Chapter 8: Developing Phase: Additional Features in .NET

Chapter 9: Developing Phase: Deployment Considerations and Testing Activities

Chapter 10: Stabilizing Phase


Get the UNIX Custom Application Migration Guide

Update Notifications

Sign up to learn about updates and new releases


Send us your comments or suggestions