Application program interface for network software platform
An application program interface (API) provides a set of functions, including a set of base classes and types that are used in substantially all applications accessing the API, for application developers who build Web applications on Microsoft Corporation's .NET™ platform.
1. A computer-implemented method having instructions executable by a processor, comprising:
receiving one or more application program interface (API) calls from one or more remote devices over a network to an application program interface (API), wherein the API includes a set of base classes and types that are used in substantially all applications executing on the one or more remote devices, wherein the set of base classes and types comprises:
an AsyncCallback delegate supplied to an application, wherein the AsyncCallback delegate references a callback method to be called when a corresponding asynchronous operation is completed; and
an IAsyncResult interface that enables a determination of a status of an asynchronous operation, wherein the IAsyncResult interface includes:
an AsyncState property that returns an object that was provided as a last parameter as part of a Begin call corresponding to the asynchronous operation;
an AsyncWaitHandle property that returns a WaitHandle that can be used to allow the application to wait for a call to be completed without needing to poll;
a CompletedSynchronously property that is set to true if the Begin call corresponding to the asynchronous operation completed synchronously; and
an IsCompleted property that is set to true after processing if the asynchronous operation is complete; and
performing a function requested in each of the one or more calls.
2. A method as recited in claim 1 , wherein the application program interface further comprises a collections namespace that includes a plurality of classes and interfaces for in-memory data storage and manipulation.
3. A method as recited in claim 1 , wherein the application program interface further comprises a net namespace that includes a plurality of classes that enables use of Internet resources without details of one or more protocols used to access the Internet resources.
4. A software architecture for a distributed computing system, comprising:
a memory;
a processor coupled to the memory;
an application executable by the processor to receive one or more application program interface (API) calls from one or more remote devices over a network to an application program interface (API), wherein the API includes a set of base classes and types that are used in substantially all applications executing on the one or more remote devices, wherein the set of base classes and types comprises:
an AsyncCallback delegate supplied to an application executed on a remote device, wherein the AsyncCallback delegate references a callback method to be called when a corresponding asynchronous operation is completed; and
an IAsyncResult interface that enables a determination of a status of an asynchronous operation, wherein the IAsyncResult interface includes:
an AsyncState property that returns an object that was provided as a last parameter as part of a Begin call corresponding to the asynchronous operation;
an AsyncWaitHandle property that returns a WaitHandle that can be used to allow the application to wait for a call to be completed without needing to poll;
a CompletedSynchronously property that is set to true if the Begin call corresponding to the asynchronous operation completed synchronously; and
an IsCompleted property that is set to true after processing if the asynchronous operation is complete; and
the application configured to perform a function requested in each of the one or more calls.
5. A software architecture as recited in claim 4 , wherein the API further comprises a collections namespace that includes a plurality of classes and interfaces for in-memory data storage and manipulation.
6. A software architecture as recited in claim 4 , wherein the API further comprises a net namespace that includes a plurality of classes that enables use of Internet resources without details of one or more protocols used to access the Internet resources.
7. A computer-readable storage media containing instructions for an application in a software architecture in a distributed computing system, the instructions being executable by a computer to perform actions comprising:
receiving one or more application program interface (API) calls from one or more remote devices over a network to an application program interface (API), wherein the API includes a set of base classes and types that are used in substantially all applications executing on the one or more remote devices, wherein the set of base classes and types comprises:
an AsyncCallback delegate supplied to an application executing on a remote device, wherein the AsyncCallback delegate references a callback method to be called when a corresponding asynchronous operation is completed; and
an IAsyncResult interface that enables a determination of a status of an asynchronous operation, wherein the IAsyncResult interface includes:
an AsyncState property that returns an object that was provided as a last parameter as part of a Begin call corresponding to the asynchronous operation;
an AsyncWaitHandle property that returns a WaitHandle that can be used to allow the application to wait for a call to be completed without needing to poll;
a CompletedSynchronously property that is set to true if the Begin call corresponding to the asynchronous operation completed synchronously; and
an IsCompleted property that is set to true after processing if the asynchronous operation is complete; and performing a function requested in each of the one or more calls.
8. A computer readable storage media as recited in claim 7 , wherein the API further comprises a collections namespace that includes a plurality of classes and interfaces for in-memory data storage and manipulation.
9. A computer readable storage media as recited in claim 7 , wherein the API further comprises a net namespace that includes a plurality of classes that enables use of Internet resources without details of one or more protocols used to access the Internet resources.