diff --git a/README.md b/README.md index 770dfb0bf..ad3de086b 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,15 @@ Sample .NET Core reference application, powered by Microsoft, based on a simplif **Architecture overview**: This reference application is cross-platform either at the server and client side, thanks to .NET Core services capable of running on Linux or Windows containers depending on your Docker host, and to Xamarin for mobile apps running on Android, iOS or Windows/UWP plus any browser for the client web apps. The architecture proposes a simplified microservice oriented architecture implementation with multiple autonomous microservices (each one owning its own data/db) and implementing different approaches within each microservice (simple CRUD vs. DDD/CQRS patterns) using Http as the current communication protocol.
-The plan is to add asynchronous communication for data updates propagation across multiple services based on integration events and an event bus plus other features defined at the roadmap. +It also supports asynchronous communication for data updates propagation across multiple services based on Integration Events and an Event Bus plus other features defined at the roadmap.
+The microservices are different in type, meaning different internal architecture patterns approaches depending on it purpose, as shown in the image below. +
+ +
Additional miroservice styles with other frameworks and No-SQL databases will be added, eventually. This is a great opportunity for pull requests from the community, like a new microservice using Nancy, or even other languages like Node, Go, Python or data containers with MongoDB with Azure DocDB compatibility, PostgreSQL, RavenDB, Event Store, MySql, etc. You name it! :) @@ -30,15 +34,14 @@ Additional miroservice styles with other frameworks and No-SQL databases will be ## Related documentation and guidance While developing this reference application, we are creating a reference Guide/eBook named "Architecting and Developing Containerized and Microservice based .NET Applications" which explains in detail how to develop this kind of architectural style (microservices, Docker containers, Domain-Driven Design for certain microservices) plus other simpler architectural styles, like monolithic apps that can also live as Docker containers.
-There's also an additional eBook focusing on Containers/Docker lifecycle (DevOps, CI/CD, etc.) with Microsoft Tools, already published. -You can start reviewing these Guides/eBooks here: +There are also additional eBooks focusing on Containers/Docker lifecycle (DevOps, CI/CD, etc.) with Microsoft Tools, already published plus an additional eBook focusing on Enterprise Apps Patterns with Xamarin.Forms. +You can download them and start reviewing these Guides/eBooks here:
-You can download both eBooks from here: -| Architecting & Developing | Containers Lifecycle & CI/CD | -| ------------ | ------------| -| | | -| **Download** (Early DRAFT, still work in progress) | **Download** - First Edition from late 2016 | +| Architecting & Developing | Containers Lifecycle & CI/CD | App patterns with Xamarin.Forms | +| ------------ | ------------| ------------| +| | | | +| **Download** (Early DRAFT, still work in progress) | **Download** (First Edition from late 2016) | **Download** (Early DRAFT, still work in progress) | Send feedback to [cesardl@microsoft.com](cesardl@microsoft.com)
@@ -89,7 +92,7 @@ The app was also partially tested on "Docker for Mac" using a development MacOS
## Sending feedback and pull requests
As mentioned, we'd appreciate to your feedback, improvements and ideas.
-You can create new issues at the issues section, do pull requests and/or send emails to eshop_feedback@service.microsoft.com
+You can create new issues at the issues section, do pull requests and/or send emails to **eshop_feedback@service.microsoft.com**
## Questions
[QUESTION] Answer +1 if the solution is working for you (Through VS2017 or CLI environment):
diff --git a/docker-compose.override.yml b/docker-compose.override.yml
index f96a8d177..8b0b4602b 100644
--- a/docker-compose.override.yml
+++ b/docker-compose.override.yml
@@ -45,6 +45,7 @@ services:
- ASPNETCORE_URLS=http://0.0.0.0:5102
- ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word
- identityUrl=http://identity.api:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105.
+ - BasketUrl=http://basket.api:5103
- EventBusConnection=rabbitmq
ports:
- "5102:5102"
diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml
index 80b44a9ad..5a88f2c6c 100644
--- a/docker-compose.prod.yml
+++ b/docker-compose.prod.yml
@@ -19,6 +19,7 @@ services:
- ASPNETCORE_URLS=http://0.0.0.0:5103
- ConnectionString=basket.data
- identityUrl=http://identity.api:5105 #Local: You need to open your host's firewall at range 5100-5105. at range 5100-5105.
+ - EventBusConnection=rabbitmq
ports:
- "5103:5103"
@@ -28,6 +29,7 @@ services:
- ASPNETCORE_URLS=http://0.0.0.0:5101
- ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word
- ExternalCatalogBaseUrl=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5101 #Local: You need to open your host's firewall at range 5100-5105. at range 5100-5105.
+ - EventBusConnection=rabbitmq
ports:
- "5101:5101"
@@ -48,6 +50,8 @@ services:
- ASPNETCORE_URLS=http://0.0.0.0:5102
- ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word
- identityUrl=http://identity.api:5105 #Local: You need to open your host's firewall at range 5100-5105. at range 5100-5105.
+ - BasketUrl=http://basket.api:5103
+ - EventBusConnection=rabbitmq
ports:
- "5102:5102"
@@ -82,10 +86,13 @@ services:
webstatus:
environment:
- - ASPNETCORE_ENVIRONMENT=Development
+ - ASPNETCORE_ENVIRONMENT=Production
+ - ASPNETCORE_URLS=http://0.0.0.0:5107
- CatalogUrl=http://catalog.api:5101/hc
- OrderingUrl=http://ordering.api:5102/hc
- BasketUrl=http://basket.api:5103/hc
- - IdentityUrl=http://10.0.75.1:5105/hc
+ - mvc=http://webmvc:5100/hc
+ - spa=http://webspa:5104/hc
+ - IdentityUrl=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105 #Local: Use ${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}, if using external IP or DNS name from browser.
ports:
- - "5107:5107"
+ - "5107:5107"
\ No newline at end of file
diff --git a/docs/Developing-Enterprise-Mobile-Applications-with-XamarinForms.pdf b/docs/Enterprise-Application-Patterns-using-XamarinForms.pdf
similarity index 87%
rename from docs/Developing-Enterprise-Mobile-Applications-with-XamarinForms.pdf
rename to docs/Enterprise-Application-Patterns-using-XamarinForms.pdf
index 06f11cdcc..dcd8d36d8 100644
Binary files a/docs/Developing-Enterprise-Mobile-Applications-with-XamarinForms.pdf and b/docs/Enterprise-Application-Patterns-using-XamarinForms.pdf differ
diff --git a/docs/architecting-and-developing-containerized-and-microservice-based-net-applications-ebook-early-draft.pdf b/docs/architecting-and-developing-containerized-and-microservice-based-net-applications-ebook-early-draft.pdf
index 845f8b174..46f571b73 100644
Binary files a/docs/architecting-and-developing-containerized-and-microservice-based-net-applications-ebook-early-draft.pdf and b/docs/architecting-and-developing-containerized-and-microservice-based-net-applications-ebook-early-draft.pdf differ
diff --git a/img/eShopOnContainers_Architecture_Diagram.png b/img/eShopOnContainers_Architecture_Diagram.png
index 5a45657dc..ca9e986b5 100644
Binary files a/img/eShopOnContainers_Architecture_Diagram.png and b/img/eShopOnContainers_Architecture_Diagram.png differ
diff --git a/img/eShopOnContainers_Architecture_Diagram_old.png b/img/eShopOnContainers_Architecture_Diagram_old.png
new file mode 100644
index 000000000..5a45657dc
Binary files /dev/null and b/img/eShopOnContainers_Architecture_Diagram_old.png differ
diff --git a/img/eShopOnContainers_Types_Of_Microservices.png b/img/eShopOnContainers_Types_Of_Microservices.png
new file mode 100644
index 000000000..e0621d8a4
Binary files /dev/null and b/img/eShopOnContainers_Types_Of_Microservices.png differ
diff --git a/img/ebook_xamarin_patterns_cover.png b/img/ebook_xamarin_patterns_cover.png
deleted file mode 100644
index b27481ff6..000000000
Binary files a/img/ebook_xamarin_patterns_cover.png and /dev/null differ
diff --git a/img/xamarin-enterprise-patterns-ebook-cover-small.png b/img/xamarin-enterprise-patterns-ebook-cover-small.png
new file mode 100644
index 000000000..f645ef596
Binary files /dev/null and b/img/xamarin-enterprise-patterns-ebook-cover-small.png differ
diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml
index 3a93984f0..a04b35a17 100644
--- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml
+++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml
@@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:light="clr-namespace:Xamarin.Forms.Themes;assembly=Xamarin.Forms.Theme.Light"
xmlns:converters="clr-namespace:eShopOnContainers.Core.Converters;assembly=eShopOnContainers.Core"
- xmlns:effects="clr-namespace:eShopOnContainers.Core.Effects;assembly=eShopOnContainers.Core"
+ xmlns:behaviors="clr-namespace:eShopOnContainers.Core.Behaviors;assembly=eShopOnContainers.Core"
x:Class="eShopOnContainers.App">