1<!DOCTYPE html> 2<html data-html-server-rendered="true" lang="en" class="h-full" data-vue-tag="%7B%22lang%22:%7B%22ssr%22:%22en%22%7D,%22class%22:%7B%22ssr%22:%22h-full%22%7D%7D"> 3 <head> 4 <title>Dev Kimchi | DevKimchi</title><meta name="gridsome:hash" content="28212866d6bcb65fe9dd22fbafa2d46751b9528c"><meta data-vue-tag="ssr" charset="utf-8"><meta data-vue-tag="ssr" name="generator" content="Gridsome v0.7.15"><meta data-vue-tag="ssr" data-key="viewport" name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"><meta data-vue-tag="ssr" data-key="format-detection" name="format-detection" content="telephone=no"><meta data-vue-tag="ssr" data-key="description" name="description" content="Fermentation: Turning .NET, Web and Cloud into Something"><meta data-vue-tag="ssr" property="og:type" content="website"><meta data-vue-tag="ssr" property="og:title" content="Dev Kimchi"><meta data-vue-tag="ssr" property="og:description" content="Fermentation: Turning .NET, Web and Cloud into Something"><meta data-vue-tag="ssr" property="og:url" content="https://devkimchi.com"><meta data-vue-tag="ssr" property="og:image" content="https://devkimchi.com/images/twitter-card.png"><meta data-vue-tag="ssr" name="twitter:card" content="summary_large_image"><meta data-vue-tag="ssr" name="twitter:title" content="Dev Kimchi"><meta data-vue-tag="ssr" name="twitter:description" content="Fermentation: Turning .NET, Web and Cloud into Something"><meta data-vue-tag="ssr" name="twitter:site" content="@devkimchi"><meta data-vue-tag="ssr" name="twitter:creator" content="@devkimchi"><meta data-vue-tag="ssr" name="twitter:image" content="https://devkimchi.com/images/twitter-card.png"><link data-vue-tag="ssr" rel="icon" href="data:,"><link data-vue-tag="ssr" rel="icon" type="image/png" sizes="16x16" href="/assets/static/favicon.ce0531f.1011a10e41b6fe00b0d82bb0455abad6.png"><link data-vue-tag="ssr" rel="icon" type="image/png" sizes="32x32" href="/assets/static/favicon.ac8d93a.1011a10e41b6fe00b0d82bb0455abad6.png"><link data-vue-tag="ssr" rel="icon" type="image/png" sizes="96x96" href="/assets/static/favicon.b9532cc.1011a10e41b6fe00b0d82bb0455abad6.png"><link data-vue-tag="ssr" rel="apple-touch-icon" type="image/png" sizes="76x76" href="/assets/static/favicon.f22e9f3.1011a10e41b6fe00b0d82bb0455abad6.png"><link data-vue-tag="ssr" rel="apple-touch-icon" type="image/png" sizes="152x152" href="/assets/static/favicon.62d22cb.1011a10e41b6fe00b0d82bb0455abad6.png"><link data-vue-tag="ssr" rel="apple-touch-icon" type="image/png" sizes="120x120" href="/assets/static/favicon.1539b60.1011a10e41b6fe00b0d82bb0455abad6.png"><link data-vue-tag="ssr" rel="apple-touch-icon" type="image/png" sizes="167x167" href="/assets/static/favicon.dc0cdc5.1011a10e41b6fe00b0d82bb0455abad6.png"><link data-vue-tag="ssr" rel="apple-touch-icon" type="image/png" sizes="180x180" href="/assets/static/favicon.7b22250.1011a10e41b6fe00b0d82bb0455abad6.png"><link data-vue-tag="ssr" rel="stylesheet" href="https://fonts.googleapis.com/css?family=
4Fira+Sans:400,700%7CCardo"><link data-vue-tag="ssr" rel="stylesheet" href="https://github.githubassets.com/assets/gist-embed-d89dc96f3ab6372bb73ee45cafdd0711.css"><link rel="preload" href="/assets/css/1.styles.648ce5c1.css" as="style"><link rel="preload" href="/assets/js/app.e11e29fa.js" as="script"><link rel="preload" href="/assets/js/page--src--pages--index-vue.ab41fad0.js" as="script"><link rel="prefetch" href="/assets/js/10.21c7d89c.js"><link rel="prefetch" href="/assets/js/page--src--pages--404-vue.12bafa4e.js"><link rel="prefetch" href="/assets/js/page--src--pages--about-vue.231ab5be.js"><link rel="prefetch" href="/assets/js/page--src--templates--author-vue.a4d7b505.js"><link rel="prefetch" href="/assets/js/page--src--templates--post-vue.bba3adee.js"><link rel="prefetch" href="/assets/js/page--src--templates--tag-vue.f28e9a79.js"><link rel="prefetch" href="/assets/js/vendors~page--src--pages--index-vue~page--src--templates--author-vue~page--src--templates--post-vue~~a0fae544.7cb9b90f.js"><link rel="prefetch" href="/assets/js/vendors~page--src--templates--post-vue.434d6988.js"><link rel="stylesheet" href="/assets/css/1.styles.648ce5c1.css"><noscript data-vue-tag="ssr"><style>.g-image--loading{display:none;}</style></noscript> 5 </head> 6 <body class="antialiased font-sans" data-vue-tag="%7B%22class%22:%7B%22ssr%22:%22antialiased%20font-sans%22%7D%7D"> 7 <div data-server-rendered="true" id="app" class="bg-white"><main><header><div class="max-w-xl md:max-w-3xl xl:max-w-4xl mx-auto text-center px-6 py-10 md:py-32 border-b border-gray-300"><h1 class="text-4xl sm:text-5xl md:text-6xl font-serif font-bold mb-1"><a href="/" aria-current="page" class="text-black active--exact active">Dev Kimchi</a></h1><p class="text-gray-700 text-lg sm:text-3xl">Fermentation: Turning .NET, Web and Cloud into Something</p></div></header><section><article><div class="mx-auto max-w-3xl px-6"><div class="py-8 sm:py-20 border-b border-gray-300"><header class="text-center mb-8"><div><a href="/2025/02/07/giving-granular-controls-to-azure-easyauth/" class="text-black font-bold"><img src="/2025/02/giving-granular-controls-to-azure-easyauth-00.png"></a></div><time datetime="2025-02-07 00:00:00" class="text-gray-700 text-xs mb-2 uppercase">07 February, 2025</time><h2 class="text-3xl sm:text-4xl leading-tight font-sans mb-1 sm:mb-2"><a href="/2025/02/07/giving-granular-controls-to-azure-easyauth/" class="text-black font-bold">Giving Granular Controls to Azure EasyAuth</a></h2><p class="text-gray-700 leading-normal text-sm sm:text-base"><span>by <a href="/author/Justin-Yoo/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Justin Yoo</a></span><span> in <a href="/tag/azure/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Azure</a></span><span> · </span><span>6 min read</span></p></header><p class="leading-normal font-sans text-gray-700 text-lg px-2 sm:px-4 md:px-10">When working with web applications, implementing authentication and authorization is crucial for security. Traditionally, there have been various ways from simple username/password inputs to</p></div></div></article><article><div class="mx-auto max-w-3xl px-6"><div class="py-8 sm:py-20 border-b border-gray-300"><header class="text-center mb-8"><div><a href="/2025/01/15/getting-datetimeoffset-in-power-automate/" class="text-black font-bold"><img src="/2025/01/getting-datetimeoffset-in-power-automate-00.png"></a></div><time datetime="2025-01-15 00:00:00" class="text-gray-700 text-xs mb-2 uppercase">15 January, 2025</time><h2 class="text-3xl sm:text-4xl leading-tight font-sans mb-1 sm:mb-2"><a href="/2025/01/15/getting-datetimeoffset-in-power-automate/" class="text-black font-bold">Using Office Scripts to Get DateTimeOffset in Power Automate</a></h2><p class="text-gray-700 leading-normal text-sm sm:text-base"><span>by <a href="/author/Justin-Yoo/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Justin Yoo</a></span><span> in <a href="/tag/power-automate/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Power Automate</a></span><span> · </span><span>3 min read</span></p></header><p class="leading-normal font-sans text-gray-700 text-lg px-2 sm:px-4 md:px-10">When creating a Power Automate workflow, you often need to use the date/time functions like utcNow(), convertTimeZone(), convertFromUtc() and convertToUtc(). Because of the nature of Power Automate,</p></div></div></article><article><div class="mx-auto max-w-3xl px-6"><div class="py-8 sm:py-20 border-b border-gray-300"><header class="text-center mb-8"><div><a href="/2024/09/06/azdevfying-dotnet-apps-to-aca/" class="text-black font-bold"><img src="/2024/09/azdevfying-dotnet-apps-to-aca-00.png"></a></div><time datetime="2024-09-06 00:00:00" class="text-gray-700 text-xs mb-2 uppercase">06 September, 2024</time><h2 class="text-3xl sm:text-4xl leading-tight font-sans mb-1 sm:mb-2"><a href="/2024/09/06/azdevfying-dotnet-apps-to-aca/" class="text-black font-bold">Deploying .NET Apps to Azure Container Apps with One Command, azd up</a></h2><p class="text-gray-700 leading-normal text-sm sm:text-base"><span>by <a href="/author/Justin-Yoo/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Justin Yoo</a></span><span> in <a href="/tag/dotnet/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Dotnet</a></span><span> · </span><span>4 min read</span></p></header><p class="leading-normal font-sans text-gray-700 text-lg px-2 sm:px-4 md:px-10">In my previous blog posts of containerising .NET apps and Function apps, I discussed how to containerise .NET apps and Azure Functions apps with and without Dockerfile. However, deploying these</p></div></div></article><article><div class="mx-auto max-w-3xl px-6"><div class="py-8 sm:py-20 border-b border-gray-300"><header class="text-center mb-8"><div><a href="/2024/08/23/containerising-azure-functions-without-dockerfile/" class="text-black font-bold"><img src="/2024/08/containerising-azure-functions-without-dockerfile-00.png"></a></div><time datetime="2024-08-23 00:00:00" class="text-gray-700 text-xs mb-2 uppercase">23 August, 2024</time><h2 class="text-3xl sm:text-4xl leading-tight font-sans mb-1 sm:mb-2"><a href="/2024/08/23/containerising-azure-functions-without-dockerfile/" class="text-black font-bold">
7Containerising Azure Functions without Dockerfile</a></h2><p class="text-gray-700 leading-normal text-sm sm:text-base"><span>by <a href="/author/Justin-Yoo/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Justin Yoo</a></span><span> in <a href="/tag/dotnet/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Dotnet</a></span><span> · </span><span>5 min read</span></p></header><p class="leading-normal font-sans text-gray-700 text-lg px-2 sm:px-4 md:px-10">In my previous post, I discussed different containerising options for .NET developers. Now, let's slightly move the focus to Azure Functions app. How can you containerise the Azure Functions app?</p></div></div></article><article><div class="mx-auto max-w-3xl px-6"><div class="py-8 sm:py-20 border-b border-gray-300"><header class="text-center mb-8"><div><a href="/2024/08/12/different-containerising-options-for-dotnet-devs/" class="text-black font-bold"><img src="/2024/08/different-containerising-options-for-dotnet-devs-00.png"></a></div><time datetime="2024-08-12 00:00:00" class="text-gray-700 text-xs mb-2 uppercase">12 August, 2024</time><h2 class="text-3xl sm:text-4xl leading-tight font-sans mb-1 sm:mb-2"><a href="/2024/08/12/different-containerising-options-for-dotnet-devs/" class="text-black font-bold">Different Containerising Options for .NET Developers</a></h2><p class="text-gray-700 leading-normal text-sm sm:text-base"><span>by <a href="/author/Justin-Yoo/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Justin Yoo</a></span><span> in <a href="/tag/dotnet/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Dotnet</a></span><span> · </span><span>5 min read</span></p></header><p class="leading-normal font-sans text-gray-700 text-lg px-2 sm:px-4 md:px-10">As a .NET developer, if you want to containerise your .NET apps, you know you need a Dockerfile first. Dockerfile is a spec that describes which OS is used, where the .NET code is located, how the</p></div></div></article><article><div class="mx-auto max-w-3xl px-6"><div class="py-8 sm:py-20 border-b border-gray-300"><header class="text-center mb-8"><div><a href="/2024/02/19/api-center-first-look/" class="text-black font-bold"><img src="/2024/02/api-center-first-look-00.png"></a></div><time datetime="2024-02-19 00:00:00" class="text-gray-700 text-xs mb-2 uppercase">19 February, 2024</time><h2 class="text-3xl sm:text-4xl leading-tight font-sans mb-1 sm:mb-2"><a href="/2024/02/19/api-center-first-look/" class="text-black font-bold">Azure API Center: The First Look</a></h2><p class="text-gray-700 leading-normal text-sm sm:text-base"><span>by <a href="/author/Justin-Yoo/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Justin Yoo</a></span><span> in <a href="/tag/azure/" class="text-gray-700 capitalize border-b border-transparent hover:border-gray-400 transition-colors duration-300">Azure</a></span><span> · </span><span>6 min read</span></p></header><p class="leading-normal font-sans text-gray-700 text-lg px-2 sm:px-4 md:px-10">Let's say you work for a company that has a lot of APIs. You might have a few questions: How do you manage the lifecycle of those APIs? What governance would you apply to these APIs? What is the</p></div></div></article></section><section class="border-b border-gray-300 mx-auto max-w-3xl px-6 md:px-8 py-16"><nav role="navigation" aria-label="pagination"><ul class="flex items-center justify-between sm:text-lg lg:text-xl"><li class="lg:w-1/5"><a href="/" aria-current="page" rel="nofollow" class="text-gray-700 hover:text-black px-4 py-2 transition-colors duration-300 active--exact active pointer-events-none opacity-0"> 8 â Previous 9 </a></li><li class="hidden md:flex w-auto text-center text-gray-600 text-base">Page 1 of 23</li><li class="lg:w-1/5 text-right"><a href="/2/" rel="next" class="text-gray-700 hover:text-black px-4 py-2 transition-colors duration-300"> 10 Next â 11 </a></li></ul></nav></section><footer class="text-gray-700 text-sm leading-normal flex flex-wrap justify-between mx-auto max-w-3xl px-6 sm:px-12 py-8 sm:py-16"><div class="w-full sm:w-1/2 mb-4 sm:mb-0"><p><a href="https://github.com/cossssmin/gridsome-starter-bleda" class="border-b border-transparent hover:border-gray-400 transition-colors duration-300">Bleda</a> by <a href="https://twitter.com/cossssmin" class="border-b border-transparent hover:border-gray-400 transition-colors duration-300">@cossssmin</a></p><p>Built with <a href="https://gridsome.org" class="border-b border-transparent hover:border-gray-400 transition-colors duration-300">Gridsome</a> & <a href="https://tailwindcss.com/" class="border-b border-transparent hover:border-gray-400 transition-colors duration-300">Tailwind CSS</a>.</p></div><div class="w-full sm:w-1/2"><nav><ul class="flex sm:justify-end -mx-2"><li class="px-2"><a href="/" aria-current="page" class="border-b border-transparent hover:border-gray-400 transition-colors duration-300 active--exact active">Home</a></li><li class="px-2"><a href="/about/" class="border-b border-transparent hover:border-gray-400 transition-colors duration-300">About</a></li><li class="px-2"><a href="/sitemap.xml" class="border-b border-transparent hover:border-gray-400 transition-colors duration-300">Sitemap</a></li><li class="px-2">
11<a href="/feed.xml" class="border-b border-transparent hover:border-gray-400 transition-colors duration-300">RSS Feed</a></li><li class="px-2"><a rel="me" href="https://mastodon.social/@justinchronicle" class="border-b border-transparent hover:border-gray-400 transition-colors duration-300"><img height="16" width="16" src="https://cdn.simpleicons.org/mastodon/6364FF"></a></li></ul></nav></div></footer></main></div> 12
12<script src="/assets/js/app.e11e29fa.js" defer></script>
12<script src="/assets/js/page--src--pages--index-vue.ab41fad0.js" defer></script>
12 13 </body> 14</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.