Audioburst Search

Functional Web Programming using SAFE with Anthony Brown

Automatic TRANSCRIPT

Hey, Richard, your body, our friend. Troy hunt seems to be everywhere lately. No kidding security breaches, keep happening. And have. I been pony is busier than ever and now Troy headlining to special in DC security shows. That's right. The folks that make the NBC conferences in Oslo London and Sydney are making two new shows one on the Gold Coast, April twenty ninth to may first and the other in New York City may thirteenth to fourteenth. Hey, that's my backyard. Well, the focus of both shows is security, of course, on the Gold Coast. There are workshops by Troy hunt and Scott helm, plus a one day conference and the New York there are two workshops one by Troy and the other by our friend Brock Allen. So if you want to up your security game in Australia, go to NBC security dot com dot EDU to register. And if New York is more, your speed, go to Indy security, NYC dot com, and tell them Carlin Richardson you. Welcome back the dot net. Rocks. Carl Franklin had this Richard Campbell. Still in London. It's march. In London wrong. Whenever leaving we like it here. It's not true toward more than one show in a day. Yeah. Recorded for today. Three yesterday four tomorrow. That's why we're still here. That's yup. Yep. Looking forward to dinner tomorrow night. We're going to a place in SoHo called Zalman meets what did they sell their? I was taking their for lunch a few days ago, and was just blown away gonna love it, buddy. Hey, it'll be great. I'm sure all right. Let's roll the crazy music for better. No framework. Aren't you got this is a web application framework called ASPCA boilerplate? Okay. A strong infrastructure for modern web applications, and so basically, it's based on DVD layers. Okay. So you've got a presentation layer and application layer domain layer in an infrastructure there. And it's it's quite complete. I was I'm surprised they had never heard of this. But apparently the peanut team loves it and have been I guess it's been around for about five or six years. Wow. There's how do we not heard about it? I don't know. Yeah. It's kind of amazing. So I just found out about this. I don't know too much about it. But everybody seems to love it. And where we been sorry guys. Go check it out ASPCA, boilerplate dot com and good luck. Awesome. Yeah. So he's talking to us Richard grab common for show. Fifteen ninety though what we did on with Dan chambers. Back in October two thousand eighteen we're we're talking down at NBC, Sydney. Yeah. We talked about coding functionally abusing both f sharp and Haskell, right? Sort of talk with the relationship between the two, and you know, you can perfectly capable of building services and Lasko, right? No big deal. So great great conversation. And this comment comes from per Erik Stendal whose longtime listener comments from him. And he said did I just listen to an entire episode of it, sharp and Haskell didn't hear the word at a single time. That's not right. Like Mon you feel better. Okay. I've played around a little with f sharp, and it has some cool features. I missing see sharp like pipes and discriminated unions. It also uncool features like requiring everything to be declared before us in alphabetical order, and the support is a bit wonky for some object oriented in dot net type in for instance. Cool, but it turns intelligence, and do I don't know what is this nonsense. And I can't remember the API's I worked with last week. Although I can still recite some API's that I used in my twenties. Thanks for that brain. I like functional programming, but it's not for everyone. A creative functional programmer can easily right up some very terse code with many tiny layers of obstructions making you wish longingly for those see programs there simple pointers to arrays of pointers. Yeah. It's nice. It turns code that. You could write you just can't read it. He's like what was I think it seen as sometimes been called a write only? There you go. I once wrote a small fees in JavaScript today angular that was five lines of code where each line return to function or a promise that returned to function. It was short to the point. And absolutely marvelous. But I realized it was also one percent debugged proof. If it didn't work. There was nothing. You were going to be able to about it. Right. No one would understand. How it worked including me one week later. It was beautiful. But the stereotypes I called it Mona Lisa. Doing here. Yeah. I've had that experience. Why just think it's one of the interesting parts of programming too? It's like that readability of code and being able to recall intent so forth. It doesn't matter. What styles? What techniques any of these languages? You really do have to simply think in terms of someday you're going to have to look at this again step one, don't call. Your variables. A the. Took it by j Mona Lisa do that. And. Yeah. But tersest not. I mean, turns us could also be clarity. Yeah. And I think it's part of the challenge of it. But I will dig into the some more with Anthony in a minute so per thank you so much for your common a copy of music, oh, by on its way to you. And if you'd like a copy means dako- by write a comment on the website at Don, rox dot com, or via any of the social media, although we actually only publish shows now to Facebook, and he could comment there. And we read it on the show. We'll send you a copy to cope by indefinitely. Follow us on Twitter. He's at rich Campbell. I'm at Carl Franklin and sentenced to tweet. And that's enough of that. Just say that'd be quite enough of that. Now, I love tweet. Now. I love British sensibility language, just like the way they say things can just mean so much day, sir. Dace? Okay. Let's bring on Anthony Brown. Again, Anthony is a consultant at compositional IT where he helps companies understand the benefits of functional programming dot net. And how it can be applied to the cloud. Welcome back. Anthony, thank you on again. Rich Paul ears. It hasn't been a couple of years. Yeah. That happens time goes by. Yeah. Yeah. Eve we last time we talked you were talking about building. A search engines in Asia, which I thought was very cool. How did you end up with a functional part of the side of the world? Like what happened to you? So a few years ago, I was at my local user down in Southampton and one of the Okinawa. Is that had been to the progressive Shulte tutorials in London? And I'd Sutton. During one of the sessions that it was all Zing and throughout the entire thing. It was just sat there. My light thought. It'd be like full lines of F shot. We could totally governable that that could be rarely show it shop and I decided one day like. It'd be nice. If I could save my fingers have to type so I started giving up and go I'm just fell in love with language, and since then it's been like trying to use it as much as possible and two years ago. Creighton search engines Nash off and now through to full web ups show up as well. Very cool. Do you feel there's anything you can't do not right now? I'm sure they'll be something. So far, I've not anything on. That's why that's why you have two languages, right? I mean, you do everything you can inept sharpen whatever you can't. Or don't wanna do you do and C sharp, right exactly at some places shops. Great fit some places see shops much benefit. It's certainly not searching conversation. You were talking about the structure of f sharp really lends itself to that kind of work. Yeah. Yeah. You know, it's sort of a very structured very progressive flow through you're actually needing to do a lot of very step oriented cone night. And when you token things like search engines, which used by millions of people worldwide, you want it to be able to scale up nice and quite clearly nice and easily. I'm when you've got things like immutability, it makes it a lot lot easier. So let's talk about safe stack. I know that this is I just took a cursory look at it. And it's an end to end functional. I stack for cloud ready web development that emphasizes type safe programming and it uses f sharp, right? Yes. Yes. So that's a lot of words on the website that say we want to make it as easy as possible for people to write that web applications, regardless of whether they run and Tyler. Salt. So we want to make it easy to not only use Shulte right in the back end on yourself. But you wanna make it easy to do at shop directly in the browser. And even like Idi Matic f show in the browser whole. We'll just put that on Ackerman it. So if you're just a C sharp developer, not Inuda f sharp would this be a really good way? To learn sharp because you are putting it into practical use right away. Yeah. Yeah. Within the Scheldt. Well, there's been a lot of resources the like how you go from hell how you get to. Hello hellawell. Right. Yeah. But beyond that, there's not been as many fully featured right bro to scale projects. How do I write a service? How do I write these handler rest service, whatever? Yeah. So with the safe stacks that makes it a lot easier. This things like dot net templates as well. So you can just do dot net new safe and within a couple of. Winds you've got a full and Hello worlds, basically working at that point. Exactly on the web. Yes. Yeah. Awesome. Now. I mean, let's start with the server side because I bet the clients is going to be the whole show. I think everybody's pretty comfortable with with f sharp on the server as a service caller. But in terms of this is working with I asked like what's the sort of back in peace? Look like so the s in safe stuns, full satin. So Saturn is a configuration library that sits on top of this framework library type thing cold giraffe. So typically, if you're writing your web applications ISP don't net you'd have like you'll thing controller which inherits from some of MVSA control right in show, though. That's not the way we want to build everything from functions and compose everything together using what my crazy operators to some people. But once you get the hang that you start to get used to it. And so that's what giraffe provides that and then satin nicely. They'll come figuration layer on top to remove a lot of the. The potential pain points that you might have if you're coming into it from sociale poll known show. Well, okay. And I'm just looking at the docks here, but it's an MVP framework to so-so abstractions for dealing with like if you go objects within your database, and you wanna do crit up rations on them. It uses f shop specific features to make that as easy as possible is. Yeah. And I got imagined. Some of those great things that funk functional is good at like searching is going to be a heck of a lot easier. There must be templates for a lot of that stuff too. Yeah. Yeah. I mean, Saxon itself has got a really great ecosystem surrounding it. Yeah. There's a lot of additional plug ins for can with other open source, libraries, so detracts us, and because it's all written enough shop you can use all the show up towing as well. That makes that stuff so much easier. You can use things like tight providers. So you get you'll right configuring. From your database, and you get all those types for oil, database, tables automatically world dot everything. Exactly. When it when we when we first proposed the idea, let's do a show around this. The first thing that hit me was his felt like Phoenix from the Erling world. It's like here. It's you've got this functional space and things a little bit different. And so it's good to sort of put together a kit and says, all right? So you want to build a website here all the bits? Yeah. Relationship there satin, which was Kristof sees likes, and I have probably said his name completely wrong. And I'm very sorry to him. If that is the case, but a lot of inspiration four satin came from Phoenix and the Alexa style of development. So there might be some overlap in the way things with them. But since it's just the abstraction way if you don't quite like that abstract. You can always just drop down to the giraffe layer and do everything in the mole, functional style is wife. Nice. So the s in safe is Saturn. What's the so the that's either as you'll or AWS? It depends who you us. Great. But it sort of intended for cloud then. Yeah. But is it required? You could run this on Prem. I gotta imagine. Yeah. You can run this entirely on premise within the safe template. We've actually got like a deployment option. So you can say how do I want to deploy this and you go a few options there's either non a toll. So I'll bring that in myself as you'll so does things like generate Oli zeal resource manager templates the built scripts interact with as your aid as well. So you can deploy locally from y'all machine straight into zeal without having to do all that way them wonderful setup within as your date at new applications? There's also things like Dhaka deployment. So if you set it up with the DACA deployment, and it'll generate all the DACA files, you need publish all up into a dot com. Tena and in the past few days, we've actually seen somebody. Google cloud platform support. Nice. Nice uber. Nettie is everywhere. Exactly. Yeah. Yeah. It's beautiful. It's just like I took a few days near we are running Akkad cater to well. That means it'd be turning means also another on premises solution that painful to do. So this is your project installed a few years ago. We saw a look to the way we were right from web applications, and we went and talked to feel the people in the world, and they were writing them in similar ways using similar tools. I'm we said, well, why not let's sit down together and try and pool resources gather and make like a really nice end to end experience as well. Full people who are the new to F show or already gotten that shopping experience, but want to embrace like modern web, application development, and it's great. So have we exhausted everything on the server side? What's the F? I was just going to mention one more thing. It's not. All right. So great thing about the drafts. Are the things is because it's SP don't that coal under the hood. You can still use the entire ESPN on that coal ecosystem that already exists that. So you can use it wherever you can run as paid on that coach is just about everywhere. Exactly. Yeah. Pretty much everywhere. Okay. And the out the eight and safe that's element. So. Stop making what weird name. Fable elm ish. We're just running out of nouns. This is the problem. We're just chaining letters together. But you know, what I mean, if you think about it from an English language point of view, some of these name crazy names that people make up are actually if there aren't words they will be words in the. All right more now. Right L mish. What is L mish? So L mish is L like so. The album program. The architecture of the L muses with this model view update under the hood L mich- is a library that allows you to do that and shop as well. So there's things like an Elmer's wrecked. If you want to do it within a web browser. One of the things that dumbs been working on recently as well as out fine. Don saw him. Yes. The sharp guy the guy one of the things that working on is L mish. Full Zamaran foams applications is interesting because he's over in the same routine. These days isn't he he is. Yeah, you know, what? I just now I feel a little elm ish. I think you get a cream for that. I think. Wow. All right. I started get what's going on here on the back end. Right. Very declared. If peace pipe piece bunch services saying being at the end just writing enough sharp. Do you containers you do it in Azure services wherever you want? Right. That we won't people to use it wherever they want to use it. And where even quite. Kathleen, saying you don't have to use everything, you know, if you just wanna use her a fable, and how much front-end gopher if you're gonna go your type script, you Java script you album, whatever and your front end, they as I saw the scf combat. Nice way to approach the back end problem, but I would presume the client side is Jarvis ripped. The client side is Java script, Jerry, but we use fable to compile our f- shot coat down into Jones trans piler right there in lies the F. It's like, you're using the transpiring effects. So technically, you're coding and f sharp it's just landing as JavaScript, exactly. So fable is this incredible f sharp to Java scrip- transplant and under the hood that oh use bagel as well. People tell me about bagel. So we can take this rarely like impressive f Shaw stay handed over to bible asked I'll abstract abstract syntax tree to describe what I thought is actually looking like we pass over Tobepal, and because bibles already been used for hundreds of projects before I was sure okay. Now, I remember able we did like Mabel fish, right? Although I I would say babble, but. Okay. All right. So that's does the transplanting Java script, and it makes sense because Java script is functional right? Yes. Yes. So the translation shouldn't be that difficult and because it's using bible onto the hud's. It's targeting whatever browsers bible can bite writing need to go through and create a million one different ways of handling how to add in reference browsers at six or ES five. Yeah. All those problems. I get it. Fable foul bagel babble. There you go. Get it fable. All right foam is another one. I see in here with former F U L AMA so full following the trend of change in the first letter of project to s comes from bona, which is kind of like if you use bootstrap where you with all these classes to build up a template somebody's poll to that across from Santa s into F shop. So you end up with this obstruction way, you'll using eggshell? Functions to build up hitched him, which is already you'll see us s classes on. So you guys stop at nothing. I mean, anything we went so cool. We won't get type safety everywhere. Yeah. Nice. Sure. If it fails at compile time, it's the best time to find your how the end result is you can build a world class web application with four lines of apps. Sharp coke a no-show require that level. Maybe the. The four long Khabar little. Do that for for offshore give me fine and everything. We're all fine. I'm impressed. All right. So what does the coating cycle? Look like, that's like the impressive thing. I think a lot of people have contributed to safe and the job script and backhand side of things. Typically, you know, when you writing some coda, you'll type some code, and then he liked the hit depot of press five or whatever you might a few bright points wait for it to load hits there. And then you go. Okay. That's why that's a problem James outline. And then you go through the whole thing again with us having like dot net co now, which is got older dot net. Watch things built-in if and because on the front end, where entirely integrated within web pack as well. We can use the plug ins that web pack office the things like ho- module reloading and live reload as well. Okay. So the typical process for a lot of developers enough show now is to just stall. You'll belt script running on then just hack away, you'll changes. So anytime, you make a change is just going to reload application state, and you can just make really attractive changes every time you just get a browser opening a refreshing change, it'd be a and because of the way the L mish works. It's got some really nice features allow us to basically just change the bits of the application that have changed without actually changing the state of the location. So are you telling me, I'm amid filling in a form. I see a flaw. I go and make a change the code hot update. Refresh the page form data stays intact. Keep going exactly that. So let's say you're filling those home, and you decide actually this failed wants to be capitalized out in the information. You go back and Joe code might change to capitalize this failed. Go back into a web application, it's reloaded. But it's not reloaded the state, right? So you're exactly what you. Before any changes you now make a role based on the new codes this running right with attacks that type of that text box. Now pop to hopper case depends on how you implement intentionally. Just thinking that big a great demo. We should change this. Look, it's already fixed. Okay. Let's. So yeah, it's it's another flavor of sort of edit and continue the just yeah. You're in such a short cycle that you don't mind just tinkering. Yes. It's really nice. When you just want to like how on a bit of a solution. You've got an idea of how it's gonna work. Sure. But you don't quite have that picture in your head yet. So you just make a change does that look right yet. Now. No, I need to make the change. And it's really quick process to just say what would happen if I did this right rather than I hope this is right because it's so hard at each iteration is so costly. Yeah. So co-chairing seamlessly share app sharp between client and server. So you do create domain models that exist and the client and server, I get that. Because you can right. You don't have to write Java scrip-. So you don't have to write your models twice, which is nice. But without having to worry about Syria serialisation. So in other words, that's all hidden from you. So when you think about things like Jason civilization with a show specific types that don't really map onto objects within Jason when you go things like discrimination's unions way, you're saying this is a bait. Alcee right. It doesn't have like a class hierarchy that you could easily say realize right into Jason. So there's been quite a few. Jason realizes inevitably is what people tried to get really nice experience in the and so we've embraced that fully Umbro in the best possible solutions full Jason the ordeal. So it's a case of just going. I need this thing on my client and this thing ever on. They can send it backwards and forwards without too, much difficulty and the end you don't really have to explicitly do serialisation DC realization. It just sort of happens. Yeah. Exactly. That's crazy. With the library. That's used for Jason seralized Asian. You can either choose to do everything Ulta magically and say, I want you to info what's best for me. Or if you dealing with some really oakwood Jason somebody's managed to hack it around a bed and do something that doesn't quite look. Right. You can create your own like Jason and code decoders, libraries. Well, every time we talk to a guest about f sharp. I'm like yet this time I'm going to get in there. Good. And then I never do that Karl but still it is a hurdle to jump over here about the way we've talked about this four about sharp procedure developers. Just as the way that you think in C sharp of the that sort of object mindset, you could make it work enough sharp, but it's not good f sharp code. Yeah. Yeah. I mean, this is a case of just knowing how to read it. Yeah. I mean coming back to the star of the show that was the comment all you can really easily write code NFL. But you might not necessarily understand what it's doing lighter. Yeah. Yeah. I'm the exact same with Seychelle now. Oh, I can look at some say shelf and go, okay. I think I know what that's doing. But it's not like immediately Elvis Churton. So with a short low for me. It's like I can start to say the code and go, okay. I know exactly what you're doing. So does feel like you get your brain calibrated into sort of function? Channel mode and various functional languages of which sharp is only one are more relatable than the object oriented, strongly typed. In heritage type languages like c sharpen and their ilk. Almost wonder if we can only hold one style and ahead of the time, I kind of think of it like actual alphabets. Hoffa relic, Latin alphabet. Yeah. Yeah. It's really easy for me to read English based languages. Yes. But I'm currently Leming a non Latin alphabet language and just the jump between two is. I remember somebody in Bulgaria writing out an address for me in cyrillic. And I so I have it and about half to hold it up to the street sense. They are these the same symbols because my mind is not generalized the symbolic easy of Searle. Ick L characters. Yeah. Yeah. Exactly that that reminds me we go into a packed up tomorrow. But I love that that correlation that soon as I change the alphabet things in front of me different. I think functionally you just think differently. So I really wonder if you just can't I maybe somebody can be good at multiple that. We're all good at it. I mean, it's just another abstraction. Right. It's like learning no music notation or your learning a programming language for the first time like like C sharp, for example, or see you have to learn the operators. You have to learn all that stuff. It's completely doable. But you're right. It's going to take some time for it to sink in. But once like any other abstract model once you get those things down you do it a bit. You just become good at it. I think it's the case of similiarity as well that C show knowledge from when I was working on C shawl in the back of my mind somewhat. Yeah. So I'm sure if I did sit down and think how do I do good seashell p- it just to get him back. But I've got to spend that time looking into it. We've also had the conversation with folks are saying like you can write quite functional. See sharp nut is default behavior. But if you're thinking functionally C, sharp doesn't necessarily block you it doesn't blow Q, but it doesn't make it easy. Yeah. It's a case of you could spend all this time trying to write functional show. Yeah. The end of the day. You just going to end up in a lot of pain feel self everybody else who come in and read anything. I think it's one of the reasons I appreciate about purse particular comment was this whole, hey, legibility matters. But that doesn't mean you should write fad functional code because you think it's more legible think people thinking functionally will find functional code legible. And you you obviously can pass delegates around in actions and all that stuff, but you have to construct them, and they have to be based on the interface that you're doing it. It's not just there. Yeah. Hey, guys, hold that thought for just a moment while we pause for this very important message. This episode of dot net. Rocks is brought to you by data dog a monitoring and analytics platform combining infrastructure monitoring application performance monitoring and log management into a one stop. Shop. Data dog helps leading companies migrate to the cloud. Transform to a micro services architecture and transitioned from dot net dot net. Core they're distributed tracing and APM provide end to end visibility into requests wherever they go across hosts. Containers and service boundaries. See for yourself started fourteen day free trial in data dog will send you a free t shirt. Visit DD dot dot net. Rocks dot com to get started. All right. And we're back. It's dot net. Rocks. I'm Carl Franklin that's Richard Campbell. And that's Anthony Brown. We're talking safe stack functional web programming dot net. In man. This looks really cool. We talked about the service side, we talked a little bit about the client side and moving data and code between. You know, the the co-chairing one haven't we talked about that's just read ridiculously cool. So I think the great thing about safe is because we've now got list end to end story of his everything you need to make a great at Shaw web up. It's meant that we've been able to put together a lot more really interesting samples as well. Because we've now got a front end and the back end were able to put together a full cohesive story of his what makes a great safe up. So once you've done that Hello world in shop console out to Hello world in a safe up. We've got a few examples that take you through to a bit bigger safe apps as well. Have you made north winds for safe? One thing that I want to go back to that. You talked about before was sort of CSS in f sharp. Yeah. And see us is hard enough, man. Now, you're going to put f sharp on top of that. I mean is that make it easier to DCSS if you already know f sharp, you still have to know what you're what object values you setting and all that. Yes. So same wanna say it lets you do CSS enough Scheldt, it's mall. If you imagine like a bootstrap now fall enough Balkan house a whole bunch of items related to it. Right. So we've tried to build those obstructions. So you components rather than your dedicated? An F shelled. I see. So you can still use things like Sacele SAS ask within safe as well. But if you'll not a front end of. Yeah. You've just come from the back end. So I need to get something up and running that looks pretty nice not award-winning. But still looks pretty nice. You can quickly got up and running with Fulmer. And you've got that type safety of Ovalles' thing has to contain this thing be doing this mix and match across components. Right. And that's that's it makes sense is the designer who's gonna come in later and actually style your app that'd be frustrated with how that works. I hope. Whilst we've been doing projects, you know, we still have to do some CSS manily grades. There's always going to be some things that need to look different. Whether it's client looking over your shoulder and saying can that just be like one pixel show? So he's ESPN. ESPN files that you're referencing styles. Yes. Yeah. Exactly. So we've got breaking that model at all. No. Because we use them wet puck at the day just says let me gobble up all these fliers let the thing any client that wants a one pixel shorter is going to be fired. This always somebody always somebody who wants us little tweaks. Right. Can you make that pixel right there yellow, no? No. Away debugging, or of course, it's functional. So there's no heirs of any kind. Steve plug in. Because you're still writing in shop, right? You've still got things like the F shop interactive window. So. Oh, what is this thing? Not working well because we've tried to embrace like fully functional concepts throughout the whole safe pipeline rates front-end and back end wherever it means the functions you'll white the building up all things that taken in value return value, right, which means that if you're in the shop and try to win though, and you just let the thing run it in that. And then run it with a few values. You can sought to say why is this thing? Breaking your wise. This thing not working as I expect. It must have been a Mon add CI Senate going add Mon Adleman will be so much happier. Right. But the other great thing is because we use Fabel fable also generate source maps. Okay. So you can still go and to you'll let browse of choice, but it's chrome five folks. Whatever are the bright point right in your browser and as your application runs any browser. It's going to hit that break point. And you can. See Olea values that currently. So we're stopped. Online f sharp yet actually was executing in JavaScript on INA browser and you're seeing it in sharp, you bugger and with also even included like visual studio code tasks, so too low to Matic they attached the day Bogo onto you'll don't meant coal process that running back in service, and you can use all the vast code debugging in there as nice, that's wild and two languages even matter anymore. When we when I was looking at the whole Owen, it we have a solution for clients is like if you got sharp running and web assembly. That's what I thought too. No, they haven't even to do that just transpiring over to JavaScript and letting it go now what about that? What about web assembly if blazer? Yeah. So there is thing an alternative web framework can I show cold web shelter and they've been working on a web sharper. Bring in. In our web assembly support into this on through the blazer project is not something we've looked at. Yeah. It's a case of the so much to get her fight Fedor that for us the gains of doing stuff and web assembly right now on as great as the gains that we could have by making f- Shaw pike sizable to a lot more people. My typical first project when I get into something new like this and you have to name your first project, and I never name it. Hello. I call it food because that's the noise. It makes when it blows up. Third. Yeah. This is great stuff. So tell me some you were you were talking about the samples in I sort of be reality from that. Tell me about the samples. Yes. So within the safe stack Oganization on get hub. There's this big application called the safe bookstore. Right, which is an application that's designed to show off all manner of things within safe. Okay. So it's got things like authentication in there got integration with Zule scope deployment with Dhaka, and it's a Thathew endpoint. So you can start see how you front end interacts with your background a few different pages and narrows. Well. So you can see how you can build up a biggest spa with fable element. We've also put together this safe DOJ Joe where it's. Nearly empty shell Saif application, and we go through in different stages and add new features. So ultimately, you end up with this project where you give it a UK postcode, and it gives you additional information about so throughout it, you go in at like a map in that you pull data in from an external API using all f shop at hymns. And it's all built the instructions with it as well. So you can just follow through in your own time. I've also given that few user groups now as right, and even people who have no prior exposure to actually up we're able to follow along and understand. What's happened? Great. And there's one of the sample with put out recently, which is called safe such which is a bigger application again similar to the bookstore. But this is Flint graded with the zero side of things. So it includes things like these you'll type provider to give you strongly typed access to all the dates that you've got in zeal storage in blobs and tables, it gives you all integration with zeal searches. Well, using a really nice search DSL code Kubota. I think so there's plenty of big projects that people can look if they want to understand how do I go from Jala wealth to Hello. Enterprise world, right? Yeah. Different security models. We're going to play into that. Yeah. But I think the cloud will take care of a lot of it. I don't know. There's so much need to really worry about in the sharp dare. Yes. So because they using things like as you'll app service under the hood Ryan, we encourage people to use all the security that's provided AD date. Yeah. Exactly. Right. Did any of this? Rely on newer features in f sharp that weren't available before you started working on it. No iverson. That's come about. Is this always been an Scheldt? And the have been some like extra tive improvements to shop since relate into like white space changes that people have picked up as being a source of light minor frustration now right because it doesn't quite fit into absolute exact way that was imagined. You'd be using these features as an example, like the way you define you is in shop tends to be with lists of elements where my laments that I have a list of of children Moloi down. We're which is formatted in one way. There was a change to make it easier to full Mukta. You don't have everything in the exact right place. Now is a bit LUSA with regards to how together. So does that bug? The among you. It doesn't make too much. I know that there's a few people who in then take an exact style really irritates. And that might space. Yeah. Whatever works for you. Yeah. Yeah. Yeah. Cd? Oh, you know, what that is? Right, alphabet, go. Two. Security models when you're over on the WR side, anything special we need to know. I've seen some chatter recently about people trying to integrate with coq NATO, right the debris s managed identity platform. Right. I'm not certain on anything. That's come out that yet. But it's interesting to watch. See what happens is an interesting aspect of if you're gonna switch clouds those platform pieces you care about right? Yeah. Yeah. And security is kind of a difficult one. Because it's so deeply embedded within Europe. It's not a minor thing to try and get right? Yeah. That's really. I mean, I'm sold. What more do we need to know in this? I mean, the important thing is is all open source. Right. So if somebody disagrees with everything I said, hey, if modem Oakham to go and open a pull request gains the way that we do things do you tend to work a visual studio are you with ES code in it with f sharp, so I almost entirely vast code now like the essential is really nice for working with which attention is that that's night. So it's a plug in that enables like eggshell auto complete at shop Intel zones. All these kind of things that you actually want to use. Gno potentially exploring API's that you don't necessarily know. Right. The other cool thing is within the safe template. Once you do dot net. New safe. It's actually the suggested extensions. You should be using visual studio. Like, you're going to want these things being one of them. So if you've never done before, and you install the time plate due dot net. New safe an open invest coat it'll pop up a little bar in the bottom. That says, hey, maybe you want to install these extensions. Nice really is a tool for getting someone into f sharp into web development with sharp. Yeah. And this in this tool stack to yeah. Definitely. Anything special on the CD side like -ccomplish steps any other sort of steps you want in the in the process, it's any different from C sharp. Well, the template generates a full build scripts generates a fake script, which has got either local deployment and building locally. We can do faith build run. An it'll run your thing locally. But also because it's just a fake command line scripts you can ship out into wherever you using. You'll say I system and just run it as your command and do fake, they'll deploy nice. Much else that need experience with. Yeah. The only thing I'm thinking is what I need to lean out the JavaScript or do. I like how bulky is. What's actually being shipped to the client after it's run through the transpires? Yeah. So currently it is a little bit of a launch a bundle size looking a couple of hundred kilobytes, right? That has been say megabytes, man. So I'm okay. We want to get it small, though, sure there's a lot of work being done on the fable side of things and an effort to try and get that down even further been looking at like alternative to react as well, which might help bundle size. Right. So if you're in situation where you've got a bunch of people who might be relying on to g networks. Yeah. There's a lot of different audiences around the world totally in the mobile side damn with late. Get really serious. Yeah. Exactly. So we want to make it as easy as possible for people to those markets, even with Trump. Yeah. Just from the the page ties is styling that's fine. We can strip that out. When the space sizes byproducts of transportation ardor to deal. This is all good news. Anthony, thanks would have we missed. I know. I don't know yet. I think that's about everything from safe. I'm sure somebody's probably going to end up telling me, I'm too. It's completely sold about this thing something sort of reality. But now we got a great list of links here to all the pieces that people want so just start at the safe site. Yep. Exactly safes that don't get up to. Uh-huh. Everything you need is there clued samples. Lori exactly. Thanks again. And we'll see next time on dot net. Rocks. Dot net. Rocks is brought to you by Franklin's net and produced by plop studios. A full service audio video post production facility, located physically in new London, Connecticut. And of course, the cloud online at P W O P dot com. Visit our website at DOT NET, ks dot com for RSS feeds downloads mobile, apps, comments and access to the full archives. Going back to show number one reported in September two thousand two and make sure you check out our sponsors. They keep us in business. Now, go write some code CNN time.

Coming up next