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"> @@ -17,6 +17,7 @@ #00A69C #00857D #e2e2e2 + #ff5252 + @@ -110,6 +112,14 @@ + +