IP Library Granted Patent US 7,017,162
Granted Patent B2
US 7,017,162 · App. 09/902,811 · Granted Mar 21, 2006

Application program interface for network software platform

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,017,162
App. No.
09/902,811
Filed
Jul 10, 2001
Granted
Mar 21, 2006
Kind
B2
Examiner
LAO, SUE X
Art Unit
2194
USPC
719/318
Abstract

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.

Claims (31)

1. A computer implemented software architecture for a distributed computing system comprising:

an application configured to handle requests submitted by applications executing on remote devices over a network; and

an application program interface to present functions used by the applications to access network and computing resources of the distributed computing system, wherein the application program interface comprises a set of base classes and types that are used in substantially all applications executing on the remote devices submitting requests, 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 determination of the status of an asynchronous operation, wherein the IAsyncResult interface includes:

an AsyncState property that returns the object that was provided as the 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 of the asynchronous operation is completed.

2. A software architecture as recited in claim 1 , wherein the set of types support an event model including an event delegate that connects an event with a handler of the event, the set of base classes and types further comprising:

one or more classes that hold event data; and

one or more delegates that identify a method to provide a response to an event.

3. A software architecture 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.

4. A software architecture as recited in claim 3 , wherein the collections namespace includes, as at least part of the plurality of types:

a first set of types including commonly used collection classes;

a second set of types including interfaces to define a formal contract between developers creating new collections and developers consuming collections; and

a third set of types that support creating strongly typed collections.

5. A software architecture as recited in claim 1 , wherein the application program interface further comprises a globalization namespace that includes a plurality of classes that define culture-related information, wherein the plurality of classes include a first set of types representing information about a user's culture and a second set of types representing information about a user's region.

6. A software architecture 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 network resources without details of one or more protocols used to access the network resources.

7. A software architecture as recited in claim 1 , wherein the application program interface further comprises a security namespace that includes a plurality of classes and interfaces that make available an underlying structure of a security system including one or more cryptographic services, code access security and role based security infrastructure.

8. A software architecture as recited in claim 1 , wherein the application program interface further comprises a service process namespace that includes a plurality of classes that allow installation and running of services.

9. A software architecture as recited in claim 1 , wherein the application program interface further comprises a serialization namespace that includes a plurality of classes that enable serializing and deserializing of instance data.

10. A software architecture as recited in claim 1 , wherein the application program interface further comprises a diagnostics namespace that includes a plurality of classes that enable debugging of applications, trace code execution, reading event logs, writing event logs, and monitoring system performance.

11. A software architecture as recited in claim 1 , wherein the application program interface further comprises a messaging namespace that includes a plurality of classes that enable connecting to message queues on the network, sending messages to message queues, receiving messages from message queues, and peeking at messages from message queues.

12. A computer implemented application program interface, embodied on one or more computer readable storage media, comprising:

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 determination of the status of an asynchronous operation, wherein the IAsyncResult interface includes:

an AsyncState property that returns the object that was provided as the 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 of the asynchronous operation is completed.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2002
From: SMITH, ADAM W.; MOORE, ANTHONY J.; LAMACCHIA, BRIAN A.; HEJLSBERG, ANDERS; GRUNKEMEYER, BRIAN M.; DOISE, CALEB L.; BRUMME, CHRISTOPHER W.; ANDERSON, CHRISTOPHER L.; FEUERSTEIN, CORINA E.; SINCLAIR, CRAIG T.; TAKACS, DANIEL; EBBO, DAVID S.; DRIVER, DAVID O.; MORTENSON, DAVID S.; CHRISTENSEN, ERIK B.; OLSON, ERIK B.; YEON, FABIO A.; KAKIVAYA, GOPALA KRISHNA R.; FEE, GREGORY D.; RAMADAN, HANY E.; SANDERS, HENRY L.; RAJAN, JAYANTH V.; COOPERSTEIN, JEFFREY M.; HAWKINS, JONATHAN C.; HOGG, JAMES H.; LONG, JOE D.; MCCONNELL, JOHN I.; RUIZ-SCOUGALL, JESUS; MILLER, JAMES S.; BENNETT, JULIE D.; CWALINA, KRZYSZTOF J.; OLSON, LANCE E.; KOHNFELDER, LOREN M.; MAGRUDER, MICHAEL M.; PRABHU, MANISH S.; PALANCA, RADU RARES; KRISHNASWAMY, RAJA; BURKE, SHAWN P.; TROWBRIDGE, SEAN E.; DEMSEY, SETH M.; DASAN, SHAJAN; PHARIES, STEFAN H.; COOK, SUZANNE M.; ANAND, TARUN; MUHLESTEIN, TRAVIS J.; CHRISTENSEN, YANN E.; LIN, YUNG-SHIN; KRISHNASWAMY, RAMASAMY; ROXE, JOSEPH; BOSHIER, ALAN; BAU, DAVID
To: MICROSOFT CORPORATION
Reel/Frame 012793/0651 →
Continuity (1)
Related Publication 20030167356A1 · Sep 4, 2003