Episode 344 – The paradox of choice as a SharePoint Developer with Andrew Connell - podcast episode cover

Episode 344 – The paradox of choice as a SharePoint Developer with Andrew Connell

Jul 27, 202350 min
--:--
--:--
Listen in podcast apps:

Episode description

In Episode 344, Ben and Scott invite Andrew Connell, SharePoint developer extraordinaire and founder of Voitanos on the show to talk about your options when it comes to developing modern web applications that interact with SharePoint and Teams. There's a lot to unpack here - when or even should you build a SharePoint app? Is it better to just build and deploy web apps that you can control end-to-end? Listen in to find out. Like what you hear and want to support the show? Check out our membership options. Show Notes Real World Example: Build Web Apps - not M365 or Teams Apps Build Web Apps - not Microsoft 365, Teams, or SPFx Apps Learn the SharePoint Schedule (SPFx) - All Courses Creating your first Microsoft 365 Developer tenant Microsoft 365 Developer Program SharePoint Add-ins Overview of the SharePoint Framework Understand Microsoft Teams apps and their capabilities SaaS COGS: What To Consider In Your Cost Of Goods Sold Yo Teams Meet Your Citizen Developer Barry Schwartz: The paradox of choice Overview of Viva Connections About Andrew Connell Andrew is a web developer who loves to learn new in tech and help others learn! Microsoft has recognized me every year since 2005 with its annual MVP Award. I started teaching in 2007 in just about every way I can. During most of that time, I’ve focused on enterprise platforms like Microsoft Azure & Microsoft 365 including, SharePoint, and Microsoft Teams. Connect with AC Voitanos LinkedIn YouTube Threads Twitter About the sponsors Intelligink utilizes their skill and passion for the Microsoft cloud to empower their customers with the freedom to focus on their core business. They partner with them to implement and administer their cloud technology deployments and solutions. Visit Intelligink.com for more info.

Transcript

Welcome to episode 344 of the Microsoft Cloud IT Pro Podcast recorded live on July 21st, 2023. This is a show about Microsoft 365 and Azure from the perspective of it pros and end users where we discuss a topic or recent news and how it relates to you. Today, we invite a longtime friend to the show, a SharePoint developer extraordinaire turned web and cloud developer, or did he?

Today, Andrew Connell, founder of anos, joins us to talk about options you have when it comes to developing modern web applications that interact with SharePoint and teams. And if you should even build a SharePoint app anymore. Hey, AC, as the more formal, not much. How are you ? I'm good, I'm good. How. Are you? Good. I'll do the more informal introduction. So Mr. Connell or AC or Andrew sir or

Sir Connell, I don't know. Yeah, we got you on as a guest today, and this Friday afternoon is quickly devolving into a mess. But I could introduce you or I could just let you introduce yourself. For those of you that don't know you and maybe aren't as familiar with even your podcast, you have retired from. Either way you want me to, do you want me to introduce myself or do you want do. Your own introduction? Nope, do your own introduction. Do you have an introduction?

I'm gonna keep it quick. I do have one, but I'm not gonna read the long one. I'm not gonna read the bio that goes to like the conferences. This figured. So thanks for having me. I guess for people who don't know who I am, I'm Andrew Connell. Um, historically like a longtime SharePoint developer for almost 20 years now. I don't, uh, actually yeah, in September it'll be 20 years.

Don't recommend doing anything for that long, but I'm mostly like a web and a cloud developer focusing on Microsoft 365 and Azure and client side dev, um, call myself. I guess you'd call me a full stack dev as like the buzzword thing, but really I'm just a web and a cloud developer, and I used to have a podcast I co-hosted with a guy named Chris Johnson. We ran that for eight years and shut it down. I think two marches ago after on our 400th episode, decided to do something different.

Our priorities both have changed and right now I'm focused on, my primary work is I run a company called anos, which is really just a shell for me, but I focus on creating educational content around for web and cloud developers on the Microsoft 365 platform. And today that's the SharePoint framework, but I'm also working on Microsoft Teams, uh, related dev content and Azure content. And what I tell people is, is that my mission is to help you be the best Microsoft 365 web and cloud

developer that you can be. Ta-da. And if you wanna find me, I'm easy to find at Andrew Connell on just about everything except for Threads and Instagram where I'm Andrew Connell won . You can't win 'em all. Oh, , I can't win 'em all. I got one dude on Twitter that is like really irritated with me because he's Andrew I Connell, he's a reporter for the B B C. So I get a lot of people like giving me like scoops for stories and stuff.

I'm like, I don't think you meant to send this one to me on a dmm. I'll send it, I'll send it over to the other guy. , You should start a news podcast. I do get some breaking stuff that he hasn't reported yet because people are tipping off on all in a while. So it's kind like, I could do this, but like it doesn't serve my audience, so I'm like, this is just a waste of time. . Fair. Enough. It feels like either like a walking s e c violation, like, ooh,

there's an insider trading pop or , you know? Yeah.

Some other weird thing that, uh, pops up there. So I'm interested, it's like we've known each other for a while and you, and you've been a SharePoint dev for like you said, almost 20 years and, and we've all been hanging out in that SharePoint space for a long time, but your introduction has changed over time in that you're not just a SharePoint developer, but you also mentioned a little bit more of a cloud focused web developer kind of full stack.

And I think I'm interested in how that merges into the world of SharePoint today, given that it's mostly SaaS driven. Like I know I don't do on-prem SharePoint anymore. Like everything I touch is Office 365, M 365, SharePoint Online, one Drive for Business Driven through kind of that lens.

So like just that general transition for you, kind of how you're approaching SharePoint development today, given that there's various options and things that Microsoft offers us, which you may or may not want to use depending on, on how you land for. The last couple years. When I say couple years, really like, I guess going back almost might even be 10 years now, I have zero interest in on-prem, on SharePoint, on-prem, SharePoint are really on-prem, anything.

And that's just because like as we all know, like so many of the features and capabilities of all these different products, it everyone, Microsoft is highly motivated to go with a subscription based model. And to do that, they need to have, they need to own the platform and they need to be able to, to innovate and iterate at their discretion and when it makes the most sense for them. And to do that, they have to own the platform. So it's gotta be a hosted service. And when you're on-prem,

you're kind of stuck for a while. So when it comes to like SharePoint dev, people will ask about, you know, what am I supposed to do and how am I supposed to do this? I'm like, you should build, you should build solutions with the same inspiration that Microsoft is pushing you in Office 365 or Microsoft 365 and SharePoint. And that is pretty much build stuff that is client side pri the interface forward is primarily client side.

And when there's something that you can't or shouldn't do client side, then you should do this stuff server side. And the server side stuff is stuff that's gonna be hosted outside of Microsoft 365. So naturally that's usually gonna be Azure, but it could be anywhere.

I mean, I've got people that I talk to that are using Google Cloud platform using a w s, some people are using fly.io that are going through and hosting their, the stuff that they need that is either gonna be impersonating users or it's got, it has a heavier lift, like there's more processing and compute that they need to do some work or just they need to be able to store data into place. And SharePoint's just not a good place to, to store application based data.

It's not a bad place to store data like lists and all that kind of stuff, but it's a bad place if you, like, you're looking for, I'm building a C R M system, we're gonna build it on SharePoint list, , that would be a pretty bad decision. as we've been saying for almost 20 years. But what, uh, we've been saying for a while. So you're. Telling me a SharePoint list isn't a database.

It's a new way of thinking here. So yeah, I actually, I, I had somebody in my, in my, uh, my Discord community from my company for VO where they were asking something about lookup columns and how this app is they've got is a little screwed up and they're things, how are they trying to make the IDs work and blah, blah blah. And it's like, you're not supposed to do this. I mean, this is the guide. I know you can do it, but you shouldn't, this shouldn't be done like this.

And it's the, the, the analogy or the metaphor that I give is, you gotta hammer and they're made to nail, they're made to hit nails. You can make it work with a screw, but it's not gonna be pretty. And if you ever need to pull that thing out, it is really not gonna be pretty. So, I mean, you can do it, but it's just not, it's, that's not the tool that it was designed for.

So I guess going back to what you asked Scott, I mean, I think that my transition has been more from being a, well, I mean for me personally, it, it kind of goes back to my roots. When I graduated from college into my first like professional job as a, as a developer, I was doing client side stuff. I was doing, back then we called it d h tm, L Ajax, but nowadays we just call it, it's just standard web dev.

So I transitioned from going that client side stuff to doing more server side stuff when I got into SharePoint. And then as I saw SharePoint kind of go more hosted, I was like, I'm gonna go more client side. And so then it's all like react and type script and all that stuff.

So I really like this approach. And I, I am also like to use, I only go with the server side stuff, like stuff that I'm gonna host in Azure when it's going to help facilitate or extend and support a client side app, like a React app. So if I need like, web services for something or if I need a data storage for an app or something like that. But yeah, that's the gist of like where I see with SharePoint development. And the cool thing is that this is really where I see like all of Microsoft 365

custom dev where it's really gone. And, and when I, when I'm talking about custom dev, I'm, I'm, I'm very, I try to be very clear that the way I describe myself a bit ago or what my mission is, I say web and cloud developers. I don't wanna say like not citizen developers or not low or no-code developers, but I know, and I, I don't say that as a to being like a to slight those different communities or those different audiences. I say it because I know what I'm interested in.

I know what I know how to speak to that more like, I don't wanna say hardcore dev, but that more like web and cloud developer. That's who I choose to, to, to stay with. With. You've.

Started talking more about like web and cloud developer and I know we've all been, like you said in SharePoint for a long time and I felt like there used to be, there was definitely much more of a distinction when you talked about SharePoint developers back in the on-prem days when you were writing Timer jobs and W S P files and all of those. And then we kind of moved online. And even on-prem, you still have S P F X for SharePoint developers, now you're talking more cloud web developers.

Is that more of like your choice of your trying to get out of that I'm just a SharePoint developer, or do you see the SharePoint development evolving into a little bit more, I don't know if I wanna say like a little bit more of a generic developer where you can do web and cloud dev and it's not maybe quite so exclusive as a club is I know how to do SharePoint development. It's, you can do web development, you can do SharePoint development type of thing, if that makes sense.

Yeah, it does. And you know, it's interesting you say it like this because I, so let me directly answer your question and then kind of explain what I mean and unpack it. So is this where I kind of see things going? No, I don't see things going that way because I've actually, see, I think this is where they went going all the way back to 2013 or 2016 when Microsoft introduced the app model and they really went to a hosted model

for Yep. SharePoint specifically. This was the start of it. I mean they, they had a very, they had a failed approach using what we called add-ins or now, or what we called apps. Now we called the adds Do. You mean they changed the name of something? Yeah. And the story, the story why that was changed is actually really funny. And thankfully that the people who like were involved in that decision don't work there anymore so that they can talk about it and then I can repeat it

. So if you want that, I can, we can do that later. Alright. I think that this is the, this is the direction things were going where things were more like, let's build, we want to get, we wanted, Microsoft basically was telling developers with the add-in model, you guys have to get your, get off of our servers because if we're gonna run them and we're gonna maintain them, you can't bog them down and be a noisy neighbor to other tenants that are in the same hardware. So you guys have to get off.

And so they tried to do that with the add-ins by putting a server side and saying, you're gonna run it somewhere else, um, or you're gonna do client side and we'll host the client side files the html, the JavaScript, the C SS s, and then we'll just serve them up to the, to the users where all the work happens. And the clients, no one did the app model part. There's a bunch of reasons why that didn't work, but where they really went was, you know,

they saw the app model and they're like, what are people doing? And everybody, the two most popular web parts in the SharePoint space were client side web, the the content editor, web part and the script editor web part. And this is like almost by like a three to one margin compared to all other web parts that were being used. It was those two.

And so that's what the motivation was for the SharePoint framework. They, there was, there's a bunch of other reasons for it, but effectively it was, okay, you people that are building client side stuff, we need to make it easier for you to build those. So we need to give you a better rest a p i to be able to talk to, we need to give you a better like way to, to authenticate with these models using OAuth for different services. And then we also need to give you the tools and capabilities to make

client side development first class development. And so where I've seen them go, where I've seen Microsoft's really try and push people is that, and, and this is part of this is still the, like the baggage that we've got or the skeletons in the closet from a lot of people who have been doing this for a long time is that people still try to gravitate towards, I need to build a SharePoint app. And so they think I gotta build a web park, right when I want do something,

I gotta build a web part. Or they go back and like now, and even with something that's is more recent, even though it's not that recent as Microsoft teams, a lot of the teams developers are former SharePoint developers. They're not greenfield developers to the Microsoft 365 platform. Its a lot of people who've come from SharePoint. And so the story from Microsoft is always like, here's how you create a teams app, here's how you create a teams app.

So the messaging that I see from Microsoft and this kind of go, this is kind of getting to where I see like the point of where things are today and what I'm trying to kind of, I've started to evangelize a little bit more and I'm very pleased to see the, the reaction to it is that I find that that Microsoft does a bit of a disservice to developers who want to create apps on Microsoft 365. And they really try to, they try and make all of these apps, Microsoft 365 apps.

They're either teams apps, they're SharePoint apps, putting all those in in air quotes or as we're going to see, are we starting to see how teams apps are really, can really just be a Microsoft 365 app that's also gonna run in like Outlook and the office clients and such. But to do all that stuff, you're really still, when you boil it down, you're really still just creating web apps.

So client side apps, so I'm gonna say react, but I mean any kind of web framework you want to use, even if you don't wanna use a web framework, so you're building react based apps and you've got some sort of a server side piece to it that you're gonna, that you may need, depending on the app, you may not need it, you may just do everything a hundred percent client side, like a SharePoint framework solution is a hundred percent client side.

And so what I'm trying to do that I, I find that developers, I find that this, this message or this direction that Microsoft pushes is, I understand why they push it, but I think that they don't really understand who their target audience is as much anymore to this respect. Just the professional developers. I also think that, I mean the Microsoft 365 side, they're, they're not as interested in in web developers anymore.

They're more interested in pushing power platform because that, that's the licensing that, that's where the licensing money comes in until copilot comes out. And then it's just gonna be like, you know, just, you know, throw that cash out like crazy. I. Mean at the end of the day it's all cogs and margin, right? Like yeah.

So this comes down to Microsoft, like you said, like you started this narrative with they run a service and they can't run your service on top of their service with a stable performance. And really like the more C P U you consume noisy neighbor, the more cogs you're consuming and you're not paying for them. So that's it. Like, like their cost to run the service becomes variable, which means they can't deliver the service to a bunch of people.

So how much of this do you think is just like, and and I find this a lot when I'm working even with like net new Azure customers or customers who are still coming to the cloud for the first time. Like they're not able to rationalize themselves as going from like monolithic development organizations on-prem to basically running my service as a service in the cloud. Be that, you know, my spa that I developed and I ran over here, well I gotta host it someplace great. Where do I host it?

What's the best place for me to do that for? Like, oh, I'll throw it in, I don't know, Azure web apps. And then you go, oh, I got static web apps. And then you come back and you go, oh, I got container apps. And they all cost different amounts of money and they all do different things. And all you wanted to do was run a web app, but your job just became harder. 'cause now your job is really rationalize costs. Like you have to run a service as well. You have your own cogs to do this stuff.

And I think that muddies a bunch of the water. Like you sit down and you go like, Hey, I wanna build a SharePoint app. Like I can just deploy it to SharePoint, right? Like maybe, but no , you probably have something else over here that you have to do. And I think that's the part that Microsoft doesn't teach their customers is like, it's, it's not just you're doing, you know, SharePoint development or Microsoft Teams development.

You're kind of like building mini services on the side and be they like web services or like service-based things, but you've gotta deploy and run those and what does that look like for you and how do you rationalize that? And Microsoft is never been good at teaching anybody how to do that. Be it partners, customers, whatever. It's, you're. Spot on. And there's what you're saying, Kenny, there's like two thoughts come to mind with this. One of 'em is a,

is a metaphor and analogy that I, I'll do that in just a second. But, so we go back, one of the things that I started talking to developers about and trying to help them understand when I first started teaching SharePoint framework stuff, one of the things that I saw as a bunch of the frustrations or challenges that people were having was that they were trying to take their servers, their, their old SharePoint baggage of doing server side,

like farm-based solutions or sandbox solutions or add-ins. And they were trying to map all that stuff over to client side dev. And it's like, okay, I get that you're gonna do that to a certain degree, but really, like, I would try to coach people and just say, look, take a step back, leave your bags at the door, take a step back and look at what you're trying to solve. And can you do this exact same thing with just a web app? Can you build a React app or a SPA single page app?

Can you build this and do the exact same thing? And if you can, if you can do that, you know, when you're a developer and you're trying, you run into a couple of roadblocks and you're trying to figure something out or you're hitting Stack overflow, or now you're using something like chat G G P T and you're asking questions or going to the docs and it was like,

I can't figure out how to do this in SharePoint. I'm like, here's a pro tip, drop the SharePoint word from your query and look for the exact same thing, right? Because you're gonna find a lot, the universe outside, the universe of web developers, outside of the universe of SharePoint developers is very, is much, much bigger and there's many more resources to it.

So like people are in trouble with react, i, I get this like probably 50% of the questions that I get from my students is they're looking at something that is like, how do I do this in SharePoint when like 50% of the time it's like, this has nothing to do with SharePoint, this is a react question, or this has nothing to do with SharePoint, this is a TypeScript question.

So drop the word SharePoint from all of these different things you're search things that you're looking for is you're gonna find a lot more help out there and a lot it's, it's gonna be a lot more beneficial. And then building off of that, it's like, now think about this in another way is that when you're building these different solutions, you should be thinking about them or I think that you should be thinking about them first, not as a teams app or as a SharePoint app as a developer,

but it's, I wanna build this as a web app. My goal should be, I want to build this as something that could stand completely isolated from any of these other, other products, these other hosted products like Teams or SharePoint or whatever, or Veeva. So what do, so what did you, what, how do you, how do these other products then come into play then? The way that I look at these things like teams or SharePoint, right?

Or in web, like say we have a web part in SharePoint, let's say we're gonna build like a little, I don't know, like a time, uh, I wanna submit for time off a time request, time off request. So we're gonna, traditionally, I'm gonna build a web part to do that. Okay, don't build a web part, why don't you go build a React app that does that.

Now there's parts of SharePoint that where there is value that SharePoint's gonna be providing, like the ability to have like the configuration settings on the web part that show up on the property pane or in teams. I have settings that are associated with it or I want to be able to put it in a tab or I wanna install it as like a personal app. All of those things are just bridges between some host and your

app. So when I build a SharePoint framework web part, now if I'm building it for my company, I'm building a React app and then over in SharePoint I'm gonna build a SharePoint framework solution. But all that SharePoint framework solution does is it's simply going to load a React app and put it on the page. The React app that I, that I built, it doesn't live in my SharePoint uh, web part project. It lives in a separate package that I can easily import in my SharePoint framework web part.

His job is simply to go get those public properties from SharePoint and, and pass them in as public properties onto my React app. If I need any other kind of context stuff that SharePoint gives me or teams gives me like single sign-on or OAuth tokens for being able to call different web services, I pass those as inputs down into my React app.

I don't give it an instance of the Microsoft graph or I don't give it an instance of some big client I go through and get the data, I use just SharePoint to say, okay, or teams just go get my data and go hand that down to my React Act to let him go

do his work. And there's a lot of benefits to this. One of them, probably the most significant one has to do with tooling where you don't have this really opinionated infrastructure that you've gotta deal with when you're building a teams app or a SharePoint app. The only way that you can really build a team a, a SharePoint framework app today with any kind of productivity is to use the yeoman generator for SharePoint that Microsoft provides.

But it is such an opinionated project type that like setting up automated testing is a royal pain, right? Even chat GBTs, like I don't have a clue, we're waiting for chat GBTs gotta set on that one. , same with teams like, I mean Microsoft Teams, they come out with a yo or the, the community comes out with the yeoman generator, but then you know,

the Microsoft wanted to have their own version of it. So what they or not, they wanted to have their own tooling so they came out with the teams toolkit and it still is a very opinionated thing on how you have to end up building stuff when that's really limiting on all the stuff that you can end up using your apps or you can actually, uh, employing in your apps and how you build your apps.

So being able to have unit testing and use the best tools, best tools that are available to you for building that stuff or using the latest version of React or using different UI libraries, you don't have to sit there and use everything that, that Microsoft is giving you. And in fact, a lot of times you think about it, the stuff they're giving you is the stuff they use to build their apps and that

may not be the best thing for you. So it's kind of funny because like I, I do a workshop at conferences about the SharePoint framework, a full day workshop and I, I teach the way Microsoft kind of pushes it because that's where most of the

docs are and everything are. But depending on my, my audience to see like how kind of switched on or how advanced they are or I guess if they're looking for more like a, if they're, or if they're more on the green side, kind of take their temperature and I kind of feel the room and be like, alright is, are people like interested in this kind of a topic?

And so what I'll end up doing is like I had, I did this recently in uh, at a conference in Washington DC the the 365 edcon conference and as I talked about this whole thing, I just built web apps and you, you see people like going, well wait, wait a minute, how does this work and how does this work?

And I started asking a lot more questions, , you kinda explain to 'em and they're all of a sudden you start seeing some of these developers like seriously like yeah it's not, this isn't rocket science. Like seriously you, you order to SharePoint framework web part is, it does one,

it does two things. If you're building a React app, if it lives in SharePoint or or if it lives in your SharePoint F project or, or it lives out of it, all the SharePoint framework does is it adds a DIVIV on the page and then it go loads your React application. Either it's in the SharePoint framework project or elsewhere and it just simply says take this React app and render it into this diviv done. That's it. It's like there's no other magic associated with it.

And Teams is basically this teams is even simpler because everything is basically done in a eye frame. Yeah, . It, it's been a weird thing though. It's not well socialized, right? I think when you sit down and you think about these things like, uh, the impression I get when I talk to folks is they still think about it as kind of a monolithic stack, right?

Like where I'm doing SharePoint or I'm doing teams like I, I was having a conversation with somebody the other day about like chatbots and teams and hey let's just build a new chatbot and have it sit over here like okay well what's that mean?

Well it means you need a service that you can pass these prompts to and have it respond and do these things and that service in the middle, like the middleware is your secret sauce and you need to go build that middleware and put it together and host it and figure out what it is and they just kind of fall apart at that step sometimes. So like, oh great, now I'm outside the stack. Like well sure, but I think I'm with you. Like that brings flexibility.

Like I have a lot of conversations as well with like Azure customers where like, oh I can't do like blah blah blah in you know, the PowerShell command the way I want to. I'm like great we have rest A P I, here's the invoke easy rest method commandlet, like have fun, have at it. Oh I don't know what rest is and how to do it.

It's like it's just an endpoint like you call it and you do things or I do a lot of stuff like with our service teams around like a D O automation and using like the A D O analytics, APIs and just the raw REST APIs and they're like, you can do that. I'm like, sure . Like yesterday I was building out like just o data queries in an Excel workbook for somebody, you know, and they're like whoa, like how'd you like I hit next, next, next. And it all just kind of worked. It's okay. .

It's funny you say that because that's like, I see that a lot with people as with web developers as well where they think like, you know, I have to use this S D K from Microsoft to talk to my to to the graph or I have to use the P and P J S S D K the from the community to be able to talk to the SharePoint rest A P I. I'm like, you don't, you can, and I'm not saying that there's bad things associated with those, but like the story that you just told a second ago,

it's more like I foc I traditionally use O only go to rest the end the rest endpoints for stuff. I don't use SDKs because I find that, I mean if you look and see that, oh do you have a REST endpoint?

You don't have to look for anything else. If a company's got a REST endpoint, which every S D K ends up talk is ended up being built off, off of and, and, and talks to if you have a REST endpoint, then you could just talk directly to that and not have to worry about all the other, try and figure out what somebody else's interpretation of that s of that endpoint is through the SDK that they built. And I mean it's like, like the Microsoft graph.

You know how to read the docs and understand how the rest endpoint works or if you know how to use a REST endpoint and how and essentially ask it how it's what its specs are. You don't need anything else to try and read some other docs uh,

to try and build this to try and to build it out. And so I'm like, oh yeah, we have this problem with the, you know, Microsoft graph S D K or I don't, I don't, I don't like this how the fluent, you know, fluent a p I works and how you just constantly like do.dot.to try and you know, add on more and more methods to your queries. It's like just use the rest A p i you can use the rest a p i with that.

The other thing too, you mentioned something a bit ago Scott, where you were saying like with Azure, you know, you, one of the challenges is is that I, it's a good and a bad thing, right? It's like the Azure team says, well how, where are you gonna go? Or you're as a developer you're gonna say, well where am I supposed to go build my app and where am I supposed to host it? And you go over to Azure and you're like, oh there's a lot of options.

And Microsoft's like, yeah we got static apps, we got web apps, we got these kind of containers, we got these kind of containers, we got these kind of containers and we got these kind of containers. It's the multicolored like Lego bricks, right? Like you just bought the bucket and you dumped it out in front of you and you go, okay great, now I gotta build something and yeah, you know, you're gonna build one type of race car and I'm gonna build something that does

not look like a race car at all. . But yeah, functionally like they need to accomplish the same goal. Like so let's get down to business requirements like what are the requirements you wanna drive to? And, and that's okay, but it's a lot of like Headspace as a customer to just to try and rationalize and and figure out like which one. And then at some point you kind of commit to an ecosystem and that potentially like just tips you over later, right?

Like I've seen a lot of customers do things like go to Azure web apps and they sit there and they go, okay great, I'm doing T net or P H P or Python and I'm on this version of this framework. And then, you know, they run it for two years and the service updates 'cause hey it's PAs and it's evergreen and all of a sudden that version of that framework of that thing that you thought that was gonna run forever 'cause it was a legacy enterprise app, it no longer runs forever . It's, it's done. The.

Thing that I get with on the Azure side, what I think that most developers, so this is I, this is how I teach my classes and I think that this really applies not just to developers. I teach, I think it applies to a, anybody like it pros, I think it applies to people doing like citizen developer based stuff, low-code, no-code stuff. Instead of sharing with people here all the different options that are available to you. A lot of people are just like, you know what,

just tell me what I'm supposed to do. Just get, just put me on rails and just tell me what the experience, what should I choose here? I'm like, okay, if I'm doing it, I'm gonna go at first you find out like what the person, what their experience level is.

So you wanna guide them on a path where they're gonna be successful. So they, they're they're actually interested in it, but you wanna have the discussion with 'em at some point once they've been a certain, once they've been productive up to a certain level that it's okay now you know, you had some options here and we didn't go this route, but these are other things you could do. Like my SharePoint framework course, I teach exclusively how to build all this stuff with the SharePoint framework.

I don't teach how to do this with like external apps because a lot of times it's kind of like, oh he's teaching people how to do it Andrew's way. It's like not really, but I don't wanna try and get into that. I know what you're looking for so I'm gonna give you what you're looking for. I'm not as good as Steve Jobs to say like, well you don't know what you really want so I'm gonna give you what you think, what I think you really want and that's what you're gonna enjoy it.

But like on the Azure side, right? You got all these different opportunities for you. What it's very much to me it's like walking into two different restaurants. You ever walk into a restaurant, right? Where they've got like a, they've got menus set up and I don't mean like a Cheesecake Factory menu that's

like two inches thick. I mean like you've got a menu that's kind of, you just open it up and you've just got, you got salads, you got appetizers, you got burgers, you got sandwiches, you got a couple pasta things, stuff like that, right? But you basically have fixed choices that are all set up what you're gonna get. You can't do too much customization depending on how nice the restaurant is.

Can't do too much customization, but it's like this is what you get and most people end up going there, but then you got these other kind of restaurants that you'll end up going to and you'll get like it's a buffet. So think about like when you go to like a sushi restaurant, if you know, if you like sushi, you like to go to the more like just show me the menu of everything and I'll buy the number of rolls and the number of pieces and all that kinda stuff that I

want to get. But you also see on those sushi menus they have like, here's the chef special, here's this, here's the, and it's like it's a plate with like, we're gonna give you all this stuff and this is about enough food for one person to eat or here's more, but here's kind of like a plated example of like a, we're basically putting you on rails and saying like, here's what you end up needing. The Azure side doesn't do that.

The Azure side's like it's a buffet. We have everything, we have seafood, we have stuff from, we have surf and turf, we have everything from the range. We've got stuff for vegans, we've got stuff for vegetarians, we've got stuff for, we got stuff for everybody. Absolutely. We even got the kids' menu where it's just like hotdog and hamburgers and

chicken fingers, right? And Microsoft doesn't do that with Azure, but when you sit down, you try and talk to people and going like, look, you're gonna want to build an app so you have to be able to store data. What are your options? And then there's that meme that's going around where like somebody's sitting there and they go to open the computer and it's like all this like news is like

slamming them in the face. It's like going, oh look, it looks like X happened last night overnight and I'm getting, and everyone's sending me all this stuff about like, oh look chat G P T. And that's the only thing that like was on all the different news sites. That's the way it ends up feeling. Whereas instead it's, okay, what are you doing? What kind of data are you getting here? What are you most comfortable with? You're comfortable with relational data or you like, do you like that?

That's more kind of like referral engines and things that are more, the data's a little bit more loose and I wanna see like relationships between each one. So maybe a document database and graph QLS makes sense instead of it being like a traditional SQL relational database. But if you want that, that's cool, you can still do stuff with that. Or you wanna host your app. What do you want the, what do you want the most flexibility with?

And that's where people come, I wanna use a virtual machine. You can do that, right? Totally fine. You own the entire thing. But I mean if you're going to the cloud, do you also wanna be responsible for feed and watering your server? For me these days, my preference is to use Azure container apps because it's kind of like the best of both worlds. Whereas I get the best of like the latest and greatest tech in terms of using

containers. But I also get to leverage, I get to have full control over everything inside of the app that I'm creating. So I get to define, I'm building this on Windows, right? I'm building this on Linux and then what things am I gonna install in that VM that are, or in that, in that container that I need to work for my app to be able to work. But I'm also not gonna go as far to say, oh I'm gonna put this in the Kubernetes cluster. So now I gotta know,

know how to manage a Kubernetes cluster, right? So now I can just focus on, I'm gonna build a container, it's gonna host web apps or it's gonna host a p i, uh, rest endpoints or whatever it's gonna end up hosting and using that, having that kind of a capability but not having to worry too much about the underlying infrastructure because Azure container apps is essentially you're paying a little bit more than you were if you were doing everything with

Kubernetes because you're kind of letting Microsoft say, we'll manage the Kubernetes environments for you. We're just gonna deal with just that. You just deal with your app and it gives me the level of isolation, like what you were talking about earlier.

It gives me the level of isolation to where Microsoft is not all of a sudden gonna call up one day and go, Hey, we're gonna rev everything from version X of node to version Y of node or T net three is no longer is being completely deprecated and retire. You have to move all your apps over to it. If I'm in a container,

I don't really care, I'm gonna, you can't change that. I'm still, you're just telling my container to start up and run and it's still just gonna keep running the same way it does on my machine as it does up in the cloud. It gives you the most flexibility and the best, it gives you the most flexibility, the most amount of choice. But also without all of the baggage. I understand why container apps are taking off.

I understand why Mark Russinovich at the on the Azure team is so pumped about pushing that stuff up. Do you feel overwhelmed by trying to manage your Office 365 environment? Are you facing unexpected issues that disrupt your company's productivity? Intelligent is here to help much like you take your car to the mechanic that has specialized knowledge on how to best keep your car running Intelligent helps you with your Microsoft Cloud environment because that's their expertise.

Intelligent keeps up with the latest updates on the Microsoft cloud to help keep your business running smoothly and ahead of the curve. Whether you are a small organization with just a few users up to an organization of several thousand employees, they want to partner with you to implement and administer your Microsoft Cloud technology, visit them at intelligent.com/podcast.

That's I N T E L L I G I N k.com/podcast for more information or to schedule a 30 minute call to get started with them today. Remember intelligent focuses on the Microsoft cloud so you can focus on your business.

I have a question that I've run into this a few times now with some clients that they've come from the traditional on-prem world and they're used to doing SharePoint web parts and all of that and then they go online and they wanna keep doing SharePoint web parts and that's all well and good, but then they get into that at point where you did where they wanna like do it as an S P A and put it in SharePoint or maybe they need to use something like an

Azure function and to do some processing or an A P I that they need to connect to. And I'm still surprised how many clients I run into that are like in SharePoint online, but they don't have any access to Azure. They know nothing about Azure. To your point of there's 10 different places you could host some of that stuff

in Azure. Do you run into that? And if you do, do you have that guidance for how is a SharePoint developer, someone that's writing apps, kinda start working the way into Azure, even go talk to the IT team who like has locked down Azure, they're like, no, you're not getting a web app in Azure. Or it's, I'm surprised how often I hit that where the IT team doesn't wanna open up Azure or frankly doesn't even have an Azure presence. They're still all on prem except for Office 365.

I see that a lot. I do think so. I have a way that I deal with that, that generally that is helpful to people. I mean there's always gonna be a certain number of customers that whose heels are really gonna be dug in and by like, Nope, sorry, we cannot do that. You cannot play an Azure. It's like you're already comfortable working in the cloud, so what's up with Azure?

Oh well it's all resource based so you can't really control your cost. I'm like, but you can put fix , you can put like quotas around that stuff. You can keep that from happening if you really want to. And like, well, so what I see is that when people have this frustration either, usually it's not so much the developers, usually it's who the developers work for.

I see most of those controls are being, are being put in place because most of the developers are okay building stuff in the cloud and not having to go server side. I usually try and just draw analogies to what we used to do before. So it's like you're concerned about costs. Yeah. Okay,

so remember that time if you were in SharePoint, right? You, you, if you're doing SharePoint app dev, you probably not guaranteed, but the vast number of people that are doing it, you probably came from an on-prem environment, which means you were, you're a company that was paying for those licenses and that hardware and having

to maintain all that stuff. And so then you left that environment, you went to the cloud for, for Microsoft 365 or with SharePoint and you no longer had to do that anymore. So you saved those costs. Okay. Now the next thing too that you did is if you noticed all of the stuff today, like pretty much everything, if you're building apps for teams, if you're building apps for Microsoft 365, if you're building apps for SharePoint online, the developers don't have any costs associated with it.

They have to have a laptop and they need an internet connection. The only other thing they need is, uh, the, all the tooling is free, it's all open source based. Tooling vs. Code is free if you want to pay for an editor, there are some other editors that are out there, but vs code is vs code is terrible for all the other editors because it's free. It's got a great price point and it's hard to justify the cost of the other

editors. But those companies stay in business like JetBrains. Those guys, when it comes to all the other tooling that you end up needing for this stuff like web frameworks or component libraries or testing tools, all that stuff is free. I mean there's, there are commercial options, but all those things are free. You don't even need a, a developer environment that you have to pay for in Microsoft 365.

You get that for free. Microsoft 365 gives you a, as a developer program where you get a full blown tenant with a bunch of E three, I think they're e three licenses might be E five licenses, but like I think it's 23 e threes, which is more than enough to be able to do all your development and testing and everything. And every 365 developer should have one of those. It doesn't cost a darn thing.

You just have to show that you're using it and they automatically renew it so they don't end up just tossing it out and reusing it for another, for another, uh, another developer in the future.

So I usually talk about those things with them. I'm like, so what is your aver to spending a very small number to be able to host your, your apps in another environment and some, some other in, uh, like in Azure, because you're wherever you, whatever you pick, you're gonna be spending less than if you'd, nor if you were, if you were still doing stuff on-prem, significantly less.

All those custom apps you build, if you ever built them to be side by side with SharePoint, they're running on a different web server anyway, so you're not having to have that other web server or you're not putting the load on your existing SharePoint server. So usually when you're having this conversation with like managers, they start to kind of come around and I'm like, look, you can, there's a whole thing in Azure where you can set up, you know,

price controls and how much you end up wanting to spend. And there's, it tells you exactly how much all this stuff, it does cost more. It does take, it does cost more in terms of time to estimate how much you're gonna need and for capacity and all that stuff and to figure out how much is this project really gonna end up costing us. But I mean we were doing that before anyway, so I don't really see it as really anything that's really all that different on

the fundamental questions. I kind of see it as just a kind of, well, who moved my cheese kind of a question. And once you kind of show them that's, that's that I see companies are a little bit more open to it. The only exception to that are people that are highly, highly regulated in different industries or organizations that are in like the government cloud, the G C C where they're limited in some of the features that are available to them for various reasons.

The rest of it usually just comes down to some sort of like red tape within their own organization. So it's, I mean, they get it, but that is what it is. You got, you're gonna host your app somewhere. I mean, then you kind of point to everybody else, it's like going, you see how big Amazon is? Uh, you do realize that like 80% of Amazon's revenues coming from a w s ,

right? You do realize on Azure, like the majority of the money that's coming from that, uh, that 365 all runs in the same data centers or right next to the same data centers as Azure and or Azure's. The one that's driving the, the revenue Azure and 365 are the one that's driving the revenue for Microsoft. So I don't know, I have patience for that, that question. It just takes time to kind of bring people around to it and I mean, you don't really have a choice otherwise. I mean it's like,

I wanna build a bot for Microsoft Teams. Okay, cool, I don't have access to a server. Okay, you're done. That's it. I mean you're, it is a full stop. You can't do it. This, there's no other option here. What can I do with a power app? Like remember the analogy we made with a hammer and, and a screw. I mean you can. To that licensing. Let's talk about cost. We, we'll see where that goes for you, , we. Had that same, I had that same conversation with someone like, you know,

I wanna build this process. They're like, can I do it with a, with a power app and could I end up doing it with like, um, uh, power automate to uh, have power automate, respond to like rest requests and spit back a different rest request back to you? I'm like, . You could, but .

Yeah, first of all, you could. And second of all, when they say low code or no code, I don't know who said calling a rest endpoint from a power automate is no code or low code, but have you ever tried to parse like j ss o n in those tools? I have to do it all the time. It's like, it is a, it is one of the things that makes me wrap my head around and go like, oh no,

like I don't wanna do that. Uh, like, like, and some of that stuff, like it's actually had me going back a little bit more to my roots. Like I've been exploring TypeScript more and more like, Hey, what can I just run as like a local app here really quick to spin things up, call these APIs. Like I'm always working with like, oh,

data endpoints and it's just super simple, right? Like, let me go out, do this, mu some data, get it back, and I like the model of having, you know, and like type script just, hey, here's a simple route, does this background logic and boom, it spits out some pre-formatted json for me. Like great life's good. And then I can go call that from wherever I need from my power BI report or,

or whatever else sat in in, in the middle. Um, it's, it's back to that whole client side web part thing where we started . It really is man, it's all this stuff is just kind of like, history just repeats itself. I'm waiting for the day when we're like five years down the road where we have this power app sprawl and now we have to come up with a new way to build them.

Because to me it just, all this power app stuff that's being done, I'm not against it, but it really reminds me of the days of people building notes, apps and uh, access apps. It's like at some point this just , this feels like sprawl all over again that we're gonna have to re-architect as an enterprise app. And I'm like, I mean, that's fine. For the first five years of my career, I made a great living all following m c s and just cleaning up the projects that they were doing. You did.

That too, . Oh yeah, that's how it got started. great rates, but it just, yeah,

it's, it's frustrating. But I mean it's, I'm not surprised it's where, where we are today, but the one thing that is frustrating to me, and this is not, I hesitate to say this because this is, this is like the inside baseball thing that I know that that would not be well received, is not well received at Microsoft, is that the thing that's frustrating to me with the whole power platform stuff is that Microsoft incentivized the field, the sales,

the the field sales for Microsoft to really push the power platform, licensing apps, powerhouse power, automated, et cetera. So they did that and they pushed it on companies and said, you can do this. You can now build apps and you don't need developers anymore. And so then the customers stopped using developers and they were going back to Microsoft and saying, well, how do we build this stuff?

Because we don't need developers anymore. And so we're trying to, we're having a hard time figuring out how to build all this stuff with power, with with power automate and power apps and everything. And then Microsoft comes back and when all the developers come back and say, where are you guys? Why aren't you guys innovating on these different things? And they're like, nobody's asking for it. I'm like, you realize that you've created this Echo Chamber . Yep.

And so that to me, like where my evolution is going, I focus more on building web apps because I find that, I think that the audience, the Microsoft 365 developer audience, that market is shrinking because Microsoft is giving us less and less things to do. The stuff they're giving us, the developer opportunities are getting like smaller and smaller. Like when you look at Veeva Connections, that's the big thing that they want to push now.

But when it comes to SharePoint framework, really the only stuff they've done the last year, two, three, around the SharePoint framework is to enable us to build these little cards inside of Veeva Connections. And I mean, that's getting, so our area being able to have an impact is getting smaller and smaller. So yeah. I feel like, again, I've done SharePoint for a while.

I feel like I used to see a lot of stuff about the SharePoint framework, about how you did stuff for the SharePoint framework and updates around the SharePoint framework. And I feel like it's just kind of dropped off the radar. I don't see it bubbling up in blog posts anymore. I don't see news about it anymore. And again, going back to even like the whole cloud web dev thing, and if that's kind of the way it's going. And to your point,

we could keep going for a while. I have a meeting here in a few minutes. But like even being able to take, it's a long. One today. Yeah. Take some of those apps and put them in different places. Like I have clients that have stuff that have traditionally been in SharePoint. Now it's like, well, maybe we want it in SharePoint or maybe we want it in teams and we want it in

all these other places. And trying, I feel like there's a little bit of a, like getting away from the SharePoint framework and even based on some of what you said AC around, how you're approaching it is just build a web app and stick it wherever you want to within the Microsoft 365 ecosystem.

That's kind of the way, that's what I'm trying to push this stuff, because too, if you end up deciding that it doesn't, that's not the, if you end up moving away from that development from like SharePoint framework development, if it's a web app, I mean your portability is much better. So SharePoint and the tab in teams, yeah, they go, right. So you can .

I really don't understand. I don't think anybody does, except for people maybe there, but they just, it feels they don't, I don't really understand what the vision is. Most people don't know what the vision is because they don't really, they don't ever share what they're like, what are we trying to get to? What are we marching towards? What is our, in Microsoft terms, what is our North Star that we're trying to hit?

Because everything just feels very reactionary. And so when you ask them like, what you're trying to do with this, it doesn't feel like they're really trying to, to push anything. They're just like, I mean, I get it. They're a company. They're trying to make money and stuff. They want, they, they wanna be profitable. I'm a stockholder. I don't have any problem with that. But it's more like, at least, I mean, what, what is your vision? What is your vision and where are you trying to go to?

Because without understanding that, it's kind of hard to sit there and to advise customers on the right things to build and the right things to do. So that's where, like for me, like I'm spending more time working on teams, apps and building building apps for Microsoft teams, but building them as web apps and then having them integrate into teams and seeing where we can,

where this whole Microsoft 365 thing is gonna ultimately go. But um, from a professional, sorry, not professional from a web or a cloud developer point of view, I think that the, the real opportunities that are there are not so much in Microsoft 365 and extending the platform effectively. You just treat Microsoft 365 not as a host for your apps. I treat it as a host for my data. That's it. It's a host for my data. I'll build apps to give custom experiences around my data,

but it's not a place to build into the host your apps. That's, that really is what it boils down to, to me. Got it. That wasn't the case 10 years ago. Yeah. Makes sense. Well, thanks. I appreciate it. And I really do have a meeting in like two minutes. So , , I can be a little late for it. At least. You scheduled one for 15 after the hour today. We're we're getting better at this. I. Did. I I didn't do it. Well, normally you're the one with one right at four. Well.

Who schedules a meeting at four 15 on a Friday? I don't, that's that's your problem. I don't, you're, you're shooting yourself in the foot there. As always, AC thank you for joining us. We do appreciate it. Hopefully we didn't scare you away and you'll come back again someday. Pirate. Still wants a story about the Rename . We might have to come back and do part two on a story and maybe we can talk about like, 'cause we focused a little bit on SharePoint.

Maybe we can talk about Teams web apps that you were just mentioning and kind of what you're doing there. We'll see what we can do for a part two. I can do that. I can definitely do that. It's not a two minute, it's not, it's not a one minute and 32nd. Story . Understood. All right. Thanks folks. Alright, thanks. Guys. Thanks everyone. If you enjoyed the podcast, go leave us a five star rating in iTunes. It helps to get the word out so more it pros can learn about Office 365 and Azure.

If you have any questions you want us to address on the show or feedback about the show, feel free to reach out via our website, Twitter, or Facebook. Thanks again for listening and have a great day.

Transcript source: Provided by creator in RSS feed: download file