[Mono-list] Status of different components/pendind tasks - post Mono 1.0

Manjula G H M mmanjula@novell.com
Thu, 15 Jul 2004 22:57:47 -0600


This is a MIME message. If you are reading this text, you may want to 
consider changing to a mail reader or gateway that understands how to 
properly handle MIME multipart messages.

--=__PartE4C55E5B.0__=
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

(Resent with ADO.NET - attachment)
We have consolidated list of tasks to be done in different components
(ADO.NET,VB.NET,System.Drawing, testing ADO.NET) for 1.2 . It also
includes .NET 1.1 missing functionalities also. Attached document
gives
details.  
We need to decide how much of .NET 2.0 will be shipped with Mono 1.2.

Appreciate your comments. 

Thanks
Manjula

NOTE: NOSIP - stands for Novell Open Source Internship Programme -
Small student community who want to contribute to mono.



--=__PartE4C55E5B.0__=
Content-Type: text/plain; name="VB_NET.txt"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="VB_NET.txt"

VB.NET:

To be at per with VB 2003 we need to have the following 100% complete -

* Types and Type Members - It is around 80% complete. Rest of the stuffs we should be able to complete as part of bug fixing

* Statements and Expression - This is another major chunk of work. Most of the things are implemented here. But we need to cautiously check each and every Statements and Expression.

* Attributes : Should be a small job. Looks like attribute classes are working fine. Only needs to make sure that it is getting attached properly with all types and type members.

* Source files and Namespaces - In this section we need to concentrate only on "Compilation Options" (rest of the parts are already there in place and working). Rafael and co. were doing something on this area for quite sometime. Not sure about the current state of it. But certainly quite a lot needs to be done here.

* Preprocessing directives : Unaware about the current state.

Only the high level names form the MS VB Spec are mentioned and jotted them as per the priority in the above list.

Apart from this -

* We need to write plenty of test cases to cover all new areas. Writing test cases by developer consume lots of time - Planning to give this to intern.

* Need to change the mbas make file to throw test case output in the XML format so that daily build can compare results. This is critical too.

* We have to have some VB and ASP application up and running by late August to start generating interest among Vb community. Once the community is active we can reduce our testing effort. In this process we may need to fix a lot of bugs. And probably at the end of the exercise VB will be in a fairly usable state.

* Need to complete VB runtime unimplemented functions.


Now if we want to be at per with VB 2005 we have following things to cover too -

* Generics
* My Namespace - Probably a only VB namespace having around 5-6 classes. This will be lots of work and mostly tough to implement at the same time
* Continue statement
* Operator overloading
* IsNot keyword
* Using keyword
* Unsigned integer types
* Partial classes
* Background worker object
* Autocorrect feature - This is a IDE feature

Not sure whether this list is complete.







--=__PartE4C55E5B.0__=
Content-Type: text/plain; name="System.Drawing.txt"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="System.Drawing.txt"


System.Drawing:

Not included System.Drawing.Design and System.Drawing.Printing namespace for the comparison.

Also, Under System.Drawing.Imaging, there are no
methods implemented for classes providing metafile support for
images.
Sanjay is looking at libemf and libwmf which provides support
for encoding decoding vector images. This can be taken up as
next area of work in System.Drawing namespace as well as in 
libgdiplus.


Bitmap.cs
public static Bitmap FromHicon (IntPtr hicon)
public static Bitmap FromResource (IntPtr hinstance, string bitmapName)

FontConverter.cs -> FontNameConverter class
public override object ConvertFrom (ITypeDescriptorContext context, CultureInfo culture, object value)
public override StandardValuesCollection GetStandardValues (ITypeDescriptorContext context)
public override bool GetStandardValuesExclusive (ITypeDescriptorContext context)
~FontNameConverter ()
public override StandardValuesCollection GetStandardValues (ITypeDescriptorContext context)

Font.cs
public static Font FromHdc (IntPtr hdc)
public static Font FromLogFont (object lf,  IntPtr hdc)
public static Font FromLogFont (object lf)
public void ToLogFont (object logFont)
public void ToLogFont (object logFont, Graphics graphics)
public float GetHeight (Graphics graphics)
public float GetHeight (float dpi)

FontFamily.cs
[MonoTODO ("We only support the default system language")]
public string GetName (int language)

Graphics.cs
public void AddMetafileComment (byte [] data)
public void DrawIcon (Icon icon, Rectangle targetRect)
public void DrawIcon (Icon icon, int x, int y)
public void DrawIconUnstretched (Icon icon, Rectangle targetRect)
public void EnumerateMetafile (Metafile metafile, Point [] destPoints, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, RectangleF destRect, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, PointF [] destPoints, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, Rectangle destRect, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, Point destPoint, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, PointF destPoint, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, PointF destPoint, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, Rectangle destRect, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, PointF [] destPoints, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, Point destPoint, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, Point [] destPoints, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, RectangleF destRect, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, PointF [] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, Point [] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback)
public void EnumerateMetafile (Metafile metafile, RectangleF destRect, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, Point destPoint, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, PointF destPoint, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, Point [] destPoints, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, PointF [] destPoints, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, Rectangle destRect, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, PointF [] destPoints, RectangleF srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, Point [] destPoints, Rectangle srcRect, GraphicsUnit srcUnit, EnumerateMetafileProc callback, IntPtr callbackData)
public void EnumerateMetafile (Metafile metafile, Point [] destPoints, Rectangle srcRect, GraphicsUnit unit, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, Rectangle destRect, Rectangle srcRect, GraphicsUnit unit, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, Point destPoint, Rectangle srcRect, GraphicsUnit unit, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, RectangleF destRect, RectangleF srcRect, GraphicsUnit unit, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, PointF [] destPoints, RectangleF srcRect, GraphicsUnit unit, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public void EnumerateMetafile (Metafile metafile, PointF destPoint, RectangleF srcRect, GraphicsUnit unit, EnumerateMetafileProc callback, IntPtr callbackData, ImageAttributes imageAttr)
public static Graphics FromHdc (IntPtr hdc, IntPtr hdevice)
public static Graphics FromHdcInternal (IntPtr hdc)
public static Graphics FromHwndInternal (IntPtr hwnd)
public static IntPtr GetHalftonePalette ()
public IntPtr GetHdc ()
public Region [] MeasureCharacterRanges (string text, Font font, RectangleF layoutRect, StringFormat stringFormat)
public void ReleaseHdcInternal (IntPtr hdc)

Icon.cs
public Icon (Type type, string resource)
private Icon (SerializationInfo info, StreamingContext context)
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
public static Icon FromHandle (IntPtr handle)

Image.cs
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
public static Bitmap FromHbitmap(IntPtr hbitmap)
public static Bitmap FromHbitmap(IntPtr hbitmap, IntPtr hpalette)
public PropertyItem GetPropertyItem(int propid)
public void SetPropertyItem(PropertyItem propitem)
public int[] PropertyIdList
public PropertyItem[] PropertyItems 

ImageFormatConverter.cs
public override StandardValuesCollection GetStandardValues (ITypeDescriptorContext context )

Region.cs
public Region (RegionData region_data)

SystemIcons.cs-namespace System.Drawing
public sealed class SystemIcons
public static Icon WinLogo { get { return LoadIcon();} }
private static Icon LoadIcon ()

ToolboxBitmapAttribute.cs
public ToolboxBitmapAttribute (string imageFile)
public ToolboxBitmapAttribute (Type t)
public ToolboxBitmapAttribute (Type t, string name)
public Image GetImage (Type type, string imgName, bool large)
public static Image GetImageFromResource (Type t, string imageName, bool large)


System.Drawing.Drawing2D

GraphicsPath.cs
public void AddString (string s, FontFamily family, int style,  float emSize,  Point origin,   StringFormat format)
public void AddString (string s,  FontFamily family,  int style,  float emSize,  PointF origin,   StringFormat format)
public void AddString (string s, FontFamily family, int style, float emSize,  Rectangle layoutRect, StringFormat format)
public void AddString (string s, FontFamily family, int style, float emSize,  RectangleF layoutRect,   StringFormat format)
public RectangleF GetBounds (Matrix matrix, Pen pen)
public bool IsOutlineVisible (int x, int y, Pen pen, Graphics graphics)
public bool IsOutlineVisible (float x, float y, Pen pen, Graphics graphics)
public bool IsVisible (int x, int y, Graphics graphics)
public bool IsVisible (float x, float y, Graphics graphics)
public void Warp (PointF[] destPoints, RectangleF srcRect, Matrix matrix,  WarpMode warpMode, float flatness)
public void Widen (Pen pen, Matrix matrix, float flatness)

GraphicsPathIterator.cs
public int NextMarker (GraphicsPath path)
public int NextMarker (out int startIndex, out int endIndex)
public int NextPathType (out byte pathType, out int startIndex, out int endIndex)
public int NextSubpath (GraphicsPath path, out bool isClosed)
public int NextSubpath (out int startIndex, out int endIndex, out bool isClosed)


System.Drawing.Imaging

ImageCodecInfo.cs
public byte[][] SignaturePatterns 

Metafile.cs class
MetafileHeader.cs class
WmfPlaceableFileHeader.cs class
--=__PartE4C55E5B.0__=
Content-Type: application/octet-stream; name="libgdiplus_notimplemented_bits"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="libgdiplus_notimplemented_bits"

bGliZ2RpcGx1cyBOb3RJbXBsZW1lbnRlZCBzdHViczoNCg0KV2UgbmVlZCB0byBzZWUsIGlmIHdl
IGNhbiBpbXBsZW1lbnQgdG9kbydzIGZyb20gdGhpcyBsaXN0IGZvciAxLjIgcmVsZWFzZSBnaXZl
biB0aGUgdGltZQ0KY29uc3RyYWludHMgYW5kIGNhaXJvIGxpbWl0YXRpb25zLiBEdXJpbmcgdGhp
cyB3ZWVrLCBSYXZpIHdpbGwgbG9vayBhdA0KZmVhc2libGUgaW1wbGVtZW50YXRpb25zIGZyb20g
Y2Fpcm8gcG9pbnQgb2Ygdmlldy4NCg0KDQphZGp1c3RhYmxlYXJyb3djYXAuYzoxMDc6CXN0YXR1
cyA9IE5vdEltcGxlbWVudGVkOyAvKiBvay0gY2Fpcm8gbGltaXRhdGlvbiAqLw0KDQpiaXRtYXAu
YzoyMDE6CXJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogdG9kby0gc3VwcG9ydCBtb3JlIGltYWdl
IGZvcm1hdHMgKi8NCmJpdG1hcC5jOjI3NToJcmV0dXJuKE5vdEltcGxlbWVudGVkKTsgLyogdG9k
by0gR2RpcENyZWF0ZUJpdG1hcEZyb21IQklUTUFQICovDQpiaXRtYXAuYzoyODE6CXJldHVybihO
b3RJbXBsZW1lbnRlZCk7IC8qIHRvZG8tIEdkaXBDcmVhdGVIQklUTUFQRnJvbUJpdG1hcCAqLw0K
Yml0bWFwLmM6Mjg3OglyZXR1cm4oTm90SW1wbGVtZW50ZWQpOyAvKiB0b2RvLSBHZGlwQ3JlYXRl
Qml0bWFwRnJvbUhJQ09OICovDQpiaXRtYXAuYzoyOTM6CXJldHVybihOb3RJbXBsZW1lbnRlZCk7
IC8qIHRvZG8tIEdkaXBDcmVhdGVISUNPTkZyb21CaXRtYXAgKi8NCmJpdG1hcC5jOjI5OToJcmV0
dXJuKE5vdEltcGxlbWVudGVkKTsgLyogdG9kby0gR2RpcENyZWF0ZUJpdG1hcEZyb21SZXNvdXJj
ZSAqLw0KYml0bWFwLmM6Mzc3OglyZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIG9rICovDQpiaXRt
YXAuYzo2NzE6CXJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogb2sgKi8NCmJpdG1hcC5jOjY4MToJ
cmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiBvayAqLw0KYml0bWFwLmM6ODU4OglyZXR1cm4gTm90
SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIHN1cHBvcnQgbW9yZSBmb3JtYXRzICovDQpiaXRtYXAuYzo4
OTg6CXJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogdG9kby0gc3VwcG9ydCBtb3JlIGZvcm1hdHMg
Ki8NCg0KYm1wY29kZWMuYzoyMjE6ICAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiBvay0gdW5z
dXBwb3J0ZWQgZm9ybWF0ICovDQpibXBjb2RlYy5jOjI2MzogICByZXR1cm4gTm90SW1wbGVtZW50
ZWQ7IC8qIG9rLSB1bnN1cHBvcnRlZCBmb3JtYXQgKi8NCg0KY3VzdG9tbGluZWNhcC5jOjExMDog
IHN0YXR1cyA9IE5vdEltcGxlbWVudGVkOyAvKiBvay0gZGVwZW5kcyBvbiBjYWlybyAqLw0KDQpn
aWZjb2RlYy5jOjM4NToJICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIG9rICovDQpnaWZjb2Rl
Yy5jOjM5MToJICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIG9rICovDQpnaWZjb2RlYy5jOjM5
OToJICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIG9rICovDQpnaWZjb2RlYy5jOjQwODoJICBy
ZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIG9rICovDQoNCmdyYXBoaWNzLmM6MjczOgkgIHJldHVy
biBOb3RJbXBsZW1lbnRlZDsgLyogb2sgKi8NCmdyYXBoaWNzLmM6MzAwOgkgIHJldHVybiBOb3RJ
bXBsZW1lbnRlZDsgLyogb2sgKi8NCmdyYXBoaWNzLmM6ODU0OiAgIHJldHVybiBOb3RJbXBsZW1l
bnRlZDsgLyogb2sgKi8NCmdyYXBoaWNzLmM6MjUyNTogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsg
LyogdG9kby0gR2RpcEJlZ2luQ29udGFpbmVyICovDQpncmFwaGljcy5jOjI1MzE6ICByZXR1cm4g
Tm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBCZWdpbkNvbnRhaW5lcjIgKi8NCmdyYXBoaWNz
LmM6MjUzNzogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogdG9kby0gR2RpcEJlZ2luQ29udGFp
bmVySSAqLw0KZ3JhcGhpY3MuYzoyNTQzOiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2Rv
LSBHZGlwRW5kQ29udGFpbmVyICovDQpncmFwaGljcy5jOjI2MDM6ICByZXR1cm4gTm90SW1wbGVt
ZW50ZWQ7IC8qIHRvZG8tIEdkaXBTZXRDbGlwUGF0aCAqLw0KZ3JhcGhpY3MuYzoyNjIxOiAgcmV0
dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlwU2V0Q2xpcEhyZ24gKi8NCmdyYXBoaWNz
LmM6MjgyNDogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogdG9kby0gR2RpcFNldENvbXBvc2l0
aW5nTW9kZSAqLw0KZ3JhcGhpY3MuYzoyODMwOiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0
b2RvLSBHZGlwR2V0Q29tcG9zaXRpbmdNb2RlICovDQpncmFwaGljcy5jOjI4MzY6ICByZXR1cm4g
Tm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBTZXRDb21wb3NpdGluZ1F1YWxpdHkgKi8NCmdy
YXBoaWNzLmM6Mjg0MjogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogdG9kby0gR2RpcEdldENv
bXBvc2l0aW5nUXVhbGl0eSAqLw0KZ3JhcGhpY3MuYzoyODQ4OiAgcmV0dXJuIE5vdEltcGxlbWVu
dGVkOyAvKiB0b2RvLSBHZGlwR2V0TmVhcmVzdENvbG9yICovDQpncmFwaGljcy5jOjI4OTU6ICBy
ZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBUcmFuc2Zvcm1Qb2ludHMgKi8NCmdy
YXBoaWNzLmM6MjkwMTogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogdG9kby0gR2RpcFRyYW5z
Zm9ybVBvaW50c0kgKi8NCg0KaGF0Y2hicnVzaC5jOjIyMzc6ICAgcmV0dXJuIE5vdEltcGxlbWVu
dGVkOyAvKiBvayAqLw0KDQppbWFnZWF0dHJpYnV0ZXMuYzoyMjg6CXJldHVybiBOb3RJbXBsZW1l
bnRlZDsgLyogdG9kbyAtIEdkaXBTZXRJbWFnZUF0dHJpYnV0ZXNUaHJlc2hvbGQgKi8NCmltYWdl
YXR0cmlidXRlcy5jOjI5NzoJcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvIC0gR2RpcFNl
dEltYWdlQXR0cmlidXRlc091dHB1dENoYW5uZWxDb2xvclByb2ZpbGUgKi8NCmltYWdlYXR0cmli
dXRlcy5jOjM1MToJcmV0dXJuIE5vdEltcGxlbWVudGVkOyAgLyogdG9kbyAtIEdkaXBHZXRJbWFn
ZUF0dHJpYnV0ZXNBZGp1c3RlZFBhbGV0dGUgKi8NCmltYWdlYXR0cmlidXRlcy5jOjM1OToJcmV0
dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvIC0gR2RpcFNldEltYWdlQXR0cmlidXRlc0NvbG9y
TWF0cml4ICovDQppbWFnZWF0dHJpYnV0ZXMuYzozNjU6CXJldHVybiBOb3RJbXBsZW1lbnRlZDsg
LyogdG9kbyAtIEdkaXBTZXRJbWFnZUF0dHJpYnV0ZXNPdXRwdXRDaGFubmVsICovDQoNCmltYWdl
LmM6MjUzOiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlwRHJhd0ltYWdlUG9p
bnRSZWN0ICovDQppbWFnZS5jOjQ0MjogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogdG9kby0g
R2RpcERyYXdJbWFnZVBvaW50c1JlY3QgKi8NCmltYWdlLmM6NDUzOiAgcmV0dXJuIE5vdEltcGxl
bWVudGVkOyAvKiB0b2RvLSBHZGlwRHJhd0ltYWdlUG9pbnRzUmVjdEkgKi8NCmltYWdlLmM6NDYy
OiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiBHZGlwTG9hZEltYWdlRnJvbVN0cmVhbS0gbm90
IGdvaW5nIHRvIGJlIHN1cHBvcnRlZCAqLw0KaW1hZ2UuYzo0Njg6ICByZXR1cm4gTm90SW1wbGVt
ZW50ZWQ7IC8qIEdkaXBTYXZlSW1hZ2VUb1N0cmVhbSAtIG5vdCBnb2luZyB0byBiZSBzdXBwb3J0
ZWQgKi8NCmltYWdlLmM6NTMzOiAgc3RhdHVzID0gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIHN1
cHBvcnQgZm9yIG1ldGFmaWxlcyBhbmQgaWNvbnMgKi8NCmltYWdlLmM6NjI3OiAgc3RhdHVzID0g
Tm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIHN1cHBvcnQgZm9yIG1ldGFmaWxlcyBhbmQgaWNvbnMg
Ki8NCmltYWdlLmM6ODI3OiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlwSW1h
Z2VTZWxlY3RBY3RpdmVGcmFtZSAqLw0KaW1hZ2UuYzoxMDA0OiByZXR1cm4gTm90SW1wbGVtZW50
ZWQ7IC8qIHRvZG8tIHN1cHBvcnQgZm9yIHJlbWFpbmluZyBmbGlwIHR5cGVzICovDQppbWFnZS5j
OjEwMTM6IHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogdG9kby0gR2RpcEdldEltYWdlUGFsZXR0
ZSAqLw0KaW1hZ2UuYzoxMDI1OiByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBH
ZXRJbWFnZVBhbGV0dGVTaXplICovDQppbWFnZS5jOjEwMzE6IHJldHVybiBOb3RJbXBsZW1lbnRl
ZDsgLyogdG9kby0gR2RpcEdldFByb3BlcnR5Q291bnQgKi8NCmltYWdlLmM6MTAzNzogcmV0dXJu
IE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlwR2V0UHJvcGVydHlJZExpc3QgKi8NCmltYWdl
LmM6MTA0MzogcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlwR2V0UHJvcGVydHlJ
dGVtU2l6ZSAqLw0KaW1hZ2UuYzoxMDQ5OiByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8t
IEdkaXBHZXRQcm9wZXJ0eUl0ZW0gKi8NCmltYWdlLmM6MTA1NTogcmV0dXJuIE5vdEltcGxlbWVu
dGVkOyAvKiB0b2RvLSBHZGlwR2V0UHJvcGVydHlTaXplICovDQppbWFnZS5jOjEwNjE6IHJldHVy
biBOb3RJbXBsZW1lbnRlZDsgLyogdG9kby0gR2RpcFJlbW92ZVByb3BlcnR5SXRlbSAqLw0KaW1h
Z2UuYzoxMDY3OiByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBTZXRQcm9wZXJ0
eUl0ZW0gKi8NCmltYWdlLmM6MTA4MTogcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiBHZGlwQ2xv
bmVJbWFnZSAtIGltYWdlTWV0YWZpbGUsIG5vdCBzdXBwb3J0ZWQgKi8NCmltYWdlLmM6MTI1ODog
c3RhdHVzID0gTm90SW1wbGVtZW50ZWQ7IC8qIG1ldGFmaWxlcyBhbmQgaWNvbnMgbm90IHN1cHBv
cnRlZCwgb2sgKi8NCmltYWdlLmM6MTMxNjogc3RhdHVzID0gTm90SW1wbGVtZW50ZWQ7IC8qIG1l
dGFmaWxlcyBhbmQgaWNvbnMgbm90IHN1cHBvcnRlZCwgb2sgKi8NCmltYWdlLmM6MTQ1MTogcmV0
dXJuKE5vdEltcGxlbWVudGVkKTsgLyogdG9kby0gR2RpcEdldEFsbFByb3BlcnR5SXRlbXMgKi8N
CmltYWdlLmM6MTQ2ODogcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlwR2V0RW5j
b2RlclBhcmFtZXRlckxpc3RTaXplICovDQppbWFnZS5jOjE0NzM6IHJldHVybiBOb3RJbXBsZW1l
bnRlZDsgLyogdG9kby0gR2RpcEdldEVuY29kZXJQYXJhbWV0ZXJMaXN0U2l6ZSAqLw0KaW1hZ2Uu
YzoxNDg4OiByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBHZXRFbmNvZGVyUGFy
YW1ldGVyTGlzdCAqLw0KaW1hZ2UuYzoxNDkzOiByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRv
ZG8tIEdkaXBHZXRFbmNvZGVyUGFyYW1ldGVyTGlzdCAqLw0KaW1hZ2UuYzoxNTAwOiByZXR1cm4g
Tm90SW1wbGVtZW50ZWQ7IC8qIG9rLCBub3QgcmVxdWlyZWQgKi8NCmltYWdlLmM6MTUzMDogcmV0
dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlwU2F2ZUFkZCAqLw0KaW1hZ2UuYzoxNTM2
OiByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBTYXZlQWRkSW1hZ2UgKi8NCg0K
anBlZ2NvZGVjLmM6NjUyOiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiBvayAqLw0KanBlZ2Nv
ZGVjLmM6NjU4OiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiBvayAqLw0KanBlZ2NvZGVjLmM6
NjY3OiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiBvayAqLw0KanBlZ2NvZGVjLmM6Njc1OiAg
cmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiBvayAqLw0KDQpsaW5lYXJncmFkaWVudGJydXNoLmM6
ICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBTZXRMaW5lR3JhZGllbnRTaWdt
YUJsZW5kICovDQoNCnBhdGhncmFkaWVudGJydXNoLmM6MjgyOiAgcmV0dXJuIE5vdEltcGxlbWVu
dGVkOyAvKiB0b2RvLSBHZGlwR2V0UGF0aEdyYWRpZW50UGF0aCAqLw0KcGF0aGdyYWRpZW50YnJ1
c2guYzoyOTE6ICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBTZXRQYXRoR3Jh
ZGllbnRQYXRoICovDQpwYXRoZ3JhZGllbnRicnVzaC5jOjQwMjogIHJldHVybiBOb3RJbXBsZW1l
bnRlZDsgLyogdG9kby0gR2RpcFNldFBhdGhHcmFkaWVudEdhbW1hQ29ycmVjdGlvbiAqLw0KcGF0
aGdyYWRpZW50YnJ1c2guYzo0MDg6ICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdk
aXBHZXRQYXRoR3JhZGllbnRHYW1tYUNvcnJlY3Rpb24gKi8NCnBhdGhncmFkaWVudGJydXNoLmM6
NDE0OiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlwR2V0UGF0aEdyYWRpZW50
QmxlbmRDb3VudCAqLw0KcGF0aGdyYWRpZW50YnJ1c2guYzo0MjA6ICByZXR1cm4gTm90SW1wbGVt
ZW50ZWQ7IC8qIHRvZG8tIEdkaXBHZXRQYXRoR3JhZGllbnRCbGVuZCAqLw0KcGF0aGdyYWRpZW50
YnJ1c2guYzo0MjY6ICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBTZXRQYXRo
R3JhZGllbnRCbGVuZCAqLw0KcGF0aGdyYWRpZW50YnJ1c2guYzo0MzI6ICByZXR1cm4gTm90SW1w
bGVtZW50ZWQ7IC8qdG9kby0gR2RpcEdldFBhdGhHcmFkaWVudFByZXNldEJsZW5kQ291bnQgKi8N
CnBhdGhncmFkaWVudGJydXNoLmM6NDM4OiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2Rv
LSBHZGlwR2V0UGF0aEdyYWRpZW50UHJlc2V0QmxlbmQgKi8NCnBhdGhncmFkaWVudGJydXNoLmM6
NDQ0OiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlwU2V0UGF0aEdyYWRpZW50
UHJlc2V0QmxlbmQgKi8NCnBhdGhncmFkaWVudGJydXNoLmM6NDUwOiAgcmV0dXJuIE5vdEltcGxl
bWVudGVkOyAvKiB0b2RvLSBHZGlwU2V0UGF0aEdyYWRpZW50U2lnbWFCbGVuZCAqLw0KcGF0aGdy
YWRpZW50YnJ1c2guYzo0NTY6ICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBT
ZXRQYXRoR3JhZGllbnRMaW5lYXJCbGVuZCAqLw0KcGF0aGdyYWRpZW50YnJ1c2guYzo1ODg6ICBy
ZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBHZXRQYXRoR3JhZGllbnRGb2N1c1Nj
YWxlcyAqLw0KcGF0aGdyYWRpZW50YnJ1c2guYzo1OTQ6ICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7
IC8qIHRvZG8tIEdkaXBTZXRQYXRoR3JhZGllbnRGb2N1c1NjYWxlcyAqLw0KDQpwZW4uYzo4Mzg6
ICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIG9rIC0gY2Fpcm8gbGltaXRhdGlvbiAqLw0KcGVu
LmM6ODQ0OiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiBvayAtIGNhaXJvIGxpbWl0YXRpb24g
Ki8NCnBlbi5jOjg1MDogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogb2sgLSBjYWlybyBsaW1p
dGF0aW9uICovDQpwZW4uYzo4NTY6ICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIG9rIC0gY2Fp
cm8gbGltaXRhdGlvbiAqLw0KcGVuLmM6ODYyOiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiBv
ayAtIGNhaXJvIGxpbWl0YXRpb24gKi8NCnBlbi5jOjg2ODogIHJldHVybiBOb3RJbXBsZW1lbnRl
ZDsgLyogb2sgLSBjYWlybyBsaW1pdGF0aW9uICovDQpwZW4uYzo4NzQ6ICByZXR1cm4gTm90SW1w
bGVtZW50ZWQ7IC8qIG9rIC0gY2Fpcm8gbGltaXRhdGlvbiAqLw0KcGVuLmM6ODgwOiAgcmV0dXJu
IE5vdEltcGxlbWVudGVkOyAvKiBvayAtIGNhaXJvIGxpbWl0YXRpb24gKi8NCg0KcG5nY29kZWMu
Yzo0NTg6CSByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIG9rICovDQpwbmdjb2RlYy5jOjQ2NzoJ
IHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogb2sgKi8NCnBuZ2NvZGVjLmM6NDc0OgkgcmV0dXJu
IE5vdEltcGxlbWVudGVkOyAvKiBvayAqLw0KcG5nY29kZWMuYzo0ODM6CSByZXR1cm4gTm90SW1w
bGVtZW50ZWQ7IC8qIG9rICovDQoNCnJlZ2lvbi5jOjEyOTogIHJldHVybiBOb3RJbXBsZW1lbnRl
ZDsgLyogdG9kby0gc3VwcG9ydCBmb3IgY3JlYXRpbmcgcmVnaW9uIGZyb20gcGF0aCAqLw0KcmVn
aW9uLmM6ODU5OiAgcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlwQ29tYmluZVJl
Z2lvblJlY3QgLXJlcGxhY2UgbW9kZSAqLw0KcmVnaW9uLmM6ODg0OiAgcmV0dXJuIE5vdEltcGxl
bWVudGVkOyAvKiB0b2RvLSBHZGlwQ29tYmluZVJlZ2lvblBhdGggKi8NCnJlZ2lvbi5jOjkxMjog
IHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogdG9kby0gR2RpcENvbWJpbmVSZWdpb25SZWdpb24t
IHJlcGxhY2UgbW9kZSAqLw0KcmVnaW9uLmM6MTEzMjogcmV0dXJuIE5vdEltcGxlbWVudGVkOyAv
KiB0b2RvLSBHZGlwVHJhbnNmb3JtUmVnaW9uICovDQpyZWdpb24uYzoxMTM4OiByZXR1cm4gTm90
SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBDcmVhdGVSZWdpb25QYXRoICovDQpyZWdpb24uYzox
MTQ1OiByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8qIHRvZG8tIEdkaXBHZXRSZWdpb25EYXRhU2l6
ZSAqLw0KcmVnaW9uLmM6MTE1MjogcmV0dXJuIE5vdEltcGxlbWVudGVkOyAvKiB0b2RvLSBHZGlw
R2V0UmVnaW9uRGF0YSAqLw0KDQp0ZXh0dXJlYnJ1c2guYzozOTQ6ICByZXR1cm4gTm90SW1wbGVt
ZW50ZWQ7IC8qIG9rICovDQp0ZXh0dXJlYnJ1c2guYzo0MDU6ICByZXR1cm4gTm90SW1wbGVtZW50
ZWQ7IC8qIG9rICovDQp0ZXh0dXJlYnJ1c2guYzo1Nzk6ICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7
IC8qIG9rICovDQp0ZXh0dXJlYnJ1c2guYzo2MzU6ICByZXR1cm4gTm90SW1wbGVtZW50ZWQ7IC8q
IG9rICovDQoNCnRpZmZjb2RlYy5jOjM5MTogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogb2sg
Ki8NCnRpZmZjb2RlYy5jOjQwMzogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogb2sgKi8NCnRp
ZmZjb2RlYy5jOjQwOTogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogb2sgKi8NCnRpZmZjb2Rl
Yy5jOjQyMTogIHJldHVybiBOb3RJbXBsZW1lbnRlZDsgLyogb2sgKi8NCg==

--=__PartE4C55E5B.0__=
Content-Type: text/plain; name="Testing-ADO.NET.txt"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="Testing-ADO.NET.txt"

Testing ADO.NET Providers:

1.  We need to clearly abstract the connection, the table creation, sql commands( if required!), datatypes per database so that testing to all the providers can be done using a single codebase from there on.

 For ex. if we are going to write a test for
                 OdbcCommand.ExecuteScalar, the table & values required to be
                 populated, should be written in a way independant of database.

2. The basic functionality with dataadpater, dataset,datatable, datacolumn, datarow should still remain in a single code, and based on the provider we can connect to the database to test it.

For ex. If we have only mysql database installed on our pc, we
                should be allowed to run a test like this.

                  run-test mysql

3.Since we cannot connect from nunit to a database , keep these as separate tests.
4. But we would still like to achieve nunit kind of functionality, that is verify results (may be across databases or with a static set)This will allow us to run the tests automated.


Or set up the necessary data pool once in the system and forget about running the set up script, unless any change in the setup script. And for every test use only the available tables & fields. If any new kind of setup is required, ofcourse, the setup script can be changed.May be we can check if the tables exists, and the rows that we are looking exists before we run , else create them.

5. There is a document on provider-factory using config files (at the www.mono-project.com/contributing/provider-factory.html) . This can be be the approach taht we will take.
6. With regard to testing ms sql , we should not treat it very differently. (even though we have the system.data.sqlclient classes)
7. We should get the basic stuff working, later on we can worry about the organization and where to check in the testcases the framework etc.
(because the code itself is distributed , it may not work out very cleanly.)


--=__PartE4C55E5B.0__=
Content-Type: text/plain; name="ADO_NET.txt"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="ADO_NET.txt"

ADO.NET:

1. Regarding the .NET 1.1 tasks:

 These fall into 3 major categories
1. DataView, DataView Manager,RowView classes - This is being done by Punit (NOSIP student). Boris also wants to come forward to help in these classes. So we may not have too much of work to do here, except to review and guide them.
2. Some which we didnt know how to implement them - These will still remain in the same state unless we can find solutions for them.
We felt that we can take this towards the end and revist if there is something that we now understand better.
3. Event Handling - Being done by Ameya (NOSIP student) .Since this is a big work and incase he doesnt finish it, we can give it to the next project trainee who joins us.

2.Bugs
Since there are bugs coming in, we will work on them as they come. 
Currently our estimate is 5 days in a month.

3.TestFramework
(Sudha will be doing this. ) Details in attached document - 
Estimate : 4 weeks , to get the basic infrastructure up and also test with 3 databases oracle,ms sql and my sql.

4. .NET 2.0 tasks
Here there are 4 new namespaces, system.data.sql, system.data.providerbase, system.data.design, system.data.xml
And in total there are 1012 missing methods/classes and 244 errors. This is a very rough estimate, since if the classes /namespaces are not present the tool counts it as 1 and not for each method.

We discussed the approach of going class by class or method by method( from the class status page), but this may not be very feasible since we will have the overall perspective of what needs to change where.. 

So we decided to do it the following way
There are the following important features added to Whidbey for ADO.NET 2.0
1. Asynchronous data access
2. batch updates
3.dataset remoting
4. paging 
5. multiple active result set
6. native xml support.
7. bulk copy support.

These would encompass many of the new methods/classes and also will touch lots of the existing code. Since we will have to change the existing code, it may not be very feasible for us to give effort estimates for the new features alone. 

Once we are done with these big features, we will start implementing the rest of the methods (ie methods /classes that are new in .NET 2.0 but not belonging to the above features)

We thought we will study the above features in the next 10 days and come up with a rough estimate of what is required and based on it we can follow on.


--=__PartE4C55E5B.0__=--