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.


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.






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

Attachment: libgdiplus_notimplemented_bits
Description: Binary data

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.)

Reply via email to