Skip to content

Commit 76f95c0

Browse files
David BritchDavid Britch
authored andcommitted
Merge branch 'master' into xamarin
2 parents b56d609 + 12d76b9 commit 76f95c0

362 files changed

Lines changed: 1703 additions & 84271 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ bld/
2525
# Visual Studio 2015 cache/options directory
2626
.vs/
2727
# Uncomment if you have tasks that create the project's static files in wwwroot
28-
#wwwroot/
28+
**/wwwroot/lib/
2929

3030
# MSTest test Results
3131
[Tt]est[Rr]esult*/
@@ -256,4 +256,5 @@ pub/
256256
/src/Services/Identity/eShopOnContainers.Identity/Properties/launchSettings.json
257257

258258
#Ignore marker-file used to know which docker files we have.
259-
.eshopdocker_*
259+
.eshopdocker_*
260+
/src/Web/WebMVC/wwwroot/lib

README.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,15 @@ Sample .NET Core reference application, powered by Microsoft, based on a simplif
1414
**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.
1515
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.
1616
<p>
17-
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 <a href='https://github.com/dotnet/eShopOnContainers/wiki/01.-Roadmap-and-Milestones-for-future-releases'>roadmap</a>.
17+
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 <a href='https://github.com/dotnet/eShopOnContainers/wiki/01.-Roadmap-and-Milestones-for-future-releases'>roadmap</a>.
1818
<p>
1919
<img src="img/eshop_logo.png">
2020
<img src="img/eShopOnContainers_Architecture_Diagram.png">
2121
<p>
22+
The microservices are different in type, meaning different internal architecture patterns approaches depending on it purpose, as shown in the image below.
23+
<p>
24+
<img src="img/eShopOnContainers_Types_Of_Microservices.png">
25+
<p>
2226
<p>
2327
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! :)
2428

@@ -30,15 +34,14 @@ Additional miroservice styles with other frameworks and No-SQL databases will be
3034
## Related documentation and guidance
3135
While developing this reference application, we are creating a reference Guide/eBook named <b>"Architecting and Developing Containerized and Microservice based .NET Applications"</b> 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.
3236
<p>
33-
There's also an additional eBook focusing on Containers/Docker lifecycle (DevOps, CI/CD, etc.) with Microsoft Tools, already published.
34-
You can start reviewing these Guides/eBooks here:
37+
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.
38+
You can download them and start reviewing these Guides/eBooks here:
3539
<p>
36-
You can download both eBooks from here:
3740

38-
| Architecting & Developing | Containers Lifecycle & CI/CD |
39-
| ------------ | ------------|
40-
| <a href='docs/architecting-and-developing-containerized-and-microservice-based-net-applications-ebook-early-draft.pdf'><img src="img/ebook_arch_dev_microservices_containers_cover.png"> </a> | <a href='https://aka.ms/dockerlifecycleebook'> <img src="img/ebook_containers_lifecycle.png"> </a> |
41-
| <a href='docs/architecting-and-developing-containerized-and-microservice-based-net-applications-ebook-early-draft.pdf'>**Download** (Early DRAFT, still work in progress)</a> | <a href='https://aka.ms/dockerlifecycleebook'>**Download** - First Edition from late 2016</a> |
41+
| Architecting & Developing | Containers Lifecycle & CI/CD | App patterns with Xamarin.Forms |
42+
| ------------ | ------------| ------------|
43+
| <a href='https://aka.ms/microservicesebook'><img src="img/ebook_arch_dev_microservices_containers_cover.png"> </a> | <a href='https://aka.ms/dockerlifecycleebook'> <img src="img/ebook_containers_lifecycle.png"> </a> | <a href='https://aka.ms/xamarinpatternsebook'> <img src="img/xamarin-enterprise-patterns-ebook-cover-small.png"> </a> |
44+
| <sup> <a href='https://aka.ms/microservicesebook'>**Download** (Early DRAFT, still work in progress)</a> </sup> | <sup> <a href='https://aka.ms/dockerlifecycleebook'>**Download** (First Edition from late 2016) </a> </sup> | <sup> <a href='https://aka.ms/xamarinpatternsebook'>**Download** (Early DRAFT, still work in progress) </a> </sup> |
4245

4346
Send feedback to [cesardl@microsoft.com](cesardl@microsoft.com)
4447
<p>
@@ -89,7 +92,7 @@ The app was also partially tested on "Docker for Mac" using a development MacOS
8992

9093
## Sending feedback and pull requests
9194
As mentioned, we'd appreciate to your feedback, improvements and ideas.
92-
You can create new issues at the issues section, do pull requests and/or send emails to eshop_feedback@service.microsoft.com
95+
You can create new issues at the issues section, do pull requests and/or send emails to **eshop_feedback@service.microsoft.com**
9396

9497
## Questions
9598
[QUESTION] Answer +1 if the solution is working for you (Through VS2017 or CLI environment):

cli-linux/build-bits-linux.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ projectList=(
66
"/src/Services/Identity/Identity.API"
77
"/src/Web/WebMVC"
88
"/src/Web/WebSPA"
9+
"/src/Web/WebStatus
910
)
1011
1112
# Build SPA app
@@ -36,4 +37,4 @@ done
3637
#fi
3738
3839
# No need to build the images, docker build or docker compose will
39-
# do that using the images and containers defined in the docker-compose.yml file.
40+
# do that using the images and containers defined in the docker-compose.yml file.

cli-mac/build-bits.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ projectList=(
77
"../src/Services/Identity/Identity.API"
88
"../src/Web/WebMVC"
99
"../src/Web/WebSPA"
10+
"../src/Web/WebStatus"
1011
)
1112

1213
for project in "${projectList[@]}"

cli-windows/build-bits-expanded.ps1

Lines changed: 0 additions & 160 deletions
This file was deleted.

cli-windows/build-bits.ps1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@ $projectPaths =
1515
@{Path="$rootPath\src\Services\Catalog\Catalog.API";Prj="Catalog.API.csproj"},
1616
@{Path="$rootPath\src\Services\Ordering\Ordering.API";Prj="Ordering.API.csproj"},
1717
@{Path="$rootPath\src\Services\Basket\Basket.API";Prj="Basket.API.csproj"}
18+
@{Path="$rootPath\src\Web\WebStatus";Prj="WebStatus.csproj"}
1819

1920
$projectPaths | foreach {
2021
$projectPath = $_.Path
2122
$projectFile = $_.Prj
2223
$outPath = $_.Path + "\obj\Docker\publish"
2324
$projectPathAndFile = "$projectPath\$projectFile"
24-
Write-Host "Deleting $outPath" -ForegroundColor Yellow
25+
Write-Host "Deleting old publish files in $outPath" -ForegroundColor Yellow
2526
remove-item -path $outPath -Force -Recurse -ErrorAction SilentlyContinue
2627
Write-Host "Publishing $projectPathAndFile to $outPath" -ForegroundColor Yellow
2728
dotnet restore $projectPathAndFile

docker-compose.override.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ services:
3333
- ASPNETCORE_ENVIRONMENT=Development
3434
- ASPNETCORE_URLS=http://0.0.0.0:5105
3535
- SpaClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5104
36+
- XamarinCallback=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105/xamarincallback #localhost do not work for UWP login, so we have to use "external" IP always
3637
- ConnectionStrings__DefaultConnection=Server=sql.data;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word
3738
- MvcClient=http://${ESHOP_EXTERNAL_DNS_NAME_OR_IP}:5100 #Local: You need to open your local dev-machine firewall at range 5100-5105.
3839
ports:
@@ -44,6 +45,7 @@ services:
4445
- ASPNETCORE_URLS=http://0.0.0.0:5102
4546
- ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word
4647
- identityUrl=http://identity.api:5105 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105.
48+
- BasketUrl=http://basket.api:5103
4749
- EventBusConnection=rabbitmq
4850
ports:
4951
- "5102:5102"
@@ -85,7 +87,7 @@ services:
8587
- CatalogUrl=http://catalog.api:5101/hc
8688
- OrderingUrl=http://ordering.api:5102/hc
8789
- BasketUrl=http://basket.api:5103/hc
88-
- IdentityUrl=http://10.0.75.1:5105/hc
90+
- IdentityUrl=http://identity.api:5105/hc
8991
- mvc=http://webmvc:5100/hc
9092
- spa=http://webspa:5104/hc
9193
ports:

docker-compose.prod.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ services:
1919
- ASPNETCORE_URLS=http://0.0.0.0:5103
2020
- ConnectionString=basket.data
2121
- identityUrl=http://identity.api:5105 #Local: You need to open your host's firewall at range 5100-5105. at range 5100-5105.
22+
- EventBusConnection=rabbitmq
2223
ports:
2324
- "5103:5103"
2425

@@ -28,6 +29,7 @@ services:
2829
- ASPNETCORE_URLS=http://0.0.0.0:5101
2930
- ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word
3031
- 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.
32+
- EventBusConnection=rabbitmq
3133
ports:
3234
- "5101:5101"
3335

@@ -38,6 +40,7 @@ services:
3840
- SpaClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5104
3941
- ConnectionStrings__DefaultConnection=Server=sql.data;Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=sa;Password=Pass@word
4042
- MvcClient=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5100 #Local: You need to open your host's firewall at range 5100-5105.
43+
- XamarinCallback=http://${ESHOP_PROD_EXTERNAL_DNS_NAME_OR_IP}:5105/xamarincallback
4144
ports:
4245
- "5105:5105"
4346

@@ -47,6 +50,8 @@ services:
4750
- ASPNETCORE_URLS=http://0.0.0.0:5102
4851
- ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word
4952
- identityUrl=http://identity.api:5105 #Local: You need to open your host's firewall at range 5100-5105. at range 5100-5105.
53+
- BasketUrl=http://basket.api:5103
54+
- EventBusConnection=rabbitmq
5055
ports:
5156
- "5102:5102"
5257

@@ -81,10 +86,13 @@ services:
8186

8287
webstatus:
8388
environment:
84-
- ASPNETCORE_ENVIRONMENT=Development
89+
- ASPNETCORE_ENVIRONMENT=Production
90+
- ASPNETCORE_URLS=http://0.0.0.0:5107
8591
- CatalogUrl=http://catalog.api:5101/hc
8692
- OrderingUrl=http://ordering.api:5102/hc
8793
- BasketUrl=http://basket.api:5103/hc
88-
- IdentityUrl=http://10.0.75.1:5105/hc
94+
- mvc=http://webmvc:5100/hc
95+
- spa=http://webspa:5104/hc
96+
- 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.
8997
ports:
90-
- "5107:5107"
98+
- "5107:5107"

docs/Developing-Enterprise-Mobile-Applications-with-XamarinForms.pdf renamed to docs/Enterprise-Application-Patterns-using-XamarinForms.pdf

1.03 MB
Binary file not shown.

0 commit comments

Comments
 (0)