NOTE:
Change Set
53898 is the last version that will be API compatible Lucene.NET version 2.9.2. I was hoping to keep compatibility longer, but some cyclic dependencies in the first set of changes require a slight change in some method signatures.
The source is still being modified for .NET 4, NUnit 2.57, and Visual Studio 2010. There is no need to download code yet.
Project Description
Refactoring Lucene.NET to follow .NET best practices and conventions rather than Java's coding styles and limitations. A series of articles will be available at www.codeproject.com that follow the process
from beginning to end.
Contact Matthew@codeproject.com.
Overview
Recently, I read a blog,
Lucene.Net needs your help (or it will die), warning that the
Lucene.NET project is in danger. This is due to the fact that there has been very little activity on the project for many months. As I am currently in the process of incorporating
Lucene.NET into
The Code Project, I have reviewed the source code and think I understand why this is.
- First of all, the code does not follow .NET conventions and best practices.
- The code is an almost direct copy of the Java source.
- As such, it does not use Properties, it has getter and setter methods.
- It does not use enums, rather uses pattern which emulates enums using classes.
- The unit test take way too much time, rendering them useless for TDD.
- The code does not take advantage of the .NET Framework’s library of classes that should be leveraged to improve the performance and code quality.
- The inline documentation is not in XML Documentation format.
For these reasons, I asked my boss,
Chris Maunder, permission to spend some time to clean up the code for the .NET developer community, and hopefully with the help of the community.
The intent is to produce a code base that is better suited for use and improvement by the .NET developers. Conversion will include all files in the 1032168 Revision in the
Lucene.NET SVN Repository.
Where does the name come from?
Aimee is one of the members of our Sales and Marketing team. She has been with The Code Project longer than I have. She has filled the shoes of Receptionist, Account Assistant, Ad Operations, and her current role. As such she is known by
all here at The Code Project and knows where all the skeletons are hidden.
Next Steps
- Check-in a copy of the Lucene.NET source code.
- Convert to .NET 4 and Visual Studio 2010.
- Get the Unit Tests all running successfully, and in reasonable amount of time.
- Start Refactoring:
- To use Enums
- To use Properties.
Tools I’ll be using
- Visual Studio 2010 Ultimate
- NUnit 2.5.7
- CodeRush from DevExpress