What the Pub/Sub Building Block: Dapr in Action - Ep. 2
0 views
Aug 6, 2025
In this episode, you will understand what the Pub/Sub building block is, what are some of its concrete component implementations and how you can use it in your own applications. 📺 CSharp TV - Dev Streaming Destination http://csharp.tv 🌎 C# Corner - Community of Software and Data Developers https://www.c-sharpcorner.com #CSharpTV #csharpcorner #Dapr #LiveShow
View Video Transcript
0:01
[Music]
0:11
[Music]
0:18
[Music]
0:34
hey friends this is your host Rodrigo
0:37
hey friends this is your host Rodrigo
0:37
hey friends this is your host Rodrigo and today this is session two of daer in
0:41
and today this is session two of daer in
0:41
and today this is session two of daer in action and we're going to talk about the
0:43
action and we're going to talk about the
0:43
action and we're going to talk about the pops up building
0:45
pops up building
0:45
pops up building block and before we do that let me
0:48
block and before we do that let me
0:48
block and before we do that let me explain to you one of the things that
0:51
explain to you one of the things that
0:51
explain to you one of the things that were missing from the other day remember
0:54
were missing from the other day remember
0:54
were missing from the other day remember that we have to install the Dapper CLI
0:58
that we have to install the Dapper CLI
0:58
that we have to install the Dapper CLI right and then you have to initialize
1:01
right and then you have to initialize
1:01
right and then you have to initialize Dapper so you install the Dapper C then
1:05
Dapper so you install the Dapper C then
1:05
Dapper so you install the Dapper C then initialize Dapper there are two ways you
1:08
initialize Dapper there are two ways you
1:08
initialize Dapper there are two ways you can do that so the first one is if you
1:11
can do that so the first one is if you
1:11
can do that so the first one is if you have
1:12
have
1:12
have Docker then you just type dopper in it
1:17
Docker then you just type dopper in it
1:17
Docker then you just type dopper in it and it's going to download the container
1:20
and it's going to download the container
1:20
and it's going to download the container images and it's going to run some
1:23
images and it's going to run some
1:23
images and it's going to run some containers so as you can see here on the
1:25
containers so as you can see here on the
1:25
containers so as you can see here on the screen actually let me do that um let me
1:30
screen actually let me do that um let me
1:30
screen actually let me do that um let me open up my
1:32
open up my
1:32
open up my terminal by using my administrator
1:36
terminal by using my administrator
1:36
terminal by using my administrator permissions
1:39
permissions
1:39
permissions and check this out Dapper in it right so
1:43
and check this out Dapper in it right so
1:43
and check this out Dapper in it right so this is
1:44
this is
1:44
this is detecting that if I use Dapper in it
1:48
detecting that if I use Dapper in it
1:48
detecting that if I use Dapper in it then I should have Docker otherwise I
1:51
then I should have Docker otherwise I
1:51
then I should have Docker otherwise I need to use the Lim option slim is an
1:57
need to use the Lim option slim is an
1:57
need to use the Lim option slim is an option for using Dapper with without
2:00
option for using Dapper with without
2:00
option for using Dapper with without containers which is fantastic for some
2:04
containers which is fantastic for some
2:04
containers which is fantastic for some people when you don't have enough
2:06
people when you don't have enough
2:06
people when you don't have enough computer computing power or you don't
2:09
computer computing power or you don't
2:09
computer computing power or you don't have permissions for using Docker in
2:11
have permissions for using Docker in
2:11
have permissions for using Docker in your computer and so on right and so you
2:16
your computer and so on right and so you
2:16
your computer and so on right and so you have to use daer init
2:18
have to use daer init
2:18
have to use daer init slim and in this case you have to
2:22
slim and in this case you have to
2:22
slim and in this case you have to install everything related to
2:24
install everything related to
2:24
install everything related to Dapper so in other words you have to
2:27
Dapper so in other words you have to
2:27
Dapper so in other words you have to install the concrete implementation of
2:30
install the concrete implementation of
2:30
install the concrete implementation of the build building blocks that you want
2:32
the build building blocks that you want
2:32
the build building blocks that you want to use okay so in this case I want to
2:36
to use okay so in this case I want to
2:36
to use okay so in this case I want to use Docker because I happen to have
2:38
use Docker because I happen to have
2:38
use Docker because I happen to have Docker Docker desktop in this Windows 11
2:42
Docker Docker desktop in this Windows 11
2:42
Docker Docker desktop in this Windows 11 machine and I'm the
2:44
machine and I'm the
2:44
machine and I'm the administrator so everything's good I'm
2:47
administrator so everything's good I'm
2:48
administrator so everything's good I'm gonna execute Dapper in it I'm just
2:51
gonna execute Dapper in it I'm just
2:51
gonna execute Dapper in it I'm just going to wait for Docker to execute now
2:54
going to wait for Docker to execute now
2:54
going to wait for Docker to execute now it's running right and Dapper in it so
2:58
it's running right and Dapper in it so
2:58
it's running right and Dapper in it so you can see that this is going going to
3:00
you can see that this is going going to
3:00
you can see that this is going going to download some container images but
3:03
download some container images but
3:03
download some container images but before I do that you can see that this
3:05
before I do that you can see that this
3:05
before I do that you can see that this this is asking me to
3:07
this is asking me to
3:07
this is asking me to uninstall Dapper okay I'm going to
3:11
uninstall Dapper okay I'm going to
3:11
uninstall Dapper okay I'm going to uninstall
3:13
uninstall
3:13
uninstall Dapper and then Dapper in it finally
3:17
Dapper and then Dapper in it finally
3:17
Dapper and then Dapper in it finally okay so this is going to install dopper
3:21
okay so this is going to install dopper
3:21
okay so this is going to install dopper 1.14 it's going to download the
3:23
1.14 it's going to download the
3:23
1.14 it's going to download the container images it's going to run those
3:25
container images it's going to run those
3:25
container images it's going to run those container images as
3:27
container images as
3:27
container images as containers and so far so good now I have
3:31
containers and so far so good now I have
3:31
containers and so far so good now I have Dapper installed in this machine so you
3:34
Dapper installed in this machine so you
3:34
Dapper installed in this machine so you can see that this particular command
3:38
can see that this particular command
3:38
can see that this particular command creates this do dapper folder inside my
3:41
creates this do dapper folder inside my
3:41
creates this do dapper folder inside my user folder in other words you can go
3:44
user folder in other words you can go
3:44
user folder in other words you can go ahead and go to your user folder in this
3:48
ahead and go to your user folder in this
3:48
ahead and go to your user folder in this case this is mine right and then do
3:51
case this is mine right and then do
3:51
case this is mine right and then do dopper and this is the place where all
3:54
dopper and this is the place where all
3:54
dopper and this is the place where all the binaries are located in your
3:57
the binaries are located in your
3:57
the binaries are located in your computer okay user folder dopper and we
4:02
computer okay user folder dopper and we
4:02
computer okay user folder dopper and we can find some jaml files such as the
4:05
can find some jaml files such as the
4:05
can find some jaml files such as the config jaml file and inside the
4:08
config jaml file and inside the
4:08
config jaml file and inside the components folder we can see a couple of
4:11
components folder we can see a couple of
4:11
components folder we can see a couple of jaml files for configuring the pops up
4:13
jaml files for configuring the pops up
4:13
jaml files for configuring the pops up building block that we're going to see
4:15
building block that we're going to see
4:15
building block that we're going to see today and the state store building block
4:18
today and the state store building block
4:18
today and the state store building block that we're going to see in a following
4:21
that we're going to see in a following
4:21
that we're going to see in a following session okay and some other binaries
4:25
session okay and some other binaries
4:25
session okay and some other binaries here in the bin folder such as the
4:28
here in the bin folder such as the
4:28
here in the bin folder such as the Dapper d
4:30
Dapper d
4:30
Dapper d XE file which is the
4:33
XE file which is the
4:33
XE file which is the Dapper side car don't be confused okay
4:37
Dapper side car don't be confused okay
4:37
Dapper side car don't be confused okay this is the side car this is not the
4:40
this is the side car this is not the
4:40
this is the side car this is not the same as the one that is installed here
4:42
same as the one that is installed here
4:42
same as the one that is installed here in the Dapper folder when you install
4:44
in the Dapper folder when you install
4:44
in the Dapper folder when you install the Dapper CLI you have the Dapper doxe
4:47
the Dapper CLI you have the Dapper doxe
4:47
the Dapper CLI you have the Dapper doxe file here okay this is the CLI and this
4:50
file here okay this is the CLI and this
4:50
file here okay this is the CLI and this other one is the Dapper sidecar okay
4:54
other one is the Dapper sidecar okay
4:54
other one is the Dapper sidecar okay let's go ahead and navigate to bin and
4:57
let's go ahead and navigate to bin and
4:57
let's go ahead and navigate to bin and dopper side car okay and you can see
4:59
dopper side car okay and you can see
4:59
dopper side car okay and you can see that I have this other executable which
5:02
that I have this other executable which
5:02
that I have this other executable which which is the
5:03
which is the
5:03
which is the dashboard and this is for using the
5:05
dashboard and this is for using the
5:05
dashboard and this is for using the dopper dashboard that I'm going to use
5:08
dopper dashboard that I'm going to use
5:08
dopper dashboard that I'm going to use later
5:09
later
5:09
later today okay so far so good all the
5:12
today okay so far so good all the
5:12
today okay so far so good all the binaries are are installed and you can
5:16
binaries are are installed and you can
5:16
binaries are are installed and you can go ahead and verify the containers by
5:19
go ahead and verify the containers by
5:19
go ahead and verify the containers by using your
5:20
using your
5:20
using your regular Docker commands such as Docker
5:24
regular Docker commands such as Docker
5:24
regular Docker commands such as Docker container um dock container image list
5:29
container um dock container image list
5:29
container um dock container image list or Docker container list or Docker PS
5:32
or Docker container list or Docker PS
5:32
or Docker container list or Docker PS This is for displaying all the processes
5:34
This is for displaying all the processes
5:34
This is for displaying all the processes that are running in your machine or you
5:37
that are running in your machine or you
5:37
that are running in your machine or you can go ahead and you know open the UI
5:40
can go ahead and you know open the UI
5:40
can go ahead and you know open the UI for your Docker uh desktop instance and
5:44
for your Docker uh desktop instance and
5:44
for your Docker uh desktop instance and watch those containers running in your
5:47
watch those containers running in your
5:47
watch those containers running in your machine this is
5:50
machine this is
5:50
machine this is marvelous fantastic
5:53
marvelous fantastic
5:53
marvelous fantastic now if you happen to have
5:56
now if you happen to have
5:56
now if you happen to have kubernetes uh you can use the dash k
6:00
kubernetes uh you can use the dash k
6:00
kubernetes uh you can use the dash k uh flag I'm going to show you that in a
6:03
uh flag I'm going to show you that in a
6:03
uh flag I'm going to show you that in a following session when we talk about
6:05
following session when we talk about
6:05
following session when we talk about deployment just realize that there's an
6:08
deployment just realize that there's an
6:08
deployment just realize that there's an option for initializing Dapper on
6:10
option for initializing Dapper on
6:10
option for initializing Dapper on kubernetes and you can uninstall Dapper
6:13
kubernetes and you can uninstall Dapper
6:13
kubernetes and you can uninstall Dapper as well I actually showed you this um
6:16
as well I actually showed you this um
6:17
as well I actually showed you this um Dapper oninstall if you use Dapper
6:19
Dapper oninstall if you use Dapper
6:19
Dapper oninstall if you use Dapper oninstall this is going to uh Delete the
6:22
oninstall this is going to uh Delete the
6:22
oninstall this is going to uh Delete the side card binaries but it's not going to
6:25
side card binaries but it's not going to
6:26
side card binaries but it's not going to remove all the
6:27
remove all the
6:27
remove all the containers and with the dash dash all
6:31
containers and with the dash dash all
6:31
containers and with the dash dash all you're going to remove everything and
6:34
you're going to remove everything and
6:34
you're going to remove everything and that's actually what I did now let's
6:36
that's actually what I did now let's
6:36
that's actually what I did now let's talk about toer C remember that this is
6:38
talk about toer C remember that this is
6:38
talk about toer C remember that this is the pop up session but before I do that
6:43
the pop up session but before I do that
6:43
the pop up session but before I do that I need to explain some other things
6:45
I need to explain some other things
6:45
I need to explain some other things related to Dapper okay bear with me
6:47
related to Dapper okay bear with me
6:47
related to Dapper okay bear with me friends Dapper CLI this is the one
6:50
friends Dapper CLI this is the one
6:50
friends Dapper CLI this is the one Dapper doxe that is installed in your
6:52
Dapper doxe that is installed in your
6:52
Dapper doxe that is installed in your Dapper folder in your C C
6:54
Dapper folder in your C C
6:54
Dapper folder in your C C drive and there are some commands that
6:58
drive and there are some commands that
6:58
drive and there are some commands that depend on on the platform for instance
7:02
depend on on the platform for instance
7:02
depend on on the platform for instance there are some
7:03
there are some
7:03
there are some commands that are for kubernetes there
7:06
commands that are for kubernetes there
7:06
commands that are for kubernetes there are some others for
7:08
are some others for
7:08
are some others for the uh selfhosted
7:11
the uh selfhosted
7:11
the uh selfhosted mode and there are some others for both
7:15
mode and there are some others for both
7:15
mode and there are some others for both so let me show you this so available
7:17
so let me show you this so available
7:17
so let me show you this so available commands this is the dopper CLI so you
7:20
commands this is the dopper CLI so you
7:21
commands this is the dopper CLI so you can see here supported
7:24
can see here supported
7:24
can see here supported platforms and you can see for instance
7:26
platforms and you can see for instance
7:26
platforms and you can see for instance annotate this is for kubernetes only
7:29
annotate this is for kubernetes only
7:29
annotate this is for kubernetes only this other one as well this other one as
7:31
this other one as well this other one as
7:31
this other one as well this other one as well components configurations and there
7:34
well components configurations and there
7:34
well components configurations and there are some others for both self-hosted on
7:38
are some others for both self-hosted on
7:38
are some others for both self-hosted on kubernetes such as
7:40
kubernetes such as
7:40
kubernetes such as dashboard init invoke this is only for
7:44
dashboard init invoke this is only for
7:44
dashboard init invoke this is only for self-hosted mode this is for selfhosted
7:47
self-hosted mode this is for selfhosted
7:47
self-hosted mode this is for selfhosted mode as well and so on okay just
7:52
mode as well and so on okay just
7:52
mode as well and so on okay just remember there are some commands
7:54
remember there are some commands
7:54
remember there are some commands depending on your um your um platform
8:01
depending on your um your um platform
8:01
depending on your um your um platform that you're using okay some essential
8:04
that you're using okay some essential
8:04
that you're using okay some essential commands dopper version uh very easy to
8:08
commands dopper version uh very easy to
8:08
commands dopper version uh very easy to explain the upper version it's going to
8:10
explain the upper version it's going to
8:10
explain the upper version it's going to tell you the version that you're running
8:13
tell you the version that you're running
8:13
tell you the version that you're running you can also use the flag dash dash
8:16
you can also use the flag dash dash
8:16
you can also use the flag dash dash version and you can see that I'm using
8:18
version and you can see that I'm using
8:18
version and you can see that I'm using right now those
8:20
right now those
8:20
right now those versions and in a couple of weeks maybe
8:23
versions and in a couple of weeks maybe
8:23
versions and in a couple of weeks maybe three weeks we can use 1.15 which is
8:27
three weeks we can use 1.15 which is
8:27
three weeks we can use 1.15 which is going to be released on the first uh
8:29
going to be released on the first uh
8:29
going to be released on the first uh week of
8:30
week of
8:30
week of January uh anyway help just your regular
8:35
January uh anyway help just your regular
8:35
January uh anyway help just your regular help Command right daer help this is
8:38
help Command right daer help this is
8:38
help Command right daer help this is just for understanding all the different
8:41
just for understanding all the different
8:41
just for understanding all the different options that you have for instance
8:43
options that you have for instance
8:43
options that you have for instance Dapper help is the same as Dapper and
8:46
Dapper help is the same as Dapper and
8:46
Dapper help is the same as Dapper and let's say that I want to use some I
8:49
let's say that I want to use some I
8:49
let's say that I want to use some I don't know I don't remember all the
8:51
don't know I don't remember all the
8:51
don't know I don't remember all the things related to Dapper Ron this is a
8:54
things related to Dapper Ron this is a
8:54
things related to Dapper Ron this is a wrong command so you can pass Dash
8:57
wrong command so you can pass Dash
8:57
wrong command so you can pass Dash dashel and this is contextual right this
9:00
dashel and this is contextual right this
9:00
dashel and this is contextual right this is going to tell you everything about
9:03
is going to tell you everything about
9:03
is going to tell you everything about the Dapper wrong command Dapper list for
9:06
the Dapper wrong command Dapper list for
9:06
the Dapper wrong command Dapper list for listing all your application
9:08
listing all your application
9:08
listing all your application instances um and of course I don't have
9:12
instances um and of course I don't have
9:12
instances um and of course I don't have any kind of instance right now um there
9:15
any kind of instance right now um there
9:15
any kind of instance right now um there are no Dapper applications running so a
9:19
are no Dapper applications running so a
9:19
are no Dapper applications running so a dopper list uh no Dapper instances found
9:23
dopper list uh no Dapper instances found
9:23
dopper list uh no Dapper instances found and finally Dapper dashboard this is for
9:26
and finally Dapper dashboard this is for
9:26
and finally Dapper dashboard this is for opening up the
9:27
opening up the
9:27
opening up the dashboard so check this out Dapper
9:30
dashboard so check this out Dapper
9:30
dashboard so check this out Dapper dashboard it's going to run by default
9:33
dashboard it's going to run by default
9:33
dashboard it's going to run by default on this port and you can open up this
9:37
on this port and you can open up this
9:37
on this port and you can open up this dashboard in your browser so you can
9:40
dashboard in your browser so you can
9:40
dashboard in your browser so you can navigate and understand all the
9:42
navigate and understand all the
9:42
navigate and understand all the different Dapper components that are
9:44
different Dapper components that are
9:44
different Dapper components that are configured in this machine and all the
9:46
configured in this machine and all the
9:46
configured in this machine and all the dopper applications and so on okay very
9:50
dopper applications and so on okay very
9:50
dopper applications and so on okay very very useful but of course I don't have
9:52
very useful but of course I don't have
9:53
very useful but of course I don't have any kind of application right now so
9:55
any kind of application right now so
9:55
any kind of application right now so bear with me this is going to be fun at
9:58
bear with me this is going to be fun at
9:58
bear with me this is going to be fun at the end of the session
10:00
the end of the session
10:00
the end of the session or throughout the the session right okay
10:04
or throughout the the session right okay
10:04
or throughout the the session right okay so far so good running the side card
10:07
so far so good running the side card
10:07
so far so good running the side card remember that Dapper is meant to be used
10:10
remember that Dapper is meant to be used
10:10
remember that Dapper is meant to be used as a side car
10:13
as a side car
10:13
as a side car meaning for kubernetes is another
10:16
meaning for kubernetes is another
10:16
meaning for kubernetes is another container in the same pod and if you're
10:19
container in the same pod and if you're
10:19
container in the same pod and if you're using the self-hosted mode this is
10:22
using the self-hosted mode this is
10:22
using the self-hosted mode this is another different
10:24
another different
10:24
another different process um than your application okay so
10:30
process um than your application okay so
10:30
process um than your application okay so you can you can have your sidecar
10:32
you can you can have your sidecar
10:32
you can you can have your sidecar running in your machine your development
10:35
running in your machine your development
10:35
running in your machine your development machine and your application in another
10:39
machine and your application in another
10:39
machine and your application in another different process that's actually what
10:41
different process that's actually what
10:41
different process that's actually what I'm going to do right
10:42
I'm going to do right
10:42
I'm going to do right now okay so you need to run the side car
10:46
now okay so you need to run the side car
10:46
now okay so you need to run the side car somehow remember Dapper d. XE that's the
10:49
somehow remember Dapper d. XE that's the
10:49
somehow remember Dapper d. XE that's the side card and you need to run it but you
10:52
side card and you need to run it but you
10:52
side card and you need to run it but you don't go to your user folder d uh
10:56
don't go to your user folder d uh
10:56
don't go to your user folder d uh forward slash. dopper and then Dapper d.
11:00
forward slash. dopper and then Dapper d.
11:00
forward slash. dopper and then Dapper d. XE what you do is you invoke the Dapper
11:04
XE what you do is you invoke the Dapper
11:04
XE what you do is you invoke the Dapper run command Dapper run so this is just
11:08
run command Dapper run so this is just
11:08
run command Dapper run so this is just for running the side car let's do that
11:10
for running the side car let's do that
11:11
for running the side car let's do that let's see what happens Dapper run hey
11:13
let's see what happens Dapper run hey
11:13
let's see what happens Dapper run hey Dapper I want to run the side car and as
11:16
Dapper I want to run the side car and as
11:16
Dapper I want to run the side car and as you can see this is displaying a lot of
11:19
you can see this is displaying a lot of
11:19
you can see this is displaying a lot of information it's quite
11:22
information it's quite
11:22
information it's quite Bose and at the end of the of the logs
11:26
Bose and at the end of the of the logs
11:26
Bose and at the end of the of the logs we can see that this is running okay so
11:29
we can see that this is running okay so
11:29
we can see that this is running okay so we have right now the dber side card
11:31
we have right now the dber side card
11:31
we have right now the dber side card running in this machine there are some
11:33
running in this machine there are some
11:33
running in this machine there are some other information quite useful when
11:36
other information quite useful when
11:36
other information quite useful when you're building um your Dapper
11:39
you're building um your Dapper
11:39
you're building um your Dapper application such as okay for instance
11:42
application such as okay for instance
11:42
application such as okay for instance this flag was
11:44
this flag was
11:44
this flag was deprecated this this is very useful for
11:48
deprecated this this is very useful for
11:48
deprecated this this is very useful for specifying another
11:49
specifying another
11:49
specifying another folder where you can have some Jam files
11:52
folder where you can have some Jam files
11:52
folder where you can have some Jam files for configuring your
11:54
for configuring your
11:54
for configuring your components
11:56
components
11:56
components so uh I don't know maybe here we can can
11:59
so uh I don't know maybe here we can can
11:59
so uh I don't know maybe here we can can see that this is disabled and some other
12:01
see that this is disabled and some other
12:01
see that this is disabled and some other things related to the dopper side car
12:03
things related to the dopper side car
12:03
things related to the dopper side car and so on of course I don't want to read
12:07
and so on of course I don't want to read
12:07
and so on of course I don't want to read the entire contents of this log file or
12:10
the entire contents of this log file or
12:10
the entire contents of this log file or log um content uh however you can be
12:14
log um content uh however you can be
12:14
log um content uh however you can be sure that this is quite useful sometimes
12:16
sure that this is quite useful sometimes
12:16
sure that this is quite useful sometimes when you're debugging or you are uh
12:20
when you're debugging or you are uh
12:20
when you're debugging or you are uh troubleshooting your applications anyway
12:22
troubleshooting your applications anyway
12:23
troubleshooting your applications anyway the thing friends is that this Dapper
12:26
the thing friends is that this Dapper
12:26
the thing friends is that this Dapper side car is running right now and check
12:28
side car is running right now and check
12:28
side car is running right now and check this out
12:29
this out
12:29
this out Dapper list this is going to return
12:33
Dapper list this is going to return
12:33
Dapper list this is going to return something right this is
12:36
something right this is
12:36
something right this is returning this app ID this was just a
12:40
returning this app ID this was just a
12:40
returning this app ID this was just a random name created by this Dapper side
12:43
random name created by this Dapper side
12:43
random name created by this Dapper side car this
12:46
car this
12:46
car this application which is the side car itself
12:48
application which is the side car itself
12:48
application which is the side car itself there's no application running other
12:50
there's no application running other
12:50
there's no application running other than this Dapper side car it's just
12:53
than this Dapper side car it's just
12:53
than this Dapper side car it's just running by
12:54
running by
12:54
running by itself however it's telling me hey you
12:57
itself however it's telling me hey you
12:57
itself however it's telling me hey you know what this is running on HTT Port
13:00
know what this is running on HTT Port
13:00
know what this is running on HTT Port this one and this erpc port number and
13:04
this one and this erpc port number and
13:04
this one and this erpc port number and so on right and the application ID is is
13:08
so on right and the application ID is is
13:08
so on right and the application ID is is now like
13:09
now like
13:10
now like Ripper whatever that means okay and
13:13
Ripper whatever that means okay and
13:13
Ripper whatever that means okay and Dapper dashboard let's go ahead and
13:16
Dapper dashboard let's go ahead and
13:16
Dapper dashboard let's go ahead and create the dashboard again navigate to
13:18
create the dashboard again navigate to
13:18
create the dashboard again navigate to the dopper dashboard and now we can see
13:21
the dopper dashboard and now we can see
13:21
the dopper dashboard and now we can see something else something different than
13:25
something else something different than
13:25
something else something different than before so we can see the
13:27
before so we can see the
13:27
before so we can see the application and basically the same
13:30
application and basically the same
13:30
application and basically the same information that the dopper list command
13:33
information that the dopper list command
13:33
information that the dopper list command is telling us uh however we can use this
13:38
is telling us uh however we can use this
13:38
is telling us uh however we can use this nicely done user interface for you know
13:42
nicely done user interface for you know
13:42
nicely done user interface for you know inspecting all the different uh
13:44
inspecting all the different uh
13:44
inspecting all the different uh configurations and things related to
13:47
configurations and things related to
13:47
configurations and things related to this particular
13:48
this particular
13:48
this particular application perfect so let's stop the
13:52
application perfect so let's stop the
13:52
application perfect so let's stop the dashboard by pressing control C and
13:56
dashboard by pressing control C and
13:56
dashboard by pressing control C and let's close this down this this down as
13:59
let's close this down this this down as
14:00
let's close this down this this down as well and I can exit the topper side car
14:04
well and I can exit the topper side car
14:04
well and I can exit the topper side car this is not running anymore and that was
14:07
this is not running anymore and that was
14:07
this is not running anymore and that was the side car
14:10
the side car
14:10
the side car however you know running the upper side
14:13
however you know running the upper side
14:13
however you know running the upper side car is not quite um not very
14:16
car is not quite um not very
14:16
car is not quite um not very useful uh since you need to you know
14:19
useful uh since you need to you know
14:19
useful uh since you need to you know connect it to some kind of application
14:22
connect it to some kind of application
14:22
connect it to some kind of application at the end of the day that's what you
14:24
at the end of the day that's what you
14:24
at the end of the day that's what you want to do when you
14:26
want to do when you
14:26
want to do when you are um using dapper so that's why you
14:30
are um using dapper so that's why you
14:30
are um using dapper so that's why you can you can use some configuration I'm
14:32
can you can use some configuration I'm
14:32
can you can use some configuration I'm going to I'm going to show you the most
14:35
going to I'm going to show you the most
14:35
going to I'm going to show you the most important ones the most important flags
14:38
important ones the most important flags
14:38
important ones the most important flags that you can pass to the dopper Rong
14:39
that you can pass to the dopper Rong
14:40
that you can pass to the dopper Rong command such as app ID app ID is when
14:45
command such as app ID app ID is when
14:45
command such as app ID app ID is when you specify the app name so for instance
14:48
you specify the app name so for instance
14:48
you specify the app name so for instance D Ron app ID my application one right my
14:53
D Ron app ID my application one right my
14:54
D Ron app ID my application one right my fabulous application or something
14:58
fabulous application or something
14:58
fabulous application or something okay here's another
15:00
okay here's another
15:00
okay here's another flag Dapper HTTP Port this is the port
15:06
flag Dapper HTTP Port this is the port
15:06
flag Dapper HTTP Port this is the port number where Dapper is going to listen
15:08
number where Dapper is going to listen
15:08
number where Dapper is going to listen to or listen on for requests okay so you
15:14
to or listen on for requests okay so you
15:14
to or listen on for requests okay so you can you know have this granular control
15:18
can you know have this granular control
15:18
can you know have this granular control over the HTTP port
15:20
over the HTTP port
15:20
over the HTTP port number so you can use Dapper HTTP Port
15:23
number so you can use Dapper HTTP Port
15:23
number so you can use Dapper HTTP Port of course this is for HTTP
15:25
of course this is for HTTP
15:25
of course this is for HTTP Communications and you can also have the
15:29
Communications and you can also have the
15:29
Communications and you can also have the RPC port for grp grpc communications as
15:33
RPC port for grp grpc communications as
15:33
RPC port for grp grpc communications as well okay drer grpc
15:37
well okay drer grpc
15:37
well okay drer grpc Port this is another one quite useful
15:40
Port this is another one quite useful
15:40
Port this is another one quite useful app
15:41
app
15:41
app port and you may be thinking yes this is
15:45
port and you may be thinking yes this is
15:45
port and you may be thinking yes this is for the application itself right the
15:50
for the application itself right the
15:50
for the application itself right the application is listening on some
15:52
application is listening on some
15:52
application is listening on some particular port number and this is the
15:55
particular port number and this is the
15:55
particular port number and this is the place where you specify
15:57
place where you specify
15:57
place where you specify that okay app
16:00
that okay app
16:00
that okay app port and check this out then you
16:05
port and check this out then you
16:05
port and check this out then you use you know you use those different
16:07
use you know you use those different
16:07
use you know you use those different flags you configure the diaper diaper
16:10
flags you configure the diaper diaper
16:10
flags you configure the diaper diaper side car and then you you use this
16:13
side car and then you you use this
16:13
side car and then you you use this separator Double Dash for specifying
16:18
separator Double Dash for specifying
16:18
separator Double Dash for specifying your app instructions in other words app
16:21
your app instructions in other words app
16:22
your app instructions in other words app Specific Instructions that you want to
16:24
Specific Instructions that you want to
16:24
Specific Instructions that you want to use for running your
16:26
use for running your
16:26
use for running your application for example
16:29
application for example
16:29
application for example net Ron right if you happen to be a net
16:33
net Ron right if you happen to be a net
16:33
net Ron right if you happen to be a net developer you know that netron is the
16:36
developer you know that netron is the
16:36
developer you know that netron is the one is the command that we use for
16:39
one is the command that we use for
16:39
one is the command that we use for running net applications
16:41
running net applications
16:41
running net applications right so check this out this uh command
16:44
right so check this out this uh command
16:44
right so check this out this uh command that we have here on the screen in this
16:48
that we have here on the screen in this
16:48
that we have here on the screen in this blue uh
16:50
blue uh
16:50
blue uh rectangle we can see that I'm specifying
16:53
rectangle we can see that I'm specifying
16:53
rectangle we can see that I'm specifying my app as the name the app port in other
16:57
my app as the name the app port in other
16:57
my app as the name the app port in other words my net application is going to be
17:00
words my net application is going to be
17:00
words my net application is going to be listening on port number
17:03
listening on port number
17:03
listening on port number 5000 and then dopper HTTP Port is 50,000
17:09
5000 and then dopper HTTP Port is 50,000
17:09
5000 and then dopper HTTP Port is 50,000 I'm configuring those port numbers and
17:12
I'm configuring those port numbers and
17:12
I'm configuring those port numbers and then I
17:14
then I
17:14
then I separate I separate the commands for my
17:18
separate I separate the commands for my
17:18
separate I separate the commands for my my application and then net Ron and I
17:21
my application and then net Ron and I
17:21
my application and then net Ron and I use all the different flags
17:24
use all the different flags
17:24
use all the different flags for.net right such as URLs and the port
17:28
for.net right such as URLs and the port
17:28
for.net right such as URLs and the port that I want my application to be running
17:31
that I want my application to be running
17:31
that I want my application to be running on so far so good so this is the side
17:35
on so far so good so this is the side
17:35
on so far so good so this is the side car and you can also run multiple
17:38
car and you can also run multiple
17:38
car and you can also run multiple applications you can define a Jamal file
17:41
applications you can define a Jamal file
17:41
applications you can define a Jamal file for running several apps at the same
17:43
for running several apps at the same
17:43
for running several apps at the same time as a group similar to a Docker um
17:48
time as a group similar to a Docker um
17:48
time as a group similar to a Docker um Docker
17:49
Docker
17:49
Docker compose kind of
17:51
compose kind of
17:51
compose kind of file you can specify this jamama file
17:54
file you can specify this jamama file
17:54
file you can specify this jamama file and then say to the doer wrong command
17:57
and then say to the doer wrong command
17:57
and then say to the doer wrong command ay I want to use this uh file for
17:59
ay I want to use this uh file for
17:59
ay I want to use this uh file for running multiple applications so here's
18:02
running multiple applications so here's
18:02
running multiple applications so here's an example taken from the
18:05
an example taken from the
18:05
an example taken from the official uh dopper
18:07
official uh dopper
18:07
official uh dopper documentation so you can see that this
18:10
documentation so you can see that this
18:10
documentation so you can see that this particular Jam file has two applications
18:13
particular Jam file has two applications
18:13
particular Jam file has two applications web app and backend that's those are the
18:16
web app and backend that's those are the
18:16
web app and backend that's those are the names okay web app and back end and you
18:21
names okay web app and back end and you
18:21
names okay web app and back end and you pass some different flags and parameters
18:24
pass some different flags and parameters
18:24
pass some different flags and parameters to each
18:26
to each
18:26
to each application for instance one application
18:28
application for instance one application
18:28
application for instance one application could be a python application and this
18:30
could be a python application and this
18:30
could be a python application and this other one could be a net application and
18:32
other one could be a net application and
18:32
other one could be a net application and this other one a Java application it
18:34
this other one a Java application it
18:34
this other one a Java application it doesn't matter you specify in this
18:37
doesn't matter you specify in this
18:37
doesn't matter you specify in this single
18:38
single
18:38
single file all the applications that you want
18:41
file all the applications that you want
18:41
file all the applications that you want to
18:42
to
18:42
to run um as a group okay and then you can
18:46
run um as a group okay and then you can
18:46
run um as a group okay and then you can stop the
18:47
stop the
18:48
stop the entire um group of applications if you
18:50
entire um group of applications if you
18:51
entire um group of applications if you use doer stop and then pass the um jam
18:55
use doer stop and then pass the um jam
18:55
use doer stop and then pass the um jam file
18:56
file
18:56
file name or if you
18:59
name or if you
18:59
name or if you use the default Dapper do jaml name you
19:03
use the default Dapper do jaml name you
19:03
use the default Dapper do jaml name you just pass the directory name so this is
19:07
just pass the directory name so this is
19:07
just pass the directory name so this is similar to uh Docker compose as you can
19:09
similar to uh Docker compose as you can
19:09
similar to uh Docker compose as you can see
19:10
see
19:10
see your yeah I think that Docker compose is
19:13
your yeah I think that Docker compose is
19:14
your yeah I think that Docker compose is the best uh example or that we can
19:16
the best uh example or that we can
19:16
the best uh example or that we can compare to when running multiple
19:19
compare to when running multiple
19:19
compare to when running multiple applications using the dopper
19:21
applications using the dopper
19:21
applications using the dopper CLI okay
19:23
CLI okay
19:23
CLI okay comments hi
19:26
comments hi
19:26
comments hi Deek I'm running late today I hear you
19:29
Deek I'm running late today I hear you
19:29
Deek I'm running late today I hear you brother doesn't matter you can watch the
19:32
brother doesn't matter you can watch the
19:32
brother doesn't matter you can watch the recording the magic of online training
19:35
recording the magic of online training
19:36
recording the magic of online training is that we can record
19:38
is that we can record
19:38
is that we can record things and this is going to be available
19:40
things and this is going to be available
19:41
things and this is going to be available in the C TV
19:43
in the C TV
19:43
in the C TV Portal later today or
19:46
Portal later today or
19:46
Portal later today or tomorrow okay um let's talk about the
19:50
tomorrow okay um let's talk about the
19:50
tomorrow okay um let's talk about the Dapper as a
19:52
Dapper as a
19:52
Dapper as a case so you run the Dapper side car so
19:56
case so you run the Dapper side car so
19:56
case so you run the Dapper side car so far so good right you run the dapper
19:58
far so good right you run the dapper
19:58
far so good right you run the dapper side card and this side card is
20:01
side card and this side card is
20:01
side card and this side card is exposing some
20:04
exposing some
20:04
exposing some apis
20:06
apis
20:06
apis right and you can use HTTP or you can
20:09
right and you can use HTTP or you can
20:09
right and you can use HTTP or you can use erpc right and for instance you can
20:13
use erpc right and for instance you can
20:13
use erpc right and for instance you can use posman or curl for sending some
20:17
use posman or curl for sending some
20:17
use posman or curl for sending some requests and then receiving some
20:19
requests and then receiving some
20:19
requests and then receiving some responses from the side car however
20:23
responses from the side car however
20:23
responses from the side car however that's not very real
20:25
that's not very real
20:25
that's not very real world uh when you're building Dapper
20:27
world uh when you're building Dapper
20:27
world uh when you're building Dapper applications sometimes
20:29
applications sometimes
20:29
applications sometimes times uh or most of the time you're want
20:33
times uh or most of the time you're want
20:33
times uh or most of the time you're want to use
20:34
to use
20:34
to use something uh that is uh battle tested
20:37
something uh that is uh battle tested
20:37
something uh that is uh battle tested and well um uh designed and that's why
20:42
and well um uh designed and that's why
20:43
and well um uh designed and that's why our friends from Dapper created a lot of
20:45
our friends from Dapper created a lot of
20:45
our friends from Dapper created a lot of different sdks that we can use in
20:48
different sdks that we can use in
20:48
different sdks that we can use in different programming languages such as
20:50
different programming languages such as
20:50
different programming languages such as net the the net platform of course net
20:54
net the the net platform of course net
20:54
net the the net platform of course net is not a programming language but you
20:57
is not a programming language but you
20:57
is not a programming language but you know what I mean uh or python or Java
21:00
know what I mean uh or python or Java
21:00
know what I mean uh or python or Java and actually this is the official list
21:03
and actually this is the official list
21:03
and actually this is the official list of sdks that we have
21:05
of sdks that we have
21:05
of sdks that we have nowadays and in this course in this
21:09
nowadays and in this course in this
21:09
nowadays and in this course in this dopper in
21:11
dopper in
21:11
dopper in action
21:12
action
21:12
action um
21:14
um
21:14
um um sessions I'm going to use net most of
21:17
um sessions I'm going to use net most of
21:17
um sessions I'm going to use net most of the time sometimes I'm going to use
21:20
the time sometimes I'm going to use
21:20
the time sometimes I'm going to use python or send me some comments what do
21:23
python or send me some comments what do
21:23
python or send me some comments what do you want to see anyway I'm a net de
21:27
you want to see anyway I'm a net de
21:27
you want to see anyway I'm a net de developer since 201
21:29
developer since 201
21:29
developer since 201 four years ago that's why I've used net
21:32
four years ago that's why I've used net
21:32
four years ago that's why I've used net and c
21:34
and c
21:34
and c and anyway there are some other
21:37
and anyway there are some other
21:37
and anyway there are some other fantastic programming languages as well
21:39
fantastic programming languages as well
21:39
fantastic programming languages as well anyway do case uh there are different
21:43
anyway do case uh there are different
21:43
anyway do case uh there are different parts of or components that you can use
21:46
parts of or components that you can use
21:46
parts of or components that you can use for instance the client itself this is
21:48
for instance the client itself this is
21:48
for instance the client itself this is for communicating to the Dapper side car
21:52
for communicating to the Dapper side car
21:52
for communicating to the Dapper side car think about that as an
21:55
think about that as an
21:55
think about that as an abstraction for communicating over h
21:58
abstraction for communicating over h
21:58
abstraction for communicating over h HTTP or grpc okay server extensions if
22:02
HTTP or grpc okay server extensions if
22:02
HTTP or grpc okay server extensions if you happen to be using asp.net core you
22:05
you happen to be using asp.net core you
22:05
you happen to be using asp.net core you can use the server extensions for
22:07
can use the server extensions for
22:07
can use the server extensions for registering your Dapper client in a
22:09
registering your Dapper client in a
22:09
registering your Dapper client in a super easy way I'm going to show you
22:12
super easy way I'm going to show you
22:12
super easy way I'm going to show you that later today and both the acture and
22:15
that later today and both the acture and
22:15
that later today and both the acture and the workflow components for using those
22:18
the workflow components for using those
22:18
the workflow components for using those building blocks and I'm going to show
22:19
building blocks and I'm going to show
22:19
building blocks and I'm going to show you in this fantastic series of dapper
22:22
you in this fantastic series of dapper
22:22
you in this fantastic series of dapper in action anyway Dapper is the case my
22:26
in action anyway Dapper is the case my
22:26
in action anyway Dapper is the case my friends uh let's talk talk about
22:30
friends uh let's talk talk about
22:30
friends uh let's talk talk about net so particularly in net we have the
22:33
net so particularly in net we have the
22:33
net so particularly in net we have the doer client
22:35
doer client
22:35
doer client object this is a class okay this is the
22:37
object this is a class okay this is the
22:37
object this is a class okay this is the class that was created and it's inside
22:39
class that was created and it's inside
22:39
class that was created and it's inside this SDK of course you need to add this
22:42
this SDK of course you need to add this
22:42
this SDK of course you need to add this net package right and I'm going to show
22:46
net package right and I'm going to show
22:46
net package right and I'm going to show you that today and when you add the
22:49
you that today and when you add the
22:49
you that today and when you add the Nugget
22:51
Nugget
22:51
Nugget package then you can use the dopper
22:55
package then you can use the dopper
22:55
package then you can use the dopper client so this this DPP dopper client
22:59
client so this this DPP dopper client
23:00
client so this this DPP dopper client abstracts
23:01
abstracts
23:01
abstracts away the the all the communication to
23:05
away the the all the communication to
23:05
away the the all the communication to the side car okay so allows you to
23:08
the side car okay so allows you to
23:08
the side car okay so allows you to easily interact with the daer side car
23:11
easily interact with the daer side car
23:11
easily interact with the daer side car and it manages all the networking
23:14
and it manages all the networking
23:14
and it manages all the networking resources and connectivity to the side
23:17
resources and connectivity to the side
23:17
resources and connectivity to the side car implements the idisposable interface
23:20
car implements the idisposable interface
23:20
car implements the idisposable interface for you know reclaiming back the memory
23:24
for you know reclaiming back the memory
23:24
for you know reclaiming back the memory resources and it's meant to be used as a
23:26
resources and it's meant to be used as a
23:26
resources and it's meant to be used as a single tone is not meant to be used you
23:29
single tone is not meant to be used you
23:29
single tone is not meant to be used you know doer client x equals new doer
23:33
know doer client x equals new doer
23:33
know doer client x equals new doer client you're not going to new a new
23:35
client you're not going to new a new
23:35
client you're not going to new a new doer client object each time so you have
23:39
doer client object each time so you have
23:39
doer client object each time so you have to have some way to use it as a single
23:41
to have some way to use it as a single
23:42
to have some way to use it as a single ton and it's meant to be used um that
23:45
ton and it's meant to be used um that
23:45
ton and it's meant to be used um that way and it's threat
23:48
way and it's threat
23:48
way and it's threat safe okay so how in the world you use
23:52
safe okay so how in the world you use
23:52
safe okay so how in the world you use the Dapper SDK in net first you need to
23:57
the Dapper SDK in net first you need to
23:57
the Dapper SDK in net first you need to add the Dapper you know the N package
24:01
add the Dapper you know the N package
24:01
add the Dapper you know the N package and then you register Dapper by using
24:04
and then you register Dapper by using
24:04
and then you register Dapper by using add dopper okay you just use this quite
24:10
add dopper okay you just use this quite
24:10
add dopper okay you just use this quite super helpful
24:11
super helpful
24:11
super helpful command um or method for registering
24:14
command um or method for registering
24:14
command um or method for registering Dapper and that's
24:16
Dapper and that's
24:16
Dapper and that's it that is it my friends d add Dapper
24:19
it that is it my friends d add Dapper
24:19
it that is it my friends d add Dapper and that's it so when you do this then
24:24
and that's it so when you do this then
24:24
and that's it so when you do this then you're able to inject the dopper client
24:26
you're able to inject the dopper client
24:26
you're able to inject the dopper client object in your let's say controllers if
24:29
object in your let's say controllers if
24:29
object in your let's say controllers if you're happen to be using asp.net core
24:32
you're happen to be using asp.net core
24:32
you're happen to be using asp.net core and the traditional controllers and of
24:34
and the traditional controllers and of
24:34
and the traditional controllers and of course you can use minimal apis and so
24:37
course you can use minimal apis and so
24:37
course you can use minimal apis and so on however the thing is that you can
24:40
on however the thing is that you can
24:40
on however the thing is that you can inject the doer client object in this
24:44
inject the doer client object in this
24:44
inject the doer client object in this fashion and then use all of the
24:46
fashion and then use all of the
24:46
fashion and then use all of the different methods and functions that it
24:49
different methods and functions that it
24:49
different methods and functions that it has okay quite easy thing to use and to
24:55
has okay quite easy thing to use and to
24:55
has okay quite easy thing to use and to do right so you can see here on the
24:57
do right so you can see here on the
24:57
do right so you can see here on the screen this is using the primary
24:59
screen this is using the primary
24:59
screen this is using the primary Constructor
25:00
Constructor
25:00
Constructor syntax and this is injecting drer client
25:03
syntax and this is injecting drer client
25:03
syntax and this is injecting drer client in this class and of course I can go
25:06
in this class and of course I can go
25:06
in this class and of course I can go ahead and use the drer client object and
25:09
ahead and use the drer client object and
25:09
ahead and use the drer client object and the variable doer client dot you know
25:12
the variable doer client dot you know
25:12
the variable doer client dot you know method and call and invoke the different
25:16
method and call and invoke the different
25:16
method and call and invoke the different members of this
25:18
members of this
25:19
members of this object super easy thing to
25:23
object super easy thing to
25:23
object super easy thing to do why don't we go ahead and create our
25:26
do why don't we go ahead and create our
25:26
do why don't we go ahead and create our new application right right because
25:29
new application right right because
25:29
new application right right because today I'm going to use pops up this is
25:33
today I'm going to use pops up this is
25:33
today I'm going to use pops up this is the main topic for today however I had
25:36
the main topic for today however I had
25:36
the main topic for today however I had to
25:37
to
25:37
to explain you know the dopper CLI the most
25:41
explain you know the dopper CLI the most
25:41
explain you know the dopper CLI the most basic commands how to run the dopper
25:43
basic commands how to run the dopper
25:43
basic commands how to run the dopper side car alongside your
25:46
side car alongside your
25:46
side car alongside your application and how to inject the dopper
25:49
application and how to inject the dopper
25:49
application and how to inject the dopper client object and that's it we're ready
25:52
client object and that's it we're ready
25:52
client object and that's it we're ready to go we're ready to rumble so let's go
25:56
to go we're ready to rumble so let's go
25:56
to go we're ready to rumble so let's go ahead here let's navigate to doer in
26:00
ahead here let's navigate to doer in
26:01
ahead here let's navigate to doer in action that I happen to have
26:03
action that I happen to have
26:03
action that I happen to have here and why don't we create a new web
26:09
here and why don't we create a new web
26:09
here and why don't we create a new web API okay web
26:11
API okay web
26:11
API okay web API and let's name
26:14
API and let's name
26:14
API and let's name it um let's name this as my application
26:19
it um let's name this as my application
26:20
it um let's name this as my application or my
26:21
or my
26:21
or my service my service a because I happen to
26:26
service my service a because I happen to
26:27
service my service a because I happen to you know be very creative when naming
26:29
you know be very creative when naming
26:30
you know be very creative when naming things and use controllers because I
26:34
things and use controllers because I
26:34
things and use controllers because I love controllers I don't like minimal AP
26:38
love controllers I don't like minimal AP
26:38
love controllers I don't like minimal AP apis anyway that's me and you remember
26:42
apis anyway that's me and you remember
26:42
apis anyway that's me and you remember I'm using net
26:45
9net and this is net
26:48
9net and this is net
26:48
9net and this is net 9 right and if you happen to be a python
26:54
9 right and if you happen to be a python
26:54
9 right and if you happen to be a python programmer or any other or you use any
26:58
programmer or any other or you use any
26:58
programmer or any other or you use any other programming language bear with me
27:00
other programming language bear with me
27:00
other programming language bear with me this is very similar in some other
27:03
this is very similar in some other
27:03
this is very similar in some other languages as well I'm just creating this
27:05
languages as well I'm just creating this
27:05
languages as well I'm just creating this web API right I created this and I can
27:10
web API right I created this and I can
27:10
web API right I created this and I can go
27:11
go
27:11
go ahead and open up visual studio
27:15
ahead and open up visual studio
27:15
ahead and open up visual studio code okay and the first thing that I
27:20
code okay and the first thing that I
27:20
code okay and the first thing that I want to do friends is I want to use I
27:23
want to do friends is I want to use I
27:23
want to do friends is I want to use I wanna I want to search for the nuget
27:26
wanna I want to search for the nuget
27:26
wanna I want to search for the nuget package okay
27:28
package okay
27:28
package okay that has the doer client object okay so
27:33
that has the doer client object okay so
27:33
that has the doer client object okay so for instance we can go let me show you
27:36
for instance we can go let me show you
27:36
for instance we can go let me show you that in nuget.org
27:39
that in nuget.org
27:39
that in nuget.org so let's go here nuget.org let's search
27:44
so let's go here nuget.org let's search
27:44
so let's go here nuget.org let's search for
27:45
for
27:45
for Dapper
27:46
Dapper
27:47
Dapper okay so you can see that we have Dapper
27:49
okay so you can see that we have Dapper
27:49
okay so you can see that we have Dapper do client and some other Dapper do
27:54
do client and some other Dapper do
27:54
do client and some other Dapper do star nuget
27:56
star nuget
27:56
star nuget packages and I'm going to show you some
27:58
packages and I'm going to show you some
27:58
packages and I'm going to show you some of them in this course however today I'm
28:01
of them in this course however today I'm
28:01
of them in this course however today I'm going to show you dopper asp.net core or
28:05
going to show you dopper asp.net core or
28:05
going to show you dopper asp.net core or ASP net core that's the name okay so I
28:08
ASP net core that's the name okay so I
28:08
ASP net core that's the name okay so I need to use this net package command I
28:12
need to use this net package command I
28:12
need to use this net package command I need to add this
28:14
need to add this
28:14
need to add this um let's do this net. package ster
28:18
um let's do this net. package ster
28:18
um let's do this net. package ster asp.net core this is going to use the
28:20
asp.net core this is going to use the
28:20
asp.net core this is going to use the latest version and let's go back to
28:23
latest version and let's go back to
28:23
latest version and let's go back to visual studio
28:24
visual studio
28:24
visual studio code and
28:28
code and
28:28
code and if everything was successful I have here
28:32
if everything was successful I have here
28:32
if everything was successful I have here Dapper asp.net core right uh one14 since
28:37
Dapper asp.net core right uh one14 since
28:37
Dapper asp.net core right uh one14 since that's the latest version of dapper at
28:40
that's the latest version of dapper at
28:40
that's the latest version of dapper at the moment of this
28:42
the moment of this
28:42
the moment of this recording and actually that's it
28:45
recording and actually that's it
28:46
recording and actually that's it actually that is it friends okay now
28:51
actually that is it friends okay now
28:51
actually that is it friends okay now program.cs and here I can go ahead and
28:55
program.cs and here I can go ahead and
28:55
program.cs and here I can go ahead and let's
28:56
let's
28:56
let's first doet
29:00
you know for intellisense to work
29:02
you know for intellisense to work
29:02
you know for intellisense to work sometimes it doesn't work right away in
29:04
sometimes it doesn't work right away in
29:04
sometimes it doesn't work right away in Visual Studio code add dopper that is
29:09
Visual Studio code add dopper that is
29:09
Visual Studio code add dopper that is it this is the way you use an asp L core
29:13
it this is the way you use an asp L core
29:13
it this is the way you use an asp L core for registering dopper and thanks to
29:16
for registering dopper and thanks to
29:16
for registering dopper and thanks to this command I can go ahead and navigate
29:20
this command I can go ahead and navigate
29:20
this command I can go ahead and navigate to the controllers in here I can inject
29:22
to the controllers in here I can inject
29:22
to the controllers in here I can inject oper CLI but of course I want this to be
29:26
oper CLI but of course I want this to be
29:26
oper CLI but of course I want this to be something meaningful
29:29
something meaningful
29:29
something meaningful let's
29:30
let's
29:30
let's say I don't know let's change this name
29:34
say I don't know let's change this name
29:34
say I don't know let's change this name to something
29:35
to something
29:35
to something like um sales
29:40
like um sales
29:40
like um sales controller remember that I I'm super
29:44
controller remember that I I'm super
29:44
controller remember that I I'm super creative when naming things okay sales
29:48
creative when naming things okay sales
29:48
creative when naming things okay sales controller so the thing about this
29:50
controller so the thing about this
29:51
controller so the thing about this controller is that we have you know some
29:54
controller is that we have you know some
29:54
controller is that we have you know some sales who are selling something that
29:57
sales who are selling something that
29:57
sales who are selling something that actually it doesn't matter what I want
29:59
actually it doesn't matter what I want
29:59
actually it doesn't matter what I want you to see right now is how to inject
30:03
you to see right now is how to inject
30:03
you to see right now is how to inject dopper client dopper client dopper
30:06
dopper client dopper client dopper
30:06
dopper client dopper client dopper client and that is it so I can go ahead
30:10
client and that is it so I can go ahead
30:10
client and that is it so I can go ahead and use that Dapper client object in my
30:13
and use that Dapper client object in my
30:13
and use that Dapper client object in my endpoints for instance public casing
30:15
endpoints for instance public casing
30:15
endpoints for instance public casing task eye action result or something get
30:19
task eye action result or something get
30:19
task eye action result or something get or whatever and then I can doer client
30:24
or whatever and then I can doer client
30:24
or whatever and then I can doer client and
30:25
and
30:25
and use the methods right
30:28
use the methods right
30:28
use the methods right you can see that I have different
30:30
you can see that I have different
30:30
you can see that I have different methods for interacting with the side
30:33
methods for interacting with the side
30:33
methods for interacting with the side car and today I'm going to show you
30:36
car and today I'm going to show you
30:36
car and today I'm going to show you publish event async which is the way
30:40
publish event async which is the way
30:40
publish event async which is the way that we
30:41
that we
30:41
that we use um for sending a
30:46
use um for sending a
30:46
use um for sending a message
30:47
message
30:47
message asynchronously to another object to
30:50
asynchronously to another object to
30:50
asynchronously to another object to another service or another
30:53
another service or another
30:53
another service or another application so so far so good I have
30:56
application so so far so good I have
30:56
application so so far so good I have this application I use the N package I
31:00
this application I use the N package I
31:00
this application I use the N package I invoked a
31:03
invoked a
31:03
invoked a doer and I registered you know with the
31:06
doer and I registered you know with the
31:06
doer and I registered you know with the that dopper method I'm um registering
31:10
that dopper method I'm um registering
31:10
that dopper method I'm um registering the Dapper client object that's why I
31:13
the Dapper client object that's why I
31:13
the Dapper client object that's why I can use it um I can inject it using
31:18
can use it um I can inject it using
31:18
can use it um I can inject it using dependency
31:19
dependency
31:19
dependency injection anyway pops
31:22
injection anyway pops
31:22
injection anyway pops up sometimes in distributed
31:26
up sometimes in distributed
31:26
up sometimes in distributed applications such as I don't know maybe
31:28
applications such as I don't know maybe
31:28
applications such as I don't know maybe you're using
31:30
you're using
31:30
you're using microservices doesn't matter in
31:33
microservices doesn't matter in
31:33
microservices doesn't matter in distributed application sometimes we
31:35
distributed application sometimes we
31:35
distributed application sometimes we want service a to send a message to
31:40
want service a to send a message to
31:40
want service a to send a message to service B
31:43
service B
31:43
service B asynchronously right instead of you know
31:47
asynchronously right instead of you know
31:47
asynchronously right instead of you know invoking directly service B from Service
31:50
invoking directly service B from Service
31:50
invoking directly service B from Service A in that case I don't want to do that
31:54
A in that case I don't want to do that
31:54
A in that case I don't want to do that because there's a temporal
31:56
because there's a temporal
31:56
because there's a temporal coupling when you are creating this
31:59
coupling when you are creating this
31:59
coupling when you are creating this request in expecting the
32:02
request in expecting the
32:02
request in expecting the response I think uh there are some times
32:06
response I think uh there are some times
32:06
response I think uh there are some times when that is uh completely
32:09
when that is uh completely
32:09
when that is uh completely acceptable however if you're building
32:11
acceptable however if you're building
32:11
acceptable however if you're building distributed applications and event
32:14
distributed applications and event
32:14
distributed applications and event driven kind of
32:16
driven kind of
32:16
driven kind of applications you need a way to send a
32:19
applications you need a way to send a
32:19
applications you need a way to send a message and broadcast a message and let
32:22
message and broadcast a message and let
32:22
message and broadcast a message and let the other applications or services to
32:25
the other applications or services to
32:25
the other applications or services to receive that message okay
32:28
receive that message okay
32:28
receive that message okay that the sign pattern is pops up publish
32:32
that the sign pattern is pops up publish
32:32
that the sign pattern is pops up publish And
32:33
And
32:33
And subscribe why well you have this service
32:37
subscribe why well you have this service
32:37
subscribe why well you have this service that is publishing an event or message
32:40
that is publishing an event or message
32:40
that is publishing an event or message right to a message
32:42
right to a message
32:42
right to a message broker and this message broker the
32:46
broker and this message broker the
32:46
broker and this message broker the responsibility of this um middleware or
32:50
responsibility of this um middleware or
32:50
responsibility of this um middleware or platform is broadcasting that message to
32:54
platform is broadcasting that message to
32:54
platform is broadcasting that message to those interested pieces or applications
32:58
those interested pieces or applications
32:58
those interested pieces or applications okay so for instance that that message
33:01
okay so for instance that that message
33:01
okay so for instance that that message broker could
33:03
broker could
33:03
broker could be I don't know
33:05
be I don't know
33:05
be I don't know redish it could be rabit mq it could be
33:09
redish it could be rabit mq it could be
33:09
redish it could be rabit mq it could be Asher event uh service
33:13
Asher event uh service
33:13
Asher event uh service boss right aure service boss or any kind
33:17
boss right aure service boss or any kind
33:17
boss right aure service boss or any kind of uh technology that does
33:20
of uh technology that does
33:20
of uh technology that does that and you have some other services
33:24
that and you have some other services
33:24
that and you have some other services just like the ones that we have here on
33:26
just like the ones that we have here on
33:26
just like the ones that we have here on the screen at the right side and those
33:29
the screen at the right side and those
33:29
the screen at the right side and those services are interested in that
33:31
services are interested in that
33:31
services are interested in that particular event or message so they
33:36
particular event or message so they
33:36
particular event or message so they subscribe and when the event
33:40
subscribe and when the event
33:40
subscribe and when the event happens then those Services receive the
33:44
happens then those Services receive the
33:44
happens then those Services receive the message okay make sense I think that is
33:48
message okay make sense I think that is
33:48
message okay make sense I think that is super super easy thing to
33:51
super super easy thing to
33:51
super super easy thing to grasp and the pops up building block two
33:55
grasp and the pops up building block two
33:55
grasp and the pops up building block two main things about this this is based on
33:57
main things about this this is based on
33:57
main things about this this is based on the Cloud events 1.0
34:00
the Cloud events 1.0
34:00
the Cloud events 1.0 specification I'm not sure if 1.0 is the
34:03
specification I'm not sure if 1.0 is the
34:03
specification I'm not sure if 1.0 is the latest one however it's based on cloud
34:05
latest one however it's based on cloud
34:05
latest one however it's based on cloud events and guarantee at least once
34:10
events and guarantee at least once
34:10
events and guarantee at least once delivery
34:12
delivery
34:12
delivery okay meaning that the message is going
34:15
okay meaning that the message is going
34:15
okay meaning that the message is going to be
34:17
to be
34:17
to be delivered at least once just as the name
34:22
delivered at least once just as the name
34:22
delivered at least once just as the name implies
34:23
implies
34:23
implies right so with Dapper that's the design
34:27
right so with Dapper that's the design
34:27
right so with Dapper that's the design pattern okay that's the design pattern
34:30
pattern okay that's the design pattern
34:30
pattern okay that's the design pattern you can do this like with many different
34:33
you can do this like with many different
34:33
you can do this like with many different ways in many different ways or with many
34:35
ways in many different ways or with many
34:35
ways in many different ways or with many different
34:36
different
34:36
different Technologies this is not a Dapper thing
34:39
Technologies this is not a Dapper thing
34:39
Technologies this is not a Dapper thing this is just a design pattern okay
34:42
this is just a design pattern okay
34:42
this is just a design pattern okay however the building block allows you to
34:44
however the building block allows you to
34:44
however the building block allows you to do this in a super easy
34:48
do this in a super easy
34:48
do this in a super easy way so service a the one that publishes
34:53
way so service a the one that publishes
34:53
way so service a the one that publishes the
34:54
the
34:54
the message right is going to use the side
34:57
message right is going to use the side
34:57
message right is going to use the side side car and the side car is the one
35:00
side car and the side car is the one
35:00
side car and the side car is the one that is going to publish the
35:02
that is going to publish the
35:02
that is going to publish the message and the interested services that
35:06
message and the interested services that
35:06
message and the interested services that are in on the right side of the
35:08
are in on the right side of the
35:08
are in on the right side of the screen they use their
35:11
screen they use their
35:11
screen they use their sidecar instance as well so you can see
35:14
sidecar instance as well so you can see
35:14
sidecar instance as well so you can see that here on the screen right so the
35:17
that here on the screen right so the
35:17
that here on the screen right so the side cars
35:19
side cars
35:19
side cars friends the side cars are the ones that
35:23
friends the side cars are the ones that
35:23
friends the side cars are the ones that are publishing and subscribing to those
35:25
are publishing and subscribing to those
35:25
are publishing and subscribing to those messages
35:28
messages
35:28
messages so you don't have to do anything else
35:31
so you don't have to do anything else
35:31
so you don't have to do anything else meaning of course you're using the
35:33
meaning of course you're using the
35:33
meaning of course you're using the dopper side car and hopefully you're
35:35
dopper side car and hopefully you're
35:35
dopper side car and hopefully you're using the SDK for your programming
35:39
using the SDK for your programming
35:39
using the SDK for your programming language and that is it you don't need
35:43
language and that is it you don't need
35:43
language and that is it you don't need to worry about this
35:45
to worry about this
35:45
to worry about this middleware okay you don't need to worry
35:48
middleware okay you don't need to worry
35:48
middleware okay you don't need to worry about connecting to reddish and how do I
35:50
about connecting to reddish and how do I
35:50
about connecting to reddish and how do I connect to rabit
35:51
connect to rabit
35:51
connect to rabit mq or or how do I connect to Asher
35:55
mq or or how do I connect to Asher
35:55
mq or or how do I connect to Asher service
35:56
service
35:56
service boss and those kind of War uh you know
35:59
boss and those kind of War uh you know
35:59
boss and those kind of War uh you know those kind of uh things that we need to
36:01
those kind of uh things that we need to
36:01
those kind of uh things that we need to do if you were to use the concrete SDK
36:06
do if you were to use the concrete SDK
36:06
do if you were to use the concrete SDK of those middleware
36:08
of those middleware
36:08
of those middleware components so as you can see here and as
36:11
components so as you can see here and as
36:11
components so as you can see here and as you can
36:13
you can
36:14
you can hear this is abstracting away the
36:18
hear this is abstracting away the
36:18
hear this is abstracting away the difficulty of connecting to that
36:20
difficulty of connecting to that
36:20
difficulty of connecting to that middleware which is fascinating this is
36:24
middleware which is fascinating this is
36:24
middleware which is fascinating this is fantastic that's why Pops up is the
36:26
fantastic that's why Pops up is the
36:26
fantastic that's why Pops up is the first building block that I always like
36:28
first building block that I always like
36:28
first building block that I always like to explain because when you see this is
36:34
to explain because when you see this is
36:34
to explain because when you see this is like you
36:35
like you
36:35
like you know uh is an eye openening
36:40
know uh is an eye openening
36:40
know uh is an eye openening explanation of dapper right of its uh
36:46
explanation of dapper right of its uh
36:46
explanation of dapper right of its uh helpfulness
36:48
helpfulness
36:48
helpfulness um and you know all the things related
36:51
um and you know all the things related
36:51
um and you know all the things related to daer are fascinating anyway pops up
36:54
to daer are fascinating anyway pops up
36:55
to daer are fascinating anyway pops up this is the way let's go back to the
36:58
this is the way let's go back to the
36:58
this is the way let's go back to the dopper application but if before I do
37:01
dopper application but if before I do
37:01
dopper application but if before I do this just take into account that the
37:04
this just take into account that the
37:04
this just take into account that the dopper side carard exposes some apis as
37:07
dopper side carard exposes some apis as
37:07
dopper side carard exposes some apis as I mentioned
37:08
I mentioned
37:08
I mentioned before and related to pops up we have a
37:12
before and related to pops up we have a
37:12
before and related to pops up we have a couple of end points publish And
37:15
couple of end points publish And
37:15
couple of end points publish And subscribe of course it that thing
37:19
subscribe of course it that thing
37:19
subscribe of course it that thing matters if you're going to you know use
37:22
matters if you're going to you know use
37:22
matters if you're going to you know use Postman or curl or you want to use your
37:25
Postman or curl or you want to use your
37:25
Postman or curl or you want to use your HTTP client object directly
37:28
HTTP client object directly
37:28
HTTP client object directly for communicating to the dopper side
37:31
for communicating to the dopper side
37:31
for communicating to the dopper side carar and use the pop up building block
37:34
carar and use the pop up building block
37:34
carar and use the pop up building block itself
37:35
itself
37:35
itself directly right but of course in this
37:38
directly right but of course in this
37:39
directly right but of course in this application that we have here we're not
37:41
application that we have here we're not
37:41
application that we have here we're not worrying about that we're just using the
37:44
worrying about that we're just using the
37:44
worrying about that we're just using the dopper client which is fascinating and
37:47
dopper client which is fascinating and
37:47
dopper client which is fascinating and this is a quite easy thing to do right
37:50
this is a quite easy thing to do right
37:50
this is a quite easy thing to do right Dipper client and check this out publish
37:55
Dipper client and check this out publish
37:55
Dipper client and check this out publish event right so publish
37:58
event right so publish
37:58
event right so publish amand there's a couple of options here
38:02
amand there's a couple of options here
38:02
amand there's a couple of options here and you can see that this is an a um a
38:06
and you can see that this is an a um a
38:06
and you can see that this is an a um a generic version so we need a let's do
38:10
generic version so we need a let's do
38:10
generic version so we need a let's do this public
38:11
this public
38:11
this public record sale right in ID or go say ID and
38:18
record sale right in ID or go say ID and
38:18
record sale right in ID or go say ID and uh I don't know decimal
38:23
uh I don't know decimal
38:23
uh I don't know decimal amount and I don't know
38:28
amount and I don't know
38:28
amount and I don't know let's see if I can get this right let's
38:32
let's see if I can get this right let's
38:32
let's see if I can get this right let's create another one public record
38:34
create another one public record
38:34
create another one public record product uh in the string
38:38
product uh in the string
38:38
product uh in the string name and I have I don't know a numerable
38:42
name and I have I don't know a numerable
38:42
name and I have I don't know a numerable of
38:43
of
38:43
of product and I want this to be the list
38:46
product and I want this to be the list
38:46
product and I want this to be the list of
38:48
products products just like this okay so
38:53
products products just like this okay so
38:54
products products just like this okay so let me publish an event that that says
38:58
let me publish an event that that says
38:58
let me publish an event that that says hey we have a sale the total amount is
39:00
hey we have a sale the total amount is
39:00
hey we have a sale the total amount is this and the products are the following
39:04
this and the products are the following
39:04
this and the products are the following okay I I can actually it doesn't matter
39:07
okay I I can actually it doesn't matter
39:07
okay I I can actually it doesn't matter if I use product at the end of the day I
39:09
if I use product at the end of the day I
39:09
if I use product at the end of the day I can use high numeral of of int with the
39:13
can use high numeral of of int with the
39:13
can use high numeral of of int with the ID and you get the drill right so it
39:16
ID and you get the drill right so it
39:16
ID and you get the drill right so it doesn't matter I don't want to waste
39:17
doesn't matter I don't want to waste
39:17
doesn't matter I don't want to waste time modeling those classes it doesn't
39:20
time modeling those classes it doesn't
39:20
time modeling those classes it doesn't matter what matters is publish event and
39:23
matter what matters is publish event and
39:23
matter what matters is publish event and then sale I'm using this generic version
39:28
then sale I'm using this generic version
39:28
then sale I'm using this generic version and then check this out I need to
39:30
and then check this out I need to
39:30
and then check this out I need to specify the pops up name component so
39:34
specify the pops up name component so
39:34
specify the pops up name component so here's a question from a
39:36
here's a question from a
39:36
here's a question from a tool can you say the Dapper is another
39:39
tool can you say the Dapper is another
39:39
tool can you say the Dapper is another end service boss or mass
39:42
end service boss or mass
39:42
end service boss or mass transit well no actually daer is larger
39:45
transit well no actually daer is larger
39:45
transit well no actually daer is larger than that I'm just showing you today at
39:49
than that I'm just showing you today at
39:49
than that I'm just showing you today at one building block one of many many many
39:54
one building block one of many many many
39:54
one building block one of many many many many many things that Dapper has that is
39:57
many many things that Dapper has that is
39:57
many many things that Dapper has that is actually the thing about Dapper is like
40:00
actually the thing about Dapper is like
40:00
actually the thing about Dapper is like a buffet I strongly suggest you watch
40:03
a buffet I strongly suggest you watch
40:03
a buffet I strongly suggest you watch the first
40:05
the first
40:05
the first session where I explain some of the
40:08
session where I explain some of the
40:08
session where I explain some of the building
40:10
building
40:10
building blocks
40:12
blocks
40:12
blocks right uh let me go back here to the
40:15
right uh let me go back here to the
40:15
right uh let me go back here to the material
40:17
material
40:17
material and so I'm just today I'm just
40:21
and so I'm just today I'm just
40:21
and so I'm just today I'm just explaining this one publish And
40:23
explaining this one publish And
40:23
explaining this one publish And subscribe so that's why it's not that
40:26
subscribe so that's why it's not that
40:26
subscribe so that's why it's not that uper is another ser and service BS or
40:28
uper is another ser and service BS or
40:28
uper is another ser and service BS or mass transit no no no no no you can see
40:31
mass transit no no no no no you can see
40:31
mass transit no no no no no you can see that this there's a buffet of things and
40:34
that this there's a buffet of things and
40:34
that this there's a buffet of things and components for creating distributed
40:38
components for creating distributed
40:38
components for creating distributed applications okay I'm just showing you
40:40
applications okay I'm just showing you
40:40
applications okay I'm just showing you one part today that's why daer is larger
40:44
one part today that's why daer is larger
40:44
one part today that's why daer is larger than those Technologies which are those
40:47
than those Technologies which are those
40:47
than those Technologies which are those are fantastic don't don't get me wrong
40:49
are fantastic don't don't get me wrong
40:49
are fantastic don't don't get me wrong okay however it's a it's a the service
40:53
okay however it's a it's a the service
40:53
okay however it's a it's a the service if we just compare Dapper to an um you
40:56
if we just compare Dapper to an um you
40:56
if we just compare Dapper to an um you know a
40:57
know a
40:57
know a a message broker it's not like that it's
41:00
a message broker it's not like that it's
41:00
a message broker it's not like that it's larger anyway I hopefully uh answered
41:04
larger anyway I hopefully uh answered
41:04
larger anyway I hopefully uh answered your question so check this out Friends
41:07
your question so check this out Friends
41:07
your question so check this out Friends Pop Up name this is the name of the
41:10
Pop Up name this is the name of the
41:10
Pop Up name this is the name of the component what in the world is this so
41:14
component what in the world is this so
41:14
component what in the world is this so we can go ahead check this out okay
41:18
we can go ahead check this out okay
41:18
we can go ahead check this out okay remember that we installed the CLI and
41:22
remember that we installed the CLI and
41:22
remember that we installed the CLI and then we initialize dopper so I can go to
41:25
then we initialize dopper so I can go to
41:25
then we initialize dopper so I can go to my home folder and then do do
41:28
my home folder and then do do
41:28
my home folder and then do do in here inside components I can go ahead
41:31
in here inside components I can go ahead
41:31
in here inside components I can go ahead and show you a couple of
41:34
and show you a couple of
41:34
and show you a couple of components that are configured by
41:38
components that are configured by
41:38
components that are configured by default when you initialize Apper such
41:41
default when you initialize Apper such
41:41
default when you initialize Apper such as the pops up and the state Thor of
41:43
as the pops up and the state Thor of
41:43
as the pops up and the state Thor of course today this is the one that I'm
41:46
course today this is the one that I'm
41:46
course today this is the one that I'm just showing you today okay let me show
41:50
just showing you today okay let me show
41:50
just showing you today okay let me show you pop sub
41:52
you pop sub
41:52
you pop sub jaml so this is a Jamal
41:55
jaml so this is a Jamal
41:55
jaml so this is a Jamal file and the the name you can see that
41:58
file and the the name you can see that
41:58
file and the the name you can see that in the metadata attribute in this
42:00
in the metadata attribute in this
42:00
in the metadata attribute in this element right
42:02
element right
42:02
element right metadata the name is
42:05
metadata the name is
42:05
metadata the name is popof okay that's the default name
42:08
popof okay that's the default name
42:08
popof okay that's the default name however it can the name can change you
42:10
however it can the name can change you
42:10
however it can the name can change you can do you can name it as whatever you
42:13
can do you can name it as whatever you
42:13
can do you can name it as whatever you like it could be Batman or Spiderman
42:18
like it could be Batman or Spiderman
42:18
like it could be Batman or Spiderman okay that could be quite strange but
42:21
okay that could be quite strange but
42:21
okay that could be quite strange but actually you can do that okay the name
42:24
actually you can do that okay the name
42:24
actually you can do that okay the name this one that is inside the metadata is
42:26
this one that is inside the metadata is
42:26
this one that is inside the metadata is the one that we need to specify here
42:30
the one that we need to specify here
42:30
the one that we need to specify here pops up that's the component that's the
42:33
pops up that's the component that's the
42:33
pops up that's the component that's the you're telling the dopper it's okay hey
42:35
you're telling the dopper it's okay hey
42:35
you're telling the dopper it's okay hey you know what dopper client I want to
42:38
you know what dopper client I want to
42:38
you know what dopper client I want to use that component the name is
42:40
use that component the name is
42:40
use that component the name is popop
42:42
popop
42:42
popop okay
42:44
okay
42:44
okay then topic
42:46
then topic
42:46
then topic name so if you happen to have experience
42:51
name so if you happen to have experience
42:51
name so if you happen to have experience using message Brokers you know that are
42:54
using message Brokers you know that are
42:55
using message Brokers you know that are some there's the topic topic right
42:58
some there's the topic topic right
42:58
some there's the topic topic right Topic's topic and it means that it's
43:01
Topic's topic and it means that it's
43:01
Topic's topic and it means that it's like a sh channel right is the topic
43:04
like a sh channel right is the topic
43:04
like a sh channel right is the topic name that's a um uh message broker kind
43:10
name that's a um uh message broker kind
43:10
name that's a um uh message broker kind of a topic anyway no pun intended the
43:14
of a topic anyway no pun intended the
43:15
of a topic anyway no pun intended the thing is that we need to specify the
43:16
thing is that we need to specify the
43:16
thing is that we need to specify the topic here so for instance let's say
43:19
topic here so for instance let's say
43:19
topic here so for instance let's say sales or sales information or whatever
43:24
sales or sales information or whatever
43:24
sales or sales information or whatever folds your boat it doesn't matter it's
43:26
folds your boat it doesn't matter it's
43:26
folds your boat it doesn't matter it's just the name of the
43:27
just the name of the
43:27
just the name of the topic what's cool here is that you don't
43:31
topic what's cool here is that you don't
43:31
topic what's cool here is that you don't need to worry about
43:33
need to worry about
43:33
need to worry about that so you can see that I I haven't uh
43:37
that so you can see that I I haven't uh
43:37
that so you can see that I I haven't uh mentioned anything
43:38
mentioned anything
43:38
mentioned anything about mass transit or rabit mq or Asher
43:42
about mass transit or rabit mq or Asher
43:42
about mass transit or rabit mq or Asher service balls or anything I'm just
43:46
service balls or anything I'm just
43:46
service balls or anything I'm just programming against this
43:49
programming against this
43:49
programming against this abstraction that's the fascinating thing
43:51
abstraction that's the fascinating thing
43:51
abstraction that's the fascinating thing about
43:52
about
43:53
about Dapper okay topic name and then of
43:57
Dapper okay topic name and then of
43:57
Dapper okay topic name and then of course the
43:58
course the
43:58
course the data I don't know of course I want to
44:01
data I don't know of course I want to
44:01
data I don't know of course I want to use a post or something HTTP
44:05
use a post or something HTTP
44:05
use a post or something HTTP post and data I don't know should I ask
44:10
post and data I don't know should I ask
44:10
post and data I don't know should I ask for a sale
44:12
for a sale
44:12
for a sale here
44:14
here
44:14
here right just like this anyway let's use
44:17
right just like this anyway let's use
44:17
right just like this anyway let's use int let's forget about the product
44:20
int let's forget about the product
44:20
int let's forget about the product record I don't want to be distracted
44:23
record I don't want to be distracted
44:23
record I don't want to be distracted with that I just want to use sale that
44:26
with that I just want to use sale that
44:26
with that I just want to use sale that comes from the body right and then await
44:30
comes from the body right and then await
44:30
comes from the body right and then await I'm going to await this and return okay
44:34
I'm going to await this and return okay
44:34
I'm going to await this and return okay of course I'm just programming against
44:36
of course I'm just programming against
44:36
of course I'm just programming against this happy path but bear with me this is
44:40
this happy path but bear with me this is
44:40
this happy path but bear with me this is a I'm just receiving the payload and
44:43
a I'm just receiving the payload and
44:43
a I'm just receiving the payload and then I'm using that for sending the
44:45
then I'm using that for sending the
44:45
then I'm using that for sending the message to the
44:48
message to the
44:48
message to the um uh to the dopper client object and
44:50
um uh to the dopper client object and
44:50
um uh to the dopper client object and then it's going to publish the event and
44:53
then it's going to publish the event and
44:53
then it's going to publish the event and this other application that I'm going to
44:55
this other application that I'm going to
44:55
this other application that I'm going to create right away is going to receive
44:57
create right away is going to receive
44:57
create right away is going to receive the message right so sale and I think
45:01
the message right so sale and I think
45:01
the message right so sale and I think that is it I need to pass the
45:03
that is it I need to pass the
45:03
that is it I need to pass the cancellation token however I'm not going
45:05
cancellation token however I'm not going
45:05
cancellation token however I'm not going to do that
45:06
to do that
45:06
to do that today um I'm just programming against
45:10
today um I'm just programming against
45:10
today um I'm just programming against this um or using this happy
45:13
this um or using this happy
45:13
this um or using this happy path okay cool this is it I'm just
45:17
path okay cool this is it I'm just
45:17
path okay cool this is it I'm just sending the the message okay on in line
45:20
sending the the message okay on in line
45:21
sending the the message okay on in line number
45:22
number
45:22
number 13 DPAC so I need to set a weekly
45:25
13 DPAC so I need to set a weekly
45:25
13 DPAC so I need to set a weekly reminder for this show yes my friend
45:28
reminder for this show yes my friend
45:28
reminder for this show yes my friend that is right you are
45:31
that is right you are
45:31
that is right you are correct each
45:33
correct each
45:33
correct each Monday for the following months we're
45:36
Monday for the following months we're
45:36
Monday for the following months we're going to see Dapper in action that this
45:38
going to see Dapper in action that this
45:38
going to see Dapper in action that this is the show this is the this is the way
45:41
is the show this is the this is the way
45:41
is the show this is the this is the way this is the way my friend
45:44
this is the way my friend
45:44
this is the way my friend anyway okay uh my service a it's done
45:48
anyway okay uh my service a it's done
45:48
anyway okay uh my service a it's done now we need to create another
45:50
now we need to create another
45:50
now we need to create another application right
45:53
application right
45:53
application right for receiving the
45:55
for receiving the
45:55
for receiving the message so let's go ahead and do that
45:59
message so let's go ahead and do that
45:59
message so let's go ahead and do that let me go back here theer in
46:03
let me go back here theer in
46:03
let me go back here theer in action and let's do the following
46:07
action and let's do the following
46:07
action and let's do the following um soet
46:11
um soet
46:11
um soet new web API my service B let's use
46:17
controllers and
46:19
controllers and
46:19
controllers and let's add the nuget package to service
46:24
let's add the nuget package to service
46:24
let's add the nuget package to service B my service B and then and net add
46:29
B my service B and then and net add
46:29
B my service B and then and net add package D speet core and you know what
46:32
package D speet core and you know what
46:32
package D speet core and you know what let me
46:34
let me
46:34
let me create uh
46:36
create uh
46:36
create uh solution let's name it
46:40
solution let's name it
46:40
solution let's name it poab and Net Solution add my service a
46:45
poab and Net Solution add my service a
46:45
poab and Net Solution add my service a and my service
46:46
and my service
46:46
and my service B and that is it and my service a let me
46:52
B and that is it and my service a let me
46:52
B and that is it and my service a let me remove the solution my service a
46:55
remove the solution my service a
46:55
remove the solution my service a solution
46:57
solution
46:57
solution um this is just for you know cleaning a
47:01
um this is just for you know cleaning a
47:01
um this is just for you know cleaning a little
47:02
little
47:02
little bit um so I have the solution I have a
47:06
bit um so I have the solution I have a
47:06
bit um so I have the solution I have a couple of projects and now I'm ready to
47:09
couple of projects and now I'm ready to
47:09
couple of projects and now I'm ready to open
47:10
open
47:11
open up uh Visual Studio code
47:14
up uh Visual Studio code
47:14
up uh Visual Studio code again so I have my service
47:16
again so I have my service
47:16
again so I have my service B I have
47:19
B I have
47:19
B I have the nuget package reference and then add
47:23
the nuget package reference and then add
47:23
the nuget package reference and then add controllers. ader adop
47:28
controllers. ader adop
47:28
controllers. ader adop ER let me go here my service B net
47:35
build just like this okay cool add
47:39
build just like this okay cool add
47:39
build just like this okay cool add dopper and now check this out
47:42
dopper and now check this out
47:42
dopper and now check this out friends when you're
47:45
friends when you're
47:45
friends when you're receiving
47:47
receiving
47:47
receiving okay in other words in this kind of
47:52
okay in other words in this kind of
47:52
okay in other words in this kind of services the ones that are on the right
47:55
services the ones that are on the right
47:55
services the ones that are on the right side of the screen you need to specify a
47:58
side of the screen you need to specify a
47:58
side of the screen you need to specify a couple of uh you need to invoke a couple
48:01
couple of uh you need to invoke a couple
48:01
couple of uh you need to invoke a couple of methods the first one is use cloud
48:07
of methods the first one is use cloud
48:07
of methods the first one is use cloud events okay so remember that the pops up
48:11
events okay so remember that the pops up
48:11
events okay so remember that the pops up component is build is u based on the
48:13
component is build is u based on the
48:13
component is build is u based on the cloud events specification so use um
48:17
cloud events specification so use um
48:17
cloud events specification so use um Cloud
48:18
Cloud
48:18
Cloud events that's the
48:21
events that's the
48:21
events that's the name
48:23
name
48:23
name and I think that is it
48:27
and I think that is it
48:27
and I think that is it build let me see if this is compiling
48:31
build let me see if this is compiling
48:31
build let me see if this is compiling successfully okay and H let me go ahead
48:36
successfully okay and H let me go ahead
48:36
successfully okay and H let me go ahead and use this other one which is uh let
48:40
and use this other one which is uh let
48:40
and use this other one which is uh let me go back to my notes
48:42
me go back to my notes
48:42
me go back to my notes because I'm
48:45
because I'm
48:45
because I'm sorry
48:48
sorry
48:48
sorry so and this other one is uh what's the
48:52
so and this other one is uh what's the
48:52
so and this other one is uh what's the name I need to what's happening with the
48:56
name I need to what's happening with the
48:56
name I need to what's happening with the Intel
48:57
Intel
48:57
Intel sense this is giving me the CPS pop up
49:02
sense this is giving me the CPS pop up
49:02
sense this is giving me the CPS pop up solution let me go ahead and open up
49:05
solution let me go ahead and open up
49:05
solution let me go ahead and open up this
49:06
this
49:06
this um Visual Studio instance I don't know
49:10
um Visual Studio instance I don't know
49:10
um Visual Studio instance I don't know what's going on with my
49:13
what's going on with my
49:13
what's going on with my um intelligence
49:16
um intelligence
49:16
um intelligence today anyway the uh method that I want
49:20
today anyway the uh method that I want
49:20
today anyway the uh method that I want to execute this map subscribe
49:23
to execute this map subscribe
49:23
to execute this map subscribe Handler however there's no intelligence
49:26
Handler however there's no intelligence
49:26
Handler however there's no intelligence at all and sadly this opened the preview
49:31
at all and sadly this opened the preview
49:31
at all and sadly this opened the preview version of Visual Studio anyway let me
49:34
version of Visual Studio anyway let me
49:34
version of Visual Studio anyway let me go back to visual studio code and see if
49:37
go back to visual studio code and see if
49:37
go back to visual studio code and see if this new instance has the intelligence
49:42
this new instance has the intelligence
49:42
this new instance has the intelligence that I'm looking
49:44
that I'm looking
49:44
that I'm looking for map subscribe
49:48
Handler I don't know what's going on
49:50
Handler I don't know what's going on
49:50
Handler I don't know what's going on here anyway you need to use use cloud
49:53
here anyway you need to use use cloud
49:53
here anyway you need to use use cloud events and map subscribe CL Handler so
49:56
events and map subscribe CL Handler so
49:56
events and map subscribe CL Handler so use cloud events is for telling this
49:58
use cloud events is for telling this
49:58
use cloud events is for telling this application that you want to use the
49:59
application that you want to use the
49:59
application that you want to use the pops up um building
50:01
pops up um building
50:01
pops up um building block as the receiving part of the
50:05
block as the receiving part of the
50:05
block as the receiving part of the design pattern and map subscribe Handler
50:10
design pattern and map subscribe Handler
50:10
design pattern and map subscribe Handler is for the
50:11
is for the
50:11
is for the following let's say that we have this
50:14
following let's say that we have this
50:14
following let's say that we have this other controller that's that is I know I
50:17
other controller that's that is I know I
50:17
other controller that's that is I know I I don't know
50:19
I don't know
50:20
I don't know um uh let's see products
50:24
um uh let's see products
50:24
um uh let's see products controller okay products
50:27
controller okay products
50:27
controller okay products controller
50:29
controller
50:29
controller and let me go ahead and delete this
50:32
and let me go ahead and delete this
50:32
and let me go ahead and delete this other file and
50:35
other file and
50:35
other file and rename this to products
50:38
rename this to products
50:38
rename this to products controller products
50:41
controller products
50:41
controller products controller and let's inject dopper
50:44
controller and let's inject dopper
50:44
controller and let's inject dopper client you can see that this is
50:46
client you can see that this is
50:46
client you can see that this is not intelligence is not working for me I
50:49
not intelligence is not working for me I
50:49
not intelligence is not working for me I don't know why
50:53
don't know why
50:53
don't know why anyway check this
50:55
anyway check this
50:55
anyway check this out let let's
50:59
create um
51:02
create um
51:02
create um on
51:04
on
51:04
on sale or something right on
51:09
sale or something right on
51:09
sale or something right on sale and I want to use this following
51:13
sale and I want to use this following
51:13
sale and I want to use this following attribute remember that I'm building the
51:17
attribute remember that I'm building the
51:17
attribute remember that I'm building the receiving part of this solution I'm
51:20
receiving part of this solution I'm
51:20
receiving part of this solution I'm publishing the
51:21
publishing the
51:21
publishing the event now I need the receiving part uh
51:25
event now I need the receiving part uh
51:25
event now I need the receiving part uh of this solution
51:27
of this solution
51:27
of this solution so it looks like there's something wrong
51:30
so it looks like there's something wrong
51:30
so it looks like there's something wrong with my intelligence it doesn't matter
51:33
with my intelligence it doesn't matter
51:33
with my intelligence it doesn't matter let me go ahead
51:37
and yes I need the topic name you might
51:42
and yes I need the topic name you might
51:42
and yes I need the topic name you might remember the topic name that I used
51:45
remember the topic name that I used
51:45
remember the topic name that I used before anyway let's do the following
51:48
before anyway let's do the following
51:48
before anyway let's do the following because intelligence is like U kind of
51:51
because intelligence is like U kind of
51:51
because intelligence is like U kind of crazy right now it doesn't
51:54
crazy right now it doesn't
51:54
crazy right now it doesn't matter I'm creating the receiving part I
51:58
matter I'm creating the receiving part I
51:58
matter I'm creating the receiving part I created already the publishing part so
52:02
created already the publishing part so
52:02
created already the publishing part so let's go ahead actually and here to my
52:05
let's go ahead actually and here to my
52:05
let's go ahead actually and here to my service a and let me show you how to run
52:10
service a and let me show you how to run
52:10
service a and let me show you how to run this remember how to run the side car
52:14
this remember how to run the side car
52:14
this remember how to run the side car and then app
52:17
and then app
52:17
and then app ID okay app ID let's say service
52:22
ID okay app ID let's say service
52:22
ID okay app ID let's say service a and then the dopper a HTTP Port let's
52:29
a and then the dopper a HTTP Port let's
52:29
a and then the dopper a HTTP Port let's say
52:30
say
52:30
say 50,000 and app
52:34
50,000 and app
52:34
50,000 and app Port let's say 5,000 just like I showed
52:38
Port let's say 5,000 just like I showed
52:38
Port let's say 5,000 just like I showed you in the PowerPoint
52:41
you in the PowerPoint
52:41
you in the PowerPoint slides right so the
52:44
slides right so the
52:44
slides right so the separator comes
52:46
separator comes
52:46
separator comes next and this is the
52:49
next and this is the
52:49
next and this is the place where you specify the up specific
52:53
place where you specify the up specific
52:53
place where you specify the up specific commands and instructions such as net
52:57
commands and instructions such as net
52:57
commands and instructions such as net Ron and then URLs
53:01
Ron and then URLs
53:01
Ron and then URLs HTTP and let's say that I want to use
53:04
HTTP and let's say that I want to use
53:05
HTTP and let's say that I want to use port
53:06
port
53:06
port 5,000
53:08
5,000
53:08
5,000 right because otherwise you need to you
53:11
right because otherwise you need to you
53:11
right because otherwise you need to you need to map the port where your
53:15
need to map the port where your
53:15
need to map the port where your application is running on and use that
53:18
application is running on and use that
53:18
application is running on and use that accordingly for instance if I use doet
53:21
accordingly for instance if I use doet
53:21
accordingly for instance if I use doet run this is just for running this
53:23
run this is just for running this
53:23
run this is just for running this application
53:24
application
53:24
application right this is going to run in this
53:28
right this is going to run in this
53:28
right this is going to run in this random randomly created in assign Port
53:32
random randomly created in assign Port
53:32
random randomly created in assign Port which is
53:34
which is
53:34
which is 5158 so in this case I had to be sure
53:39
5158 so in this case I had to be sure
53:39
5158 so in this case I had to be sure that uh when I specify this
53:44
that uh when I specify this
53:44
that uh when I specify this command that I I it disappeared D Ron
53:48
command that I I it disappeared D Ron
53:48
command that I I it disappeared D Ron upid remember
53:52
upid remember
53:52
upid remember apport this is the one that I'm
53:54
apport this is the one that I'm
53:54
apport this is the one that I'm referring to apport then I had to use
53:59
referring to apport then I had to use
53:59
referring to apport then I had to use 5158 however that's a hassle I don't
54:02
5158 however that's a hassle I don't
54:02
5158 however that's a hassle I don't want you know I don't want to be
54:04
want you know I don't want to be
54:04
want you know I don't want to be managing and be worried about those
54:07
managing and be worried about those
54:07
managing and be worried about those randomly created and assigned ports
54:10
randomly created and assigned ports
54:10
randomly created and assigned ports that's why I'm just specifying hey you
54:12
that's why I'm just specifying hey you
54:12
that's why I'm just specifying hey you know what I'm sure this application is
54:14
know what I'm sure this application is
54:14
know what I'm sure this application is going to run on Port
54:17
going to run on Port
54:17
going to run on Port 5000 and theupper HTTP Port is going to
54:20
5000 and theupper HTTP Port is going to
54:20
5000 and theupper HTTP Port is going to be
54:21
be
54:21
be 50,000 and
54:24
50,000 and
54:24
50,000 and netron netron and and URLs and this is
54:29
netron netron and and URLs and this is
54:29
netron netron and and URLs and this is going to use port
54:31
going to use port
54:31
going to use port 5,000 okay so let me execute this
54:37
5,000 okay so let me execute this
54:37
5,000 okay so let me execute this right and this is telling me
54:40
right and this is telling me
54:40
right and this is telling me something uh fail to buy an address to
54:43
something uh fail to buy an address to
54:43
something uh fail to buy an address to 5,000 address already in use okay it
54:46
5,000 address already in use okay it
54:46
5,000 address already in use okay it looks like uh Port 5000 is
54:49
looks like uh Port 5000 is
54:49
looks like uh Port 5000 is somehow um is being used by something in
54:53
somehow um is being used by something in
54:53
somehow um is being used by something in my
54:54
my
54:54
my computer I'm just just want to use
54:57
computer I'm just just want to use
54:57
computer I'm just just want to use another different port and I'm I'm
54:59
another different port and I'm I'm
54:59
another different port and I'm I'm changing the let's try this again I'm
55:02
changing the let's try this again I'm
55:02
changing the let's try this again I'm sorry I'll port five 50 no
55:06
sorry I'll port five 50 no
55:06
sorry I'll port five 50 no 5,4 500 5500 Z and this as
55:12
5,4 500 5500 Z and this as
55:12
5,4 500 5500 Z and this as well okay finally this is
55:16
well okay finally this is
55:16
well okay finally this is running okay this is
55:20
running okay this is
55:20
running okay this is running right in in this new Port nearly
55:24
running right in in this new Port nearly
55:24
running right in in this new Port nearly assigned Port now I can go ahead and
55:28
assigned Port now I can go ahead and
55:28
assigned Port now I can go ahead and let's say that I want to use
55:32
poeman or let
55:36
me go ahead and use Curl what happens
55:41
me go ahead and use Curl what happens
55:41
me go ahead and use Curl what happens with my
55:42
with my
55:42
with my Postman
55:45
instance
55:47
instance
55:47
instance so
55:50
so
55:50
so J oh no this is asking me
55:54
J oh no this is asking me
55:54
J oh no this is asking me for um authen
55:58
ation bear with me friends okay anyway
56:02
ation bear with me friends okay anyway
56:02
ation bear with me friends okay anyway it looks like Postman is going to be
56:04
it looks like Postman is going to be
56:05
it looks like Postman is going to be tough with me today sign out and in this
56:09
tough with me today sign out and in this
56:09
tough with me today sign out and in this other
56:12
monitor anyway I'm just gonna close poan
56:15
monitor anyway I'm just gonna close poan
56:15
monitor anyway I'm just gonna close poan because it looks like it's gonna it's
56:17
because it looks like it's gonna it's
56:17
because it looks like it's gonna it's behaving
56:19
behaving
56:19
behaving quite uh strange in this moment but
56:23
quite uh strange in this moment but
56:23
quite uh strange in this moment but don't worry I can go ahead and use Curl
56:26
don't worry I can go ahead and use Curl
56:26
don't worry I can go ahead and use Curl right right and I can use Curl in this
56:30
right right and I can use Curl in this
56:30
right right and I can use Curl in this case I want to pass the header of the
56:34
case I want to pass the header of the
56:34
case I want to pass the header of the application that I want to execute in
56:36
application that I want to execute in
56:36
application that I want to execute in this case is going to be Dapper and then
56:40
this case is going to be Dapper and then
56:40
this case is going to be Dapper and then I think it's Dapper Dash app- ID and
56:45
I think it's Dapper Dash app- ID and
56:45
I think it's Dapper Dash app- ID and then service a service a that's the name
56:48
then service a service a that's the name
56:48
then service a service a that's the name of of the
56:49
of of the
56:49
of of the application and then I want to pass some
56:53
application and then I want to pass some
56:53
application and then I want to pass some kind of uh payload however I I don't
56:55
kind of uh payload however I I don't
56:55
kind of uh payload however I I don't remember the syntax of using for curl
56:59
remember the syntax of using for curl
57:00
remember the syntax of using for curl let me go and try posan
57:04
let me go and try posan
57:04
let me go and try posan again because I want to send the
57:08
again because I want to send the
57:08
again because I want to send the message
57:12
okay okay it's looks looking
57:16
okay okay it's looks looking
57:16
okay okay it's looks looking good looking good in this other
57:19
good looking good in this other
57:19
good looking good in this other monitor bear with
57:23
me it looks like
57:27
me it looks like
57:27
me it looks like I signed out somehow in the previous
57:32
I signed out somehow in the previous
57:32
I signed out somehow in the previous days
57:34
days
57:34
days and create a new
57:37
and create a new
57:37
and create a new workspace is
57:39
workspace is
57:39
workspace is this is this going to work I believe so
57:43
this is this going to work I believe so
57:43
this is this going to work I believe so right anyway HTTP and then Local Host
57:47
right anyway HTTP and then Local Host
57:47
right anyway HTTP and then Local Host and then
57:49
and then
57:49
and then 5500 and I think that is it no no no
57:53
5500 and I think that is it no no no
57:53
5500 and I think that is it no no no sales remember sales and then raw
57:59
sales remember sales and then raw
57:59
sales remember sales and then raw Json and I can pass the
58:03
Json and I can pass the
58:03
Json and I can pass the payload let's go back here to dopper in
58:07
payload let's go back here to dopper in
58:07
payload let's go back here to dopper in action my service
58:12
a so
58:15
a so
58:15
a so here I have a good let's change this
58:21
here I have a good let's change this
58:21
here I have a good let's change this to an
58:23
to an
58:23
to an INT I don't want to have have um some
58:27
INT I don't want to have have um some
58:27
INT I don't want to have have um some problems with this right now bear with
58:30
problems with this right now bear with
58:30
problems with this right now bear with me just an ID and an amount it doesn't
58:33
me just an ID and an amount it doesn't
58:33
me just an ID and an amount it doesn't matter right let's go back
58:37
matter right let's go back
58:37
matter right let's go back here doet build with those
58:41
here doet build with those
58:41
here doet build with those changes okay and let's try to execute
58:45
changes okay and let's try to execute
58:45
changes okay and let's try to execute this again this is going to run
58:49
this again this is going to run
58:49
this again this is going to run okay and let's go ahead and
58:54
okay and let's go ahead and
58:54
okay and let's go ahead and pass you know the is going to
58:57
pass you know the is going to
58:57
pass you know the is going to be one and amount is going to be I don't
59:03
know
59:05
know
59:05
know 500 or whatever right so I just want
59:10
500 or whatever right so I just want
59:10
500 or whatever right so I just want this to be sent to the endpoint right
59:16
this to be sent to the endpoint right
59:16
this to be sent to the endpoint right and
59:17
and
59:17
and now the message was
59:19
now the message was
59:19
now the message was sent okay in other
59:24
sent okay in other
59:24
sent okay in other words this of this um endpoint was
59:28
words this of this um endpoint was
59:28
words this of this um endpoint was reached by that uh request I'm receiving
59:31
reached by that uh request I'm receiving
59:31
reached by that uh request I'm receiving the sale and I'm publishing the vent to
59:34
the sale and I'm publishing the vent to
59:34
the sale and I'm publishing the vent to this particular component and to this
59:37
this particular component and to this
59:37
this particular component and to this particular
59:39
particular
59:39
particular topic
59:41
topic
59:41
topic now
59:43
now
59:43
now remember we
59:45
remember we
59:45
remember we have
59:47
have
59:47
have this do
59:50
this do
59:50
this do dopper and inside components we have the
59:57
pops
59:59
pops
59:59
pops up component configured and you can see
1:00:02
up component configured and you can see
1:00:02
up component configured and you can see that this is using uh container that is
1:00:06
that this is using uh container that is
1:00:06
that this is using uh container that is running on Port
1:00:08
running on Port
1:00:08
running on Port 6379 this is using
1:00:10
6379 this is using
1:00:10
6379 this is using redis that's why redis was downloaded I
1:00:14
redis that's why redis was downloaded I
1:00:14
redis that's why redis was downloaded I mean the container image was downloaded
1:00:17
mean the container image was downloaded
1:00:17
mean the container image was downloaded and redis is running in my computer as a
1:00:19
and redis is running in my computer as a
1:00:19
and redis is running in my computer as a doer container okay
1:00:23
doer container okay
1:00:23
doer container okay so let me see if I can use radius
1:00:27
so let me see if I can use radius
1:00:27
so let me see if I can use radius Commander which is a fantastic tool
1:00:31
Commander which is a fantastic tool
1:00:31
Commander which is a fantastic tool for inspecting your R uh your radius
1:00:35
for inspecting your R uh your radius
1:00:35
for inspecting your R uh your radius instances so you can see that it worked
1:00:40
instances so you can see that it worked
1:00:40
instances so you can see that it worked correctly right it created the sales
1:00:44
correctly right it created the sales
1:00:44
correctly right it created the sales topic right created the sales topic and
1:00:50
topic right created the sales topic and
1:00:50
topic right created the sales topic and the message is right here inside radius
1:00:54
the message is right here inside radius
1:00:54
the message is right here inside radius can you see this
1:00:56
can you see this
1:00:56
can you see this this is
1:00:58
this is
1:00:59
this is fantastic I I'm not using redis directly
1:01:02
fantastic I I'm not using redis directly
1:01:02
fantastic I I'm not using redis directly in my net application I'm just using the
1:01:05
in my net application I'm just using the
1:01:06
in my net application I'm just using the Dapper client
1:01:07
Dapper client
1:01:07
Dapper client object and since the Dapper I mean the
1:01:11
object and since the Dapper I mean the
1:01:11
object and since the Dapper I mean the pop building block is configured for
1:01:14
pop building block is configured for
1:01:14
pop building block is configured for using
1:01:16
using
1:01:16
using redis that's why it's using redis
1:01:19
redis that's why it's using redis
1:01:19
redis that's why it's using redis however if I
1:01:20
however if I
1:01:20
however if I changed the pops up. jaml file and say
1:01:24
changed the pops up. jaml file and say
1:01:24
changed the pops up. jaml file and say that I want to use uh another message
1:01:27
that I want to use uh another message
1:01:27
that I want to use uh another message broker such as rabit Q or mass transit
1:01:31
broker such as rabit Q or mass transit
1:01:31
broker such as rabit Q or mass transit or or
1:01:33
or or
1:01:33
or or something then the application is going
1:01:35
something then the application is going
1:01:35
something then the application is going to use this other platform this other
1:01:38
to use this other platform this other
1:01:38
to use this other platform this other technology without me requiring me you
1:01:41
technology without me requiring me you
1:01:41
technology without me requiring me you know without me changing the code that's
1:01:44
know without me changing the code that's
1:01:44
know without me changing the code that's not required the code and the
1:01:46
not required the code and the
1:01:46
not required the code and the application is
1:01:47
application is
1:01:47
application is gonna the code is the same it doesn't
1:01:50
gonna the code is the same it doesn't
1:01:50
gonna the code is the same it doesn't change that's why daer is fascinating
1:01:53
change that's why daer is fascinating
1:01:53
change that's why daer is fascinating here
1:01:56
here
1:01:56
here and in the interest of
1:01:58
and in the interest of
1:01:58
and in the interest of time so I think that is it I don't know
1:02:04
time so I think that is it I don't know
1:02:04
time so I think that is it I don't know what's going on with my uh
1:02:07
what's going on with my uh
1:02:07
what's going on with my uh intelligence anyway if I execute this
1:02:10
intelligence anyway if I execute this
1:02:10
intelligence anyway if I execute this other service and you decorate your one
1:02:16
other service and you decorate your one
1:02:16
other service and you decorate your one of the methods one of the public methods
1:02:19
of the methods one of the public methods
1:02:19
of the methods one of the public methods here and you do
1:02:22
here and you do
1:02:22
here and you do this then then you can use the sale
1:02:27
this then then you can use the sale
1:02:28
this then then you can use the sale message uh in this particular code of
1:02:31
message uh in this particular code of
1:02:31
message uh in this particular code of course there's a problem here the
1:02:34
course there's a problem here the
1:02:34
course there's a problem here the problem is that sale is specified here
1:02:39
problem is that sale is specified here
1:02:39
problem is that sale is specified here in this other uh
1:02:43
in this other uh
1:02:43
in this other uh project and you know repeating code is
1:02:47
project and you know repeating code is
1:02:47
project and you know repeating code is fine or I can go ahead and create a new
1:02:50
fine or I can go ahead and create a new
1:02:50
fine or I can go ahead and create a new class library and reference that class
1:02:53
class library and reference that class
1:02:53
class library and reference that class library from service a and service B and
1:02:56
library from service a and service B and
1:02:56
library from service a and service B and have those
1:02:57
have those
1:02:57
have those models um be implemented in the class
1:03:01
models um be implemented in the class
1:03:01
models um be implemented in the class Library anyway I can do this and then I
1:03:04
Library anyway I can do this and then I
1:03:04
Library anyway I can do this and then I can go ahead and return sale do amount
1:03:08
can go ahead and return sale do amount
1:03:08
can go ahead and return sale do amount or something something like this
1:03:12
or something something like this
1:03:12
or something something like this received
1:03:15
received
1:03:15
received and something like this
1:03:19
and something like this
1:03:19
and something like this okay this is giv me the CPS since we're
1:03:23
okay this is giv me the CPS since we're
1:03:23
okay this is giv me the CPS since we're already late and
1:03:27
already late and
1:03:27
already late and intellisense is not working
1:03:30
intellisense is not working
1:03:30
intellisense is not working so um anyway I think I'm going
1:03:34
so um anyway I think I'm going
1:03:34
so um anyway I think I'm going to not even using Dapper nothing is
1:03:37
to not even using Dapper nothing is
1:03:37
to not even using Dapper nothing is working in this
1:03:39
working in this
1:03:39
working in this um in this instance however I think that
1:03:42
um in this instance however I think that
1:03:42
um in this instance however I think that is because I'm using visual studio code
1:03:46
is because I'm using visual studio code
1:03:46
is because I'm using visual studio code anyway this is the this is it in the
1:03:49
anyway this is the this is it in the
1:03:49
anyway this is the this is it in the next session I'm going to show you this
1:03:52
next session I'm going to show you this
1:03:52
next session I'm going to show you this last code for receiving the message
1:03:55
last code for receiving the message
1:03:55
last code for receiving the message however we can easily see that we're
1:03:58
however we can easily see that we're
1:03:58
however we can easily see that we're communicating successfully to RIS by
1:04:01
communicating successfully to RIS by
1:04:01
communicating successfully to RIS by using this building
1:04:02
using this building
1:04:03
using this building block and in the next session we're
1:04:06
block and in the next session we're
1:04:06
block and in the next session we're going to see that last part and we're
1:04:07
going to see that last part and we're
1:04:08
going to see that last part and we're going to see another building block and
1:04:10
going to see another building block and
1:04:10
going to see another building block and I think we're ready
1:04:11
I think we're ready
1:04:11
I think we're ready to um continue speaking about the
1:04:15
to um continue speaking about the
1:04:15
to um continue speaking about the different building blocks that topper
1:04:18
different building blocks that topper
1:04:18
different building blocks that topper has okay
1:04:20
has okay
1:04:20
has okay cool let's go back to the
1:04:23
cool let's go back to the
1:04:23
cool let's go back to the presentation and let's end this
1:04:27
presentation and let's end this
1:04:27
presentation and let's end this session right away I'm your host
1:04:31
session right away I'm your host
1:04:31
session right away I'm your host Rodrigo and thank you for watching and
1:04:34
Rodrigo and thank you for watching and
1:04:34
Rodrigo and thank you for watching and see you in the next session
1:04:37
see you in the next session
1:04:37
see you in the next session [Music]
#Computers & Electronics