
1
00:00:00,000 –> 00:00:02,660
SharePoint lists are a database for Power Apps.
2
00:00:02,660 –> 00:00:03,600
Incorrect.
3
00:00:03,600 –> 00:00:07,700
That belief is why your apps stall at 2,000 records, choke on filters,
4
00:00:07,700 –> 00:00:10,540
and die behind a friendly blue delegation banner.
5
00:00:10,540 –> 00:00:12,940
Most teams discover the cliff at 5,000 items
6
00:00:12,940 –> 00:00:14,860
and then spend weeks patching symptoms.
7
00:00:14,860 –> 00:00:15,940
Here’s the promise.
8
00:00:15,940 –> 00:00:18,540
You’ll see the architectural why behind those failures,
9
00:00:18,540 –> 00:00:20,960
the measurable breakdowns, delegation warnings,
10
00:00:20,960 –> 00:00:23,620
load times record counts, and the decision thresholds
11
00:00:23,620 –> 00:00:26,100
that separate toy apps from production systems.
12
00:00:26,100 –> 00:00:27,900
I’ll give you the red flag that predicts collapse
13
00:00:27,900 –> 00:00:29,460
before you write a single formula.
14
00:00:29,460 –> 00:00:32,180
And yes, we’ll talk cost, governance, and migration,
15
00:00:32,180 –> 00:00:35,460
so IT leaders can justify data verse without glitter.
16
00:00:35,460 –> 00:00:38,740
The architectural mismatch, why SharePoint breaks at scale?
17
00:00:38,740 –> 00:00:41,380
SharePoint was built for content and collaboration.
18
00:00:41,380 –> 00:00:43,900
Documents, pages, conversations, basic lists.
19
00:00:43,900 –> 00:00:45,140
It’s excellent at that.
20
00:00:45,140 –> 00:00:47,180
But a Power App is a data application.
21
00:00:47,180 –> 00:00:49,540
It needs a data platform that speaks relationships,
22
00:00:49,540 –> 00:00:51,660
delegation, and server-side execution.
23
00:00:51,660 –> 00:00:53,700
The truth, SharePoint isn’t that platform.
24
00:00:53,700 –> 00:00:55,140
Let’s state the stakes.
25
00:00:55,140 –> 00:00:57,620
When Power Apps can’t delegate a query,
26
00:00:57,620 –> 00:01:00,060
it pulls data to the client and evaluates locally.
27
00:01:00,060 –> 00:01:02,220
That’s fast in demos and catastrophic at scale.
28
00:01:02,220 –> 00:01:04,300
SharePoint’s delegation surface is narrow.
29
00:01:04,300 –> 00:01:06,740
Simple filter and sort on index columns, sure.
30
00:01:06,740 –> 00:01:09,540
But the moment you stack conditions, search multiple columns,
31
00:01:09,540 –> 00:01:11,700
or try distinct group-by-look-upchains
32
00:01:11,700 –> 00:01:13,460
you fall off the delegation cliff.
33
00:01:13,460 –> 00:01:16,260
Your app silently caps results at 500 by default,
34
00:01:16,260 –> 00:01:18,020
2000 if you stretch the setting.
35
00:01:18,020 –> 00:01:19,180
Everything passed that?
36
00:01:19,180 –> 00:01:19,980
Invisible.
37
00:01:19,980 –> 00:01:22,660
Not filtered, not counted, gone.
38
00:01:22,660 –> 00:01:24,180
Compare that to data verse.
39
00:01:24,180 –> 00:01:26,980
Data verse is designed for structured relational data
40
00:01:26,980 –> 00:01:29,300
with server-side query execution.
41
00:01:29,300 –> 00:01:32,180
Filters, joins via relationships, aggregates,
42
00:01:32,180 –> 00:01:34,180
processed where the data lives.
43
00:01:34,180 –> 00:01:37,020
You get results for 200,000 rows the same way you do
44
00:01:37,020 –> 00:01:39,460
for 2000 because the server does the work.
45
00:01:39,460 –> 00:01:40,580
It’s not just a database.
46
00:01:40,580 –> 00:01:43,500
It’s the spine of the Power Platform’s data model.
47
00:01:43,500 –> 00:01:44,940
Now the flat list problem.
48
00:01:44,940 –> 00:01:46,940
SharePoint gives you a list with limited lookups.
49
00:01:46,940 –> 00:01:49,940
You can’t model rich relationships without hacks.
50
00:01:49,940 –> 00:01:52,580
The thing most people miss is that every work around
51
00:01:52,580 –> 00:01:54,620
denormalizing data into giant columns,
52
00:01:54,620 –> 00:01:58,340
duplicating text keys using Power Automate to stitch records,
53
00:01:58,340 –> 00:02:00,700
magnifies maintenance and erodes integrity.
54
00:02:00,700 –> 00:02:02,740
And once you join across lists with lookups,
55
00:02:02,740 –> 00:02:04,460
you invite non-delagable patterns.
56
00:02:04,460 –> 00:02:07,540
The price isn’t just complexity, it’s performance collapse.
57
00:02:07,540 –> 00:02:09,860
Let me show you exactly how the list view threshold
58
00:02:09,860 –> 00:02:11,300
and forces behavior.
59
00:02:11,300 –> 00:02:13,820
SharePoint can technically store up to tens of millions
60
00:02:13,820 –> 00:02:16,140
of items in a list, but the practical guardrail
61
00:02:16,140 –> 00:02:17,380
is 5,000 per query.
62
00:02:17,380 –> 00:02:20,220
Pass that unindexed filter’s block, grouping’s time out.
63
00:02:20,220 –> 00:02:22,500
Sorting on non-indexed fields fails.
64
00:02:22,500 –> 00:02:24,780
You can index some columns yes, but not your way out
65
00:02:24,780 –> 00:02:26,540
of combinatorial filters.
66
00:02:26,540 –> 00:02:28,340
The platform is protecting the shared service,
67
00:02:28,340 –> 00:02:29,580
not optimizing your app.
68
00:02:29,580 –> 00:02:31,100
You don’t beat the threshold.
69
00:02:31,100 –> 00:02:33,420
You root around it until your logic buckles.
70
00:02:33,420 –> 00:02:34,900
Security makes it worse.
71
00:02:34,900 –> 00:02:36,500
Item level permissions sound helpful
72
00:02:36,500 –> 00:02:38,300
until you apply them at scale.
73
00:02:38,300 –> 00:02:41,700
SharePoint must evaluate access for each item in a view.
74
00:02:41,700 –> 00:02:44,580
That’s extra work on every query view and app screen.
75
00:02:44,580 –> 00:02:46,580
In Dataverse, Row and Field Level Security
76
00:02:46,580 –> 00:02:49,460
are evaluated as part of the Data Engine’s plan.
77
00:02:49,460 –> 00:02:51,740
Business units, security roles, auditing,
78
00:02:51,740 –> 00:02:53,260
all native, all performant.
79
00:02:53,260 –> 00:02:54,860
The reason this matters is simple.
80
00:02:54,860 –> 00:02:56,620
Security filtering is still filtering.
81
00:02:56,620 –> 00:03:00,180
If it’s not efficient, your app pays the tax every tap.
82
00:03:00,180 –> 00:03:01,340
And now load time.
83
00:03:01,340 –> 00:03:02,860
Power apps does a lot under the hood.
84
00:03:02,860 –> 00:03:05,100
Metadata retrieval, control initialization,
85
00:03:05,100 –> 00:03:06,300
data source negotiation.
86
00:03:06,300 –> 00:03:08,340
In 2025, runtime improvements reduced
87
00:03:08,340 –> 00:03:10,660
unnecessary parallel queries and sped up rendering,
88
00:03:10,660 –> 00:03:13,020
which helps everyone, but it doesn’t fix a source
89
00:03:13,020 –> 00:03:15,100
that demands client-side evaluation.
90
00:03:15,100 –> 00:03:17,980
If your first screen opens with filter search,
91
00:03:17,980 –> 00:03:20,300
against the SharePoint list that won’t delegate,
92
00:03:20,300 –> 00:03:22,300
you’re shipping a spinner, not a screen.
93
00:03:22,300 –> 00:03:25,180
Dataverse benefits most from those optimizations
94
00:03:25,180 –> 00:03:26,860
because the platform cooperates.
95
00:03:26,860 –> 00:03:30,460
Fewer round trips, more server execution, cleaner payloads.
96
00:03:30,460 –> 00:03:31,860
The game changer nobody talks about
97
00:03:31,860 –> 00:03:34,260
is how relational intent changes everything.
98
00:03:34,260 –> 00:03:36,300
In Dataverse, relationships are first class.
99
00:03:36,300 –> 00:03:39,220
You can traverse them, query across them, and secure them.
100
00:03:39,220 –> 00:03:42,060
In SharePoint, relationships are lookups with training wheels.
101
00:03:42,060 –> 00:03:43,620
That’s fine for a project tracker.
102
00:03:43,620 –> 00:03:46,500
It’s fragile for ticketing, assets, orders, inspections,
103
00:03:46,500 –> 00:03:49,180
or anything with multi-table joins and lifecycle rules.
104
00:03:49,180 –> 00:03:51,060
If you remember nothing else, remember this.
105
00:03:51,060 –> 00:03:53,500
SharePoint lists are excellent content shelves.
106
00:03:53,500 –> 00:03:55,220
Power apps need a data engine.
107
00:03:55,220 –> 00:03:57,980
For simple, flat scenarios, SharePoint is fine.
108
00:03:57,980 –> 00:04:00,740
The moment you need multi-lookup joins, compound filters,
109
00:04:00,740 –> 00:04:03,780
or more than trivial record counts, the platform fights you.
110
00:04:03,780 –> 00:04:05,100
And you will lose.
111
00:04:05,100 –> 00:04:06,420
The failure modes.
112
00:04:06,420 –> 00:04:09,820
You can measure delegation, load time, record counts.
113
00:04:09,820 –> 00:04:11,060
Let’s quantify the pain.
114
00:04:11,060 –> 00:04:13,260
You don’t need a hunch, you need artifacts.
115
00:04:13,260 –> 00:04:15,900
Power apps gives you three delegation warnings,
116
00:04:15,900 –> 00:04:18,300
load time behavior, and record count realities.
117
00:04:18,300 –> 00:04:21,500
If you ignore them, your users will provide a fourth artifact,
118
00:04:21,500 –> 00:04:24,460
abandonment, delegation first.
119
00:04:24,460 –> 00:04:26,980
That cheerful blue banner is not advice.
120
00:04:26,980 –> 00:04:28,100
It’s a stop sign.
121
00:04:28,100 –> 00:04:29,780
When you see this formula might not be fully
122
00:04:29,780 –> 00:04:32,660
delegable, translation, power apps will evaluate locally
123
00:04:32,660 –> 00:04:33,940
and cap your results.
124
00:04:33,940 –> 00:04:36,940
Default cap 500, stretch setting 2000.
125
00:04:36,940 –> 00:04:39,140
The truth, you’ve just limited your apps’ eyesight
126
00:04:39,140 –> 00:04:40,860
to a tiny slice of reality.
127
00:04:40,860 –> 00:04:42,660
Anything past that window doesn’t exist
128
00:04:42,660 –> 00:04:44,220
as far as your formulas can tell.
129
00:04:44,220 –> 00:04:46,700
Filters, mismatches, counts under report,
130
00:04:46,700 –> 00:04:50,340
and no results found becomes a regular comedy bit.
131
00:04:50,340 –> 00:04:52,620
Which operations trigger this collapse in SharePoint?
132
00:04:52,620 –> 00:04:54,380
The usual suspects, chaining filter
133
00:04:54,380 –> 00:04:57,020
with or across multiple columns, using search
134
00:04:57,020 –> 00:04:59,180
on more than one field, distinct for deduplication,
135
00:04:59,180 –> 00:05:01,540
group buy for rollups, lookup chains across lists,
136
00:05:01,540 –> 00:05:03,220
and certain sort by columns, scenarios
137
00:05:03,220 –> 00:05:05,300
when the sort column isn’t indexed.
138
00:05:05,300 –> 00:05:07,540
Add a multi-lookup join, and you’re basically choosing
139
00:05:07,540 –> 00:05:09,100
the non-deligible path on purpose.
140
00:05:09,100 –> 00:05:11,780
Compare that to dataverse, where those same filters,
141
00:05:11,780 –> 00:05:15,020
sorts, and relationship traversals run server side.
142
00:05:15,020 –> 00:05:18,700
You request intent, the engine executes the plan efficiently.
143
00:05:18,700 –> 00:05:20,460
Now load time, the spinner text.
144
00:05:20,460 –> 00:05:23,220
Three mechanics matter, metadata fetch, control rendering,
145
00:05:23,220 –> 00:05:24,700
and query execution.
146
00:05:24,700 –> 00:05:26,780
The 2025 runtime optimizations helped
147
00:05:26,780 –> 00:05:28,620
with caching and deferred control loading,
148
00:05:28,620 –> 00:05:30,580
plus a smoother UI pipeline.
149
00:05:30,580 –> 00:05:31,140
Good.
150
00:05:31,140 –> 00:05:33,820
But if your first interaction is a non-deluggable query
151
00:05:33,820 –> 00:05:36,460
against SharePoint, you force the client to pull what it can
152
00:05:36,460 –> 00:05:37,300
then process.
153
00:05:37,300 –> 00:05:40,180
That means chatty network calls, inflated payloads,
154
00:05:40,180 –> 00:05:42,620
and a device doing work the server should have handled.
155
00:05:42,620 –> 00:05:45,340
You feel it as screens that take seconds to render,
156
00:05:45,340 –> 00:05:48,300
and galleries that pop in results unpredictably.
157
00:05:48,300 –> 00:05:50,060
A micro story, since you enjoy pain,
158
00:05:50,060 –> 00:05:52,700
a field service app with 120,000 tickets,
159
00:05:52,700 –> 00:05:55,460
three lookups per ticket, and user-scoped views.
160
00:05:55,460 –> 00:05:57,860
SharePoint worked, until it didn’t.
161
00:05:57,860 –> 00:06:00,460
Delegation banners everywhere, views timing out
162
00:06:00,460 –> 00:06:02,460
when item-level permission scaled up,
163
00:06:02,460 –> 00:06:05,340
and a home screen that loaded in eight seconds on Wi-Fi,
164
00:06:05,340 –> 00:06:07,780
and whenever it felt like it, on cellular.
165
00:06:07,780 –> 00:06:09,740
Migration to dataverse dropped the home screen
166
00:06:09,740 –> 00:06:11,780
to under two seconds because the filters ran
167
00:06:11,780 –> 00:06:14,780
at the source and security-trimmed rows server side.
168
00:06:14,780 –> 00:06:17,420
No heroics, just using the right engine.
169
00:06:17,420 –> 00:06:20,820
Record counts next, the myth of its stores 30 million.
170
00:06:20,820 –> 00:06:22,900
Yes, a list can hold that many items.
171
00:06:22,900 –> 00:06:24,540
No, your app can’t use them meaningfully
172
00:06:24,540 –> 00:06:26,060
if you need complex filtering.
173
00:06:26,060 –> 00:06:28,420
The list view threshold of 5,000 isn’t negotiable.
174
00:06:28,420 –> 00:06:30,820
It’s a guardrail that blocks unindexed queries,
175
00:06:30,820 –> 00:06:33,180
grouping, and certain sorts once your operations
176
00:06:33,180 –> 00:06:34,340
threaten the service.
177
00:06:34,340 –> 00:06:36,220
You can index columns, and you should,
178
00:06:36,220 –> 00:06:38,820
but you can’t index your way out of combinatorial filters
179
00:06:38,820 –> 00:06:41,420
or ad hoc user searches across multiple fields.
180
00:06:41,420 –> 00:06:43,740
Practically, SharePoint list-backed apps
181
00:06:43,740 –> 00:06:47,140
stay sane below 100,000 items with disciplined views
182
00:06:47,140 –> 00:06:48,380
and strict patterns.
183
00:06:48,380 –> 00:06:50,380
Beyond that, the workaround tax compounds,
184
00:06:50,380 –> 00:06:52,060
extra flows, calculated columns,
185
00:06:52,060 –> 00:06:55,260
denormalized tax copies, and nightly jobs to fake rollups.
186
00:06:55,260 –> 00:06:58,180
Security-induced slowness is the stealth killer.
187
00:06:58,180 –> 00:07:00,500
Item-level permissions feel enterprise.
188
00:07:00,500 –> 00:07:03,660
In practice, every view and query pays a per item evaluation
189
00:07:03,660 –> 00:07:06,940
cost, performance drops, especially as unique permissions climb.
190
00:07:06,940 –> 00:07:09,620
Dataverse applies, row-level, and field-level rules
191
00:07:09,620 –> 00:07:12,260
within the engine’s plan so the filter is part of the query,
192
00:07:12,260 –> 00:07:13,540
not a separate gauntlet.
193
00:07:13,540 –> 00:07:17,220
Result, less thrash more throughput, consistent response times,
194
00:07:17,220 –> 00:07:19,140
as complexity grows.
195
00:07:19,140 –> 00:07:21,700
Let’s talk query complexity tax in practical terms.
196
00:07:21,700 –> 00:07:24,140
You want a gallery filtered by status, date range,
197
00:07:24,140 –> 00:07:26,660
and a free text search across title and description
198
00:07:26,660 –> 00:07:27,980
then sorted by priority.
199
00:07:27,980 –> 00:07:30,940
In SharePoint, parts of that stack are non-delagable or brittle
200
00:07:30,940 –> 00:07:33,700
unless you pre-index exactly the combination users hit.
201
00:07:33,700 –> 00:07:36,580
In Dataverse, it’s delegable and runs on the server,
202
00:07:36,580 –> 00:07:39,300
so the client receives only the right rows in the right order.
203
00:07:39,300 –> 00:07:42,500
You save network, CPU, and your dignity.
204
00:07:42,500 –> 00:07:44,180
Quick win you can do today.
205
00:07:44,180 –> 00:07:46,740
Audit your app for blue banners, count of indexed columns
206
00:07:46,740 –> 00:07:48,180
versus filters in use.
207
00:07:48,180 –> 00:07:51,460
First screen load time on cold start and effective record window,
208
00:07:51,460 –> 00:07:53,900
500, 2000, or truly delegable.
209
00:07:53,900 –> 00:07:56,420
If any core screen relies on non-delagable filters,
210
00:07:56,420 –> 00:07:58,180
you already have silent data loss.
211
00:07:58,180 –> 00:07:59,780
Not theoretical, current.
212
00:07:59,780 –> 00:08:01,300
The takeaway is painfully simple.
213
00:08:01,300 –> 00:08:03,300
Delegation warnings predict wrong results.
214
00:08:03,300 –> 00:08:05,620
Load time patterns reveal where you force the client
215
00:08:05,620 –> 00:08:06,900
to do server work.
216
00:08:06,900 –> 00:08:08,860
Record counts expose the difference between can
217
00:08:08,860 –> 00:08:10,340
store and can query.
218
00:08:10,340 –> 00:08:12,580
When all three line up, you don’t have a performance problem.
219
00:08:12,580 –> 00:08:14,740
You have an architectural mismatch.
220
00:08:14,740 –> 00:08:16,500
Dataverse isn’t premium flair.
221
00:08:16,500 –> 00:08:18,660
It’s the minimum viable data engine for apps that
222
00:08:18,660 –> 00:08:22,220
must scale, stay honest, and avoid the blue banner lottery.
223
00:08:22,220 –> 00:08:24,780
The dataverse advantage, performance, delegation,
224
00:08:24,780 –> 00:08:26,740
security, integration, now that you’ve
225
00:08:26,740 –> 00:08:30,220
seen where SharePoint collapses, enter dataverse.
226
00:08:30,220 –> 00:08:32,260
The data engine that actually speaks power
227
00:08:32,260 –> 00:08:33,700
apps native language.
228
00:08:33,700 –> 00:08:35,140
The truth, you’re not buying features,
229
00:08:35,140 –> 00:08:36,780
you’re buying the right physics.
230
00:08:36,780 –> 00:08:38,900
Server side execution, proper relationships,
231
00:08:38,900 –> 00:08:40,740
and security baked into the query plan.
232
00:08:40,740 –> 00:08:42,060
That’s why it feels faster.
233
00:08:42,060 –> 00:08:42,900
It is faster.
234
00:08:42,900 –> 00:08:44,060
Performance first.
235
00:08:44,060 –> 00:08:47,340
Dataverse executes filters, sorts, and joins on the server
236
00:08:47,340 –> 00:08:48,180
close to the data.
237
00:08:48,180 –> 00:08:49,980
You’re not dragging thousands of rows to a phone
238
00:08:49,980 –> 00:08:52,260
and hoping JavaScript performs miracles.
239
00:08:52,260 –> 00:08:55,180
With the 2025 runtime improvements, better metadata
240
00:08:55,180 –> 00:08:58,620
caching, deferred control loading, reduce chatty calls.
241
00:08:58,620 –> 00:09:00,900
Dataverse gains more because it cooperates.
242
00:09:00,900 –> 00:09:04,740
One intent, one efficient plan, one clean payload.
243
00:09:04,740 –> 00:09:06,860
Screens render predictably because the server sends
244
00:09:06,860 –> 00:09:09,700
exactly what the UI needs, not a haystack for the client
245
00:09:09,700 –> 00:09:10,460
to come.
246
00:09:10,460 –> 00:09:12,380
Delegation coverage is the headline act.
247
00:09:12,380 –> 00:09:14,660
The thing most people miss is that dataverse wasn’t
248
00:09:14,660 –> 00:09:16,260
retrofitted for delegation.
249
00:09:16,260 –> 00:09:17,380
It was designed that way.
250
00:09:17,380 –> 00:09:20,020
Multi-column filters, relationship traversals, sorted
251
00:09:20,020 –> 00:09:22,460
results sets, distinks, even aggregations,
252
00:09:22,460 –> 00:09:23,300
delegable.
253
00:09:23,300 –> 00:09:25,860
You describe the slice the platform cuts its server side.
254
00:09:25,860 –> 00:09:27,660
That’s why the 2000 record setting stops
255
00:09:27,660 –> 00:09:28,740
mattering.
256
00:09:28,740 –> 00:09:30,420
You’re no longer appearing through a keyhole.
257
00:09:30,420 –> 00:09:33,260
You’re looking at the full data set with a proper lens.
258
00:09:33,260 –> 00:09:36,260
And if you remember, nothing else, dataverse turns maybe
259
00:09:36,260 –> 00:09:38,620
delegable into yes by default.
260
00:09:38,620 –> 00:09:41,260
Let me show you exactly how relationships change the game.
261
00:09:41,260 –> 00:09:43,820
In Dataverse, tables relate via defined lookups
262
00:09:43,820 –> 00:09:47,020
with referential integrity, query across account orders,
263
00:09:47,020 –> 00:09:48,380
order lines, normal.
264
00:09:48,380 –> 00:09:50,740
Security across those joins included.
265
00:09:50,740 –> 00:09:53,300
In SharePoint, that’s duct tape and non-delagable chains.
266
00:09:53,300 –> 00:09:55,020
In Dataverse, it’s the plan.
267
00:09:55,020 –> 00:09:57,580
You get consistent response times because the engine knows
268
00:09:57,580 –> 00:10:00,060
how to optimize across normalized structures.
269
00:10:00,060 –> 00:10:02,980
You also stop duplicating columns just in case, which
270
00:10:02,980 –> 00:10:05,660
is where SharePoint apps quietly go to die.
271
00:10:05,660 –> 00:10:07,860
Security is where Dataverse stops being premium
272
00:10:07,860 –> 00:10:09,780
and becomes non-negotiable.
273
00:10:09,780 –> 00:10:12,140
Row level, field level, and business unit
274
00:10:12,140 –> 00:10:13,900
scoping run in the data engine.
275
00:10:13,900 –> 00:10:15,580
These privilege isn’t a suggestion.
276
00:10:15,580 –> 00:10:18,220
It’s enforceable without wrecking performance.
277
00:10:18,220 –> 00:10:20,940
Auditing is built in so you can answer who viewed or changed
278
00:10:20,940 –> 00:10:23,140
what without bolting on spreadsheets and prayers.
279
00:10:23,140 –> 00:10:25,980
And yes, it rides on enter ID, TLS, and transit encryption
280
00:10:25,980 –> 00:10:28,180
address, the enterprise basics you’d expect.
281
00:10:28,180 –> 00:10:31,620
SharePoint’s item level security tries, Dataverse governs.
282
00:10:31,620 –> 00:10:34,340
Integration is not a bullet point, it’s the runway.
283
00:10:34,340 –> 00:10:37,140
Dataverse is the hub for power platform, power BI,
284
00:10:37,140 –> 00:10:38,780
and AI workloads.
285
00:10:38,780 –> 00:10:39,900
Want analytics?
286
00:10:39,900 –> 00:10:41,580
Directly query or export to DataLake,
287
00:10:41,580 –> 00:10:42,980
no CSV gymnastics.
288
00:10:42,980 –> 00:10:44,700
Want AI or automation?
289
00:10:44,700 –> 00:10:47,100
You’re already sitting on a structured govern store.
290
00:10:47,100 –> 00:10:49,100
And when you need external data virtualization,
291
00:10:49,100 –> 00:10:51,260
lets you project sources like PostgreSQL
292
00:10:51,260 –> 00:10:53,540
into Dataverse without copying every byte.
293
00:10:53,540 –> 00:10:56,620
You build one model, one app, one security story,
294
00:10:56,620 –> 00:10:59,140
minus the mass duplication that turns governance
295
00:10:59,140 –> 00:10:59,980
into folklore.
296
00:10:59,980 –> 00:11:01,580
Offline and mobile, this is where
297
00:11:01,580 –> 00:11:03,380
the delegation and sync meet.
298
00:11:03,380 –> 00:11:04,740
Because Dataverse query is delegate,
299
00:11:04,740 –> 00:11:07,180
you can define, compact, userscope data sets
300
00:11:07,180 –> 00:11:08,420
and actually sync them.
301
00:11:08,420 –> 00:11:10,620
The client isn’t pretending to be a database,
302
00:11:10,620 –> 00:11:12,380
it’s holding a curated cache.
303
00:11:12,380 –> 00:11:15,020
That’s why grids feel responsive on weak connections
304
00:11:15,020 –> 00:11:17,660
and why updates reconcile rather than collide.
305
00:11:17,660 –> 00:11:21,060
SharePoint’s offline story is, try not to breathe on it.
306
00:11:21,060 –> 00:11:22,860
One more signal you should not ignore.
307
00:11:22,860 –> 00:11:25,660
Microsoft’s modern workloads are moving to Dataverse.
308
00:11:25,660 –> 00:11:27,020
Planner premium built on Dataverse
309
00:11:27,020 –> 00:11:29,420
wasn’t a cute experiment, it’s a declaration.
310
00:11:29,420 –> 00:11:31,540
When the vendor builds its own data heavy services
311
00:11:31,540 –> 00:11:34,220
on a platform, they’re telling you where the road is paved.
312
00:11:34,220 –> 00:11:36,180
Common mistake to avoid treating Dataverse
313
00:11:36,180 –> 00:11:38,420
like SharePoint but expensive.
314
00:11:38,420 –> 00:11:39,740
You don’t buy it to store rows.
315
00:11:39,740 –> 00:11:42,620
You buy it to execute intended scale, secure data correctly
316
00:11:42,620 –> 00:11:44,140
and integrate without heroics.
317
00:11:44,140 –> 00:11:45,260
That’s the ROI.
318
00:11:45,260 –> 00:11:47,820
Fewer workarounds, fewer throttling meltdowns,
319
00:11:47,820 –> 00:11:49,820
fewer blue banner debates in standups.
320
00:11:49,820 –> 00:11:51,020
So yes, Dataverse costs.
321
00:11:51,020 –> 00:11:54,300
And yet, compared to weeks of power-automate crutches,
322
00:11:54,300 –> 00:11:56,300
denomalized hacks and governance nightmares,
323
00:11:56,300 –> 00:11:57,460
is the cheaper choice.
324
00:11:57,460 –> 00:11:59,620
The efficient choice, the adult choice,
325
00:11:59,620 –> 00:12:02,100
the cost reality, licensing, hidden workarounds
326
00:12:02,100 –> 00:12:03,700
and total cost of ownership.
327
00:12:03,700 –> 00:12:05,500
Let’s talk money without the glitter.
328
00:12:05,500 –> 00:12:07,540
SharePoint looks free because it’s bundled
329
00:12:07,540 –> 00:12:09,380
with Microsoft 365.
330
00:12:09,380 –> 00:12:10,820
Dataverse is premium.
331
00:12:10,820 –> 00:12:13,380
The average user stops there and congratulates themselves
332
00:12:13,380 –> 00:12:15,300
on frugality, fascinating.
333
00:12:15,300 –> 00:12:17,340
Now let’s add the parts they never cost it.
334
00:12:17,340 –> 00:12:20,740
Workarounds, reliability losses, security compensations
335
00:12:20,740 –> 00:12:22,100
and migration rework.
336
00:12:22,100 –> 00:12:22,940
The truth?
337
00:12:22,940 –> 00:12:24,860
Free becomes your most expensive line item.
338
00:12:24,860 –> 00:12:25,740
Licensing first.
339
00:12:25,740 –> 00:12:28,580
Yes, Dataverse requires premium licensing and storage.
340
00:12:28,580 –> 00:12:30,620
You pay predictable, budgetable dollars
341
00:12:30,620 –> 00:12:33,900
for a platform that delegates scales and secures correctly.
342
00:12:33,900 –> 00:12:36,180
With SharePoint, you pay in people hours.
343
00:12:36,180 –> 00:12:37,940
Days building power, automate crutches
344
00:12:37,940 –> 00:12:39,700
to replace missing relationships,
345
00:12:39,700 –> 00:12:42,100
hours debugging, non-delagable formulas,
346
00:12:42,100 –> 00:12:43,820
nights rerunning, failed flows,
347
00:12:43,820 –> 00:12:45,340
weekends explaining to auditors
348
00:12:45,340 –> 00:12:48,100
why you can’t produce field-level access logs.
349
00:12:48,100 –> 00:12:48,940
Those aren’t features.
350
00:12:48,940 –> 00:12:51,900
Their payroll burning, hidden SharePoint costs are everywhere.
351
00:12:51,900 –> 00:12:53,460
Denomalization to dodge lookups.
352
00:12:53,460 –> 00:12:55,660
Now you maintain duplicate values across lists
353
00:12:55,660 –> 00:12:58,180
and pray someone remembers to keep them in sync.
354
00:12:58,180 –> 00:13:00,260
Calculated columns to fake rollups?
355
00:13:00,260 –> 00:13:02,540
Welcome to recalculation delays and brittle logic
356
00:13:02,540 –> 00:13:04,900
that explodes when the list crosses thresholds.
357
00:13:04,900 –> 00:13:06,580
Power automated to simulate joins.
358
00:13:06,580 –> 00:13:08,340
That’s a pipeline of async band aids,
359
00:13:08,340 –> 00:13:10,300
throttling, retries, partial failures
360
00:13:10,300 –> 00:13:11,780
and reconciliation scripts.
361
00:13:11,780 –> 00:13:13,940
Each new workaround increases complexity,
362
00:13:13,940 –> 00:13:16,340
fragility and the blast radius of small changes.
363
00:13:16,340 –> 00:13:17,900
Reliability is its own ledger.
364
00:13:17,900 –> 00:13:21,300
Delegation warnings don’t just slow you down, they make you wrong.
365
00:13:21,300 –> 00:13:23,500
Undercounted records, missed matches
366
00:13:23,500 –> 00:13:26,500
and views that silently exclude data are not performance issues,
367
00:13:26,500 –> 00:13:27,820
they’re integrity failures.
368
00:13:27,820 –> 00:13:29,340
Users learn the app can’t be trusted
369
00:13:29,340 –> 00:13:30,740
and defect to spreadsheets.
370
00:13:30,740 –> 00:13:33,500
Meanwhile, you’re paying for triage meetings, quick fixes
371
00:13:33,500 –> 00:13:35,620
that add even more non-delagable logic
372
00:13:35,620 –> 00:13:38,460
and the reputational tax of shipping tools that lie.
373
00:13:38,460 –> 00:13:40,420
Security governance has a price tag too.
374
00:13:40,420 –> 00:13:41,900
SharePoint’s item-level permissions
375
00:13:41,900 –> 00:13:43,260
look cheap until you scale.
376
00:13:43,260 –> 00:13:45,260
Evaluation per item drags performance,
377
00:13:45,260 –> 00:13:48,980
unique permissions multiply and reporting becomes archaeology.
378
00:13:48,980 –> 00:13:51,380
To reach parity with data versus built-in auditing
379
00:13:51,380 –> 00:13:52,460
and role models,
380
00:13:52,460 –> 00:13:54,100
you assemble logs, manual reviews
381
00:13:54,100 –> 00:13:56,020
and after the fact detective controls.
382
00:13:56,020 –> 00:13:58,660
In data verse, row and field level security, auditing
383
00:13:58,660 –> 00:14:00,220
and business units are native,
384
00:14:00,220 –> 00:14:01,820
aligned with least privilege,
385
00:14:01,820 –> 00:14:04,300
enforced in the query plan and measurable.
386
00:14:04,300 –> 00:14:07,540
That alignment saves both hours and incidents.
387
00:14:07,540 –> 00:14:11,380
Risk-adjusted math is where the free fallacy collapses.
388
00:14:11,380 –> 00:14:13,900
Count the cost of throttled flows causing stale data,
389
00:14:13,900 –> 00:14:15,940
blue banner bugs producing wrong decisions
390
00:14:15,940 –> 00:14:18,700
and slow screens that waste minutes per user per day.
391
00:14:18,700 –> 00:14:20,660
Multiply by head count and months,
392
00:14:20,660 –> 00:14:23,180
add one compliance event or an app abandonment cycle
393
00:14:23,180 –> 00:14:24,340
that triggers a rewrite.
394
00:14:24,340 –> 00:14:26,340
That total dwarfs the premium license
395
00:14:26,340 –> 00:14:28,820
and yes, the 2025 platform optimizations
396
00:14:28,820 –> 00:14:30,420
better caching fewer chatty calls,
397
00:14:30,420 –> 00:14:31,660
improve everyone’s baseline
398
00:14:31,660 –> 00:14:33,340
but data verse converts those gains
399
00:14:33,340 –> 00:14:35,060
into sustained throughput,
400
00:14:35,060 –> 00:14:37,260
while SharePoint still funnels complex logic
401
00:14:37,260 –> 00:14:38,700
into the client.
402
00:14:38,700 –> 00:14:40,620
Budget framing for IT leaders is simple.
403
00:14:40,620 –> 00:14:42,540
Premium spend by scale, governance
404
00:14:42,540 –> 00:14:44,580
and fewer engineering fire drills.
405
00:14:44,580 –> 00:14:46,140
It buys delegable queries,
406
00:14:46,140 –> 00:14:48,460
so your dev stop playing formula Wacomoll.
407
00:14:48,460 –> 00:14:50,580
It buys auditing that satisfies auditors
408
00:14:50,580 –> 00:14:52,060
without a scavenger hunt.
409
00:14:52,060 –> 00:14:54,020
It buys security that performs
410
00:14:54,020 –> 00:14:56,420
and a model that integrates with Power BI and AI
411
00:14:56,420 –> 00:14:58,940
without exporting CSVs like it’s 2009.
412
00:14:58,940 –> 00:15:00,860
Essentially, you’re trading capricious maintenance
413
00:15:00,860 –> 00:15:02,260
for predictable operations.
414
00:15:02,260 –> 00:15:04,220
Migration effort belongs in the ROI too.
415
00:15:04,220 –> 00:15:06,820
Moving a data centric app from SharePoint to Dataverse,
416
00:15:06,820 –> 00:15:09,140
schema mapping, relationships, roles, data loads,
417
00:15:09,140 –> 00:15:11,060
refactoring flows and swapping connectors
418
00:15:11,060 –> 00:15:13,580
cost real time, but it’s a one time project
419
00:15:13,580 –> 00:15:15,820
that retires a recurring tax.
420
00:15:15,820 –> 00:15:18,140
After migration, new features accrue faster
421
00:15:18,140 –> 00:15:19,860
because you’re building on a platform designed
422
00:15:19,860 –> 00:15:22,100
for your use case, not battling thresholds
423
00:15:22,100 –> 00:15:23,540
and non-delicable landmines.
424
00:15:23,540 –> 00:15:25,540
If you remember nothing else, remember this.
425
00:15:25,540 –> 00:15:28,340
Dataverse is a line item, SharePoint workarounds
426
00:15:28,340 –> 00:15:29,460
are in a newety.
427
00:15:29,460 –> 00:15:31,780
One you approve once, the other you pay forever.
428
00:15:31,780 –> 00:15:34,020
Choose the expense that stops the bleeding.
429
00:15:34,020 –> 00:15:35,740
Decision framework, thresholds,
430
00:15:35,740 –> 00:15:37,460
red flags and migration paths.
431
00:15:37,460 –> 00:15:39,500
You want a line you can defend in a design review.
432
00:15:39,500 –> 00:15:40,380
Here it is.
433
00:15:40,380 –> 00:15:42,900
Choose Dataverse when any of the following are true.
434
00:15:42,900 –> 00:15:45,180
Your list will exceed 100,000 items.
435
00:15:45,180 –> 00:15:47,860
Users need compound filters or multicolumn search.
436
00:15:47,860 –> 00:15:49,940
You have more than one or two lookups per record.
437
00:15:49,940 –> 00:15:52,220
Offline is required or security must be granular
438
00:15:52,220 –> 00:15:54,460
at the row or field level with auditing.
439
00:15:54,460 –> 00:15:57,460
Cross any one threshold and SharePoint stops being included
440
00:15:57,460 –> 00:15:59,180
and starts being expensive.
441
00:15:59,180 –> 00:16:00,900
Now the red flags that predict collapse
442
00:16:00,900 –> 00:16:02,980
before you write a single formula.
443
00:16:02,980 –> 00:16:05,980
Persistent blue delegation banners anywhere in core user flows.
444
00:16:05,980 –> 00:16:08,140
Repeated use of non-delagable functions.
445
00:16:08,140 –> 00:16:10,580
Search across multiple fields, group by,
446
00:16:10,580 –> 00:16:13,940
distinct, chain lookup, filter with or across columns.
447
00:16:13,940 –> 00:16:16,860
Lists with item level permissions applied broadly.
448
00:16:16,860 –> 00:16:18,660
Views that intermittently time out
449
00:16:18,660 –> 00:16:21,220
or refuse to sort unless perfectly indexed.
450
00:16:21,220 –> 00:16:24,460
Threatening or cannot complete this operation messages
451
00:16:24,460 –> 00:16:26,420
near the 5,000 item mark.
452
00:16:26,420 –> 00:16:28,940
If you see two or more red flags during prototyping,
453
00:16:28,940 –> 00:16:30,900
you’re already in rewrite territory.
454
00:16:30,900 –> 00:16:33,060
Governance triggers are straightforward.
455
00:16:33,060 –> 00:16:35,900
Do you need auditing that answers who saw or changed what?
456
00:16:35,900 –> 00:16:37,420
Do you need least privilege access
457
00:16:37,420 –> 00:16:39,540
by business unit, role and field?
458
00:16:39,540 –> 00:16:41,500
Do you have segregation of duties constraints
459
00:16:41,500 –> 00:16:42,740
or regulated data classes?
460
00:16:42,740 –> 00:16:44,060
Those are dataverse native.
461
00:16:44,060 –> 00:16:46,540
Trying to bolt them onto SharePoint guarantees performance
462
00:16:46,540 –> 00:16:48,100
drag and compliance busy work.
463
00:16:48,100 –> 00:16:50,340
Performance triggers are the user facing tells.
464
00:16:50,340 –> 00:16:53,460
First screen code starts exceeds three seconds on Wi-Fi.
465
00:16:53,460 –> 00:16:55,700
Gallery interaction stutter when filters stack.
466
00:16:55,700 –> 00:16:58,300
Search latency varies wildly across users.
467
00:16:58,300 –> 00:17:01,500
View operations fail unless you micromanage indexes weekly.
468
00:17:01,500 –> 00:17:04,380
The truth, you’ve offloaded data work to the client.
469
00:17:04,380 –> 00:17:06,740
Dataverse fixes that by executing intent
470
00:17:06,740 –> 00:17:07,860
where the data lives.
471
00:17:07,860 –> 00:17:09,580
Decision path succinct.
472
00:17:09,580 –> 00:17:12,620
If the app is simple, flat and disposable,
473
00:17:12,620 –> 00:17:15,620
think small trackers, light task boards, contact lists,
474
00:17:15,620 –> 00:17:18,620
keep it on SharePoint and enforce strict patterns.
475
00:17:18,620 –> 00:17:21,940
Indexed filters, single field search, minimal lookups,
476
00:17:21,940 –> 00:17:23,740
no item level security.
477
00:17:23,740 –> 00:17:25,540
Everything else, especially data centric apps
478
00:17:25,540 –> 00:17:28,300
with life cycles, moves to dataverse proactively,
479
00:17:28,300 –> 00:17:31,140
don’t wait for the blue banner to become a help desk legend.
480
00:17:31,140 –> 00:17:32,860
Migration isn’t mystical, it’s methodical.
481
00:17:32,860 –> 00:17:34,060
Start with schema mapping.
482
00:17:34,060 –> 00:17:36,020
Identify lists, columns and lookups,
483
00:17:36,020 –> 00:17:37,780
then normalize into dataverse tables
484
00:17:37,780 –> 00:17:39,340
with relationships you actually want.
485
00:17:39,340 –> 00:17:41,300
Define primary keys and alternate keys
486
00:17:41,300 –> 00:17:44,180
where you previously faked uniqueness with text columns.
487
00:17:44,180 –> 00:17:46,460
Next, design security roles and business units
488
00:17:46,460 –> 00:17:49,460
to match how access should work, not how it evolved.
489
00:17:49,460 –> 00:17:52,740
Translate item level hacks into proper row and field permissions.
490
00:17:52,740 –> 00:17:54,100
Data load comes next.
491
00:17:54,100 –> 00:17:57,260
Export clean, de-duplicated data from SharePoint.
492
00:17:57,260 –> 00:17:59,300
Load parent tables first, then children,
493
00:17:59,300 –> 00:18:02,860
respecting relationships, validate counts and spot check joints.
494
00:18:02,860 –> 00:18:05,660
While data moves, refactor power automate flows,
495
00:18:05,660 –> 00:18:08,700
replace list actions with dataverse triggers and actions,
496
00:18:08,700 –> 00:18:10,780
drop any compensating steps that existed
497
00:18:10,780 –> 00:18:12,260
only to work around missing joints
498
00:18:12,260 –> 00:18:14,260
and consolidate error handling.
499
00:18:14,260 –> 00:18:16,580
In the app, swap connectors, rewrite
500
00:18:16,580 –> 00:18:19,180
non-delegable formulas into delegate queries
501
00:18:19,180 –> 00:18:22,020
and remove calculated column crutches you no longer need,
502
00:18:22,020 –> 00:18:24,140
where you previously copied text to denormalize,
503
00:18:24,140 –> 00:18:25,860
use relationships and views.
504
00:18:25,860 –> 00:18:27,780
Then test for delegation at every screen.
505
00:18:27,780 –> 00:18:29,740
No blue banners allowed if you see one,
506
00:18:29,740 –> 00:18:32,180
change the formula or adjust the data model.
507
00:18:32,180 –> 00:18:34,260
Don’t ship, mostly, delegateable.
508
00:18:34,260 –> 00:18:35,820
That’s just sometimes wrong.
509
00:18:35,820 –> 00:18:38,340
Risk controls during migration keep your weekends quiet,
510
00:18:38,340 –> 00:18:41,340
segment environments, dev, test, prod.
511
00:18:41,340 –> 00:18:44,420
So data and security can be validated without surprises.
512
00:18:44,420 –> 00:18:47,940
Run a face cut over, pilot a user group on the dataverse version
513
00:18:47,940 –> 00:18:50,980
while SharePoint remains read only as the interim source
514
00:18:50,980 –> 00:18:53,820
of truth, then flip one’s parity is proven.
515
00:18:53,820 –> 00:18:56,620
Monitor with telemetry, track load times query counts
516
00:18:56,620 –> 00:18:58,180
and delegation status.
517
00:18:58,180 –> 00:19:01,260
Establish rollback only for catastrophic issues.
518
00:19:01,260 –> 00:19:03,380
Otherwise, fix forward.
519
00:19:03,380 –> 00:19:05,060
On the platform built to scale,
520
00:19:05,060 –> 00:19:06,940
a final threshold many miss if you’re
521
00:19:06,940 –> 00:19:08,900
authoring flows to pre-compute rollups
522
00:19:08,900 –> 00:19:11,780
joining lists with power automate or exporting to CSV
523
00:19:11,780 –> 00:19:12,740
for analytics.
524
00:19:12,740 –> 00:19:15,780
You’ve already paid more in workarounds than a premium license.
525
00:19:15,780 –> 00:19:19,380
The adult move is to stop paying that annuity and migrate.
526
00:19:19,380 –> 00:19:20,180
Key takeaway.
527
00:19:20,180 –> 00:19:22,260
SharePoint lists are content shelves.
528
00:19:22,260 –> 00:19:24,460
Dataverse is a data engine that delegates,
529
00:19:24,460 –> 00:19:25,740
secures and scales.
530
00:19:25,740 –> 00:19:28,220
Use the right tool once your app needs relationships,
531
00:19:28,220 –> 00:19:30,500
complex filters or honest counts.
532
00:19:30,500 –> 00:19:32,660
Adopt the thresholds and red flags you heard,
533
00:19:32,660 –> 00:19:35,300
audit your apps this week, and escalate migrations
534
00:19:35,300 –> 00:19:36,980
before users feel the spinner tags.
535
00:19:36,980 –> 00:19:38,660
If you want the schema mapping walkthrough
536
00:19:38,660 –> 00:19:42,020
and a delegation deep dive, subscribe and turn on notifications.
537
00:19:42,020 –> 00:19:43,620
Choose structure over entropy.
538
00:19:43,620 –> 00:19:47,220
Move the data to dataverse and stop arguing with blue banners.