RE: 2.9 Target Framework

2009年11月09日 18:07:35 -0800

Digy,
 It's serendipity that this is the first email that I receive in
joining this group, as the reason I joined was because I found that I very
much don't like the API or some of the translations from the Java version of
Lucene.
 To that end, I've taken the stable release (2.0) and started to do a
port to 3.5 (although most of it is 2.0 compliant, I use LINQ in very few
places), addressing most of the following at this point:
- Proper implementation of IDisposable over Close methods
- Proper implementation of IEnumerable<T> and replacing for with foreach
loops
 - Use of LINQ in some places in order to make code more declarative
(e.g. flatting out nested loops)
- Removed use of Join method on the Thread class (it is depreciated),
replaced with other .NET synchronization primitives.
- Replacing ArrayList and Hashtable with List<T> and Dictionary<TKey,
TValue> instances
 - Using generic versions vs non-generic versions, especially when a
type parameter is a structure provides massive performance gains (due to
lack of boxing)
 - Where synchronized versions were used, locks were put into place
at appropriate areas to lock access
 - Lock scope was expanded to ensure that multiple operations
on the same synchronized resource is atomic
- Implementing .NET types where appropriate
 - e.g. ScoreDocComparator becomes IScoreDocComparer, deriving from
IComparer<ScoreDoc>
 - Methods that override Equals implement IEquatable<T>, and
possibly, IComparable<T>
- Condensing types
 - e.g. ICharStream is defined twice.
 The list goes on of course. But these are some of the biggies. I'm
currently getting the source from SVN, and seeing where I can contribute
without causing too much of a fuss. =)
 - Nick
 
-----Original Message-----
From: Digy [mailto:[email protected]] 
Sent: Monday, November 09, 2009 1:19 PM
To: [email protected]
Subject: RE: 2.9 Target Framework
I think we should stick to .NET 2.0 till Lucene 3.0 which can be a good
place to switch to .NET 3.5 (so will Lucene.Java do also).
There are also a lot of places where smarter codes can be used ( replacing
"GetEnumerator+while" with "foreach", implementing a .NET like "Set" instead
of using Hashtable etc.) But it can be a problem in porting unless we catch
up with Lucene.Java.
DIGY
-----Original Message-----
From: Michael Garski [mailto:[email protected]] 
Sent: Monday, November 09, 2009 7:26 PM
To: [email protected];
[email protected]
Subject: 2.9 Target Framework
Apologies for the cross-posting to both lists, but I think this issue is
applicable to both.
 
What is the target framework for Lucene.Net 2.9? I'm assuming 2.0 but
would like to ensure this is defined. There are a few cases in some of
the internal implementation where use of LINQ would be handy, such as in
collection transformations to arrays. Overall, it's not a big deal to
target 2.0 however some of the implementation will be a bit more elegant
and precise if we target 3.5.
 
Cheers,
 
Michael
 
Michael Garski
Sr. Search Architect 
310.969.7435 (office)
310.251.6355 (mobile)
www.myspace.com/michaelgarski
 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to