Journey Through Innovation and Integration Challenges
Daryl LaBar
FULL SHOW NOTES
https://podcast.nz365guy.com/593
Ever wondered how a traditional .NET developer transforms into a Power Platform guru? In this episode, we welcome Daryl LaBar, the president of Gap Integrity, who shares his extraordinary journey from working with ASP.NET and C# at a nationwide retailer to becoming a key figure in the Power Platform community. Listen to his personal stories about family adventures and the pivotal moments that led him to Dynamics. Daryl's insights on training and international speaking engagements offer a deep dive into his evolution and dedication to the tech world.
Facing integration challenges in your Power Platform projects? Daryl and I uncover the challenges and innovative solutions in data and CRM systems, including the complexities of data formats and shifting structures. We recount a significant project failure involving a custom Azure database integration and the lessons learned. Discover strategies for managing storage costs, addressing inefficiencies in data tracking, and leveraging virtual tables to maintain system functionality despite storage limits. The discussion emphasizes the importance of reactive problem-solving and utilizing standardized tools to meet unique client needs.
Ready to elevate your professional development? This episode breaks down the advantages of adopting Microsoft's Power Platform for custom development projects. Learn how experienced .NET developers can transition smoothly and achieve rapid productivity gains. We discuss the added value of TypeScript and JavaScript skills, the differences between frontend and backend development, and the opportunities for rapid upskilling, making developers highly employable. Stay current with updates, enjoy the flexibility of Microsoft technologies, and find support through communities like the Level Up Discord channel. Plus, hear my excitement about the rapid growth in business tool development and how it shapes the future of tech.
90 Day Mentoring Challenge10% off code use MBAP at checkout https://ako.nz365guy.com
If you want to get in touch with me, you can message me here on Linkedin.
Thanks for listening 🚀 - Mark Smith
00:01 - Evolution of Power Platform Development
13:41 - Challenges and Solutions in Power Platform
20:58 - Professional Development in Power Platform
32:31 - Benefits of Power Platform Development
37:17 - Rapid Growth of Tool Development
Mark Smith: Welcome to the Power Platform Show. Thanks for joining me today. I hope today's guest inspires and educates you on the possibilities of the Microsoft Power Platform. Now let's get on with the show. Today's guest is from Fishers, indiana in the United States. He is the president of Gap Integrity, highly experienced CRM, xrm, dataverse, power Apps, power Platform developer as well as, of course, a traditional NET developer. He is frequently speaking at events, training conferences worldwide Year long. He's a co-host of the XRM Toolcast podcast. Check out the show notes for links to these, as well as his social media bio, et cetera. Welcome to the show, daryl. Thank you, mark.
Daryl LaBar: Pleasure to be on.
Mark Smith: Good to have you on, mate. It's been a long time since you've been on. The last show that you were on with me was episode 121. I'm about to hit episode while I'm getting into close to the 600s of episodes. So, as you can imagine, that was a very long time ago. I was a green podcaster. It was. I was just a babe, so new, so new to it. Then, just to give us a bit of background before we get cranking food, family fun. What do they mean to you?
Daryl LaBar: So family's number one there, my wife and three kids. They keep me busy, keep me energized, and I'm entering the teenage years now with my son will be 13 this year. My daughter's going to be 15 next month here. So I'm actually heading out to Colorado with my son, my middle son and we're going to go do a manhood trip. We're going to climb Pike's Peak, which is 14,000 feet Divide that by three for those that are in meters but it's way above the tree line, so it'll be very challenging from an oxygen standpoint because I'm at like 600 meters currently. So, yeah, it will be, I'm sorry, no, I'm at like 200 meters currently. Yeah, so yes, it'll be completely different for me.
Mark Smith: So, yes, Wicked, and was it a weekend-long trip type thing planned?
Daryl LaBar: Yes, yep, we leave on Thursday and get back on. Actually we'll get back on late Monday, but, yep, going to go through and explain things that are involved with coming of age. So, yes, an exciting trip.
Mark Smith: I love it. Awesome, man, awesome. So give us a bit of background of what you were doing before you came across the Power Platform, actually, before you came across Dynamics. Right, because for those of you in the know, dataverse is the abstracted layer of what we had with Dynamics CRM back in the day. That basically gave us a headless tool to build any type of solution. So take us back to before your CRM days with Dynamics. Let's go back that far to start with.
Daryl LaBar: Yeah, so before my CRM days I was working at a local nationwide retailer, kind of like a Best Buy They've since gone out of business, but I was working at the headquarters. I was in ASPNET They've since gone out of business, but I was working at the headquarters. I was in ASPNET, web Forms, c Sharp back in the day and just doing basic generic Microsoft development on custom app dev stuff. So that was my day in, day out and most of the stuff I did was internal. Some stuff I did was publicly facing, like trying to figure out, go query our backend databases and figure out where our stock were at stores. So that way we and figure out where we're, where our stock, where our store is, so that way we could figure out if you know what store near you has this particular product and that kind of stuff. So it did that. But then a lot of internal stuff as well.
Mark Smith: So yeah, and then, how did Dynamics come on the like? How did that come on your developer journey? At what point was it? And yeah, for you.
Daryl LaBar: Yeah. So I didn't get into Dynamics willingly, I guess it wasn't like my goal. I was like, yes, this sounds great, this could be awesome. Most devs are like I don't want to be in this box, I want to be able to just do whatever the latest and greatest stuff and do whatever new stuff is. I don't want to be in this box so and was like, hey, would you be interested in joining us? And I'm like, yeah, sure. And then go ask my friend that actually used to work there and he's like that place is okay, but the place I'm at now is hiring. I think that's even better. So why don't you go talk to us? And I was like, okay, and he used to be doing the same basic. So I was like, okay, I'll join. I was just joining as a regular NET dev, not dynamics at all.
Daryl LaBar: And then they said, hey, our first project that we need you on is actually in dynamics. Would you be willing to pick that up? And I was like, well, that probably increased the likelihood of me working with my friends. So sure, I'll pick it up, can't be that hard. And it was, I think, probably two months into the project where I realized, oh, I know more about this than anybody else in the company does, because it wasn't really their main source of income. So it was like me and maybe two other people and then they had you know, 100 some odd custom app people in the company. So, yeah, that was kind of interesting to quickly get caught up on that and to learn everything. So, yeah, that's how I got brought into it.
Mark Smith: My last background question for you is this why did you stay with it? Why didn't you just continue your NET C-sharp career and build apps based on that skill set? What was the kind of oh my gosh, why the power platform that we have today? Of course, whatever it was before.
Daryl LaBar: So one of the parts I don't like about being a developer is having to learn a whole bunch of brand new stuff all at once, because it's kind of like a paralyzing effect. There's 50,000 things. I don't know how to do this, that or the other thing. So that's one thing is on the platform. At least it's the platform once I learned the basics of that. You know they're constantly changing things, but it's not nearly as much of a shift as what you would have just in regular custom app dev. Or okay, this new framework coming out it's completely different. Oh, this new language is coming out it's completely different. Or this new database technology or this new, whatever service is coming out it's completely different. So everything is. You know, a lot of the stuff is still the same for 2011, tech-wise, at the basic level, like you'd still do the same basic things, and that has changed. That's one good thing.
Daryl LaBar: The other good thing is I am not a pretty dev. I do not make things pretty. I make them functional, they work. But as far as like publicly facing, oh this is amazing, I want to use it that's not me. I let the people that are the pretty CSS people of the world go through and do that kind of stuff, and so that was one thing I didn't have to learn and I was very glad on the platform I didn't have to go through and create all the GUI stuff or I just defined the data and it gave me a GUI. It thought me haven't do anything. So that made my life simpler on that aspect, much simpler. I appreciated that. That's my reason to stay with it nice, you said you didn't.
Mark Smith: You don't want to be constrained. Most developers don't want to be constrained. Yeah, um, or put in a box as such. So let's talk about that. What is the limitations of the Power Platform from a developer's perspective?
Daryl LaBar: So the funny part is, after being on the platform for a while, and especially as the platform's evolved, those limitations are becoming farther and farther in between. Yes, there are some core aspects that you have to know still how to do if you're going to really understand the breadth of it, but so much stuff is just in Azure and Azure Functions and Databricks and all this other stuff that's not even on the actual platform itself, but you're still playing with basically any Microsoft technology you want to. Back in the day we were going to the MVP Summit and them talking about dynamics you know the top speaker talking about dynamics. We were lucky if we got a footnote in the topic in an hour-long session, and now we're going. It's like 80% of the talk is about the power platform, this power platform, that and all this other kind of stuff. So it's interesting how we've gone from being the crazy uncle of the family no one wants to talk about to kind of being the centerpiece. So, yeah, that's been interesting as well to watch that.
Daryl LaBar: So, yes, the old me didn't realize that once you get on the platform, that really there's a lot of stuff that you still get to play with and have fun with. In fact, I even had an interview with a guy once. He's like I don't want to do that because there's a lot of things I want to work with I Because there's other things I want to work with. I was like you can work with basically everything that you're working with now. You just don't have to worry about some other stuff. It just takes all that stuff off your plate so you can focus on what you want to focus on.
Mark Smith: So that's interesting. So you're saying you're not constrained just by the Power Platform, you've still got everything that's in Azure at your beck and call to extend into, and everything in m365 to extend into or consume if it's already built there and you, you, you have a use case and I think of intra id is one of those. You don't have to worry about it it's, it's taken care of and therefore consumable. Yep, tell me this. Then, back in the day and I'm talking about the on-premise days when we used to deploy, you know, multiple servers and things like that I remember being on a project and it was for a government agency and the government agency had already implemented.
Mark Smith: It was a failed implementation of back then, of the dynamics product. And the reason it was a failed implementation is that, um, the company that did the work had no experience with dynamics, but they had a whole team of dot net developers and they said how hard can this be? It's SQL underlying integration with some peripheral services like reporting services and exchange and things like that, and it's NET. Hey, we can build it. And the biggest issue was it was a global deployment, so New York, london and a multiple of other countries, because it's been a government agency that had international you know um presence and they had basically screwed it over because they didn't listen or obey anything.
Mark Smith: And back then the software development kit right, which says that you cannot do sql injections as an example, um, and a number of other things, and the thing was just running like an absolute dog. And back then it was like well, throw some more RAM in it, get faster disks. That's the issue, and of course it had nothing to do with that. When you say you can do anything, I go back to my question are there any constraints on the Power Platform?
Daryl LaBar: So I'll give you an example. So on a recent project I was on, I've integrated, I think, with collectcom, boxcom, a couple internal application integrations and one other thing as well. And when you're dealing with integrations it doesn't matter, one thing's talking to another thing, it's all JSON anyway. So I mean it's not like there's any real big issue to deal with there. So then on the actual platform itself, the constraints mostly would be actually on the UI side of the fence. There's any like custom UI stuff you want to use. You're going to be rather kind of constrained to what you want to do outside of, like iframing and some stuff or that kind of stuff is going to be more painful.
Daryl LaBar: So really, really, the one point that I'm going to say yes, you do want to be careful of is if you are trying to make something that's amazingly pretty or amazingly specific and customizable, is you kind of have to take your hands off of it and say, hey, this is not designed to be the exact pretty. You know, pixel perfect, you know canvas apps will get closer to that. But even with that there are some things that it's kind of difficult to do, in that the custom dev stack would be able to give you more features on, but what it's going to help you on is that price point and making it available for other people to use and just to bring it to market faster. There's so many other reasons that it's acceptable in the vast majority of cases to say you know what I can sacrifice on this to get that. You're always going to have trade-offs in whatever you're doing.
Mark Smith: Yeah, so what about performance limitations? You know, dataverse, ultimately, is accessed via an API, whether that's a PowerApp, power Automate or anything else. Yes, potential bottleneck. Right, that's what would jump to mind for me. You know what, if I want to do a massive data load, 10 terabytes of data or something crazy, yeah, what's my performance limitations?
Daryl LaBar: So, unfortunately, that's the thing that it's very difficult to get a good answer on, because every single time, every integration you've ever been in that's large, like that is just completely its own beast, its own thing.
Daryl LaBar: I will say that I've been amazed in the three or four years here at how much the improvements that you, the rarity I've seen that the Dataverse has actually been the performance bottleneck. As long as you are utilizing the correct methods that they offer in order to do those massive type of integrations, the biggest issue really isn't performance as much as it is cost for storage, I think, because at some point in time, if you're dealing with massive cost for storage now, if you're not utilizing virtual tables or some other things, you're going to potentially run into issues where, all right, this thing's massive and we're paying a lot of extra money, it still works, but it isn't probably economical or isn't the wisest choice going when you're dealing with those massive quantities of data. So once you get into those massive areas, you're going to be spending a lot more money per project than you would otherwise. So there is a upper level that is maybe kind of dangerous, I would say, but I would say that you're dealing with 1% of companies, if not less.
Mark Smith: Yeah, yeah.
Daryl LaBar: A tenth of a percent probably of companies dealing, if not less. Yeah, yeah, a tenth of a percent probably of companies dealing with that. I mean, I know Best Buy tended to run a whole bunch of stuff on their CRM instance. So if Best Buy can run it, most other people can run it as well.
Mark Smith: Yeah, nice, tell me about integration challenges. Are there any? No?
Daryl LaBar: Well, yeah, but that doesn't necessarily mean it's not. It's mostly on the other side. I feel like it's mostly on the other side. What do you mean? Well, I'm saying other things, trying to talk or other things getting the data the correct way. I guess you might say so.
Daryl LaBar: I was on a project a project that failed mightily, more than any other project I've ever had that has failed. It was I was working with a consulting firm. They brought in someone to do an integration from this existing backend and they were doing some really custom Azure Azure database that they were going through to grab all this data and it was just failing massively and everything on the CRM integration was working just perfectly fine, but they just couldn't get the data. They couldn't get it in the right format. It was always changing. It wasn't they couldn't get it in the right format. It was always changing. It wasn't under. You couldn't parse it, you couldn't it was. It was incredible how that was. That was kind of the issue. So, but outside of that, no, it's, it's.
Daryl LaBar: I haven't really had other issues and it's been mostly on the non it's been rather than on the CRM side itself, on the I keep on saying CRM, the Dataverse side, the Power Platform side itself. So that's been rarely the issue. There are some hoops sometimes you need to jump through. Oh well, it's doing this, you have to do it this way, or you have to do it this way, or hey, we're running some plugins and that's going to be a two-minute timeout, so you have to make are going to be able to execute it less than that of oh well, if you do that, then maybe you just need to turn off the plugins and it'll go faster. So there's lots of maybe some hoops that you have to go through, some scars that you may get from it, but there's having that proverbial cliff of oh no, we've gotten halfway down this and now we're stuck. I've yet to run into that yet.
Mark Smith: Nice. You touched on cost before potential storage costs. How does one control storage in such a way like whether it's an archiving strategy and is there such one with um, with dataverse? And if you're saying storage is your potential cost issue and I see people potentially would jump to mind, well, I would do that in a low-cost storage environment, whether, whether it be Blob, whether it's Cosmos DB or something else. But with Dataverse you don't have that necessarily and what you get out of that box, that flexibility to go, I want this data set to be over there. How do you handle with your customers? One, good cleanup routines and two, making sure that the data is in the price optimized storage environment at any time.
Daryl LaBar: I don't know how your projects are run. My projects tend to be run on the. We're already two months late. Here's your name, here's your, here's your, here's your ID, here's your password Get crackalackin'. So I haven't spent a whole lot of time on the phase of preparing to avoid that problem. So usually, oh, we get an email, hey, we've met the storage limit. Good thing is that just because you meet the storage limit doesn't mean anything really from a usability standpoint. There's certain things in the back end you can't do, but the actual production system will run just fine.
Daryl LaBar: One client I was on, I think they were over the data limit massively, like 10 times over the data limit for the last three years. It was kind of ridiculous, but under those lines it's like okay, what's going on? What's causing the issue? And oh well, for this case, for this one particular client, each one's different. This one they deal with ticketing systems, so they're actually selling tickets for concerts. This one they deal with ticketing systems, so they're actually selling tickets for concerts. And oh, every single time they had an event, there was some backend process that was going through and incrementing the number of people at the event. So if they had 60,000 people that bought tickets, it would increment that number 60,000 times. And oh, that's being backed up in their data store, in their tracking history. And so, oh, that's filling up the tracking table and it's like, oh well, just turn that off and delete those records that have been existed, because who cares what? It went from one to two to three to four to 60,000?. Yeah, you don't need that. And so it's a lot of that. Stuff is the full speed ahead, until you say, oh, okay, here's an issue. And then you quickly figure it out, triage it, you resolve it and move on to the next fire that you're putting out.
Daryl LaBar: So that's been my experience. Not that that's what I prefer to do, but it tends to work just fine. And you don't ever get to the point where you're like, oh, we've lost, we're done, can't do it anymore. There are some times where, okay, we really should have done this with a virtual table, so we have something else that's backing it. Or oh, hey, we really shouldn't be bringing all this data in. Okay, hey, we have too much data in here. We need to go through it and actually start deleting some of this data or backing it up to another system. And so you have to go through and do that, but each client is just so unique that it's kind of difficult to do that.
Daryl LaBar: But the great thing is there are a lot of tools already out there to help you with that, because it's all universal, it's all um, standardized. It's kind of it's almost like the you know in star trek, where you have this other crazy thing comes in and it just knows your data and starts communicating and extracting it out. Like that, doesn't? You don't get that custom app dev. It's like oh, what database provider are using? What's your data layer using? What's that? What's your security profile? Like?
Daryl LaBar: You have all these other questions that you have to figure out and work with and that may or may not be compatible. When you're on the platform, you have a whole system of things that's already built and ready to plug in and most of the times it's just signing a few, putting a few swipes of the credit card and there you go, ready to go, and you've saved money because it would take you far longer to do it yourself. And you save time because you fixed the problem in a matter of days or hours, depending what it is potentially, and move forward with actual problems that your business can actually work on, rather than technical issues.
Mark Smith: What about security? And I'm not talking about security from a you know could we do a pen test or anything like that, like a Microsoft server environments but security when it comes to writing robust code that is secure by nature. So, whether you know, things that jump to mind for me are encryption are, you know, not storing in clear text stuff that shouldn't be, you know that and the robustness that you get in a NET world around, making sure that what needs to be secured is secured. What are the limitations of the Power Platform Dataverse?
Daryl LaBar: I don't know if I'd say limitations, but you need to make sure that, if you're going to be architecting something along those lines, that you understand the features that are available to you and understanding, um, all the options that you have, because there are really a ton of different things. You can think about doing things from virtual vpns that you can do within microsoft networks. You can do things with field level security you could do things with I don't know whatever other things you're thinking of. And then the good news is that the actual majority of developers are going to be writing plugins which are all internal, and so you don't really have to worry about security in that, as long as you're not speaking out to something else or sending data out somewhere else, that's all self-contained and, by nature, you can't do anything to interact with somebody else's stuff. You're in your own sandbox, it's your sandbox, congratulations. Shoot yourself in the else's stuff. You're in your own sandbox, it's your sandbox, congratulations. Shoot yourself the foot you want to, but it's your own gun, your own foot. You're not going to shoot somebody else's foot and they're not going to shoot your foot.
Daryl LaBar: So, yeah, so those things are things that I you really just need to know what's available, and is that limited to you? Maybe I don't know, because I've had to worry about it. Yeah, custom dev word. You have to know about so much stuff and and, man, I can't imagine how long it would take to figure out.
Daryl LaBar: Okay, what's the best option for security in this aspect? How do I make sure this is rapidly handled in this way or shape or form? Where, hey, the security model is already in place? Microsoft's got a ton of people that are already working on it for you. Congratulations. You can focus on something that actually is going to bring value to your customer rather than making sure that no one else can go in and and edit it, which is such a far cry from back in the day. Yeah, yeah, yeah, my first job. They had like 10 gigabytes worth of access databases of these realtors that contained all their personal information, their social security numbers, their probably even the credit maybe not the credit cards, but their addresses, their date of birth everything on a public network drive that you can just walk in with the usb and grab everything and walk out. Um, so hackers have gotten better, which is bad, but at the same point time, security's got a lot better too.
Mark Smith: So, um, yeah what's the learning curve? As in if two one pick up dataverse, the power platform, in the suite of products, they're an experienced coder. What's their like? Yeah, I know I'm not asking for how long is a piece of string, but like what's involved in learning enough to be able to start putting these tools to you know in as part of your project.
Daryl LaBar: Yeah, so I'll focus on just internal stuff rather than integration type of work. Yeah, because that's going to be completely brand new to somebody, right? So if you're bringing somebody, that's coming in, if they are already a NET developer, then they're 90% of the way they're already. As far as doing backend server plugin development, it's all right. Here's my interface. Here's the early bond generator. If you want to go through and generate your types, you have a tele-sensor, everything and compile-time check safety and all right. So that's good. And then, oh, if you want to deal with the client side, then that's a different question as well. Okay, so do you have some TypeScript abilities or JavaScript abilities? Those are pretty universal for anyone. That's in the Microsoft stack, and so all right. Well, this is where your the data model for this, here's the documentation for that, and so a lot of that stuff you can find on your own. Ai has made that even easier now, so you don't necessarily need someone else to bring you up with it. But I've been on multiple projects where I've had people that are just strictly no experience at all with the platform and within probably a day and a half of being with them, walking through a couple of examples, they're fairly productive and within a couple of weeks then they're fairly very productive. I would say I deal with a lot of developers that are offshore and maybe their last project I was on, I think there was like three months of development total and it was a couple of frustrating moments until finally they got to the point of, hey, I've been doing this for over a decade, which is probably a little bit under half of their age. So there's got to be more than I know and it's okay for me to say I don't know this, and then we can talk through that. And so once we got through that little coming to Jesus moment, like, this guy turned into one of our best devs and I mean he'd only had three months of devs under his work, under his three months of dev under his belt, and then probably a couple of weeks to three weeks of just hey going through and kind of some one-on-one time here and there, and he was off for the races, ready to go.
Daryl LaBar: So, yeah, is it easy to pick up? Yes, it's easy to pick up, especially since there's so much stuff that's out there. There's so many people that are out there. Like if you go from one company to another company, you have to learn everything about their custom solution Everything, because it's not guaranteed to be the same thing when you're going from one power platform shop to another power platform shop. You don't have to learn everything, you only have to learn how they implemented it, what are they're using out of it, and you don't have to learn the underlying technology. So not only is it easy to pick up. Once you've picked it up now you're applicable and employable for yourself if you're thinking about yourself for other companies that are in that same bucket. So it's a wonderful business opportunity for someone to add that to the skill set, because now, hey, there's all these other options that people are much more willing to look at me for if I've got just a little bit of experience, because really you could be quite productive with very minimal practice at it. Really, Nice.
Mark Smith: So let's say I get pulled in on a project and or let's say I go for a job that they've said you know it's going to involve the power platform, that they've said it's going to involve the Power Platform. I've never been on an enterprise or a large Power Platform project where full back-end development hasn't been part of that story. Right, because you can do so much, yes, around through the UI, creating your tables, your columns, etc. And there's a lot that can be done. We see a lot of functional-based consultants non-developers dare we say, low-code developers building out applications. I want to put that to one side.
Mark Smith: As a professional developer, please don't shoot me if you classify low-code as professional development. I don't mean you, I mean the audience, because I know it does. I'm not worried about the nuance. As a NET developer, give me the kind of top five things that you would typically do if you're part of a professional development team for the Power Platform. So you might be working, let's say, for a Microsoft partner and all they do are Power Platform implementations. If I was a dev, in other words, I opened Visual Studio and I've used things like GitHub and pipelines and ALM and all those great things what if I was to define them into categories. What are my typical things that I would do and build as part of a project like this?
Daryl LaBar: Okay, so you're going to be let's see here. So, if I think of the server side of the the fence, it'll be building plugins, projects. Uh, you'll be hopefully unit testing those things. Um, especially, I found a lot of people are new to development entirely and so they kind of skipped the unit testing part of it. But anyone that's got previous experience comes in. They're like why aren't they using unit testing? There's lots of tools that are available for that to make your life easier.
Daryl LaBar: On that side of the fence, there's going to be maybe a little bit of a difference in that you're having to deploy your code to a server after you've unit tested it, rather than maybe running it locally, because that's a little bit different in that aspect. So you're going to be working with that. You're going to be working with getting your changes into a solution which is something completely different. Uh, it would be unique, something that would be um, you have to learn. Now, it's not difficult. Uh, it's just you have to learn it. Um, and it's just okay. This is how I get my changes in. This is how I get my plugin in, this is how I register the changes for it, and so the system knows when to call it, what information to give, what's the context to give it and that kind of information. So there's that work that would be involved. And then generally, depending on the size of the team, you're also going to be doing some of the configuration in the system as well, which is always kind of interesting where that line falls. I've been on some teams where they've got BAs that are doing everything. They're creating every field for you, they're creating the forms for you, they're creating every field for you, they're creating the forms for you, they're creating the views, they're doing everything. And then I've got other teams where it's a little mix match you do a little bit of that, they do a little bit of this and others where the devs are doing everything. And so, depending on that team size, you may be involved with, okay, doing some of the configuration work model set up correctly, assuming you're doing a model drip map for that.
Daryl LaBar: So that's kind of some things you'd be doing. I mean you'd be doing with GitHub or whatever source control you're using, team Foundation Server, whatever DevOps, whatever pipeline is set up for that, although there is some automatic pipeline that's not available on the platform, but generally if you're on a bigger dev project like that, they'll run into some custom reason that they'll need to have their own custom ALM solution. So you have that part in there as well. Sometimes you can get into some fun UI testing as well. That's a little bit more rare, I would say automated UI testing, but there's something that's available for that. So that would be on the plugin side and you could do a lot of the same things on the front end side as well. You can do unit testing, you can do still the pipeline process, getting your changes merged in and all that kind of fun stuff.
Daryl LaBar: So I would say maybe one thing that would be different there is that getting your changes in, depending on how the ALM works, is it could just be set up so that you're just committing your code directly to source control and everything builds off. That Could be that they are merging it directly into a dev gold environment, some source. So you have to be careful about your changes not overriding somebody else's changes or vice versa. Not that you can't recover from it, but you do. Oh well, my change was in here and someone else changed it, so let me push my change back again. So that is one area that you have to be a little bit careful of. It can be done rather poorly and affect the team, but it's not a requirement.
Daryl LaBar: It isn't this is, you know, back in the day, DLL hell trying to figure out you know what is. It's not that type of problem where it's a horrible problem, no matter what happens. It can be a bad problem if you don't spend the time to get rid of the bad problem. I guess you could say what about PCF?
Daryl LaBar: PCF is an area that I have barely barely touched. I want to get more into it. I just haven't been on a project where, oh yeah, we need all this custom UI stuff, and so I've done canvas apps quite a bit, far more than I've done PCF, and so I've just tweaked a few PCF controls Andrew Butenko's like gallery address control, I think. I did some tweaking on that and submitted some change pull requests for that. So I've done a few of those things, but those are not from scratch, so every now and then I touch it, but it's very rare, so I'm not an expert in the PCF style. Outside of saying, there are a whole lot of features available on the PCF gallery, so feel free to check those out, but yes, my last question how Visual Studio friendly is the Power Platform?
Daryl LaBar: So it's gotten a lot better recently and I'll say that I guess back in 2015 and before they were trying to get plugins directly into Visual Studio for doing a lot of this kind of fancy work and extensions for that, and they always seem to be lagging behind. But then once we started getting the full like power platform, like team together, I think they got the resources to be able to kind of keep up on that. They've been doing a lot more work now and I suggested it whether or not I was, they were ones to actually take my suggestion or they were already doing that whether or not they were the ones to actually take my suggestion or they were already doing that, and I was just confirming it. But I was like, hey, you guys need to be doing more work on just command line stuff and the work they've been doing in the Power Apps command line, the packet CLI, same thing but the work they've been doing, that is impressive and what it allows you to do. And so recently just this week actually I posted a hey, if you just want to automatically select a rather than building in release or in dev, if you want to build in a deploy mode and have it automatically deployed to your local dev. Here's the steps to do it, and it's using the Pack Util under the covers and it's all driven through. So EXE to increase the assembly version, but outside of that it's all just built straight into Visual Studio custom. Hey, here's how this works, and you can just copy-paste it at your project file and get that to auto-deploy for you when you're doing your dev work if you choose. So it's very flexible. There are extensions that are now available for Visual Studio.
Daryl LaBar: Personally, I've been burnt too many times on it not keeping up to date, because I want to be on the next greatest version of Visual Studio when it comes out, and so I'm kind of geeking out on that. So that's something that I hold off on. I'm like, okay, there's all these tools that are available out in the wild that are handling this for me in a way that I'm more comfortable with and I'm ready to play with. So I'm not quite on that bandwagon quite yet, but it's mostly because I've also had the experience of not being able to do that outside the Visual Studio that I haven't dived into that, if that makes sense. So, yeah, there's a lot of abilities that are in it and you're building DLLs at the end of the day for your server side stuff and your client side stuff.
Daryl LaBar: Do whatever you know VS Code, whatever you want to use. I personally use VS Code for my client stuff and Visual Studio for my backend plugin stuff because I tend to think those are the best tools. But it doesn't mean you have to do that. You can do whatever you want. It's all the same Microsoft technologies in the backend. So you're really not having to abandon anything. You know, if you're, I guess if you're thinking about doing the portals, you know they might get locked into some version of the portals. They might get locked into some version of the portals technology in that sense. But that's again UI stuff that you don't have to deal with at all and isn't a part of the core dataverse. It's the portals like kind of add-on product for that. So yes, that would be along those lines.
Mark Smith: Nice, I've hammered you with quite a few questions, probably the most questions I've ever asked on a podcast, actually. But is there anything I missed that? If you, you know the audience are, you know, net developers, what do you say to them?
Daryl LaBar: Anything, I missed Anything we haven't discussed today developer that I was tutoring at a company and we were like, uh, a week into you know kind of working together on something and he's all right, I'm, I'm putting my two weeks notice. Like what are you leaving? I thought you were doing great. He's like I was. I was starting to like it too much, it was scaring me. I was like no, I guess, because if I like it, I mean I may never, may never leave it and so um, so that was why he left, which I thought was kind of an interesting reason to do that. But you know, for someone that's a developer that's being concerned about joining or concerned about you know, getting the skills to do that, you're scared for the unknown, and that's understandable. But that shouldn't be a reason to not push it. The Level Up Discord channel has got hundreds of developers on there and Microsoft is on there as well that you can ask questions on and get answers on almost 24 hours a day, and so you've got help, you've got support. Ai knows everything. Like you can have it write you a basic plugin because it's out there already.
Daryl LaBar: It's not custom, it's not. It's the people who already solved half those problems, the problems that you do have. People usually solve that nine times out of 10. Hey, the problems that you do have, people usually solve that nine times out of 10. Hey, this is annoying, I don't want to do this again. Oh, okay, well, someone's already solved this. Great, I will take what they have and utilize it and move on.
Daryl LaBar: So there's so many things that you may have to deal with or learn as a custom person that you don't have to worry about. And then you've also got this natural upgrade path. As the platform keeps on growing, you just get growing with it. From a debt perspective, that's great. From a company perspective, you're hedging your bets as well, because if you are building on the platform versus custom, if you lose let's say you have a developer lunch, everyone goes out and has a lunch and they get hit by the proverbial bus. Who's going to be able to take over for that? Who's going to be able to learn everything that you had? It's going to be very, very difficult. But if you're on a power platform sort of thing and that happens, you can go and get 10 guys today. You may not be the best guys, but you can get 10 guys a day, and if you wait a month or a couple months you get 10 really good guys, guys and girls.
Daryl LaBar: I wasn't using that from a risk perspective. I think that's something that should be talked about. On top of, it's so much cheaper as far as how quick it is to get something developed and how few developers you need, because you've already brought everything already in, and usually it's the sucky stuff that you don't want to deal with. As a developer, I don't want to deal with security, and when I was doing custom dev, it was like all right, I'm going to spend 20 minutes to do this and I can get it done. And I spent two hours figuring out the security and then 20 minutes actually doing the work and I was like, well, if I just didn't have to worry about the security, it would be done, simple. Well, here it's done for you for the most part. So all those reasons are take the leap and to give it a shot.
Daryl LaBar: And if you're doing that, reach out and let me know, and I'd love to connect with you and show you some tools that you probably will save you hours if you just know that they exist. Hey, unit testing use this. Hey, you want to be able to run SQL queries? Use this. Hey, you want to do this, then use this. Hey, you want early bound typings, then use this. And hey, you want some tracing? Hey, go use this. There's all these tools that are out there that are, and that's the reason that I have the XM Toolcast, because I get to learn those tools as well, because they're constantly coming out New tools all the time. So, yeah, so all this stuff exciting, it's growing and it will continue to be in that for the foreseeable future.
Mark Smith: Hey, thanks for listening. I'm your host business application MVP Mark Smith, otherwise known as the NZ365 guy. If there's a guest you'd like to see on the show, please message me on LinkedIn. If you want to be a supporter of the show, please check out buymeacoffeecom. Forward slash NZ365 guy. Stay safe out there and shoot for the stars.
Daryl LaBar is a 4 time, CRM MVP with over 7 years of consulting experience as a CRM developer. He is very active in the open-source community with multiple projects that he has created/maintains. He contributes to the XrmToolBox (XrmToolBox.com) on a regular basis, is the creator of the XrmToolBox plugins “Early Bound Generator”, “Attribute Manager”, and “Visual Studio Solution Accelerator”.
Daryl is also the creator of XrmUnitTest, an open-source C# Xrm Unit Testing / Framework Library, and a top Stack Overflow contributor for CRM. In addition, Daryl volunteers his time to maintain and advance the XrmVirtual User Group, as a presenter, host, and Twitter curator. He also is the co-host of the XrmToolCast Podcast with fellow MVP Jonas Rapp on the Crm.Audio network.
In Feb. 2019, Daryl started his own consulting business, Gap Integrity LLC, where he continues to focus on architecting the code frameworks required to solve his client’s business needs, as well as provide developer training throughout the world. In this role, he will personally be teaching a CRM UG Summit NA Pre-academy class on Unit Testing for C# Dynamics 365 CE/CRM/CDS Developers (https://cdmcd.co/9nw4v)