TODO 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. System.Data TODO List
  2. =====================
  3. Update this file as needed...
  4. * To get ExecuteReader() in a SqlCommand object to return
  5. a SqlDataReader object which can Read() data and get a String or
  6. Int32 from the database. Other types can be done later.
  7. A class (SqlDataReader) that implements IDataReader/IDataRecord
  8. only has one row in memory at a time.
  9. In order to do this, we need to compile and edit these classes:
  10. SqlDataReader DataTable DataRowCollection DataRow
  11. DataColumnCollection DataColumn
  12. DataConstraintCollection DataConstraint
  13. DataRelationCollection DataRelation
  14. DataTableCollection
  15. and dependencies...
  16. System.Data.Common classes that need to be implemented:
  17. - implement DataAdapter.cs
  18. - implement DataColumnMapping.cs
  19. - implement DataColumnMappingCollection.cs
  20. - implement DataTableMapping.cs
  21. - implement DataTableMappingCollection.cs
  22. - implement DbDataAdapter.cs
  23. - implement DbDataPermission.cs
  24. - implement DbDataPermissionAttribute.cs
  25. - implement RowUpdatedEventArgs.cs
  26. - implement RowUpdatingEventArgs.cs
  27. The following classes implement InternalDataCollectionBase:
  28. * DataRowCollection
  29. * DataColumnCollection
  30. * DataTableCollection
  31. * DataRelationCollection - an abstract class used by DataTable and DataSet
  32. * ConstraintCollection
  33. DataTableRelationCollection is an internal class that implements DataRelationCollection
  34. and is used by DataTable for parent/child relations. Don't know if it will/will not
  35. be used by DataSet.
  36. Other classes, structs, etc. that are missing:
  37. DataRowView
  38. DataSysDescriptionAttribute
  39. DataViewManager
  40. DataViewSetting
  41. FillErrorEventArgs
  42. MergeFailedEventArgs
  43. TypedDataSetGenerator
  44. The additional System.Data.SqlTypes classes need to be implemented:
  45. SqlByte
  46. SqlDataTime
  47. SqlDecimal
  48. SqlDouble
  49. SqlGuid
  50. SqlInt16
  51. SqlInt64
  52. SqlMoney
  53. SqlSingle
  54. * provide a standard scheme for storing
  55. connection string data
  56. * allow Execute methods in SqlCommand to
  57. call a stored procedure
  58. * Create a script for testing System.Data:
  59. - calls script to create
  60. a test database named monotestdb
  61. - set up nunit for testing System.Data
  62. - set up System.Data.Config or some other
  63. file to hold connection strings and other
  64. configuration settings for the testing System.Data
  65. - any other stuff needed...
  66. * get SqlParameter/SqlParameterCollection
  67. working so you can:
  68. - for queries/commands that have parameters:
  69. o input
  70. o output
  71. o return
  72. o input/output
  73. - call a stored procedure with parameters
  74. * be able to return a XmlReader from
  75. using method ExecuteXmlReader of
  76. a SqlCommand object
  77. * get SqlDataAdapter/DataSet working
  78. * Create Library for PInvoking into libgda
  79. This will be used by System.Data.OleDb classes
  80. * Begin System.Data.OleDb classes:
  81. - OleDbConnection
  82. - OleDbCommand
  83. - OleDbTransaction
  84. * Do more of the OleDb classes to
  85. retrieve a OleDbDataReader object
  86. from a query (SELECT FROM):
  87. - OleDbDataReader
  88. - others...
  89. * Do more OleDb classes for DataSet:
  90. - OleDbDataAdapter
  91. - others...
  92. * Security Audit of System.Data
  93. * Create a MySQL ADO.NET Provider
  94. * Create an Oracle ADO.NET Provider
  95. * Create an Interbase ADO.NET Provider
  96. * Create a Sybase ADO.NET Provider (TDS?)
  97. * Create an IBM UDB DB2 ADO.NET Provider
  98. * Create other ADO.NET providers...
  99. Integration
  100. ===========
  101. * get System.Data to work with ASP.NET's
  102. System.Web.UI.WebControls.DataGrid
  103. * get System.Data to work with GUI
  104. System.Windows.Forms.DataGrid
  105. Provider Factoros (target: mono 1.2 PROFILE=net_2_0)
  106. ====================================================
  107. * Create Configuration Class
  108. DbProviderFactoriesConfigurationHandler - done
  109. DbProviderConfigurationHandler - not much documents/use cases.
  110. ConnectionStringsSection - done
  111. ConnectionStringSettingsCollection - done
  112. ConnectionStringSettings - done
  113. FIXME: Currently the test case for ConnectionStringsSection
  114. fails as new configuration API is not yet implemented in
  115. System.dll.
  116. A temporary handler ConnectionStringSectionHandler is
  117. available in System.Data.dll.
  118. * Create Base class
  119. DbProviderFactories - done
  120. DbProviderFactory - done
  121. DbConnectionFactory
  122. Add nunit test cases for these. - done
  123. * Create Factory classes & methods for Providers.
  124. Factory methods for SqlClient - done.
  125. Factory methods for Odbc provider - done.
  126. Factory methods for OleDb provider
  127. * DbConnectionStringBuilder - done
  128. Asynchronous Command Execution ((target: mono 1.2 PROFILE=net_2_0)
  129. ==================================================================
  130. * Implement the following Asynchronous Execution Commands for SqlClient
  131. - BeginExecuteNonQuery (2 overrides) - done
  132. - BeginExecuteReader (3 overrides) - done
  133. - BegineExecuteXmlReader - done
  134. - Implement corresponding asynchronous methods in Tds driver - done
  135. * Pending
  136. - Provide Stand Alone test cases
  137. - Check whether the result column is xml while doing
  138. EndExecuteXmlReader.
  139. Test Cases
  140. ==========
  141. * Provide a single consistent test fixture for all data providers
  142. available in Test/ProviderTests
  143. * NUnit-ize Provider Tests
  144. * Make these tests to be able to run by command
  145. make run-test PROVIDER=mysql # to run tests marked for mysql & SQL92.
  146. * Provide SQL92 complaint scripts for shema & data, to be loaded
  147. irrelevant of data providers.