Object = r[ColNum] | String = r[ColNum].ToString | String = r[ColName].ToString | |
DataReader | 15 | 15 | 14 |
Typed DataSet | 26 | 26 | 26 |
DataSet | 35 | -- | -- |
7.22.2002
.NET My Services
The original list of web services that MS was going to publish is below. Now at microsoft.com/myservices, you don't quite get the feeling that all these services are still on the list. The main one they talk about of course is Passport..NET Profile | Name, nickname, special dates, picture, address. |
.NET Contacts | Electronic relationships/address book. |
.NET Locations | Electronic and geographical location and rendezvous. |
.NET Alerts | Alert subscription, management, and routing. |
.NET Presence | Online, offline, busy, free, which device(s) to send alerts to. |
.NET Inbox | Inbox items like e-mail and voice mail, including existing mail systems. |
.NET Calendar | Time and task management. |
.NET Documents | Raw document storage. |
.NET ApplicationSettings | Application settings. |
.NET FavoriteWebSites | Favorite URLs and other Web identifiers. |
.NET Wallet | Receipts, payment instruments, coupons, and other transaction records. |
.NET Devices | Device settings, capabilities. |
.NET services | Services provided for an identity. |
.NET Lists | General purpose lists. |
.NET Categories | A way to group lists. |
Stole these from Kral's blog. Adding your component help into the VS.NET help system.
Extending .NET Help
Download the tool
Extending .NET Help
Download the tool
7.15.2002
Remoting - Private Object per Caller
Remoting server object with "factory" pattern.The only two settings in WellKnownObjectMode enum are SingleCall (every incoming message gets a new instance) and Singleton, (all incoming messages get the same instance). Neither of these are the same pattern as a standard remotable COM object, where each unique client caller instantiates and keeps a unique remote object.
To simulate this, you can implement a factory pattern. A class function (sometimes static) that creates new instances of the remotable object and returns their interface.
(See sample code in link).
public class CorporateAccountantExamFactory :
MarshalByRefObject, IAccountantExamFactory
{
public IAccountantTest CreateAccountTestInstance()
{
return new CorporateAccountantTest();
}
}
}
TcpServerChannel chl =
new TcpServerChannel(9988);
ChannelServices.RegisterChannel(chl);
RemotingConfiguration.
RegisterWellKnownServiceType(
typeof(CorporateAccountantExamFactory), // Name
"IExamFactory", // What the outside world calls it
WellKnownObjectMode.SingleCall); // How to contact
7.01.2002
Why my Typed Dataset Wasn't Working
xxxAdapter::Fill( ds, "TABLENAME" ); // need 2nd param !!!Argh! I thought the IDE was supposed to make using typed datasets so easy! Despite the fact that I was forcing them into a console app, I should have picked up on this earlier.
The key to filling up a typed dataset is the 2nd parameter to xxxAdapter::Fill! If you don't specify a table name, the data from the select command will be put into a new table that the runtime creates -- the data will NOT be in the "type-safe" table that the typed dataset has created for you.
Details: In the typed dataset generated code, there's an InitClass method that calls Tables.Add( tableXXX ). This creates an empty table in the dataset that should eventually get populated with the data. The 2nd parameter to Fill must match the name of the table already created by the typed dataset code. This is usually the name of the table you pointed to when creating the typed dataset. The embedded DataTable derived class in the dataset code passes this argument to the baseclass upon construction.
Cool Attributes
Came across these in the Typed Dataset generated code. May have use for them sometime in the future.- System.Diagnostics.DebuggerStepThrough - tells source code debuggers not to step into this function. (note: user can put breakpoint in this code)
- System.ComponentModel.Browsable - describes whether to make the property or event visible on the property window