Do you need ngrok to develop Microsoft Teams apps?

Do you need ngrok to develop Microsoft Teams apps?

This article is contributed. See the original author and article here.

ngrok-signpost.pngIf you’ve started down the path of developing applications for Microsoft Teams, you may have seen a tool called ngrok as a prerequisite in various tutorials and lab exercises. It’s also integrated with a number of tools such as the Microsoft Teams Toolkit and the yo teams generator; even the Bot Framework Emulator has an ngrok option.


This article will explain what ngrok is, why it’s useful, and what to do instead if you or your company are uncomfortable using it. Also, please check out the companion video for this article, which includes live demos of Teams development with and without ngrok.


Grokking ngrok


First the shocking truth: Microsoft Teams applications don’t run in Teams. OK maybe it’s not shocking, but it’s true. Teams applications are made up of regular web pages and web services that you can host anywhere on the Internet. Teams tabs and task modules (dialog boxes) are just embedded web pages; bots and messaging extensions are web services. This allows developers to use their choice of web development stack, and to reuse code and skills.


Web developers typically host a small web server on the same computer where they edit their code to run and debug their applications. For Microsoft Teams developers in particular, ngrok is very handy in this situation. Here’s why:




  1. ngrok provides the encryption needed for https, which is required for Teams applications. It’s set up using a trusted TLS certificate so it just works immediately in any web browser.




  2. ngrok provides a tunnel from the Internet to your local computer which can accept incoming requests that are normally blocked by an Internet firewall. The requests in this case are HTTP POSTs that come from the Azure Bot Service. Though tunneling is not required per se, there has to be some way for the Azure Bot Service to send requests to the application.




  3. ngrok provides name resolution with a DNS names ending in ngrok.io, so it’s easy to find the public side of the Internet tunnel.




  4. ngrok makes mobile device testing easier since any Internet-connected phone or tablet can reach your app via the tunnel. There’s no need to mess with the the phone’s network connections; it just works.




These conveniences have made ngrok the darling of many Microsoft Teams developers. It lets them compile, run, and debug software locally without worrying about any of these details.


The tunneling part, however, lacks the guard rails expected by many IT professionals, especially if they’re managing a traditional corporate network that relies on a shared firewall or proxy server for security. While ngrok only provides access to the local computer where it’s run, an insider “bad actor” could launch attacks from such a machine. For that reason, some IT departments block all access to ngrok.



Many colleagues have suggested other tunneling applications such as Azure Relay or localtunnel. While they may do the job, they still open a tunnel from the public Internet to your development computer, and thus the same security concerns usually arise. This article will only consider approaches that don’t involve tunneling from the Internet.



Tunneling explained


Most computers that are connected to the Internet aren’t connected directly. Network traffic passes through some kind of firewall or NAT router to reach the actual Internet. The firewall allows outgoing requests to servers on the Internet but blocks all incoming requests. This is largely a security measure, but it has other advantages as well.


 

ngrok-without-ngrok-2.png


A typical web developer runs some kind of web server on their local computer. They can access that web server using the hostname localhost, which routes messages through a “loopback” service instead of sending them out on the network. As you can see in the picture, these messages don’t go through the Internet at all.


But what if, in order to test the application, it needs to get requests from the Internet? Bots are an example of this; the requests come from the Azure Bot service in the cloud, not from a local web browser or other client program. Another place this comes up is when implementing webhooks such as Microsoft Graph change notifications; the notifications are HTTP(s) requests that come from the Internet.


The problem is these incoming requests are normally blocked by the firewall. If you’ve ever opened a port on your home router to allow a gadget to receive incoming connections, this is the same situation.


With ngrok running, the incoming requests go through the ngrok service and into your locally running copy of the ngrok application. The ngrok application calls the local server, allowing the developer to run and debug the web server locally.


 

ngrok-with-ngrok.png


In the case of Teams development, tabs and task modules only require a local loopback connection, whereas bots and messaging extensions have to handle incoming requests from the Internet. Each is explained in more detail later in this article.


Using ngrok


ngrok is a command line program that works on Windows, Mac OS, Linux and FreeBSD.


Suppose your local web server is at http://localhost:3978 (the default for bots). Then run this ngrok command line:



ngrok http 3978


You will then see a screen like this:


 

ngrok-screenshot.png


The “Forwarding” lines show what’s happening. Requests arriving at http://(something).ngrok.io or https://(something).ngrok.io will be forwarded to http://localhost:3978 where your bot code is running. At this point you would put the “something.ngrok.io” address into your Azure bot configuration, Teams app manifest etc. as the location, and leave the command running while you debug your application.


ngrok url


The external ngrok url will always look like this:



https://(something).ngrok.io


With the free ngrok service, the value of (something) is different every time you run ngrok, and you’re limited to an 8-hour session. Every time you get a new hostname you need to update your configuration; depending on what you’re doing and how many places you had to enter the hostname, this can be a chore. The paid plans allow you to reserve names that will persist, so you can just start ngrok and and you’re ready to go.



Hint: If you’re doing a tutorial using the free version of ngrok, make a note of every place you use the ngrok URL. That way you can easily remember where to update it when it changes.



The example above assumes that your local server is running http on the specified port. If your local server is running https you need a different command or it won’t connect:



ngrok http https://localhost:3978


Host header rewriting


The HTTP(s) protocol includes a header called Host, which should contain the host (domain) name and port of the web server. This is used for routing requests to the right server, and for allowing a single web server to serve multiple web sites and services.


If your debug server ignores the host header, you can ignore this section. But some servers will require the header to match the host name, such as localhost:3978. The challenge is that if the request was sent to 12345.ngrok.io, the originator will probably put that in the host header when the server is expecting localhost:3978. To handle this, ngrok provides a command line argument that replaces the host headers with the local host name. Simply add the -host-header command switch to enable this.


For example,



ngrok http -host-header=localhost:3978 3978


If you see the messages go through to your local web server but it doesn’t respond, it may be expecting a specific host header.


All the command options are detailed in the ngrok documentation.


Network tracing


You might notice that the ngrok screen shows a trace of requests that went through the tunnel; in this case they’re HTTP POST requests from the Azure Bot Service, and the local server returned a 200 (OK) response. This is handy because you can see a 500 error from your server code by just glancing at the ngrok screen.


You might also notice the “Web interface” url on the ngrok screen. It provides a full network trace of what went through the tunnel, which can be very helpful in debugging.


 

ngrok-trace.png


Developing Tabs and Web-Page based Teams features


Some Teams application features are based on web pages provided by your application:



  • Tabs and Tab Configuration Pages

  • Task Modules (dialog boxes)

  • Connector Configuration Pages


These features are backed by ordinary web pages that are displayed in an IFrame within the Microsoft Teams user interface. Tabs using the Azure Active Directory Single Sign-On (SSO) option also need to implement a web service to do a token exchange. Accessing these via localhost is no problem; no tunnel is required.


 

ngrok-without-ngrok-sso.png


However Teams does require the web server to use a trusted https connection or it won’t display. ngrok translates trusted https requests into local http requests, so it just works. But if you’d rather not have a tunnel to the Internet as part of your setup, you can do this all locally. It’s just more work.


Setting up a trusted https server


On a NodeJS server, you can usually enable https by editing the .env file and setting the HTTPS property to true. For .NET projects in Visual Studio, under project properties on the “Debug” tab, check the “Enable SSL” box to enable https.


But alas, just turning on the https protocol is generally not enough to satisfy this requirement; the connection must be trusted. Trust is established by a digital certificate; if the certificate comes from a trusted authority, is up-to-date, and matches the hostname in the URL, the little padlock in your web browser lights up and all is well. If not, you get errors that you can bypass in most web browsers, but not in Microsoft Teams.


The people over at ngrok acquired their certificate from a trusted authority, and it’s set to match hostnames ending in ngrok.io, so it just works without any fuss. The local web server, on the other hand, will most likely have a self-signed, untrusted certificate. So the trick is to get your browser and/or Microsoft Teams to trust it.


An option that often works is to browse to the local server from a regular web browser, click the security error, and tell the browser to trust the certificate. You can then run Teams in the same browser and bypass the issue. If the Teams client shares the same certificate store as your browser, it will also work. However these default certificates generally expire after a month or so, and the process will need to be repeated.


A better option is to generate your own certificate and tell your computer to trust it. That way you can control the expiration date and reuse the certificate on multiple projects, so you only need to do the setup once. This is explained in the article, Setting up SSL for tabs in the Teams Toolkit for Visual Studio Code. The instructions are for a Create React App application using the Teams Toolkit but they shouldn’t be too difficult to adapt to other tool chains since the certificate creation and trust parts are the same regardless.


Mobile device testing


It’s prudent to test Teams applications using the mobile versions of Teams (iOS and Android) to make sure everything looks good and works properly. ngrok makes this a breeze; since your local service is exposed on the public Internet, you can test using any device with an Internet connection, no special setup required.


If you’d prefer not to expose your local server to the Internet, you can always connect your phone locally using wifi and leave the Internet out of it. This picture shows two phones; phone 1 is connected via ngrok and phone 2 is connected locally.


 

ngrok-mobile-device.png


To set up local access you’ll need a server name other than localhost, and you’ll need to open a path on the local network from your phone to your local web server. Here are the high-level steps; the details vary depending on your phone OS, development computer OS, and network configuration.



  1. Connect your mobile device via wifi to the same network as your development computer.

  2. Open an incoming port on your development computer’s built-in firewall (port 3000, 3978, 8080, or whatever your local web server is using).

  3. Determine the local IP address of your development computer; ideally reserve it so it doesn’t change. This can be accomplished in the DHCP section of most home routers or by using a fixed IP address.

  4. Set up a hosts entry (phones have them too!) or local DNS name to point to your development computer. Again, many home routers have the ability to register a local DNS name so you don’t have to configure it in each device.

  5. Make sure the https certificate is for this same hostname and not just localhost, and install it as a trusted certificate on your phone.


While this might not seem easy, it is possible! And it’s a one-time setup that you can use over and over. But you can see that ngrok makes it a whole lot easier.


Developing Bots and Messaging Extensions with and without ngrok


Several features of Teams applications are based on a web service within your application that is called from the cloud. These are:



All of these are implemented as REST services and could be built with any tool chain, but the requests will come from the cloud, so you need to have a port listening on the Internet to receive those requests.


 

ngrok-bot.png


For this reason there’s currently no local debugging option in Microsoft Teams that doesn’t involve opening a port on the Internet or using some sort of tunnel, ngrok or otherwise. The same is true for outgoing webhooks, which are outgoing from Teams to your app).


If ngrok isn’t on your road map, don’t worry, there are still options available!


Option 1. Use the Bot Framework Emulator


If you’re building a bot, consider using the Bot Framework Emulator, which allows you to run bots locally without using the Azure Bot Service. Instead of running your bot in Teams, you run it in the emulator. The drawback is that the emulator doesn’t currently understand some Teams-specific features such as messaging extensions or other Invoke activities. However it does a great job running conversational bots! Adaptive cards work as well, though Invoke card actions do not.


If your bot isn’t too Teams-specific, consider using the Bot Framework Emulator for most debugging and just do final integration testing in Teams, perhaps when the bot deployed in a staging environment which is set up for handling incoming requests.


Option 2. Don’t debug locally


Another approach is to move away from the strategy of local debugging entirely. For example, you could publish your app to Microsoft Azure app service and use the remote debugger. Here are the instructions for Visual Studio Code (NodeJS) and Visual Studio 2019 (.NET).


You could even set up a development virtual machine (VM) in Azure or your cloud service of choice and open an incoming port for the Azure Bot Service. Or just run ngrok in the VM, away from the concerns of a corporate network.


How many services do you have?


Teams applications generated by the yo teams generator have a single web server, so if your app has a combination of features – say, tabs and a bot – you can use one ngrok tunnel or one for all your application features.


Teams applications generated by the Microsoft Teams Toolkit generate multiple web servers (one for tabs, another for bots, and a third for the SSO web service if you use it). If you want to use ngrok, you’ll need a tunnel for each one. This requires the paid service and you’ll have to start up multiple copies each time you begin debugging. Another option is to use a single ngrok tunnel for your bot, potentially with the free service, and then use local connections for the tab and SSO web service.


Of course you don’t have to use either of these tools; they’re really just a convenience! You can use any tools you wish and create the Teams application package in App Studio or by editing your own manifest.json file and zipping it up with a couple icons.


Summary


While ngrok isn’t a requirement for Teams development, it does make it a lot easier. However if you can’t or don’t want to open up a tunnel from the Internet, there are other strategies. Many of these, such as local https servers with self-signed certificates, have been around for a long time and may already be familiar.


There is nothing magic about Teams development! It was designed to use standard web tooling, and you can use the same tools that you’d use for any web development project. Trust your knowledge of web development to come up with a configuration that works for you. Just be aware of which services will be called from the Internet and plan accordingly.


References


5 trends transforming B2B buying and e-commerce

5 trends transforming B2B buying and e-commerce

This article is contributed. See the original author and article here.

Many of the forces driving rapid change in B2C commerce are now propelling transformation in the B2B space. Buyers of all types demand an easy, convenient online shopping experience, a requirement that has been accelerated by the pandemic and as Millennials take the decision-making reins.

Over time, the demand for an omnichannel, user-centric e-commerce experience will grow in every space, including B2B. The good news is that with B2B e-commerce for Microsoft Dynamics 365 Commerce, we’re delivering the same integrated, secure, and seamless experience for B2B e-commerce as we do for B2C companies. Plus, businesses who compete in both spaces can use the same holistic commerce solution in both scenarios.

1. B2B buying is moving online

When examining how the pandemic has accelerated e-commerce, it’s clear that this rapid transformation has touched every industry, every sector, and every business type. Online shopping hit new records before the pandemic and surged more than 209 percent in April 2020 alone, according to ACI.

In the B2B arena, more buyers are shopping online than ever before, too. According to McKinsey & Company, just 20 percent of B2B buyers say they hope to return to in-person sales. This proves to be especially true in sectors where field-sales have long dominated, including pharma and medical products. And this shift is not just for small purchases. B2B consumers are making large purchases online. The same McKinsey & Company research found that 70 percent of B2B decision-makers are open to making remote or self-service purchases over $50,000, and 27 percent would spend more than $500,000.

According to Digital Commerce 360, US B2B e-commerce sales increased by 11.8 percent to $2.19 trillion in 2020, up from $1.3 trillion in 2019. This market is near double the opportunity as B2C e-commerce, which was $861.12 billion in 2020, according to Digital Commerce 360.

Kent Water Sports have been actively working with Microsoft to bring Dynamics 365 Commerce to both consumers and business partners to improve buying experiences.

“Our customers are thrilled to see inventory levels and receive automatic shipping notifications from our system now that we’ve added the Dynamics 365 B2B e-commerce capabilities. Altogether, it’s a much better experience for our B2B customers. Rhett Thompson: IT Corporate Director” – Kent Water Sports

2. Supply chain agility is a necessity

The pandemic has highlighted just how critical supply chain agility is, as demonstrated by the headline-making supply chain shocks. In addition to the toilet paper shortages in the pandemic’s early days, other supply chains, such as medical supplies, silicone chips, appliances, and even bicycles, have buckled. A year later, supply chains have still not fully recovered.

According to a November 2020 commissioned study conducted by Forrester Consulting on behalf of Microsoft, supply chain agility is one of the three major areas that retailers and consumer packaged goods companies are focused on as part of a successful digital commerce strategy. These businesses are addressing agility by increasing visibility throughout their product’s journey and embracing technologies such as machine learning and AI to drive automation. Companies must be able to connect supply chain technology with their digital commerce systems to gain access to real-time inventory visibility and leverage AI to optimize fulfillment and ensure inventory availability at the right time and place.

3. User experience is at the forefront

In recent years, consumers have come to expect certain conveniences when shopping online that improve their experiences. From depositing checks through a smartphone app to sending money instantly without a fee to grocery delivery, companies have increasingly made our lives easier through integrated technologies and a focus on the customer experience. When shopping online, B2C consumers have come to expect easy-to-use digital storefronts, customizable products, package tracking, and simplified checkout and payment options.

As Millennials become more senior in business, they’re questioning why B2B should be any different, citing a disconnect between an archaic spreadsheet-driven B2B buying experience and how they conduct their personal online activities. Back in 2017, Forrester already noted that Millennials have taken over B2B buying power, with 73 percent of Millennials involved in B2B purchasing decisions. A more recent study by Demand Gen found that 44 percent of Millennial respondents indicating they are a primary decision-maker at their company for purchases of $10,000 or more.

Creating a seamless customer experience is a must for all businesses. B2B e-commerce is no exception and companies like Britax Rmer have been working with Dynamics 365 Commerce to provide more robust experiences and discoverability for retailers and streamline the customer’s buying journey.

This embed requires accepting cookies from the embed’s site to view the embed. Activate the link to accept cookies and view the embedded content.

This site uses cookies for analytics, personalized content and ads. By continuing to browse this site, you agree to this use.

4. Personalization requires integration

Personalization is a growing trend in B2C retail that is making its way to the B2B commerce space, too. B2B buyers are sophisticated. They’re the tech-savvy Millennials and buyers of all ages who are used to seeing personalized recommendations, purchase history for easier reordering, chat options for instant customer service, and more.

Delivering this personalization requires a more integrated customer experience, from in-person to online and back again, which relies upon unified data and greater transparency. In a special blog series for retailers, we discussed how to achieve visibility through Dynamics 365 Commerce in part two of the series. The takeaways from this series can be applied to B2B, too.

Although e-commerce is booming, it’s expected that in-person shopping for both B2C and B2B customers will rebound. Before the pandemic, Capgemini Research Institute found that 59 percent of consumers worldwide had high levels of interaction with brick-and-mortar stores. As things return to the new normal, a lower number, 39 percent, expect a high level of interaction with physical stores. B2B retailers need to deliver seamless omnichannel experiences that tie together online and offline interactions.

5. Security, privacy, and fraud prevention are critical

In our Forrester study, security and privacy were highlighted as the third critical component for successful digital commerce, while expanding e-commerce widens the scope of risks. In addition to protecting customer data, businesses must protect themselves from both fraud and security breaches. According to Retail TouchPoints, online fraud losses reached $40 billion globally in 2018. The study also showed that 52 percent of retail and CPG decision-makers consider the increasing level of sophistication of online threats or attacks as a major security challenge for digital commerce.

A robust system is required for combating fraud, which is why we’ve made it easy to integrate Microsoft Dynamics 365 Fraud Protection into Dynamics 365 Commerce. It provides tools and capabilities to decrease fraud and abuse, reduce operational expenses, and increase acceptance rates while safeguarding user accounts.

How to get started with B2B e-commerce for Dynamics 365 Commerce

We’ve created B2B e-commerce for Dynamics 365 Commerce to help you streamline and simplify self-service buying for your B2B customers. It provides a unified omnichannel solution that can meet organizational needs for both B2C and B2B e-commerce in a single platform. It also helps companies provide more personalized e-commerce experiences while ramping up security, privacy, fraud prevention.

Learn more about B2B e-commerce for Dynamics 365 Commerce today or contact us to join a demo or to speak with a specialist about Dynamics 365 Commerce.

The post 5 trends transforming B2B buying and e-commerce appeared first on Microsoft Dynamics 365 Blog.

Brought to you by Dr. Ware, Microsoft Office 365 Silver Partner, Charleston SC.

[Guest Blog] Inspiring Youth – Adventures in TechGirlz Workshops

[Guest Blog] Inspiring Youth – Adventures in TechGirlz Workshops

This article is contributed. See the original author and article here.

This blog was written by David Patrick, Office Apps & Services MVP. David and his daughter, Sarah, share their adventures in teaching young women a variety of computer related technologies. Through a program called TechGirlz, David and Sarah have been running workshops designed to inspire the next generation of young women to get and stay interested in STEM, to help bridge the gender gap that exists in these fields today.  


 


DSA's TechGirlz TeamDSA’s TechGirlz Team


TechGirlz is an organization whose mission is to inspire girls to explore the possibilities of technology. My daughter Sarah has a geeky Dad (me) who always knew that she could do anything that she wanted to do. But Sarah and I realized that there are many girls out there that are interested in technology, but as they get older, lose confidence in their technology skills and thus lose interest in the technology field. We wanted to help these young women keep and build their confidence in using technology. We wanted them to be inspired to pursue their interest in technology and give them role models to look up to. By volunteering for TechGirlz, we have been able to help these young women with their journeys in tech.


 


The TechGirlz organization provides “TechShopz in a Box”, which are freely available STEM based activities that volunteers like my daughter and I use to run workshops for the girls. There are many workshops to choose from, building websites, podcasting, hardware exploration, game design and many more!


 


For the last five years, Sarah and I, along with several professional women from my company, DSA, Inc. have been conducting these TechGirlz workshops, originally face to face at the Harford County Boys & Girls Clubs, and more recently virtually using Microsoft Teams to anyone from around the world.


 


Sarah E Patrick leads our first TechGirlz workshopSarah E Patrick leads our first TechGirlz workshop


 


Sarah kicked off our first afterschool program back in April 2016 by presenting the TechGirlz workshop called “Make a Website Using WordPress”. Sarah had the girls build unique and custom websites. Despite our initial fears of the workshops being perceived as extra homework, that first session was a smashing success! Girls were excited by the power they had to design their own websites from the ground up. Some created websites about their passions, like sports and music, others geared towards making money, and even one about social injustice. The level of excitement that the girls displayed was surprising and it not only showed how inspired they were, but their enthusiasm was truly infectious and it inspired us!


 


We realized that these young ladies had no fear of technology once they were introduced to it and shown the many possibilities of what it can do. The toughest part was stopping these young ladies from continuing their work when the workshop ended. They wanted so badly to keep going!


 


Other workshops we ran included “What’s in a Computer”, where the girls tore apart computers to see what makes them tick. It was awe-inspiring to see these girls at first, very tentative and afraid that they might get electric shocked or that they might break something, but then, once we reassured them and explained the safety measures taken, they dove in headfirst, sometimes literally, to explore and discover and learn what the hardware components were and how computers worked at this level. Again, the girls had to be pulled back and stopped when the workshop was over because they were so energized by the learning and discovery.


 


TechGirlz explore a computerTechGirlz explore a computer


 


TechGirlz has been a very fulfilling program to run. Seeing the girls go from unsure to enthused really made us feel like we were doing something important.


 


The ironic thing is this, I wanted to help the girls to not be afraid of technology, but in fact, I was afraid. Afraid that the tasks I perform in my daily job might not matter in the big picture. I was afraid that my life might not be meaningful. But by helping these girls overcome their fear, I also, have overcome mine.


 


The TechGirlz workshops help everyone, the girls, the volunteers, and the future employers who will get these valuable assets to help them build great things. I am hopeful we can continue to do these workshops and can spread the word to others about how beneficial they are and get more volunteers involved.


 


So here’s our Call to Action. Volunteer! Help out! Check out the volunteer opportunities and see if you can inspire courage, not only in others, but also in yourself.


 


www.techgirlz.org/volunteer


 


I know now that the things I do matter and make a difference. Helping these girls has helped me immensely. And my daughter Sarah, well, she also has grown a ton and learned a lot from the girls. She has become more confident in leading workshops, giving talks, and organizing her own events. Going forward, we have exciting plans to run more workshops, summer and winter camps, and we are even developing our own workshops. One workshop we have already finished is called “Intro to Collaboration with Microsoft Teams”, where we teach the girls how to collaborate virtually using Microsoft Teams. We completed this workshop and delivered it a few times right before the pandemic hit in March 2020. Since then, we have had to pivot from our in-person workshops to fully virtual workshops and this workshop helped prepare our girls with using tools like Teams. It was amazing how quickly the girls were able to learn to use Teams for meeting and chatting so that they can continue their learning of STEM technologies virtually.


 


Inspiring others truly ends up inspiring yourself.


 


To hear more from me and Sarah and our different perspectives around tech, check out our new video series, Patrick Perspective!


 


 

Power Apps Community Call – May 2021

Power Apps Community Call – May 2021

This article is contributed. See the original author and article here.

powerautomate-call-recording-19th-may.png


 


 


Call Summary:


Topics covered in this month’s community call include – Building multilingual Power Apps, Using Environment Variables in Canvas Apps, Using Environment Variables in Flows, Recent Power Apps News and Community Contributions and Latest on PnP Power Platform Samples Contributions.   Demo Extravaganza 2021.  Entries accepted now, Finalist voting starts – June 1st, Finalist voting ends – June 30th, Finals / Winner(s) to be Announced – July 21, 2021 at 08:00 PT.   This session included Q&A in chat.  The call was hosted by Todd Baginski (Canviz).  Demo presenters included Haniel Croitoru (Protiviti), Charles Sterling (Microsoft), and Reza Dorrani (Catapult).  This call was recorded on May 19, 2021.  Thank for attending the call or viewing it on demand. 


 


 


 


Demos: 




  • Building multilingual Power Apps – a high-level architecture for multilingual forms supported by one or more SharePoint lists (containing language terminology) in back-end.  Multiple apps/forms can pull from same lists.  Leverages native SharePoint functionality – lookups to pull data.  Picks up chosen language from computer Office 365 settings, so renders on all device platforms.   Uses basic SharePoint and Office 365 connectors in Power apps.   Easy to update, ensures consistency across apps. 




  • Using Environment Variables in Canvas Apps and in Power Automate Flows – create Environment Variables (to connect to SharePoint sites/data) and add them to Power Apps Solutions.  Within your Canvas Apps, Flows, and Bots, select to incorporate your Environment Variables.   Environment variables simplify moves from Dev to Test to Prod environments by handling environment configuration updates to Flows, Bots, and Apps.  See how Environment Variables are created, added to an App and a Flow.




 


Recent News & Cool Stuff:



 


Actions: 



 


Call Agenda:



 


Referenced in this session:



 


Learn more:  



 


Stay connected: 


Migrating to SQL: Validate Migrated Objects Using SSMA (Ep. 4) | Data Exposed

This article is contributed. See the original author and article here.

Worried about your data validation post-migration to SQL Server or Azure SQL? Join us in this episode with Alexandra Ciortea and Xiao Yu to learn how you can create your leverage SQL Server Migration Assistant (SSMA) Tester to verify that converted objects work the same way and that all data was transferred properly. We will also share the enhancements which enable validation for Azure SQL targets and streamline the setup process.


Watch on Data Exposed



Resources: