| Copyright |
| Preface |
| Why I Felt the Need to Write This Book |
| Who Should Read This Book? |
| How This Book Is Organized |
| Acknowledgments |
Part I. Introduction to Open Source and .NET |
Chapter 1. What Is Open Source? |
| Introduction |
| Microsoft and Open Source |
| Open Source, Free Software, and Shared Source. Oh MY! |
| Tips on Selecting a License |
| Using Open Source in Your Proprietary Product |
| Summary |
Chapter 2. Open Source and the .NET Platform |
| Introduction |
| .NET Standards |
| Standardization |
| Implementations |
| Summary |
Part II. .NET Development with Open Source Tools |
Chapter 3. General Development |
| Introduction |
| .NET Editing Tools |
| Documentation Tools |
| Source Control Management |
| Databases |
| Web Servers |
| Other Development Tools for .NET |
| Summary |
Chapter 4. Build Automation |
| Introduction |
| What NAnt Is |
| What NAnt Is Not |
| Using NAnt |
| Why Use NAnt? |
| Data Types |
| SCM Integration |
| NAnt Best Practices |
| Migrating to NAnt |
| Examples |
| Extending NAnt |
| Extending NAntContrib |
| Useful Tools for Use with NAnt |
| Summary |
Chapter 5. XML Documentation |
| Introduction |
| C# XML Documentation |
| Configuring the C# Compiler to Create the XML File |
| Documentation Tools |
| NDoc |
| NAnt Integration |
| Summary |
Chapter 6. Unit Testing |
| Introduction |
| Unit Testing |
| Unit Testing Platforms |
| NUnit Architecture |
| NUnit Example |
| Integration with NAnt |
| NUnitASP |
| Other Tools Useful with NUnit |
| Performance and Other Testing Tools |
| Summary |
Chapter 7. Continuous Integration |
| Introduction |
| Hippo.NET |
| Draco.NET |
| CruiseControl.NET |
| Summary |
Chapter 8. Application Logging |
| Introduction |
| Application Logging |
| Architecture |
| Loggers |
| Levels |
| Appenders |
| Filters |
| Layouts |
| ObjectRenderer |
| Configuration |
| Logging with Context Information |
| WMI |
| Performance and Scalability |
| Examples |
| Log File Readers |
| Extending Log4Net |
| Summary |
Part III. Integrating .NET Open Source Projects in Your Development |
Chapter 9. ASpell.NET Case Study |
| Introduction |
| Test First Development |
| NAnt Build |
| Subversion |
| Draco.NET |
| Adding Functionality |
| Summary |
Chapter 10. Database Development |
| Introduction |
| Open Source Databases |
| PostgreSQL |
| PostgreSQL ADO.NET Data Providers |
| PostgreSQL, NPgSql, and FreeDB Example |
| Summary |
Chapter 11. Web Development |
| Introduction |
| Cross Platform ASP.NET and Web Services |
| Setting Up the Environment |
| Web Service Example |
| ASP.NET Example |
| Summary |
Chapter 12. Simple Project Integration |
| Introduction |
| Popular Projects |
| An Example of Integration |
| SharpVectorGraphics Project |
| Didgets Project |
| Other Open Source Projects |
| The Integration |
| Summary |
Part IV. References |
Appendix A. NAnt Tasks |
| <al>Wraps al, the assembly linker for the .NET Framework. |
| <attrib>Changes the file attributes of a file or set of files. |
| <call>Calls a NAnt target in the current project. |
| <cl>Compiles C/C++ programs using cl, Microsoft's C/C++ compiler. |
| <copy>Copies a file or fileset to a new file or directory. |
| <csc>Copies a file or fileset to a new file or directory. |
| <cvscheckout>Checks out a CVS Module. |
| <cvsupdate>Updates a CVS Module. |
| <delay-sign>Signs delayed signed .NET assemblies. |
| <delete>Deletes a file, fileset, or directory. |
| <description>An empty task that allows a build file to contain a description. |
| <echo>Writes a message to the build log. |
| <exec>Executes a system command. |
| <fail>Exit the current build. |
| <foreach>Loops over a set of Items. |
| <get>Get a particular file from a URL source. |
| <if>Checks the conditional attributes and executes the children if true. |
| <ifnot>The opposite of the if task. |
| <include>Include an external build file. |
| <jsc>Compiles Microsoft JScript.NET programs using jsc. |
| <lib>Run lib.exe, Microsoft''s Library Manager. |
| <license>Task to generate a .license file from a .licx file. |
| <link>Links files using link, Microsoft''s Incremental Linker. |
| <loadtasks>Loads tasks from a given assembly or directory. |
| <mc>Compiles messages using mc.exe, Microsoft''s Win32 message compiler. |
| <mail>A task to send SMTP email. |
| <mcs>Compiles C# programs using the Mono mcs compiler. |
| <mkdir> Creates a directory and any non-existent parent directories if necessary. |
| <move>Moves a file or fileset to a new file or directory. |
| <nant> Runs NAnt on a supplied build file. This can be used to build subprojects. |
| <nantschema>Creates a schema file for all available tasks. |
| <ndoc>Runs NDoc to create documentation. |
| <nunit>Runs tests using the NUnit framework. |
| <nunit2>Runs tests using the NUnit V2.0 framework. |
| <property> Sets a property in the current project. |
| <readregistry>A task that reads a value or set of values from the Windows registry into one or more NAnt properties. |
| <regex>Sets properties based on a regular expression. |
| <regsvc>Installs .NET Windows Services. |
| <resgen>Converts files from one resource format to another (wraps Microsoft''s resgen.exe). |
| <resx>Task to generate a .resources file from a .resx file. |
| <script> Executes the code contained within the task. |
| <servicecontroller> Starts and stops a Windows service. |
| <sleep> A task for sleeping a specified period of time, useful when a build or deployment process requires an interval between tasks. |
| <solution>Builds a Visual Studio .NET solution file. |
| <style>Process a document via XSLT. |
| <sysinfo>Sets a number of properties with information about the system environment. |
| <touch> Touch a file and/or fileset(s) -- corresponds to the Unix touch command. |
| <tstamp>Sets properties with the current date and time. |
| <unzip>Unzips a zip file. |
| <vbc>Compiles Microsoft Visual Basic.NET programs using vbc.exe. |
| <vjc> Compiles Visual J# programs using VJC, Microsoft''s J# compiler. |
| <xmlpeek>Extracts text from a given XPath Query. |
| <xmlpoke>Replaces text from a given XPath Query. |
| <zip>A task to create a zip file from a specified fileset. |
Appendix B. NAntContrib Tasks |
| <adsigetprop> |
| <adsisetprop> |
| <aximp> |
| <comregister> |
| <checksum> |
| <concat> |
| <disco> |
| <gac> |
| <hxcomp> |
| <hxreg> |
| <mkiisdir> |
| <iisdirinfo> |
| <deliisdir> |
| <msi> |
| <msm> |
| <mgmtclassgen> |
| <ngen> |
| <nunitreport> |
| <record> |
| <regasm> |
| <scp> |
| <slingshot> |
| <stautolabel> |
| <stcheckin> |
| <stcheckout> |
| <stlabel> |
| <stlist> |
| <sql> |
| <typedcollection> |
| <validatexml> |
| <vb6> |
| <version> |
| <vssadd> |
| <vsscheckin> |
| <vsscheckout> |
| <vssdiff> |
| <vssget> |
| <vsslabel> |
| <vssundocheckout> |
| <wsdl> |
| <xsd> |
Appendix C. mkisofs |
| NAME |
| SYNOPSIS |
| DESCRIPTION |
| OPTIONS |
| HFS OPTIONS |
| HFS CREATOR/TYPE |
| HFS MACINTOSH FILE FORMATS |
| HFS MACINTOSH FILENAMES |
| HFS CUSTOM VOLUME/FOLDER ICONS |
| HFS BOOT DRIVER |
| PLEASE NOTE |
| EL TORITO BOOT INFORMATION TABLE |
| CONFIGURATION |
| EXAMPLES |
| AUTHOR |
| NOTES |
| BUGS |
| HFS PROBLEMS/LIMITATIONS |
| SEE ALSO |
| FUTURE IMPROVEMENTS |
| AVAILABILITY |
| MAILING LISTS |
| MAINTAINER |
| HFS MKHYBRID MAINTAINER |
Appendix D. Log4NET Appender Configurations |
| ADONetAppender |
Appendix E. Open Source Security Observations |
| Index |