{"version":"1.0","provider_name":".NET Blog","provider_url":"https:\/\/devblogs.microsoft.com\/dotnet","author_name":"Jeffrey Fritz","author_url":"https:\/\/devblogs.microsoft.com\/dotnet\/author\/jeffreytfritzyahoo-com\/","title":"Modern ASP.NET Web Forms Development \u2013 Dependency Injection - .NET Blog","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"sVVVGdq623\"><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/modern-asp-net-web-forms-development-dependency-injection\/\">Modern ASP.NET Web Forms Development \u2013 Dependency Injection<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/modern-asp-net-web-forms-development-dependency-injection\/embed\/#?secret=sVVVGdq623\" width=\"600\" height=\"338\" title=\"&#8220;Modern ASP.NET Web Forms Development \u2013 Dependency Injection&#8221; &#8212; .NET Blog\" data-secret=\"sVVVGdq623\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/devblogs.microsoft.com\/dotnet\/wp-includes\/js\/wp-embed.min.js\n\/* ]]> *\/\n<\/script>\n","thumbnail_url":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2019\/02\/swimlane-cross-platform.png","thumbnail_width":636,"thumbnail_height":300,"description":"We\u2019ve all read various \u2018best practices\u2019 posts about this framework and that framework from expert developers in the community.\u00a0 They\u2019ll cover topics regarding how to make your application more maintainable and how to drive down the risk of maintenance in your applications.\u00a0 A common design recommendation is to structure your applications so that you compose [&hellip;]"}