You are previewing Mono: A Developer's Notebook.
O'Reilly logo
Mono: A Developer's Notebook

Book Description

The Mono Project is the much talked-about open source initiative to create a Unix implementation of Microsoft's .NET Development Framework. Its purpose is to allow Unix developers to build and deploy cross-platform .NET applications. The project has also sparked interest in developing components, libraries and frameworks with C#, the programming language of .NET. The controversy? Some say Mono will become the preferred platform for Linux development, empowering Linux/Unix developers. Others say it will allow Microsoft to embrace, extend, and extinguish Linux. The controversy rages on, but--like many developers--maybe you've had enough talk and want to see what Mono is really all about. There's one way to find out: roll up your sleeves, get to work, and see what you Mono can do. How do you start? You can research Mono at length. You can play around with it, hoping to figure things out for yourself. Or, you can get straight to work with Mono: A Developer's Notebook--a hands-on guide and your trusty lab partner as you explore Mono 1.0. Light on theory and long on practical application, Mono: A Developer's Notebook bypasses the talk and theory, and jumps right into Mono 1.0. Diving quickly into a rapid tour of Mono, you'll work through nearly fifty mini-projects that will introduce you to the most important and compelling aspects of the 1.0 release. Using the task-oriented format of this new series, you'll learn how to acquire, install, and run Mono on Linux, Windows, or Mac OS X. You'll work with the various Mono components: Gtk#, the Common Language Runtime, the class libraries (both .NET and Mono-provided class libraries), IKVM and the Mono C# compiler. No other resource will take you so deeply into Mono so quickly or show you as effectively what Mono is capable of. The new Developer's Notebooks series from O'Reilly covers important new tools for software developers. Emphasizing example over explanation and practice over theory, they focus on learning by doing--you'll get the goods straight from the masters, in an informal and code-intensive style that suits developers. If you've been curious about Mono, but haven't known where to start, this no-fluff, lab-style guide is the solution.

Table of Contents

  1. Mono: A Developer’s Notebook
    1. Foreword
    2. The Developer’s Notebook Series
      1. Notebooks Are...
      2. Notebooks Aren’t...
      3. Organization
    3. Preface
      1. What This Book Covers
      2. Why Mono?
        1. Provides a controlled environment
        2. Reuses existing code investments
        3. Fast to write, fast to run
        4. Presents cross-platform code and migration paths
        5. Provides a choice of languages
        6. Works with familiar tools
        7. Provides a large community resources
      3. Conventions Used in This Book
      4. Using Code Examples
      5. Comments and Questions
      6. Acknowledgments
        1. Edd Dumbill
        2. Niel Bornstein
    4. 1. Getting Mono Running
      1. Install Mono
        1. How to do it
          1. Linux
          2. Windows
          3. Mac OS X
          4. Installing from source
        2. What about ...
      2. Explore Mono
        1. How do I do that?
          1. mcs
          2. mono
          3. mint
          4. monodoc
          5. monop
          6. gacutil
        2. What about ...
        3. Where to learn more
      3. Run the MonoDevelop IDE
        1. How do I do that?
        2. What about ...
      4. Fit Mono into Your World
        1. How do I do that?
        2. What about ...
        3. Where to learn more
      5. Join the Mono Community
        1. How do I do that?
    5. 2. Getting Started with C#
      1. Say “Hello” to the World
        1. How do I do that?
        2. How it works
        3. What about ...
        4. Where to learn more
      2. Model the Behavior of Real-World Things
        1. How do I do that?
        2. How it works
        3. What about ...
      3. Avoid Overhead While Passing Data
        1. How do I do that?
        2. How it works
        3. What about ...
      4. Handle Unexpected Errors
        1. How do I do that?
        2. How it works
        3. What about ...
      5. Define Function Pointers
        1. How do I do that?
        2. How it works
      6. Add Metadata to Your Types
        1. How do I do that?
        2. What about ...
      7. Call External Libraries
        1. How do I do that?
        2. How it works
        3. Where to learn more
      8. Package Related Classes with Assemblies
        1. How do I do that?
        2. What about ...
        3. Where to learn more
    6. 3. Core .NET
      1. Work with Files
        1. How do I do that?
        2. How it works
        3. What about ...
        4. Where to learn more
      2. Manage String Data
        1. How do I do that?
        2. What about ...
      3. Search Text with Regular Expressions
        1. How do I do that?
        2. How it works
        3. Where to learn more
      4. Manage Collections of Data
        1. How do I do that?
        2. How it works
        3. What about ...
      5. Work with Assemblies
        1. How do I do that?
        2. How does it work?
        3. What about ...
        4. Where to learn more
      6. Start and Examine Processes
        1. How do I do that?
        2. How it works
      7. Multitask with Threads
        1. How do I do that?
        2. How it works
        3. What about ...
      8. Test Your C# Code
        1. How do I do that?
        2. How it works
        3. What about ...
        4. Where to learn more
    7. 4. Gtk#
      1. Write a Basic Gtk# Program and Handle Events
        1. How to do it
        2. How it works
        3. Where to learn more
      2. Arrange Widgets Using Boxes
        1. How to do it
        2. How it works
        3. Where to learn more
      3. Make Widgets Interact
        1. How to do it
        2. How it works
        3. Where to learn more
      4. Make Dialogs by Subclassing
        1. How to do it
        2. How it works
        3. What about ...
        4. Where to learn more
      5. Draw Graphics
        1. How to do it
        2. How it works
        3. Where to learn more
      6. Create Menus
        1. How to do it
        2. How it works
        3. What about ...
        4. Where to learn more
      7. Organize Data with TreeView
        1. How to do it
        2. How it works
        3. What about ...
        4. Where to learn more
      8. Exchange Data with Drag and Drop
        1. How to do it
        2. How it works
        3. Where to learn more
    8. 5. Advanced Gtk#
      1. Write a Gnome Application
        1. How do I do that?
        2. How it works
        3. Where to learn more
      2. Design Interfaces with Glade
        1. How do I do that?
        2. How it works
        3. Where to learn more
      3. Store Configuration with GConf
        1. How do I do that?
        2. How it works
        3. What about ...
      4. Guide the User with Druids
        1. How do I do that?
        2. How it works
        3. What about ...
      5. Perform Asynchronous Operations
        1. How do I do that?
        2. How it works
        3. Where to learn more
      6. Render HTML
        1. How do I do that?
        2. What about ...
        3. Where to learn more
      7. Provide Help Files
        1. How do I do that?
        2. What about ...
        3. Where to learn more
      8. Translate Your Programs
        1. How do I do that?
        2. How it works
    9. 6. Processing XML
      1. Read and Write XML
        1. How do I do that?
        2. How it works
        3. Where to learn more
      2. Manipulate XML in Memory
        1. How do I do that?
        2. How it works
        3. What about ...
        4. Where to learn more
      3. Navigate XML Documents
        1. How do I do that?
        2. What about ...
        3. Where to learn more
      4. Transform XML
        1. How do I do that?
        2. What about ...
        3. Where to learn more
      5. Constrain XML Documents
        1. How do I do that?
        2. What about ...
      6. Constrain XML Another Way
        1. How do I do that?
        2. What about...
        3. Where to learn more
      7. Serialize Objects to XML
        1. How do I do that?
        2. How it works
    10. 7. Networking, Remoting, and Web Services
      1. Set Up ASP.NET
        1. How do I do that?
        2. What about ...
        3. Where to learn more
      2. Run Web Applications
        1. How do I do that?
        2. How it works
        3. What about ...
      3. Deploy Web Services
        1. How do I do that?
        2. What about ...
      4. Communicate with Other Networked Systems
        1. How do I do that?
        2. How it works
        3. What about ...
      5. Access Remote Objects
        1. How do I do that?
        2. How it works
        3. What about ...
      6. Invoke Remote Procedures with XML
        1. How do I do that?
        2. How it works
        3. Where to learn more
      7. Secure Data from Prying Eyes
        1. How do I do that?
        2. How it works
        3. Where to learn more
      8. Talk to Databases
        1. How do I do that?
        2. How it works
        3. What about ...
        4. Where to learn more
    11. 8. Cutting Edge Mono
      1. Maintain Your Sources with the Autotools
        1. How do I do that?
      2. Write Cross-Platform Compatible Programs
        1. How do I do that?
        2. What about ...
      3. Run Java in Mono
        1. How do I do that?
        2. What about ...
        3. Where to learn more
      4. Run a Development Version of Mono
        1. How do I do that?
        2. Where to learn more
      5. Use Generics
        1. How do I do that?
        2. How it works
        3. What about ...
        4. Where to learn more
      6. Write Mono Programs in Basic
        1. How do I do that?
        2. Where to learn more
    12. Index
    13. Colophon