Commit e7816f92 authored by Jason Williams's avatar Jason Williams
Browse files

Update documentation to use Doxygen to auto generate code docs, including...

Update documentation to use Doxygen to auto generate code docs, including providing instructions in the project on how to do this for future doc updating.
parent 77e273b3
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -25,10 +25,18 @@ Note: If you wish to work on something that already exists on our backlog, you
1. Fork the repository. Click on the "Fork" button on the top right of the page and follow the flow.
2. If your work needs more time, the consider branching off of master else just code in your fork.
3. Ensure your changes check for the appropriate device families (ex: Windows Desktop and IoT only).
4. Implement one or more tests to ensure the change works on the target platform(s).
5. Make small and frequent commits that include tests which could be a unity scene showing usage of your feature.
6. Make sure that all existing tests continue to pass.
7. Ensure you update the [README](https://github.com/Microsoft/WindowsDevicePortalWrapper/blob/master/README.md) with additional documentation as needed.
4. Implement one or more [tests](https://github.com/Microsoft/WindowsDevicePortalWrapper/blob/master/Testing.md) to ensure the change works on the target platform(s).
5. Make small and frequent commits that include [tests](https://github.com/Microsoft/WindowsDevicePortalWrapper/blob/master/Testing.md) against mock data or manual tests which can be run against real devices.
6. Make sure that all existing [tests](https://github.com/Microsoft/WindowsDevicePortalWrapper/blob/master/Testing.md) continue to pass.

# Updating code documentation

The Windows Device Portal Wrapper uses [Doxygen](http://www.stack.nl/~dimitri/doxygen/download.html) to automatically generate code documentation directly from the source code. Any changes to existing or new classes or methods should also update the documentation.

1. Download and install [Doxygen](http://www.stack.nl/~dimitri/doxygen/download.html) (our docs are generated using version 1.8.11).
2. Open a CMD prompt and navigate to your git repository's root directory.
3. Run '\<Doxygen Install Location\>\\doxygen.exe DocConfig.txt'. This will update the files under the html folder relative to the root directory.
4. Include the updated files with your PR.

# Run StyleCop

DocConfig.txt

0 → 100644
+2425 −0

File added.

Preview size limit exceeded, changes collapsed.

+6 −297
Original line number Diff line number Diff line
@@ -6,323 +6,32 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
---
---

## Source layout

The Windows Device Portal Wrapper source code has the following layout.

### \
The project root folder contains the Visual Studio 2015 solution (.sln) and all sub-folders that make up the project.

#### WindowsDevicePortalWrapper.sln

#### License.txt

#### CONTRIBUTING.md

#### README.md

---

### \WindowsDevicePortalWrapper.Shared
The WindowsDevicePortalWrapper.Shared folder is a code only project that contains platform independent code for accessing the Windows Device Portal. Large methods use conditional compilation blocks for platform specific code. Small methods requiring platform specific code are duplicated into source files residing in the folders containing that platform's .csproj file.

#### DevicePortal.cs
The root file for the Microsoft.Tools.WindowsDevicePortal.DevicePortal class.

Events:
(All events are part of the DevicePortal class)
* ConnectionStatus

Properties:
(All properties are part of the DevicePortal class)
* Address
* ConnectionHttpStatusCode
* DeviceFamily
* OperatingSystemVersion
* Platform
* PlatformName

Methods:
(All methods are part of the DevicePortal class)
* DevicePortal()
* Connect()
* SendConnectionStatus()

#### Utilities.cs
A static class providing utility functions utilized throughout the Windows Device Portal Wrapper project.

Methods:
(All methods are part of the Utilities class)
* BuildEndpoint()
* Hex64Encode()

---

### \WindowsDevicePortalWrapper.Shared\Core
The Core sub-folder contains the implementation of methods supported by all Windows Device Portal platforms.

#### AppDeployment.cs

Events:
(All events are part of the DevicePortal class)
* AppInstallStatus

Methods:
(All methods are part of the DevicePortal class)
* CopyInstallationFileToStream()
* CreateAppInstallEndpointAndBoundaryString()
* GetInstalledAppPackages()
* InstallApplication()
* UninstallApplication()
* SendAppInstallStats()

Defines the data contract used by the application deployment methods.

#### AppFileExplorer.cs

#### DeviceManager.cs

#### Dns-Sd.cs

#### DumpCollection.cs

#### Etw.cs

#### Networking.cs

#### OsInformation.cs

#### PerformanceData.cs

#### Power.cs

#### RemoteControl.cs

#### TaskManager.cs

#### WiFiManagement.cs

#### WindowsErrorReporting.cs

#### WindowsPerformanceRecorder.cs
To start contributing, see [Contributing](https://github.com/Microsoft/WindowsDevicePortalWrapper/blob/master/CONTRIBUTING.md)

---

### \WindowsDevicePortalWrapper.Shared\Events
The Interfaces sub-folder contains events defined by the Windows Device Portal Wrapper and their associated event arg classes.

#### ApplicationInstallStatus.cs

#### ConnectionStatus.cs

#### WebSocketMessageReceivedEventArgs.cs

---

### \WindowsDevicePortalWrapper.Shared\Exceptions
The Interfaces sub-folder contains the exceptions defined by the Windows Device Portal Wrapper.

#### DevicePortalException.cs
For source code documentation, see [Code Documentation](https://github.com/Microsoft/WindowsDevicePortalWrapper/blob/master/html/index.html)

---

### \WindowsDevicePortalWrapper.Shared\HoloLens
The HoloLens sub-folder contains the implmentation of HoloLens specific Windows Device Portal methods.

#### HolographicOs.cs

#### HolographicPerception.cs

#### HolographicThermal.cs

#### MixedRealityCapture.cs

#### PerceptionSimulationPlayback.cs

#### PerceptionSimulationRecording.cs

---

### \WindowsDevicePortalWrapper.Shared\HttpRest
The HttpRest sub-folder contains methods used to send requests and receive data from the Windows Device Portal's REST API.

#### CsrfToken.cs
Provides CSRF token management support.

Methods:
(All methods are part of the DevicePortal class)
* ApplyCsrfToken()
Sets the CSRF token header on the HTTP request.
* RetrieveCsrfToken
Gets the CSRF token header value from the HTTP response and stores it for future use.

#### RestDelete.cs

Methods:
(All methods are part of the DevicePortal class)
* Delete()

#### RestGet.cs

Methods:
(All methods are part of the DevicePortal class)
* Get<T>()

#### RestPost.cs

Methods:
(All methods are part of the DevicePortal class)
* Post()

#### RestPut.cs

Methods:
(All methods are part of the DevicePortal class)
* Put()
* Put<T>()

#### WebSocket.cs

---

### \WindowsDevicePortalWrapper.Shared\Interfaces
The Interfaces sub-folder contains the definitions of interfaces defined by the Windows Device Portal Wrapper.

#### IDevicePortalConnection.cs
Defines the IDevicePortalConnection interface, for which an implementation must be provided by tools which consume the Windows Device Portal Wrapper.

---

### \WindowsDevicePortalWrapper.Shared\Xbox
The Xbox sub-folder contains the implmentation of Xbox One specific Windows Device Portal methods.

#### SmbShare.cs

#### UserManagement.cs

#### XboxAppDeployment.cs

---

### \WindowsDevicePortalWrapper
The WindowsDevicePortalWrapper folder contains the references and files required to build a the Windows Device Portal Wrapper project targeting version 4.5.2 of the .net framework.

#### CertificateHandling.cs

Methods:
(All methods are part of the DevicePortal class)
* GetDeviceCertificate()
* ServerCertificateValidation()
* ServerCertificateNonValidation()

---

### \WindowsDevicePortalWrapper\Core
The WindowsDevicePortalWrapper\Core folder contains the .net 4.5.2 specific Core Device Portal API functionality.

#### AppDeployment.cs

Methods:
(All methods are part of the DevicePortal class)
* GetInstallStatus()

---

### \WindowsDevicePortalWrapper\HttpRest
The WindowsDevicePortalWrapper\Core folder contains the .net 4.5.2 specific HTTP REST functionality.

#### RestDelete.cs

Methods:
(All methods are part of the DevicePortal class)
* Delete(Uri)

#### RestGet.cs

Methods:
(All methods are part of the DevicePortal class)
* Get(Uri)

#### RestPost.cs

Methods:
(All methods are part of the DevicePortal class)
* Post(Uri)

#### RestPut.cs

Methods:
(All methods are part of the DevicePortal class)
* Put(Uri)

---

### \WindowsDevicePortalWrapper.UniversalWindows
The WindowsDevicePortalWrapper.UnversalWindows folder contains the references and files required to build a the Windows Device Portal Wrapper project targeting the Windows 10 Universal Windows Platform.

#### CertificateHandling.cs

Methods:
(All methods are part of the DevicePortal class)
* GetDeviceCertificate()
* SetDeviceCertificate()

---

### \WindowsDevicePortalWrapper.UniversalWindows\Core
The WindowsDevicePortalWrapper\Core folder contains the Universal Windows Platform specific Core Device Portal API functionality.

#### AppDeployment.cs

Methods:
(All methods are part of the DevicePortal class)
* GetInstallStatus()

---

### \WindowsDevicePortalWrapper.UniversalWindows\HttpRest
The WindowsDevicePortalWrapper\Core folder contains the Universal Windows Platform specific HTTP REST functionality.

#### RestDelete.cs

Methods:
(All methods are part of the DevicePortal class)
* Delete(Uri)

#### RestGet.cs

Methods:
(All methods are part of the DevicePortal class)
* Get(Uri)

#### RestPost.cs

Methods:
(All methods are part of the DevicePortal class)
* Post(Uri)

#### RestPut.cs

Methods:
(All methods are part of the DevicePortal class)
* Put(Uri)

---
For documentation on the WDP REST endpoints which the project wraps, see the following references.

### Core methods

Please see the [Windows Device Portal Core API reference](https://msdn.microsoft.com/en-us/windows/uwp/debug-test-perf/device-portal-api-core) for additional information.
[Windows Device Portal Core API reference](https://msdn.microsoft.com/en-us/windows/uwp/debug-test-perf/device-portal-api-core)

---

### HoloLens specific methods

Please see the [HoloLens Device Portal API reference](https://developer.microsoft.com/en-us/windows/holographic/device_portal_api_reference) for additional information.
[HoloLens Device Portal API reference](https://developer.microsoft.com/en-us/windows/holographic/device_portal_api_reference)

---

### Xbox One specific methods

Please see the [Xbox Device Portal API reference](https://msdn.microsoft.com/en-us/windows/uwp/xbox-apps/reference) for additional information.
[Xbox Device Portal API reference](https://msdn.microsoft.com/en-us/windows/uwp/xbox-apps/reference)

---
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ using Windows.Storage.Streams;
using Microsoft.Tools.WindowsDevicePortal;
using static Microsoft.Tools.WindowsDevicePortal.DevicePortal;

namespace TestApp
namespace TestAppHL.UniversalWindows
{
    public class DevicePortalConnection : IDevicePortalConnection
    {
+0 −1
Original line number Diff line number Diff line
@@ -4,7 +4,6 @@ using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Microsoft.Tools.WindowsDevicePortal;
using static Microsoft.Tools.WindowsDevicePortal.DevicePortal;
using TestApp;

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409

Loading