Building UI with XAML and MVVM in .NET MAUI
Master MVVM to build maintainable, modern UIs. Covers data binding, layouts, commands, and theming in .NET MAUI.
");mask-image:url("data:image/svg+xml;utf8,");-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:cover;mask-size:cover;background:var(--color-text-white)}body .ascendoor-button.ascendoor-button-noborder-noalternate a{color:var(--primary-color);background:0 0;padding:0}body .ascendoor-button.ascendoor-button-noborder-noalternate a:before{display:none}body .ascendoor-button.ascendoor-button-noborder-noalternate a:after{background:var(--primary-color)}input[type=search]{color:#666;border:1px solid #ccc;border-radius:3px;padding:3px}.right-sidebar .ascendoor-wrapper .ascendoor-page{display:grid;grid-gap:30px;grid-template-columns:auto 25%;grid-template-areas:"main sidebar";padding-top:50px}@media (max-width:991px){.right-sidebar .ascendoor-wrapper .ascendoor-page{grid-template-columns:1fr;grid-template-areas:"main" "sidebar"}}.right-sidebar .ascendoor-wrapper .ascendoor-page .site-main{grid-area:main;overflow:hidden}.right-sidebar .ascendoor-wrapper .ascendoor-page .widget-area{grid-area:sidebar}.left-sidebar .ascendoor-wrapper .ascendoor-page .site-main{grid-area:main;overflow:hidden}.left-sidebar .ascendoor-wrapper .ascendoor-page .widget-area{grid-area:sidebar}.main-navigation{display:block;width:100%}.main-navigation ul{display:none;list-style:none;margin:0;padding-left:0}.main-navigation li{position:relative}.main-navigation a{color:#fff;padding:17px 20px;font-size:.9375rem;color:var(--text-color-main);text-transform:uppercase;display:block;text-decoration:none;opacity:.9}@media (min-width:992px){.main-navigation a{font-weight:700}}.menu-toggle{display:block}@media (max-width:991px){.main-navigation ul a{color:#000}}@media screen and (min-width:992px){.menu-toggle{display:none}.main-navigation ul{display:flex!important;flex-wrap:wrap;margin-inline-end:-20px;align-items:stretch}}@media (max-width:991px){.bottom-header-part-wrapper .navigation-part{align-items:center}#site-navigation button.menu-toggle{width:35px;height:35px;position:relative;transform:rotate(0deg);padding:0;background:0 0;border:none;margin:9px 5px 9px auto}#site-navigation button.menu-toggle span{display:block;position:absolute;height:3px;width:100%;background:var(--primary-color);border-radius:3px;opacity:1;left:0;transform:rotate(0deg)}#site-navigation button.menu-toggle span:nth-child(1){top:calc(50% - 15px)}#site-navigation button.menu-toggle span:nth-child(2){top:50%;transform:translateY(-50%)}#site-navigation button.menu-toggle span:nth-child(3){bottom:calc(50% - 15px)}#site-navigation .main-navigation-links{position:fixed;right:-130%;height:100%;top:0;background-color:#fff;min-width:300px;padding-top:60px;padding-right:10px;width:60%;display:block;border-right:1px solid #fff;z-index:13;box-shadow:2px 0 18px 0 rgba(0,0,0,.5);opacity:0;visibility:hidden}}@media (max-width:600px){#site-navigation button.menu-toggle{margin:0;margin-inline-end:auto}}@media (max-width:480px){#site-navigation .main-navigation-links{width:80%}}.post{margin:0 0 1.7em}.updated:not(.published){display:none}.site-main article{margin-bottom:2.5rem}.site-main article .post-thumbnail{display:block;line-height:0}.site-main article .post-thumbnail img{width:100%}.travel-post-single .travel-post-img{overflow:hidden;aspect-ratio:1/0.7}.travel-post-single .travel-post-img a{display:block;height:100%}.travel-post-single .travel-post-img a img{height:100%;width:100%;object-fit:cover}.travel-post-single .travel-post-detail{padding-top:15px}.travel-post-single .travel-post-detail .ascendoor-cat-links a{font-weight:700;text-decoration:none;color:var(--text-color-main);display:inline-block;margin-inline-end:5px;margin-block-end:5px}.travel-post-single .travel-post-detail .travel-post-title{font-size:var(--font-size-md);line-height:1.2;margin-top:0;font-family:var(--font-main);margin-bottom:10px}.travel-post-single .travel-post-detail .travel-post-title a{text-decoration:none;color:var(--text-color-main);display:inline-block}.travel-post-single .travel-post-detail .travel-meta{font-size:var(--font-size-sm);margin-bottom:10px}.travel-post-single .travel-post-detail .travel-meta a{text-decoration:none;color:var(--text-color-main)}.travel-post-single .travel-post-detail .travel-exverpt{margin-bottom:10px}.travel-post-single .travel-post-detail .ascendoor-button{display:inline-block}.archive-layout{margin-block:30px}.archive-layout.grid-style{display:grid;grid-gap:30px}.archive-layout.grid-style article{margin-bottom:0}.archive-layout.grid-style.column-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:480px){.archive-layout.grid-style.column-2{grid-template-columns:repeat(1,minmax(0,1fr))}}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none;padding-left:0;margin-inline:0}.wp-block-latest-posts.wp-block-latest-posts__list li>a{text-decoration:none;color:var(--color-text-main)}nav.breadcrumb-trail ul.trail-items{list-style:none;padding:0;margin:0;color:var(--color-text-main)}nav.breadcrumb-trail ul.trail-items li{display:inline-block}nav.breadcrumb-trail ul.trail-items li a{text-decoration:none;color:var(--color-text-main)}nav.breadcrumb-trail ul.trail-items li:after{margin:0 .3rem}nav.breadcrumb-trail ul.trail-items li:last-child:after{display:none}.widget{margin:0 0 1.5em}.widget h2{font-size:var(--font-size-base);font-family:var(--font-main);line-height:1.3;margin:0 0 20px;position:relative}.widget ul{padding:0;margin:0;list-style:none}.widget ul li{font-size:14px;line-height:1.5em}.widget ul.children li.cat-item{margin:0 0 0 3em}.widget ul li a{text-decoration:none;color:var(--color-text-main)}.widget ul>li:not(:last-child){margin-bottom:7px;padding-bottom:7px;border-bottom:1px solid rgba(0,0,0,.1)}.custom-logo-link{display:inline-block}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}#loader{overflow-x:hidden;overflow-y:hidden;vertical-align:middle;background-color:var(--background-color-white);position:fixed;display:table;width:100%;top:0;left:0;height:100%;min-height:100%;z-index:99999}#loader .loader-container{position:relative;display:table-cell;vertical-align:middle;z-index:12;text-align:center;text-transform:uppercase}#loader .loader-container #preloader{position:relative;margin:auto;width:75px}#loader .loader-container #preloader.loader-1 .dot{height:30px;aspect-ratio:2.5;--_g:no-repeat radial-gradient(farthest-side,var(--primary-color) 90%,#0000);background:var(--_g),var(--_g),var(--_g),var(--_g);background-size:20% 50%;animation:d4 1s infinite linear alternate}@keyframes d4{0%,5%{background-position:calc(0*100%/3) 50%,calc(1*100%/3) 50%,calc(2*100%/3) 50%,calc(3*100%/3) 50%}12.5%{background-position:calc(0*100%/3) 0,calc(1*100%/3) 50%,calc(2*100%/3) 50%,calc(3*100%/3) 50%}25%{background-position:calc(0*100%/3) 0,calc(1*100%/3) 0,calc(2*100%/3) 50%,calc(3*100%/3) 50%}37.5%{background-position:calc(0*100%/3) 100%,calc(1*100%/3) 0,calc(2*100%/3) 0,calc(3*100%/3) 50%}50%{background-position:calc(0*100%/3) 100%,calc(1*100%/3) 100%,calc(2*100%/3) 0,calc(3*100%/3) 0}62.5%{background-position:calc(0*100%/3) 50%,calc(1*100%/3) 100%,calc(2*100%/3) 100%,calc(3*100%/3) 0}75%{background-position:calc(0*100%/3) 50%,calc(1*100%/3) 50%,calc(2*100%/3) 100%,calc(3*100%/3) 100%}87.5%{background-position:calc(0*100%/3) 50%,calc(1*100%/3) 50%,calc(2*100%/3) 50%,calc(3*100%/3) 100%}95%,100%{background-position:calc(0*100%/3) 50%,calc(1*100%/3) 50%,calc(2*100%/3) 50%,calc(3*100%/3) 50%}}#loader .loader-container #preloader.loader-4 .dot:before,#loader .loader-container #preloader.loader-4 .dot:after{content:"";height:inherit;aspect-ratio:1;grid-area:1/1;margin:auto;border-radius:50%;transform-origin:-100% 50%;background:currentColor;animation:d9 1s infinite linear}@keyframes d9{58%,100%{transform:rotate(calc(var(--s,1)*1turn))}}header.site-header{position:relative}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part{background:0 0;padding-block:10px}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between}@media (max-width:600px){header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper{flex-direction:column;align-items:unset}}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .site-branding{display:flex;align-items:center;gap:10px}@media (max-width:600px){header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .site-branding{flex-direction:column;align-items:unset;text-align:center}}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .site-branding .site-logo{width:50px}@media (max-width:600px){header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .site-branding .site-logo{width:auto;max-width:150px;margin-inline:auto}}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .site-branding .site-identity .site-title{font-size:30px;line-height:1.1;font-weight:700;margin:0}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .site-branding .site-identity .site-title a{text-decoration:none;color:var(--color-text-white)}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .site-branding .site-identity .site-description{margin-bottom:0;margin-top:5px;color:var(--color-text-white)}@media (max-width:480px){header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .site-branding .site-identity .site-description{font-size:.8rem;margin-top:0}}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .navigation-part{display:flex;align-items:center;gap:10px}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .navigation-part .header-search{position:relative;display:inline-block;text-align:center}@media (max-width:600px){header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .navigation-part .header-search{position:unset}}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .navigation-part .header-search .header-search-wrap .header-search-icon{display:flex;justify-content:center;align-items:center;width:35px;height:35px;border-radius:50%;background-color:var(--primary-color);font-size:14px;color:var(--color-text-white);font-weight:700;text-align:center;text-decoration:none;outline:0}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .navigation-part .header-search .header-search-wrap .header-search-form{position:absolute;background:#fff;inset-inline-end:0;opacity:0;visibility:hidden;top:100%;width:325px;padding:14px;z-index:99;box-shadow:0 8px 20px rgba(0,0,0,.2)}@media (max-width:600px){header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .navigation-part .header-search .header-search-wrap .header-search-form{width:100%}}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .navigation-part .header-search .header-search-wrap .header-search-form .search-form{display:flex}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .navigation-part .header-search .header-search-wrap .header-search-form .search-form label{width:75%}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .navigation-part .header-search .header-search-wrap .header-search-form .search-form label input{width:100%;border-radius:0}header.site-header .header-main-wrapper .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .navigation-part .header-search .header-search-wrap .header-search-form .search-form input.search-submit{border:1px solid var(--primary-color);border-radius:0;padding:0;font-size:13px;width:25%;margin:0}header.site-header .header-main-wrapper:not(.transparent-header){background-color:#fff}header.site-header .header-main-wrapper:not(.transparent-header) .bottom-header-outer-wrapper .bottom-header-part{border-bottom:1px solid #f3f1ef}header.site-header .header-main-wrapper:not(.transparent-header) .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .site-branding .site-identity .site-title a{color:var(--header-text-color)}header.site-header .header-main-wrapper:not(.transparent-header) .bottom-header-outer-wrapper .bottom-header-part .bottom-header-part-wrapper .site-branding .site-identity .site-description{color:var(--color-text-main)}a.explore-blog-scroll-to-top{position:fixed;bottom:55px;right:30px;height:50px;width:50px;opacity:0;visibility:hidden;z-index:17;display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--color-text-white);background-color:var(--primary-color);border:1px solid var(--color-text-white)}:root{--header-text-color:#0591bc}:root{--font-heading:"Montserrat",serif;--font-main:-apple-system,BlinkMacSystemFont,"Poppins","Segoe UI",Montserrat,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}body,button,input{font-family:"Poppins",serif}.site-title a{font-family:"Montserrat",serif}.site-description{font-family:"Montserrat",serif}:root{--hcb--fz:var(--hcb--fz--base,14px);--hcb--ff:"Menlo","Consolas","Hiragino Kaku Gothic ProN","Hiragino Sans","Meiryo",sans-serif;--hcb--pY:1.75em;--hcb--pX:1.5em;--hcb--radius:3px;--hcb--linenumW:3.5ch;--hcb--data-label:attr(data-lang);--hcb--btn-offset:20px;--hcb--c:#1f1e1e;--hcb--tsh:unset;--hcb--bgc:#f8f6f6;--hcb--data-label--c:#1f1e1e;--hcb--data-label--bgc:#e8e8e8;--hcb--line-numbers--c:#999;--hcb--highlight-color:#9678641a;--hcb--file-icon:url(/wp-content/plugins/highlighting-code-block/assets/img/file-icon-light.svg);--hcb--scbar-track--bgc:#9696961a;--hcb--scbar-thumb--bgc:#96969640}:root{--hcb--c:#f9f9f6;--hcb--bgc:#2d2e29;--hcb--data-label--c:#fff;--hcb--data-label--bgc:#20211f;--hcb--line-numbers--c:#a3a3a3;--hcb--highlight-color:#fffaf51a;--hcb--file-icon:url(/wp-content/plugins/highlighting-code-block/assets/img/file-icon-dark.svg);--hcb--scbar-track--bgc:#ffffff1a;--hcb--scbar-thumb--bgc:#fff3}@media screen and (max-width:599px){:root{--hcb--fz:var(--hcb--fz--mobile,13px)}}:root{--hcb--fz--base:14px}:root{--hcb--fz--mobile:13px}:root{--hcb--ff:Menlo,Consolas,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif}.trail-items li:after{content:"/"}:root{--wpforms-field-border-radius:3px;--wpforms-field-background-color:#fff;--wpforms-field-border-color:rgba(0,0,0,.25);--wpforms-field-text-color:rgba(0,0,0,.7);--wpforms-label-color:rgba(0,0,0,.85);--wpforms-label-sublabel-color:rgba(0,0,0,.55);--wpforms-label-error-color:#d63637;--wpforms-button-border-radius:3px;--wpforms-button-background-color:#066aab;--wpforms-button-text-color:#fff;--wpforms-field-size-input-height:43px;--wpforms-field-size-input-spacing:15px;--wpforms-field-size-font-size:16px;--wpforms-field-size-line-height:19px;--wpforms-field-size-padding-h:14px;--wpforms-field-size-checkbox-size:16px;--wpforms-field-size-sublabel-spacing:5px;--wpforms-field-size-icon-size:1;--wpforms-label-size-font-size:16px;--wpforms-label-size-line-height:19px;--wpforms-label-size-sublabel-font-size:14px;--wpforms-label-size-sublabel-line-height:17px;--wpforms-button-size-font-size:17px;--wpforms-button-size-height:41px;--wpforms-button-size-padding-h:15px;--wpforms-button-size-margin-top:10px}.wpforms-container .wpforms-form *{word-break:break-word;hyphens:auto;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.wpforms-container .wpforms-submit-spinner{margin-left:15px;display:inline-block;vertical-align:middle}.wpforms-container .wpforms-hidden{display:none!important}div.wpforms-container-full *{background:0 0;border:0 none;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;float:none;font-size:100%;height:auto;letter-spacing:normal;outline:none;position:static;text-indent:0;text-shadow:none;text-transform:none;width:auto;visibility:visible;overflow:visible;margin:0;padding:0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}div.wpforms-container-full input{margin:0;border:0;padding:0;vertical-align:middle;background:0 0;height:auto;box-sizing:border-box}div.wpforms-container-full .wpforms-form .wpforms-submit-spinner{max-width:26px}div.wpforms-container-full input{height:var(--wpforms-field-size-input-height)}
Unlocking the Power of .NET – Empowering Developers, One Byte at a Time!
Master MVVM to build maintainable, modern UIs. Covers data binding, layouts, commands, and theming in .NET MAUI.
Discover how MAUI Architecture streamlines cross-platform app development with single project structure, handlers & platform customizations.
Discover .NET MAUI, the future of cross-platform development. Learn its features, benefits, and how to create your first .NET MAUI app.
Boost .NET app speed with Parallel.ForEach. Learn multi-threading, avoid pitfalls, and validate performance gains with benchmarking tools.
Boost .NET optimization with faster algorithms & smarter memory use. Learn key techniques for performance, scaling, and reducing allocations.
Boost your .NET app’s performance with top profiling tools. Learn essential techniques to optimize CPU, memory, and database performance.
Learn the key differences between CPU-bound and IO-bound issues in .NET. Diagnose performance bottlenecks and optimize your application efficiently.
Learn how to extend BenchmarkDotNet with custom exporters, metrics, and CI/CD integration to optimize .NET application performance efficiently.
Diagnose and fix .NET performance issues with BenchmarkDotNet. Learn profiling, analysis, and optimizations to boost execution speed.
Discover how to use BenchmarkDotNet best practices for precise .NET performance measurements. Improve benchmarking accuracy and optimize code.