Beginning gRPC with ASP.NET Core 6: Build Applications using ASP.NET Core Razor Pages, Angular, and Best Practices in .NET 6 1st Edition Anthony Giretti download
Beginning gRPC with ASP.NET Core 6: Build Applications using ASP.NET Core Razor Pages, Angular, and Best Practices in .NET 6 1st Edition Anthony Giretti download
https://ebookmeta.com/product/pro-asp-net-core-6-develop-cloud-
ready-web-applications-using-mvc-blazor-and-razor-pages-9th-
edition-adam-freeman/
https://ebookmeta.com/product/asp-net-core-razor-pages-in-
action-1st-edition-mike-brind/
https://ebookmeta.com/product/beginning-database-programming-
using-asp-net-core-3-with-mvc-razor-pages-web-api-jquery-angular-
sql-server-and-nosql-1st-edition-bipin-joshi/
https://ebookmeta.com/product/annual-review-of-gerontology-and-
geriatrics-volume-39-2019-154th-edition-roland-j-thorpe-jr-phd/
The Material Culture of Basketry Practice Skill and
Embodied Knowledge 1st Edition Stephanie Bunn
https://ebookmeta.com/product/the-material-culture-of-basketry-
practice-skill-and-embodied-knowledge-1st-edition-stephanie-bunn/
https://ebookmeta.com/product/mermaid-origin-of-species-heather-
renee/
https://ebookmeta.com/product/a-dead-cousin-jessica-huntinton-
desert-cities-cozy-mystery-05-anna-celeste-burke-et-el/
https://ebookmeta.com/product/spice-of-life-a-cuckolding-
story-1st-edition-casey-brooks/
https://ebookmeta.com/product/the-perfect-crimes-of-marian-hayes-
london-highwaymen-02-cat-sebastian-et-el/
Adorn Where it ALL started Gone with The Rift 1 1st
Edition Jeanette Lynn
https://ebookmeta.com/product/adorn-where-it-all-started-gone-
with-the-rift-1-1st-edition-jeanette-lynn/
Beginning gRPC
with ASP.NET Core 6
Build Applications using ASP.NET
Core Razor Pages, Angular,
and Best Practices in .NET 6
—
Anthony Giretti
Beginning gRPC with
ASP.NET Core 6
Build Applications using ASP.NET
Core Razor Pages, Angular, and Best
Practices in .NET 6
Anthony Giretti
Beginning gRPC with ASP.NET Core 6: Build Applications using ASP.NET Core Razor
Pages, Angular, and Best Practices in .NET 6
Anthony Giretti
La Salle, QC, Canada
iii
Table of Contents
iv
Table of Contents
v
Table of Contents
Chapter 9: Import and Display Data with ASP.NET Core Razor Pages, Hosted
Services, and gRPC����������������������������������������������������������������������������� 299
Scenario Explanation���������������������������������������������������������������������������������������������������������������� 300
Create and Layer the ASP.NET Core gRPC Application�������������������������������������������������������������� 301
Set Up a SQL Server Database and Use Entity Framework Core to Access Data���������������������� 310
Set Up a SQL Server Database�������������������������������������������������������������������������������������������� 310
Using Entity Framework Core to Access Data��������������������������������������������������������������������� 311
Write the Business Logic and Expose the Country gRPC Microservice������������������������������������ 330
Write the Business Logic into the CountryService.BLL Layer���������������������������������������������� 330
Write the Country gRPC Service������������������������������������������������������������������������������������������ 332
Create and Layer the ASP.NET Core Razor Application�������������������������������������������������������������� 341
Create the Application Skeleton������������������������������������������������������������������������������������������ 342
Define Contracts and Domain Objects��������������������������������������������������������������������������������� 343
Implement the Data Access Layer with the gRPC Client����������������������������������������������������� 348
vi
Table of Contents
Chapter 12: Import and Display Data with Angular 12 and gRPC-web���������������� 419
Introduction to SPAs������������������������������������������������������������������������������������������������������������������ 419
Generate TypeScript Stubs with Protoc������������������������������������������������������������������������������������� 421
Download the Correct Version of Protoc and Protobuf Well-Known Types�������������������������� 422
Download the ts-protoc-gen Plug-in����������������������������������������������������������������������������������� 426
Download Improbable’s gRPC-web Library and Google Protobufs Library�������������������������� 426
Executing the Protoc Command������������������������������������������������������������������������������������������ 426
vii
Table of Contents
Index��������������������������������������������������������������������������������������������������������������������� 481
viii
About the Author
Anthony Giretti is a senior lead software developer at OneOcean in Montreal, Canada.
He is a technical leader and four-time Microsoft MVP award recipient. Anthony
specializes in web technologies (17 years’ experience) and .NET. His expertise in
technology and IT, and a heartfelt desire to share his knowledge, motivates him to dive
into and embrace any web project, complex or otherwise, in order to help developers
achieve their project goals. He invites challenges such as performance constraints, high
availability, and optimization with open arms. He is a certified MCSD who is passionate
about his craft and always game for learning new technologies.
ix
About the Technical Reviewer
Fiodar Sazanavets is an experienced full-stack lead software
engineer who mainly works with the Microsoft software
development stack. The main areas of his expertise include
ASP.NET (Framework and Core), SQL Server, Azure, Docker,
Internet of Things (IoT), microservices architecture, and
various front-end technologies.
Fiodar has built his software engineering experience
while working in a variety of industries, including water
engineering, financial, retail, railway, and defense. He has
played a leading role in various projects and, as well as
building software, his duties have included performing architectural and design tasks.
He has also performed a variety of technical duties on clients’ sites, such as in-house
software development and deployment of both software and IoT hardware.
Fiodar is passionate about teaching other people programming skills. He has
published a number of programming courses on various online platforms.
Fiodar regularly writes about software development on his personal website,
https://scientificprogrammer.net. He has also published a number of articles on
other websites.
xi
Acknowledgments
The completion of this book could not have been possible without the participation and
assistance of many people and I would like to express my special thanks to them.
First, thanks to Camille Viot, my boss, for accommodating me so that I could
overcome this immense challenge.
Next, I would like to thank my friend Dave Brock (Madison, Wisconsin) for both
his moral but technical support; he was a great help when I felt overwhelmed by the
magnitude of the task. I also thank him for reviewing my chapters one by one—many
thanks for his contribution! Thanks also to Damien Vande Kerckhove for his technical
support, which allowed me to adjust the shot when I was not going in the right direction.
He was also an essential asset for ensuring this book was able to see the light of day.
I also thank all my family for their unwavering support. Finally, I would like to thank
a special member of my family that I unfortunately lost recently; he was there every night
next to me when I was writing my lines. Thank you, Ulysse, you helped me so much and
kept me company.
xiii
Introduction
Take a new technological turn with gRPC and ASP.NET Core while discovering .NET 6,
the latest release of the Microsoft .NET platform, and C# 10.
gRPC has become more and more famous because of its performance compared to
JSON/XML APIs. In this book, you’ll discover how to develop ASP.NET Core APIs with
the gRPC specification, and gRPC will no longer be mysterious to you.
After you discover how gRPC works, you’ll learn how to use it to build high-
performance web applications with the best development standards. You’ll use gRPC
with various ASP.NET Core 6 project types such as Razor Pages and minimal APIs. You’ll
also discover gRPC-web and the great mix it does with Angular 12.
For Windows Communication Foundation (WCF) developers, you will learn how to
migrate from WCF to gRPC by comparing the similarities and differences between the
two frameworks.
We’ll also explore using gRPC and gRPC-web with OpenId Connect authentication
and authorization to secure your applications.
Let’s go!
xv
PART I
3
© Anthony Giretti 2022
A. Giretti, Beginning gRPC with ASP.NET Core 6, https://doi.org/10.1007/978-1-4842-8008-9_1
Discovering Diverse Content Through
Random Scribd Documents
koriste. Karle heilautti silloin kirveensä sitä kohti ja iski poikki
niskasta nauhan, johon koriste oli kiinnitetty. Isku oli niin voimakas,
että Jomalen pää putosi alas;, siitä syntyi niin suuri rysähdys, että se
oli kaikkien mielestä merkillistä. Karle otti koristeen; sitten he lähtivät
pois. Mutta samalla hetkellä, kun rysähdys oli tapahtunut, tulivat
vartijat aukeamaan ja puhalsivat heti torviinsa. Sitten kuului
torventoitotusta joka taholta. He riensivät metsän rantaan ja
metsään, mutta kuulivat takaa aukeamalta päin huutoa ja melua;
permalaiset olivat tulleet sinne. Tore Hund kulki miehistään
viimeisenä. Kaksi miestä kulki hänen edellään säkkiä kantaen; siinä
oli jotain tuhkan tapaista. Tore otti sitä käteensä ja kylvi sitä
jälkeensä; joskus heitti hän sitä miesten päälle. Niin he tulivat
metsästä niittymaille. He kuulivat permalaisten sotajoukon rientävän
heidän jälkeensä huutaen ja ilkeästi ulvoen. He syöksivät heidän
jälkeensä metsästä ja samoin molemmin puolin heitä; mutta eivät
missään permalaiset tai heidän aseensa tulleet heitä niin lähelle, että
siitä olisi ollut haittaa, ja siitä he päättivät, ett'eivät permalaiset heitä
nähneet. Mutta kun he tulivat laivoille, astuivat Karle ja Gunstein
ensiksi laivaan, sillä he olivat matkalla olleet ensimäisinä, mutta Tore
jäi maihin kauas jälelle. Niinpiankun Karle ja hänen miehensä tulivat
laivaansa, purkivat he teltat, ja irroittivat köydet, joilla laiva, oli
kiinnitetty maihin; sitten nostivat he purjeensa ja laiva eteni nopeasti
merelle.
*****
Makuuteltta oli metsän rinnassa suuren puun alla, joka suojasi sitä
auringolta. Kun Agne kuningas oli vaipunut uneen, otti Skjaalv
paksun nuoran ja kiinnitti sen koristeeseen. Hänen miehensä löivät
samalla teltan kannattimet alas ja nakkasivat nuoran puun oksaan ja
kiskasivat sitten niin, että kuningas jäi riippumaan melkein oksien
tasalle, ja se oli hänen loppunsa.
(Ynglingataru.)
Gunhild ja lappalaiset.
Kun Torolf tarkasti miehiään, eivät Egil eikä hänen miehensä olleet
mukana. Pimeni pimenemistään eikä häntä enää luultu voitavan
löytää.
Egil oli, seuranaan kaksitoista miestä, mennyt toisen metsän läpi.
Pian näkivät he edessään laakeita tasankoja ja asuttuja seutuja.
Vähän matkan päässä oli talo. He riensivät sinne.
Egil käski, että muiden oli tultava hänen jälestään niin, ett'ei
heidän päälleen voitaisi tunkea kaikilta tahoilta. He tekivät niin.
Etumaisena kulki Egil ja sitten muut toinen toistaan niin lähellä, ett'ei
riviä voitu murtaa.
"Talvella oli minun hyvä olla", sanoi hän. "Minulla oli melkein koko
ajan tehtävänä talonpojan karjan hoitaminen, mutta poikani olivat
kovassa orjuudessa ja tyytymättömiä oloonsa. Keväällä teimme
tiukan päätöksen ja juoksimme tiehemme. Meidät saatiin kiinni ja
sitten meidät pantiin tähän hautaan."
"Sinä kai tunnet tarkoin tämän talon?" kysyi Egil. "Mitä tietä me
parhaiten voimme päästä ulos?" Åke sanoi, että siinä vielä oli yksi
lautaseinä.
Oli pilkkosen pimeä. Egilin miehet olivat sitä mieltä, että olisi
riennettävä metsään.
"Koska tuntenet talon, niin näytä meille, missä täällä olisi jotain
ottamista", sanoi Egil Åkelie.
Tämä vastasi, että täällä kyllä oli irtainta tavaraa kuinka paljon
tahansa.
Suuria halkohirsiä oli vedetty sinne ja tuli oli tehty niinkuin maan
tapa oli: hirren toinen pää sytytettiin ja jätettiin palamaan.
Egil tarttui hirteen, meni tuvan luo ja nosti hirren palavan pään
räystään tuoheen. Se syttyi heti palamaan.
Vähän matkaa siitä oli halkopino. Hän pinosi halot tuvan oven
eteen.
Tuli syöpyi pian kattolautoihin.
"Juuri se hoitaa täällä tällä tavalla tulta, jonka eilen illalla olisit
voinut luulla sitä vähimmin tekevän", vastasi Egil. "Eikä sinun tarvitse
pyytää minulta kuumempaa kylyä kuin mitä nyt lämmitän. Saaos
hyvä löyly palkkioksi siitä pehmeästä vuoteesta, jonka tarjosit
minulle ja miehilleni. Olen se sama Egil, jonka kahlehdit ja sidotit
paaluun siinä huoneessa, jonka niin huolellisesti lukitsitte. Minä
palkitsen vastaanottosi niin hyvin kuin olet ansainnut."
— Ei, äiti oli niistä viimeinen. Täällä karsikossa ovat ne nyt kaikki
hyvinä naapureina, mitä lienevät eläissään olleetkin.
— Ja tappelu syntyi?
— Raateleva, verinen tappelu, katkerampi kuin koskaan
kauppakylän rannassa, se riehui nyt aution meriluodon sateenmärillä
kallioilla. Karjalaisista oli monta nukkuessa nujerrettu,
molemmankieliset olivat nyt melkein tasaväkiset ja epätoivon vimma
heitä kannusti. Kumman heimon perujen oli päästävä luodolta
poistumaan? — siitä oli kysymys. Nuo merihädästä pelastuneet,
jotka äsken olivat yhdestä airosta kiskoneet, säilyttääkseen
venheensä ja henkensä ärjyvässä myrskyssä, he nyt iskivät toisiaan
armottomammin kuin koskaan myrsky, ja kun mies kaatui toiselta
puolen, niin jo kellahti toiseltakin. Niin tuhoisasti he hävittivät
toisiaan, että pian oli ainoastaan kolme, neljä miestä kummallakin
puolella pystyssä. Silloin vasta he oivalsivat, että he eivät voita
kumpaisetkaan, vaan hävittävät toisensa niin tyyten, ett'ei kukaan
pääse luodolta hengissä pois, — silloin vasta he väsyivät ja laskivat
alas aseensa ja katselivat kauhulla niitostaan. Silloin tehtiin rauha —
ja kerrottiinpa sen silloinkin tapahtuneen vasta sen naisen ansiosta,
joka Ruotsista ryöstettynä oli karjalaisten venhettä soutanut.