Merge pull request #25 from Azure/jongio-patch-1

Update README.md
This commit is contained in:
Spyros Garyfallos 2018-10-23 11:47:33 -07:00 коммит произвёл GitHub
Родитель 989efbaaff ce14c9a743
Коммит 3793e2f496
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 16 добавлений и 14 удалений

Просмотреть файл

@ -2,20 +2,20 @@
[![Build Status](https://dev.azure.com/epicstuff/TypeEdge/_apis/build/status/Azure.TypeEdge)](https://dev.azure.com/epicstuff/TypeEdge/_build/latest?definitionId=15)
**TypeEdge** introduces a strongly-typed flavor of the inherently loosely coupled vanilla [Azure IoT Edge](https:/azure.microsoft.com/en-us/services/iot-edge).
**TypeEdge** is a strongly-typed development experience for [Azure IoT Edge](https:/azure.microsoft.com/en-us/services/iot-edge).
Specifically, **TypeEdge**:
**TypeEdge**:
- Removes all configuration burden from an IoT Edge application, because configuration can be now automatically generated.
- Introduces compile-time types checking across all modules
- Adds the ability to **emulate an IoT Edge device in-memory** with no containers involved
- Simplifies the IoT Edge development, down to an single F5 experience
- Removes all plain-text configuration files from an IoT Edge application. Configuration is automatically generated by TypeEdge code bindings.
- Introduces compile-time type checking across all modules.
- Adds the ability to **emulate an IoT Edge device in-memory** without containers.
- Simplifies IoT Edge development, down to a simple F5 experience.
Here is a quick video that demonstrates the value of **TypeEdge**
[![TypeEdge: Into](images/image.png)](https://youtu.be/_vWcpEjjtI0)
>Note: **TypeEdge** is an **experiment** created by a customer facing team at Microsoft called, Commercial Software Engineering. We work with customers on a daily basis and as a result of that work we created **TypeEdge**. It is being used by partners today across the globe. Please help us improve it by trying it out and providing us feedback.
>Note: **TypeEdge** is an **experiment** created by a customer facing team at Microsoft called, Commercial Software Engineering. We work with customers on a daily basis and as a result of that work we created **TypeEdge**. It is being used by partners today around the globe. Please help us improve it by trying it out and providing us feedback.
## Prerequisites
@ -30,7 +30,7 @@ To be able to publish your application, you will also need:
## Create a new **TypeEdge** application
Here is the quickest way to get started with **TypeEdge**. In this quick start you will create an IoT Edge application with two modules and run it in the emulator:
Here is the quickest way to get started with **TypeEdge**. In this quickstart you will create an IoT Edge application with two modules and run it in the emulator:
1. Install the TypeEdge .NET Core solution template. Just type:
```
@ -63,22 +63,22 @@ After you use the template to create a new **TypeEdge** application, all you hav
1. Open in VS Code/Visual Studio 2017 and hit F5:
- For VS Code run
- VS Code:
code .
- For VS 2017 run
- Visual Studio:
Thermostat.sln
- To run the application in the command line (no IDE):
- .NET Core:
```
dotnet build Thermostat.sln
cd Thermostat.Emulator
dotnet run
```
>Note: In all three cases, your application is being emulated in-memory **without any containers involved**. This is very useful for quick develop and test iterations.
>Note: In all three cases, your application is being emulated in-memory **without containers**. This is very useful for quick develop and test iterations.
You should see now the Edge Hub starting up..
@ -89,7 +89,7 @@ You should see now the Edge Hub starting up..
## Debugging inside the containers
If your modules have system dependencies and you want to debug them inside the containers, you can leverage the *docker support* feature of VS 2017. Simply right click the **docker-compose** project and start it from VS 2017 to **debug your application inside the docker containers**.
If your modules have system dependencies and you want to debug them inside the containers, you can leverage Visual Studio's *docker support* feature. Simply right click the **docker-compose** project and start it to **debug your application inside the docker containers**.
Alternatively, you can run your application inside the containers in command line:
@ -186,7 +186,8 @@ public class SensorModule : TypeModule, ISensorModule
```
</details>
<br>
A <b>TypeEdge</b> module can override any of the virtual methods of the base class ``TypeModule``. As demonstrated in the above example, the ``RunAsync`` method is used for defining long running loops, typically useful for modules that read sensor values. Another virtual method is ``Configure``, which can be used to read custom module configuration during startup.
A **TypeEdge** module can override any of the virtual methods of the base class ``TypeModule``. As demonstrated in the above example, the ``RunAsync`` method is used for defining long running loops, typically useful for modules that read sensor values. Another virtual method is ``Configure``, which can be used to read custom module configuration during startup.
The complete ``TypeModule`` definition is:
@ -210,6 +211,7 @@ public abstract class TypeModule : IDisposable
### Module Subscriptions
**TypeEdge** uses the pub/sub pattern for all module I/O, except for the direct methods. This means that a module can subscribe to other module outputs, and publish messages to their inputs. To do this, a reference to the module interface definition is required. **TypeEdge** uses dependency injection to determine the referenced modules.
Below is the constructor of the second module included in the application template called ``PreprocessorModule``, that references the ``SensorModule`` via its interface. Using this proxy, the ``PreprocessorModule`` module can subscribe to the ``SensorModule``:
```cs