<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Uno Platform</title>
    <description>The latest articles on Forem by Uno Platform (@uno-platform).</description>
    <link>https://forem.com/uno-platform</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1016%2F091a92b0-ef29-403f-a689-ecc0ee1a4813.jpg</url>
      <title>Forem: Uno Platform</title>
      <link>https://forem.com/uno-platform</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/uno-platform"/>
    <language>en</language>
    <item>
      <title>10 XAML Binding Pitfalls That Trip Up Even Experienced .NET Developers</title>
      <dc:creator>mtmattei</dc:creator>
      <pubDate>Tue, 21 Oct 2025 02:47:16 +0000</pubDate>
      <link>https://forem.com/uno-platform/10-xaml-binding-pitfalls-that-trip-up-even-experienced-net-developers-3d3p</link>
      <guid>https://forem.com/uno-platform/10-xaml-binding-pitfalls-that-trip-up-even-experienced-net-developers-3d3p</guid>
      <description>&lt;p&gt;Binding in XAML is one of the cleanest ways to keep your UI and logic in sync. You just have to know how it thinks.&lt;/p&gt;

&lt;p&gt;Once you understand how {Binding} and {x:Bind} behave under the hood, how they resolve data, when they update, and what they quietly ignore, it stops feeling like magic and starts feeling like control.&lt;/p&gt;

&lt;p&gt;These are the ten common binding pitfalls that, once you spot them, make XAML feel like the powerful, predictable system it was meant to be.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Missing DataContext
&lt;/h2&gt;

&lt;p&gt;Your binding path looks correct but nothing displays. The Visual Studio XAML Binding Failures window shows "Cannot resolve symbol" errors. You forgot to set DataContext on the element or any of its ancestors.&lt;/p&gt;

&lt;p&gt;Fix it by setting DataContext explicitly in code-behind or XAML, or use ElementName or Source to bypass DataContext entirely. In WinUI 3, {x:Bind} uses the page or control itself as the default source instead of DataContext, so you might not need DataContext at all.&lt;/p&gt;

&lt;p&gt;For advanced scenarios where you need to bind to parent controls, check out &lt;a href="https://platform.uno/blog/ancestorbinding-powerful-data-binding-for-complex-ui-scenarios/?utm_source=dev-to&amp;amp;utm_medium=blog&amp;amp;utm_campaign=xaml-binding" rel="noopener noreferrer"&gt;AncestorBinding and complex UI hierarchies&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Binding path typos
&lt;/h2&gt;

&lt;p&gt;Runtime bindings fail silently when you misspell property names because the reflection engine simply doesn't find the property. {x:Bind} catches typos at compile time, but {Binding} won't.&lt;/p&gt;

&lt;p&gt;Switch to compiled bindings or use nameof(ViewModel.PropertyName) in code-behind scenarios. The XAML Binding Failures tool will surface typos in the error list during debugging.&lt;/p&gt;

&lt;p&gt;If you want a quick refresher on how binding expressions are parsed, the Uno.Extensions &lt;a href="https://platform.uno/docs/articles/external/uno.extensions/doc/Reference/Markup/Binding101.html?utm_source=dev-to&amp;amp;utm_medium=blog&amp;amp;utm_campaign=xaml-binding" rel="noopener noreferrer"&gt;Binding 101 guide&lt;/a&gt; walks through the fundamentals.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Wrong default binding mode
&lt;/h2&gt;

&lt;p&gt;You use {x:Bind UserName} in a TextBox expecting two-way updates, but the value never propagates back to your ViewModel. WinUI's {x:Bind} defaults to OneTime, while {Binding} generally defaults to OneWay.&lt;/p&gt;

&lt;p&gt;Add Mode=TwoWay explicitly:{x:Bind UserName, Mode=TwoWay}&lt;/p&gt;

&lt;p&gt;Make this a code review checkpoint since it's easy to overlook.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important Note:&lt;/strong&gt;While {Binding} generally defaults to OneWay for most properties, certain editable properties like TextBox.Text, CheckBox.IsChecked, and Slider.Value default to TwoWay because they have BindsTwoWayByDefault metadata in their property definitions.&lt;/p&gt;

&lt;p&gt;This means will work for two-way updates without explicitly specifying Mode=TwoWay. However, {x:Bind} always defaults to OneTime regardless of any property metadata, so you must always specify Mode=TwoWay explicitly for editable controls:&lt;/p&gt;

&lt;p&gt;If you’d rather see real examples than theory, check out the &lt;a href="https://platform.uno/docs/articles/features/windows-ui-xaml-xbind.html?utm_source=dev-to&amp;amp;utm_medium=blog&amp;amp;utm_campaign=xaml-binding" rel="noopener noreferrer"&gt;x:Bind feature overview&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. UpdateSourceTrigger confusion
&lt;/h2&gt;

&lt;p&gt;Your TextBox binding only updates the ViewModel when the user tabs away, causing validation to feel sluggish. Both {Binding} and {x:Bind} default UpdateSourceTrigger for TextBox.Text is LostFocus.&lt;/p&gt;

&lt;p&gt;Change to UpdateSourceTrigger=PropertyChanged for live updates:{Binding UserName, UpdateSourceTrigger=PropertyChanged} or {x:Bind UserName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}&lt;/p&gt;

&lt;p&gt;Be aware this increases update frequency, so validate efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Converter overuse
&lt;/h2&gt;

&lt;p&gt;You have dozens of IValueConverter classes converting booleans to visibility, numbers to strings, and dates to formatted text. Each converter invocation adds overhead and makes bindings harder to debug.&lt;/p&gt;

&lt;p&gt;In WinUI 3, replace converters with function bindings that call methods directly:{x:Bind local:Helpers.FormatDate(User.BirthDate)}&lt;/p&gt;

&lt;p&gt;Alternatively, add computed properties to your ViewModel that return pre-formatted values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;WinUI 3 does not include a built-in BooleanToVisibilityConverter. Use CommunityToolkit.WinUI.Converters or implement your own. &lt;/p&gt;

&lt;p&gt;The best practice in modern WinUI 3 is to use function bindings with {x:Bind} which eliminate the need for converters entirely.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Performance regressions in lists
&lt;/h2&gt;

&lt;p&gt;Your list scrolls smoothly with 10 items but stutters with 1,000. You're using TwoWay bindings on read-only data, or you're triggering property change notifications too frequently during batch updates.&lt;/p&gt;

&lt;p&gt;Switch read-only bindings to OneWay or OneTime. When updating multiple properties, suspend change notifications, make all changes, then raise a single notification. Consider using {x:Bind} with OneTime mode for static list data.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Asynchronously loaded data issues
&lt;/h2&gt;

&lt;p&gt;Your bindings don't update when data loads asynchronously. The {x:Bind} initialization happens during the page's Loading event, before your async data arrives.&lt;/p&gt;

&lt;p&gt;After loading data asynchronously, force compiled bindings to update by calling this.Bindings.Update(). For frequently changing data, use OneWay bindings instead of OneTime.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. x:DataType missing in DataTemplates
&lt;/h2&gt;

&lt;p&gt;Your DataTemplate bindings work but don't compile, losing all the performance benefits. Without x:DataType on the template, the compiler can't generate strongly typed code.&lt;/p&gt;

&lt;p&gt;Add x:DataType="local:ItemType" to your DataTemplate definition. This enables compiled bindings for all {x:Bind} expressions within the template:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;DataTemplate x:DataType="local:Person"&amp;gt;&lt;br&gt;
    &amp;lt;TextBlock Text="{x:Bind Name}" /&amp;gt;&lt;br&gt;
&amp;lt;/DataTemplate&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Casting required for object properties
&lt;/h2&gt;

&lt;p&gt;You have a property typed as object but actually containing a specific type. The binding {x:Bind MyObjectProperty.Title} results in a compile error because Title isn't found on type object.&lt;/p&gt;

&lt;p&gt;Add a cast to your path syntax:{&lt;br&gt;
&lt;code&gt;x:Bind ((local:MyType)MyObjectProperty).Title}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This tells the compiler the actual type at compile time.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Trimming and NativeAOT breaks bindings
&lt;/h2&gt;

&lt;p&gt;Your app works in debug but crashes in release when published with NativeAOT or full trimming enabled. Reflection-based bindings can't find properties because the linker removed metadata.&lt;/p&gt;

&lt;p&gt;Migrate to compiled bindings ({x:Bind}, x:DataType}).If you absolutely need runtime bindings for dynamic scenarios, use DynamicallyAccessedMembers attributes to preserve the required metadata. Uno Platform fully supports compiled bindings across all target platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Reference: {Binding} vs {x:Bind}
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;{Binding}&lt;/th&gt;
&lt;th&gt;{x:Bind}&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Default Mode&lt;/td&gt;
&lt;td&gt;OneWay (TwoWay for editable controls*)&lt;/td&gt;
&lt;td&gt;OneTime&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compile-time checking&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Default source&lt;/td&gt;
&lt;td&gt;DataContext&lt;/td&gt;
&lt;td&gt;Page/Control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance&lt;/td&gt;
&lt;td&gt;Reflection (slower)&lt;/td&gt;
&lt;td&gt;Compiled (faster)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UpdateSourceTrigger default&lt;/td&gt;
&lt;td&gt;LostFocus&lt;/td&gt;
&lt;td&gt;LostFocus&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Function bindings&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Requires x:DataType in templates&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Bindings are sneaky. One minute your UI’s humming, the next, a blank screen with no clue why. It’s almost always the same villains: bad DataContext, wrong binding mode, or {Binding} doing reflection gymnastics behind your back.&lt;/p&gt;

&lt;p&gt;{x:Bind} fixes most of that. It compiles your bindings, catches typos before runtime, and runs faster because it skips reflection. Think of it as {Binding} after a few cups of coffee and a performance review.&lt;/p&gt;

&lt;p&gt;If you’re building with Uno Platform, use {x:Bind} by default. Keep {Binding} around only when things really have to stay dynamic. Add x:DataType, set your binding modes explicitly, and use the diagnostic tools. They may not be glamorous, but they will save your sanity.&lt;/p&gt;




&lt;p&gt;For a deeper look at how binding ties into broader cross-platform UI patterns, see &lt;a href="https://platform.uno/blog/xaml-fundamentals-for-web-mobile-advanced-binding-techniques/" rel="noopener noreferrer"&gt;XAML Fundamentals for Web, Mobile, and Advanced Binding Techniques&lt;/a&gt;. or If you want to see how Uno Platform implements this system under the surface, check out the &lt;a href="https://platform.uno/docs/articles/uno-development/Uno-UI-xBind-architecture.html?utm_source=dev-to&amp;amp;utm_medium=blog&amp;amp;utm_campaign=xaml-binding" rel="noopener noreferrer"&gt;Uno UI x:Bind architecture guide&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>xaml</category>
      <category>dotnet</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>10 Productivity Killers when using XAML (and How Hot Design Fixes Them)</title>
      <dc:creator>mtmattei</dc:creator>
      <pubDate>Tue, 02 Sep 2025 18:13:15 +0000</pubDate>
      <link>https://forem.com/uno-platform/10-productivity-killers-in-xaml-development-and-how-hot-design-fixes-them-3n78</link>
      <guid>https://forem.com/uno-platform/10-productivity-killers-in-xaml-development-and-how-hot-design-fixes-them-3n78</guid>
      <description>&lt;p&gt;Look, we've all been there. You make a UI change, hit build, wait for the app to compile, launch it, navigate to the right screen, and... the button's still three pixels off. Rinse and repeat. By lunch, you've aged a year and accomplished what should've taken ten minutes.  &lt;/p&gt;

&lt;p&gt;It's 2025, and you're still playing the "change-compile-pray" game.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://platform.uno/docs/articles/studio/Hot%20Design/hot-design-overview.html" rel="noopener noreferrer"&gt;&lt;strong&gt;Hot Design&lt;/strong&gt;&lt;/a&gt; fixes that. With a single click, your running app becomes the designer. No context switching, no lost state, no rebuild purgatory. Just live editing where it matters&lt;/p&gt;

&lt;p&gt;So let’s talk about ten classic XAML UI headaches and how Hot Design finally puts them out of their misery.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Uno Platform Studio&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://platform.uno/studio/" rel="noopener noreferrer"&gt;Uno Platform Studio&lt;/a&gt; is the premium companion to the open-source Uno Platform. It brings together a set of productivity tools; Hot Design, Hot Reload, and Design to Code—that help you move faster when building cross-platform .NET apps. No matter what OS or IDE you prefer, Studio keeps your workflow consistent and efficient.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://platform.uno/hot-design" rel="noopener noreferrer"&gt;Hot Design&lt;/a&gt; is a visual editor that works while your app is running. You can pause the app, make changes to the UI and jump right back in without a rebuild or restart. Every tweak you make stays in sync with your source code, so you get the speed of live editing without losing the reliability of your codebase.E.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Why do I need a full rebuild for one UI change?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; Every UI tweak requires a full rebuild. You spend more time watching progress bars than actually designing. Your coffee goes cold.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design Solution:&lt;/strong&gt; Click once to turn your running app into a visual designer. Make your changes. Click again, and you're back in the app. No rebuild. No context switching. No existential crisis. Your changes happen in real-time on the actual running application, not some disconnected design-time surface.&lt;/p&gt;

&lt;h2&gt;
  
  
    &lt;iframe src="https://www.youtube.com/embed/MWiQmw0PU6w"&gt;
  &lt;/iframe&gt;

&lt;/h2&gt;

&lt;h2&gt;
  
  
  2. Why does my app look different at design time vs. runtime?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; What you see in traditional designers rarely matches what you get at runtime. That perfect layout in the designer? It explodes when real data shows up. You're basically designing blind.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design Solution:&lt;/strong&gt; You're designing on your actual running app with live data flowing through it. What you see is literally what you get because you're manipulating the real thing, not a simulation. No more surprises when you hit F5.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. How do I test my UI with real data, not mock data?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; Mock data lies. Your beautifully crafted UI that handles five items gracefully turns into a dumpster fire with 500. You don't discover this until QA finds it. Or worse, production.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design Solution:&lt;/strong&gt; Connect to your actual data sources and see how your UI behaves with real-world data: the good, the bad, and the "why does this user have 10,000 items in their cart?" Your data bindings update in real-time as you adjust them, so you catch issues while designing, not after shipping.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Do I really need to learn another UI designer??
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; Most visual designers silo you into their unique environment. Different shortcuts, different workflows, different everything. You lose all your muscle memory and productivity tools.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design Solution:&lt;/strong&gt; It works with Visual Studio, VS Code, or Rider, on any OS. Keep your key bindings, your extensions, your workflow. Hot Design adapts to you, not the other way around. Think WinForms designer, but cross-platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. How do I debug responsive layouts faster?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; Testing responsive design means constantly resizing windows, switching device emulators, or maintaining a small electronics store worth of test devices. You miss edge cases until users with that one weird tablet complain.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design Solution:&lt;/strong&gt; Switch between form factors with a single click. See instantly how your layout adapts to different screen sizes and orientations. Test on actual remote devices or emulators without redeploying. Find and fix layout issues before they find your users.&lt;/p&gt;

&lt;h2&gt;
  
  
    &lt;iframe src="https://www.youtube.com/embed/l5JifIG7pSs"&gt;
  &lt;/iframe&gt;

&lt;/h2&gt;

&lt;h2&gt;
  
  
  6. Do I really need to learn another flavor of XAML?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; You know what you want the UI to look like but translating that into XAML feels like writing poetry in Klingon. You type, rebuild, check, curse, repeat.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design Solution:&lt;/strong&gt; Changes in the visual designer instantly sync to your XAML code and vice versa. See the XAML generated as you build visually, or code your XAML and watch it render live. It's bidirectional learning: you get better at XAML while being productive.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. How do I quickly test light and dark themes?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; Supporting dark mode means testing everything twice. You inevitably miss that one label that becomes invisible in dark mode. Users notice. Twitter notices. Your manager notices.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design Solution:&lt;/strong&gt; Toggle between light and dark mode with one click. See immediately how every element adapts. Fix theme issues on the spot, not after someone posts a screenshot of your invisible text on Reddit.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Where do I find the right property in XAML controls?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; XAML controls have approximately infinity properties. Finding the right one requires scrolling through endless property panels or diving into documentation. Half your day disappears into property hunting.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design Solution:&lt;/strong&gt; Smart Properties surfaces the most important and frequently used properties right when you need them. No more spelunking through hundreds of properties to find BorderThickness. The common stuff is right there, the esoteric stuff is still available when you need it.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Why don’t my custom controls show up in designers?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; Your carefully crafted custom controls work great in code but turn into question mark boxes in designers. Third-party controls? Forget about it. You're designing around black boxes and hoping for the best.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design Solution:&lt;/strong&gt; Custom and third-party controls render and behave exactly as they will at runtime because, well, they're actually running. See how that fancy chart component really looks with your data. Adjust properties and see real results, not placeholder rectangles.&lt;/p&gt;




&lt;h2&gt;
  
  
  10. How do I design for real app states?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; Traditional designers don't understand your app's state. You design for one scenario, but your app has fifty different states. The designer shows a perfect world that doesn't exist once real user interactions begin.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Design Solution:&lt;/strong&gt; Your MVVM or MVUX patterns work normally because you're designing against your running app. State changes reflect immediately in the designer. Design for the actual states your app will be in, not some theoretical happy path. Your view models are live, your commands work, your data flows.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://platform.uno/docs/articles/studio/Hot%20Design/hot-design-getstarted-guide.html" rel="noopener noreferrer"&gt;Hot Design&lt;/a&gt;isn't just another visual designer for developers. It's a fundamental rethinking of how we build UIs. It collapses the artificial boundaries between design-time and runtime, between mockups and production.  &lt;/p&gt;

&lt;p&gt;You stay in flow. You see the real results. You ship better apps faster.&lt;br&gt;&lt;br&gt;
And your coffee stays hot.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>frontend</category>
      <category>dotnet</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Any devs actually getting a leg up using AI tools?</title>
      <dc:creator>Sasha</dc:creator>
      <pubDate>Fri, 21 Feb 2025 17:49:05 +0000</pubDate>
      <link>https://forem.com/uno-platform/any-devs-actually-getting-a-leg-up-using-ai-tools-265b</link>
      <guid>https://forem.com/uno-platform/any-devs-actually-getting-a-leg-up-using-ai-tools-265b</guid>
      <description>&lt;p&gt;There is a lengthy debate, &lt;a href="https://www.reddit.com/r/ExperiencedDevs/comments/1iqxey0/anyone_actually_getting_a_leg_up_using_ai_tools/https://www.reddit.com/r/ExperiencedDevs/comments/1iqxey0/anyone_actually_getting_a_leg_up_using_ai_tools/" rel="noopener noreferrer"&gt;over 400 posts on reddit&lt;/a&gt; as of this writing, on the topic of usefulness of AI in software development on Experienced Developers reddit. &lt;/p&gt;

&lt;p&gt;I read and analyzed all of them, so you don’t have to, and because this topic is near and dear to my heart. The software developer productivity is what my company does, so being in tune with developers’ attitude towards AI tools is very important to me.&lt;/p&gt;

&lt;p&gt;I’ve noticed general skepticism on twitter/bluesky about AI – and from people who’ve &lt;em&gt;really&lt;/em&gt; tried it. Also, I’ve seen thought leadership pieces from VCs like Sequoia who go on to clam we’d be better of educating &lt;a href="https://www.sequoiacap.com/article/the-next-billion-developers-perspective/" rel="noopener noreferrer"&gt;the next billion developers, then working on AI tools&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But let’s dig in the current reddit debate as it is quite good.  The Original Post is copied below – verbatim. Below it you will find a more complete analysis on the good and not-so-good use cases for AI in software development. &lt;/p&gt;

&lt;p&gt;Overall, the consensus of the thread is that AI works best as an assistant rather than an autonomous coder. Even as an assistant it must be kept a close eye on.  While some people seem bullish on AI tooling, there is very strong skepticism towards AI tools but, surprisingly so, sometimes even the skeptics acknowledge AI tooling usefulness in specific scenarios&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;One of the Big Bosses at the company I work for sent an email out recently saying every engineer must use AI tools to develop and analyze code. The implication being, if you don't, you are operating at a suboptimal level of performance. Or whatever.&lt;br&gt;
I do use ChatGPT sometimes and find it moderately useful, but I think this email is specifically emphasizing in-editor code assist tools like Gitlab Duo (which we use) provides. I have tried these tools; they take a long time to generate code, and when they do the generated code is often wrong and seems to lack contextual awareness. If it does suggest something good, it's often so dead simple that I might as well have written it myself. I actually view reliance on these tools, in their current form, as a huge risk. Not only is the code generated of consistently poor quality, I worry this is training developers to turn off their brains and not reason about the impact of code they write.&lt;br&gt;
But, I do accept the possibility that I'm not using the tools right (or not using the right tools). So, I'm curious if anyone here is actually getting a huge productivity bump from these tools? And if so, which ones and how do you use them?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Most Frequent Use Cases Where Developers Found AI Helpful
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Boilerplate Code Generation (Writing YAML files, API route patterns, class structures, and basic CRUD operations. Generating repetitive code like adapter methods, constructors, and ORM models.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This one user seems to have hit them all! 😊 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbg5ba78jlteo28tri37w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbg5ba78jlteo28tri37w.png" alt="Image description" width="800" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Auto-generating unit tests and test scaffolding&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generating READMEs, docstrings, and function explanations, summarizing code comments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Writing SQL queries, bash scripts, and other automation scripts. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spinning up a basic project with new frameworks and assisting with exploration in unfamiliar languages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code Refactoring (Simplifying or restructuring existing code and getting suggestions for improvements for readability and maintainability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Most Frequent Cases Where AI Tools Were Not Helpful
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; Incorrect or Misleading Code Generation. Often, the AI-generated code appears syntactically correct but is often logically flawed. Also,devs find it faster to write code themselves rather than debugging incorrect AI-generated code. This is the most dangerous flaw, this user explaining it well &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feessl45oxdt0desh269e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feessl45oxdt0desh269e.png" alt="Image description" width="800" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Lack of Context Awareness. AI typically struggles with large, complex codebases and fails to understand dependencies.It generates code that often works in isolation but does not integrate well with the existing system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Inefficiency in Multi-Step Refactoring. Devs report that AI fails to maintain consistency across large projects, requiring them to manually adjust AI-generated suggestions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Poor Code Review &amp;amp; PR Analysis. AI-based PR reviewers like CodeRabbit generate too many false positives, making them less useful than traditional static analysis tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Redundant or Overhyped Use Cases. Many devs feel that AI is being over-promoted for tasks already covered by existing tools (e.g., IDE features, linters, static analysis tools).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Over-Reliance &amp;amp; Skill Degradation. Not super frequent, but some developers worry that using AI for simple tasks reduces their ability to think critically and problem-solve.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;You’d be silly not to at least try some AI tools. The summary above can give you a good idea of what some good use cases are. I’ve talked to some people who tried AI early on, and on wrong use cases, and they were turned off right from the get-go. The reality is that this space is fast evolving, and you should be in the know. &lt;/p&gt;

&lt;p&gt;As-is today, AI tools provide some productivity gains. However, they are not replacements for experienced developers. At &lt;a href="https://platform.uno" rel="noopener noreferrer"&gt;Uno Platform&lt;/a&gt; we are investing in tools which make developers productive within their current environments, such as &lt;a href="https://platform.uno/hot-design" rel="noopener noreferrer"&gt;Hot Design&lt;/a&gt;. Also, we are keeping a close eye and thinking of these useful scenarios to apply AI to, as we don’t believe just adding a simple LLM to it will actually add value. So, stay tuned to our blogs and Dev.to account as there is more goodness coming on this topic. &lt;/p&gt;

&lt;p&gt;Sasha&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>ai</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>3 more productivity tips for .NET developers</title>
      <dc:creator>mtmattei</dc:creator>
      <pubDate>Mon, 07 Oct 2024 19:37:30 +0000</pubDate>
      <link>https://forem.com/uno-platform/3-more-productivity-tips-for-net-developers-7dp</link>
      <guid>https://forem.com/uno-platform/3-more-productivity-tips-for-net-developers-7dp</guid>
      <description>&lt;p&gt;Welcome to the second edition of &lt;strong&gt;&lt;a href="https://dev.to/uno-platform/3-productivity-tips-for-net-developers-4mmo"&gt;&lt;em&gt;Productivity tips for .NET developers&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt;. This time around, we didn’t just stick to the Uno Platform team—we reached out to fellow developers from the .NET community to hear how they stay productive. From discovering creative ways to use new tools to sticking with those tried-and-true habits, these tips offer something for everyone. &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Daren May&lt;/strong&gt;&lt;br&gt;
We asked for 3 tips and ended up with 5 — talk about being productive!&lt;/p&gt;

&lt;p&gt;✨&lt;strong&gt;Top 3 Productivity Tips (+2 bonus tips):&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customize Visual Studio Window Title&lt;/strong&gt;: Use the "Customize Visual Studio Window Title" extension to display repository and branch as well as the solution name in the VS title bar. This helps keep track of multiple instances of Visual Studio, repositories, and branches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Embrace Command-Line and Scripting&lt;/strong&gt;: Don't overlook the power of the command-line and scripting. Visual Studio, build systems, and Git have many powerful command-line options. Invest time in learning their full capabilities and a scripting environment like PowerShell to enhance your workflow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ask Questions Freely:&lt;/strong&gt; Don't be afraid to ask questions, regardless of your position or seniority. No one knows everything, and your team, peers, and the community can all assist when an answer doesn't spring to mind. Remember, the only dumb questions are the ones that aren't asked!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Invest in Ergonomics:&lt;/strong&gt; Pay attention to the ergonomics of your working environment. Factors like monitor height, standing desks, comfortable and supportive chairs, mouse, and keyboard can have a huge impact on your productivity and well-being over time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;**Continuous Learning: **Keep learning as nothing stands still in our field. What's considered best practice today might become legacy implementation tomorrow. Stay updated with the latest developments in the .NET ecosystem.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Follow Darren on&lt;/strong&gt;: &lt;a href="https://github.com/darenm" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; &amp;amp; &lt;a href="https://x.com/darenmay" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Leomaris Reyes (Microsoft MVP)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✨&lt;strong&gt;Top 3 Productivity Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resting is Part of Being Productive:&lt;/strong&gt; Recognize that rest is crucial for productivity. An overworked brain doesn't function properly. When you take breaks and disconnect completely, your brain gets to rest. This can significantly improve your efficiency when you return to work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Take Care of Your Mental Health:&lt;/strong&gt; Pay attention to your mental health as much as your physical health. Listen to what your body tells you, whether good or bad. Don't hesitate to seek therapy when feeling exhausted, ask for a vacation when tired, or say "I can't" when overwhelmed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learn to Say No:&lt;/strong&gt; Saying no is not a bad thing; it's both human and professional. Avoid overcommitting by saying yes to everything. Being selective about your commitments allows you to be 100% responsible for the tasks you do take on, leading to better quality work and less stress.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Follow Leomaris on:&lt;/strong&gt; &lt;a href="https://askxammy.com/" rel="noopener noreferrer"&gt;AskXammy&lt;/a&gt;&amp;amp; &lt;a href="https://x.com/LeomarisReyes11" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Andres Pineda&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✨&lt;strong&gt;Top 3 Productivity Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Spend time learning your tools:&lt;/strong&gt; Whatever tool you use to work, learn your way around it. You might not believe the amount of time you can save by using the shortcuts that are part of your developer environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep easy wins&lt;/strong&gt;: We only sometimes have the chance to work on things that keep us motivated or when we have been working for a long time on the same task. In such situations, I often tackle low-hanging tasks that, after completion, will provide a sense of progress.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Organize your work around your most productive hour&lt;/strong&gt;s: There are times when you are more productive. Block that time in your calendar to focus solely on work&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Follow Andres on:&lt;/strong&gt; &lt;a href="https://github.com/ajpinedam" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&amp;amp; &lt;a href="https://x.com/ajpinedam" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;These productivity tips offer a range of strategies to help you work smarter, not harder. Whether it's leveraging new tools, improving ergonomics, or simply learning to say 'no,' there's something here for everyone to improve their workflow.&lt;/p&gt;

&lt;p&gt;Have your own tips to share? We’d love to hear them! Drop your tips in the comments below and follow Uno Platform for more insights and updates from the .NET developer community.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>productivity</category>
      <category>csharp</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Is the Web Browser the Most Important Platform for App Development?</title>
      <dc:creator>mtmattei</dc:creator>
      <pubDate>Thu, 03 Oct 2024 14:52:41 +0000</pubDate>
      <link>https://forem.com/uno-platform/is-the-web-browser-the-most-important-platform-for-app-development-19el</link>
      <guid>https://forem.com/uno-platform/is-the-web-browser-the-most-important-platform-for-app-development-19el</guid>
      <description>&lt;p&gt;As technologies like WebAssembly (WASM) and Progressive Web Apps (PWAs) continue to push the boundaries of in-browser functionality, the distinction between web and native applications becomes increasingly blurred. This raises a key question: &lt;strong&gt;has the web browser become the most important platform for app development?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Shift in App Development
&lt;/h2&gt;

&lt;p&gt;While native mobile and desktop apps continue to play a crucial role, web-based applications have come a long way. The reasons for this are clear: web browsers are everywhere, web technologies have dramatically improved, and the demand for cross-platform compatibility has surged.&lt;/p&gt;

&lt;p&gt;But is the browser now the best target platform for apps? To answer this, I’ll explore the advantages and challenges of web browsers for app development and assess whether they’ve become the go-to platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the Web Browser Stands Out
&lt;/h2&gt;

&lt;p&gt;It's widely acknowledged in the industry that the web browser has long served as a foundational platform for app development. This isn’t a new revelation; browsers have always been central in providing access to applications across devices. Their ubiquity, ease of deployment, and cross-platform nature are well-established advantages developers have leveraged for years. As these fundamentals remain strong, recent advancements in web technologies have further solidified the browser's position.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Web Browsers as a Ubiquitous Platform
&lt;/h3&gt;

&lt;p&gt;Web browsers are found on virtually every internet-connected device, from smartphones and tablets to desktops, smart TVs, and IoT devices. This ubiquity brings several benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global Reach&lt;/strong&gt;: A web-based application can be accessed by users around the world without needing platform-specific versions or app store approvals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seamless Updates&lt;/strong&gt;: I can push updates immediately, ensuring users always access the latest version.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Device Consistency&lt;/strong&gt;: Users experience consistent performance and data continuity across multiple devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With the introduction of WebAssembly, web browsers can now handle complex and computationally intensive tasks at near-native speeds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High-Performance Web Apps&lt;/strong&gt;: WebAssembly enables high-performance applications, such as games and video editors, to run in the browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language Flexibility&lt;/strong&gt;: Developers can build web apps using languages like C#, C++, Rust, and Go, breaking away from the traditional reliance on JavaScript.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That said, WebAssembly’s ecosystem is still fragmented. Tools like &lt;a href="https://github.com/emscripten-core/emscripten" rel="noopener noreferrer"&gt;Emscripten&lt;/a&gt; (C/C++), &lt;a href="https://github.com/rustwasm/wasm-bindgen" rel="noopener noreferrer"&gt;wasm-bindgen&lt;/a&gt; (Rust), and JSGo (Go) serve different languages, but this complicates the standardization of interactions with web APIs, limiting broader WASM integration with web development.&lt;/p&gt;

&lt;p&gt;It’s worth noting that while WebAssembly is a significant advancement, most web apps don’t use it directly or rely on it as part of third-party libraries. Web development is much broader, encompassing WebGPU, Browser APIs, ECMAScript advancements, and new CSS specifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://webgpufundamentals.org/" rel="noopener noreferrer"&gt;WebGPU&lt;/a&gt;&lt;/strong&gt;, the successor to WebGL, is particularly noteworthy because it provides direct access to the render and shader pipeline of the graphics card, bringing web performance closer to native for graphics-intensive applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Cross-Platform Development with Web Technologies
&lt;/h3&gt;

&lt;p&gt;Cross-platform frameworks have solidified the role of web technologies in app development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unified Codebases&lt;/strong&gt;: Frameworks like &lt;a href="https://github.com/unoplatform/uno" rel="noopener noreferrer"&gt;Uno Platform&lt;/a&gt; and &lt;a href="https://github.com/dotnet/maui" rel="noopener noreferrer"&gt;.NET MAUI&lt;/a&gt; enable developers to write once and deploy across web and native platforms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web-Centric Frameworks&lt;/strong&gt;: Web-based frameworks like Blazor or Flutter for Web allow developers to target web browsers with minimal additional effort.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Efficiency&lt;/strong&gt;: Building a single app for multiple platforms reduces development and maintenance costs, making the browser appealing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Progressive Web Apps (PWAs): Bridging the Gap
&lt;/h3&gt;

&lt;p&gt;PWAs have revolutionized web apps by offering features traditionally found only in native apps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Native-like Experience&lt;/strong&gt;: PWAs allow offline access, push notifications, and device hardware integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant Accessibility&lt;/strong&gt;: PWAs can be accessed directly via a browser, bypassing app store downloads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Updates&lt;/strong&gt;: PWAs ensure users have the latest version by updating themselves automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, WebAssembly still faces challenges with browser integration, particularly with accessing the DOM (Document Object Model). While frameworks like Dioxus and Sycamore (Rust) have made progress, the lack of native DOM access remains a limiting factor for WASM's potential in web apps.&lt;/p&gt;

&lt;p&gt;It's worth noting that there's a growing "grey area" with hybrid solutions like Uno Platform, Electron, and Blazor Hybrid, which further blur the lines between web and native applications. These frameworks allow developers to leverage web technologies while still accessing native features, including local storage (HDD/SSD) access, balancing web flexibility and native capability.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Economic and Market Considerations
&lt;/h3&gt;

&lt;p&gt;From a business perspective, web apps offer significant advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rapid Iteration&lt;/strong&gt;: Web apps can be updated instantly without the delays imposed by app store review processes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lower Distribution Costs&lt;/strong&gt;: Web apps bypass app store fees, which can result in cost savings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Market Flexibility&lt;/strong&gt;: Web apps allow businesses to test and iterate ideas quickly without committing to native development.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Web apps also offer significant advantages in terms of maintenance. Developers don't need to support multiple versions of their product across different platforms. Instead, they can focus on maintaining a single, up-to-date version that's immediately accessible to all users with a reasonably current browser. This streamlined approach to maintenance can lead to significant time and cost savings over the lifecycle of an application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges of Web Browsers for App Development
&lt;/h2&gt;

&lt;p&gt;Despite its many advantages, web browsers are not always the ideal platform, especially when compared to native apps.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Hardware Utilization and Performance
&lt;/h3&gt;

&lt;p&gt;Native applications fully leverage a device’s hardware, offering advantages in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High-Performance Apps&lt;/strong&gt;: Applications requiring heavy computing power, such as 3D rendering or real-time video processing, are better suited to native platforms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Device-Specific Features&lt;/strong&gt;: Native apps can better integrate with hardware features like cameras, GPS, and local storage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WebAssembly, though performant, still encounters specific bottlenecks. For example, string encoding mismatches (UTF-8 in Rust vs. UTF-16 in JavaScript) can cause performance hiccups. Additionally, WASM’s ability to fully harness hardware capabilities, particularly in browsers, is still evolving through projects like the WebAssembly System Interface (WASI).&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Offline Capabilities
&lt;/h3&gt;

&lt;p&gt;PWAs have improved offline functionality, but native apps generally provide more robust and reliable offline experiences. Apps like Google Maps, which rely on continuous background processing, still perform better as native applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. User Experience &amp;amp; Interface Design
&lt;/h3&gt;

&lt;p&gt;Native apps provide a more polished user experience because they can be fine-tuned to match each platform’s design guidelines. Web apps, on the other hand, may struggle to adapt to varying screen sizes and operating systems, leading to an inconsistent experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  WebAssembly: Promise and Challenges
&lt;/h2&gt;

&lt;p&gt;WebAssembly (WASM) holds immense potential for web development but also faces key challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fragmentation&lt;/strong&gt;: The WASM ecosystem remains fragmented, with different tools and approaches for various languages. This fragmentation hinders broader adoption and complicates the standardization of WASM interactions with web APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standardization Efforts&lt;/strong&gt;: Projects like &lt;a href="https://wasi.dev/" rel="noopener noreferrer"&gt;WASI&lt;/a&gt; aim to create an ABI standard that facilitates better integration between WebAssembly and the host operating system. However, WASI’s full browser support, especially for web-specific APIs like WebGPU, is still a work in progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ongoing Development&lt;/strong&gt;: The WASM ecosystem is actively evolving, with updates to both WASM web APIs and the WASI component model.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WASI is particularly important in this space. It aims to standardize how WebAssembly interacts with system interfaces, potentially allowing developers like me to write "almost OS-native" applications in any language that can be compiled to WebAssembly. This could enable WebAssembly to run efficiently not just in browsers but directly on operating systems, expanding its potential uses.&lt;/p&gt;

&lt;p&gt;That said, while WebAssembly and WASI hold great promise, they are still evolving technologies. Many successful web apps don’t rely on WebAssembly at all. The browser’s strength as a platform for app development comes from the entire ecosystem of web technologies, not just WebAssembly.&lt;/p&gt;

&lt;p&gt;For more details on WebAssembly’s evolving features, visit the WebAssembly Features page. To follow the development of WASM and related feature proposals, check out WebAssembly's GitHub repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hybrid Approaches: Bridging Web and Native Development
&lt;/h2&gt;

&lt;p&gt;Hybrid development frameworks, like &lt;a href="https://github.com/facebook/react-native" rel="noopener noreferrer"&gt;React Native&lt;/a&gt; and Uno Platform, address some of the trade-offs between web and native apps by allowing developers to write code that works across platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React Native&lt;/strong&gt;: Allows JavaScript to interact with native components, enabling a native-like user experience with less platform-specific code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uno Platform&lt;/strong&gt;: Enables developers to build cross-platform applications with C# and XAML using a shared codebase that runs natively on various devices, allowing for a blend of performance and development efficiency.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  So, is the Browser the Most Important Platform?
&lt;/h2&gt;

&lt;p&gt;In short, the answer is yes—but it's complicated. The web browser has become a pivotal platform in app development thanks to its universal reach, ease of updates, and the advancements of technologies like WebAssembly and PWAs. For many developers, it's the go-to choice for building scalable, cross-platform applications quickly.&lt;/p&gt;

&lt;p&gt;Ultimately, the web browser's strength as a development platform comes from its entire ecosystem of technologies—from JavaScript and CSS to WebGL and emerging standards like WebGPU. While WebAssembly is an exciting part of this ecosystem, it's just one piece of the puzzle. The browser's ubiquity, coupled with the rapid pace of web technology advancements and the large pool of skilled web developers, makes it an increasingly attractive platform for a wide range of applications.&lt;/p&gt;

&lt;p&gt;So, is the browser the most important platform? It’s certainly up there, but whether it’s the most important depends on what your app needs to do—and how fast you need it to do it.&lt;/p&gt;

</description>
      <category>web</category>
      <category>discuss</category>
      <category>development</category>
    </item>
    <item>
      <title>The new wave: Top 10 emerging .NET content creators</title>
      <dc:creator>mtmattei</dc:creator>
      <pubDate>Tue, 03 Sep 2024 20:24:55 +0000</pubDate>
      <link>https://forem.com/uno-platform/the-new-wave-top-10-emerging-net-content-creators-28k3</link>
      <guid>https://forem.com/uno-platform/the-new-wave-top-10-emerging-net-content-creators-28k3</guid>
      <description>&lt;p&gt;Whether you’re diving into .NET best practices, learning about architectural principles, or trying to wrap your head around microservices, there’s always someone willing to break things down in a way that clicks. The wealth of knowledge available in .NET community —from newsletters and blogs to vlogs and technical articles—makes it easier to keep growing and stay current.&lt;/p&gt;

&lt;p&gt;We’ve grown accustomed to names like &lt;strong&gt;Scott Hanselman, Mary Jo Foley, Richard Campbell, and Tim Corey&lt;/strong&gt;. Influencers that have become staples, not just in social media but also on conference stages, in magazine articles, and beyond.&lt;/p&gt;

&lt;p&gt;But who are some of the newer .NET content creators who might one day reach the heights of these established figures? While this list is by no means exhaustive, it’s a great starting point to discover fresh perspectives and perhaps find a few creators you haven’t come across yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  The List
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Steven Giesel
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;About the author:&lt;/strong&gt; Steven Giesel is a .NET Developer, and Microsoft MVP based in Zurich, Switzerland He’s an active maintainer of multiple open-source libraries and is passionate about both sharing and gaining knowledge. If you're into clean code, best practices, and Blazor, Steven is someone you'll want to follow closely. He’s a passionate advocate for writing maintainable, efficient code and dives deep into software development's technical aspects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Content:&lt;/strong&gt; What I love about Steven’s content is how practical and accessible it is. He has this knack for breaking down complex topics like software architecture and design patterns into actionable .NET tips that you can immediately apply to your projects. His content isnt just educational—its easily digestable must-reads if you’re looking to sharpen your coding skills or enhance your software architecture know-how.&lt;/p&gt;

&lt;p&gt;If you're in Zurich, Steven regularly hosts meetups for the local .NET User Group, offering a great opportunity to connect and learn from him in person. He’s also recently launched a video series, which is another fantastic way to dive into his content.&lt;/p&gt;

&lt;p&gt;Follow Steven: &lt;a href="https://steven-giesel.com/" rel="noopener noreferrer"&gt;Blog&lt;/a&gt; | &lt;a href="https://www.linkedin.com/in/steven-giesel/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Milan Jovanovic
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;About the Author:&lt;/strong&gt;  Milan Jovanovic is a Software Architect and Microsoft MVP who’s been in the tech industry for years but whose personal content has clearly resonated with the .NET community. Milan is one of those people who genuinely enjoys mentoring others—he’s all about helping software engineers refine their .NET development skills and deepen their understanding of software architecture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Content:&lt;/strong&gt; Milan’s content is where I go when I need to get my head around architectural principles, microservices, or cloud-native applications. He has a gift for making complex topics feel manageable, no matter where you are in your developer journey. His practical and personable approach makes learning from him both enjoyable and impactful.&lt;/p&gt;

&lt;p&gt;Follow Milan: &lt;a href="https://www.milanjovanovic.tech/about" rel="noopener noreferrer"&gt;Blog&lt;/a&gt; | &lt;a href="https://x.com/mjovanovictech" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; | &lt;a href="https://www.linkedin.com/in/milan-jovanovic/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; | &lt;a href="https://www.youtube.com/@MilanJovanovicTech" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Jade Wilson
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;About the Author:&lt;/strong&gt; Jade Wilson is a Senior Software Engineer at Microsoft, known for her deep expertise in agile methodologies and DevOps. With a strong passion for building scalable and maintainable solutions, Jade is dedicated to helping customers succeed in delivering high-quality software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Content:&lt;/strong&gt; What I appreciate most about Jade’s work is how she brings agile and DevOps to life with real-world examples. Her advice is practical and easy to apply, regardless of the project you’re working on. She genuinely believes there’s no single “right” way to deliver software, and that open-mindedness makes her content feel like a conversation with a trusted mentor.&lt;/p&gt;

&lt;p&gt;Follow Jade: &lt;a href="https://www.linkedin.com/in/jade-codes/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; | &lt;a href="https://www.youtube.com/@Jade-Codes/videos" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Nick Randolph
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;About the author:&lt;/strong&gt; About the Author: Nick Randolph might not be the loudest voice on social media, but he’s a go-to resource for developers interested in Windows and multi-platform development. As a Microsoft MVP, Nick shares his wealth of knowledge in a down-to-earth and approachable way, both on Twitter and through his blog. Whether you're a seasoned pro or just starting out, Nick's insights are always worth the read.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Content:&lt;/strong&gt; Nick blog, "Nick's .NET Travels," is a treasure trove for developers interested in .NET, Windows, and cross-platform development. Covering everything from the latest in Uno Platform to practical guides on mobile and web development, Nick’s posts are designed to help developers navigate the evolving landscape of modern app development and offers a blend of technical depth and real-world applications that make it an essential resource for any developer.&lt;/p&gt;

&lt;p&gt;Follow Nick: &lt;a href="https://nicksnettravels.builttoroam.com/" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Claudio Bernasconi
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;About the author:&lt;/strong&gt; Claudio Bernasconi is a seasoned Software Engineer with over a decade of experience in desktop, mobile, and web development, all with a strong focus on the .NET platform. In addition to his technical expertise, Claudio is passionate about mentoring junior developers and helping them grow their skills.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Content:&lt;/strong&gt; Claudio runs a popular .NET development YouTube channel where he shares his insights on process optimization, code quality, and building sustainable software systems. His content is perfect for developers looking to deepen their understanding of .NET and improve their overall coding practices. Claudio’s approachable style and commitment to quality make him a valuable resource for both new and experienced developers.&lt;/p&gt;

&lt;p&gt;Follow Claudio: &lt;a href="https://x.com/CHBernasconiC" rel="noopener noreferrer"&gt;Twitter &lt;/a&gt;| &lt;a href="https://www.youtube.com/claudiobernasconi" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; | &lt;a href="https://www.linkedin.com/in/claudio-bernasconi-5ab06965/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Aram Tchekrekjian
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;About the Author:&lt;/strong&gt; Aram is a seasoned .NET developer passionate about cloud computing, DevOps, and web technologies. His expertise spans .NET, Web APIs, and Web Security, focusing on cloud-based .NET applications, DevOps practices, and CI/CD pipelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Content:&lt;/strong&gt; Aram is great at breaking down complex topics into bite-sized, easily digestible pieces. His carousels are always on point, and his blog, CodingSonata.com, pairs concise explanations of .NET concepts with classical music—how cool is that? Whether you're into cloud-based .NET applications or DevOps practices, Aram's content is as insightful as it is enjoyable.&lt;/p&gt;

&lt;p&gt;Follow Aram: &lt;a href="https://codingsonata.medium.com/build-a-dictionary-app-using-uno-platform-49cd1d7bd4d7" rel="noopener noreferrer"&gt;Blog &lt;/a&gt;| &lt;a href="https://x.com/AramT87" rel="noopener noreferrer"&gt;Twitter &lt;/a&gt;| &lt;a href="https://www.linkedin.com/in/aramt87/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  7. Leomaris Reyes
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;About the Author:&lt;/strong&gt; Leomaris Reyes has quickly made a name for herself in the .NET community, and it’s easy to see why. As a Microsoft MVP, she’s a passionate advocate for modern software development practices and a strong supporter of women in STEM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Content:&lt;/strong&gt; Leomaris is the go-to person for anything related to .NET MAUI. Her content is comprehensive, from detailed UI tutorials to advanced coding techniques. If you’re diving into cross-platform development or .NET MAUI, you’ll find her content invaluable.&lt;/p&gt;

&lt;p&gt;Follow Leomaris: &lt;a href="https://askxammy.com/" rel="noopener noreferrer"&gt;Blog&lt;/a&gt; | &lt;a href="https://x.com/LeomarisReyes11" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;| &lt;a href="https://www.linkedin.com/in/leomaris-reyes-1b598661/" rel="noopener noreferrer"&gt;LinkedIn &lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  8. Martin Zikmund
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;About the Author:&lt;/strong&gt; I might be a bit biased since I work with him, but Martin Zikmund’s credentials speak for themselves. He’s a fantastic .NET developer, a Microsoft MVP, and a key contributor to the Uno Platform community—plus, he’s still holding out hope for a Windows phone comeback!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Content:&lt;/strong&gt; Martin’s posts are packed with insights into cross-platform development, especially when it comes to Uno Platform and Windows technologies. His content is clear, accessible, and incredibly useful for developers at any level. If you’re looking to make cross-platform development more straightforward, Martin’s work is where you should start.&lt;/p&gt;

&lt;p&gt;Follow Martin: &lt;a href="https://mzikmund.dev/" rel="noopener noreferrer"&gt;Blog &lt;/a&gt;| &lt;a href="https://mzikmund.dev/" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; | &lt;a href="https://www.linkedin.com/in/mzikmund" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; | &lt;a href="https://www.youtube.com/channel/UCB6Td35bzTvcJN_HG6TLtwA" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Nick Cosentino
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;About the Author:&lt;/strong&gt; I recently stumbled onto Nick's content and really took to it. Maybe it's because he is a fellow Canadian, or maybe it is just that his passion resonates in his content. Not just a .NET enthusiast—he’s a passionate open-source contributor and, someone I’m excited to follow. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Content:&lt;/strong&gt; Nick’s work spans a wide range of topics, from .NET performance optimization to open-source contributions. What I really appreciate is how he blends technical insights with the perspective of a software engineering manager. His focus on community engagement and knowledge sharing makes his content both informative and relatable.&lt;/p&gt;

&lt;p&gt;Follow Nick: &lt;a href="https://www.devleader.ca/" rel="noopener noreferrer"&gt;Website&lt;/a&gt; | &lt;a href="https://x.com/DevLeaderCa" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;| &lt;a href="https://www.linkedin.com/in/nickcosentino/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; | &lt;a href="https://www.youtube.com/@devleader" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Oleg Kyrylchuk
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;About the author:&lt;/strong&gt; Oleg Kyrylchuk is a software engineer who specializes in .NET technologies and scalable systems. His deep dives into performance tuning and distributed systems are nothing short of impressive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Content:&lt;/strong&gt; Oleg’s content is all about tackling advanced .NET topics and solving complex technical challenges. If you’re looking to improve your understanding of C# concepts, performance tuning or distributed systems, Oleg’s posts and newsletter are a fantastic resource.&lt;/p&gt;

&lt;p&gt;Follow Oleg: &lt;a href="https://okyrylchuk.dev/" rel="noopener noreferrer"&gt;Newsletter&lt;/a&gt;| &lt;a href="https://x.com/okyrylchuk" rel="noopener noreferrer"&gt;Twitter &lt;/a&gt;| &lt;a href="https://www.linkedin.com/in/okyrylchuk/" rel="noopener noreferrer"&gt;LinkedIn &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’m sure there are plenty of amazing .NET content creators we didn’t get to cover, so if we missed one of your favorites, drop their names in the comments! We’d love to hear about them.&lt;/p&gt;

&lt;p&gt;If you’re looking for even more .NET content creators, I highly recommend the &lt;a href="https://github.com/matthiasjost/dotnet-content-creators" rel="noopener noreferrer"&gt;dotnet-content-creators list by Matthias&lt;/a&gt;—it’s one of the best and most up-to-date resources for finding creators of all kinds in the .NET community&lt;/p&gt;

</description>
      <category>learning</category>
      <category>dotnet</category>
      <category>developer</category>
      <category>community</category>
    </item>
    <item>
      <title>UnoKeyboard</title>
      <dc:creator>Joan Magnet</dc:creator>
      <pubDate>Thu, 22 Aug 2024 16:48:38 +0000</pubDate>
      <link>https://forem.com/uno-platform/unokeyboard-23po</link>
      <guid>https://forem.com/uno-platform/unokeyboard-23po</guid>
      <description>&lt;p&gt;UnoKeyboard is an on-screen keyboard control designed to run on Desktop, WASM, and Windows platforms. It's primarily intended for touch-screen devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cross-platform&lt;/li&gt;
&lt;li&gt;Customizable design&lt;/li&gt;
&lt;li&gt;Theming support&lt;/li&gt;
&lt;li&gt;Custom appearance&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Adding the Control to Your Project
&lt;/h2&gt;

&lt;p&gt;The control is available as a &lt;a href="https://www.nuget.org/packages/UnoKeyboard" rel="noopener noreferrer"&gt;NuGet package&lt;/a&gt; Nuget package or can be integrated from the &lt;a href="https://github.com/mcNets/UnoKeyboard" rel="noopener noreferrer"&gt;GitHub source code&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How should I use the Control?
&lt;/h2&gt;

&lt;p&gt;The keyboard can be used in two different ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using the AddKeyboard extension method&lt;/li&gt;
&lt;li&gt;Using a XAML control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your project uses the default frame navigation, I would recommend using the AddKeyboard extension method. This method automatically shows and hides the keyboard when a TextBox gains or loses focus. On the other hand, if you prefer more control over the keyboard or if you are using other navigation methods, use the XAML control instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using the AddKeyboard Extension Method
&lt;/h2&gt;

&lt;p&gt;The library provides an extension method for the Window class to automatically add the control to your project.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;AddKeyboard&lt;/code&gt; method injects a two-row grid. The first row contains a &lt;code&gt;ScrollViewer&lt;/code&gt;, and the second row displays the virtual keyboard. The content of the &lt;code&gt;ScrollViewer&lt;/code&gt;is assigned to the &lt;code&gt;RootFrame&lt;/code&gt;property of the &lt;code&gt;McWindowEx&lt;/code&gt;class.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add a reference to &lt;code&gt;McWindowEx.RootFrame&lt;/code&gt; in your &lt;code&gt;App.xaml.cs&lt;/code&gt; file:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    public static Frame RootFrame =&amp;gt; McWindowEx.RootFrame;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Comment out the code that creates the main Frame in the OnLaunched method:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    // Do not repeat app initialization when the Window already has content,
    // just ensure that the window is active
    //if (MainWindow.Content is not Frame rootFrame)
    //{
    //    // Create a Frame to act as the navigation context and navigate to the first page
    //    rootFrame = new Frame();

    //    // Place the frame in the current Window
    //    MainWindow.Content = rootFrame;
    //    rootFrame.NavigationFailed += OnNavigationFailed;
    //}

    //if (rootFrame.Content == null)
    //{
    //    // When the navigation stack isn't restored navigate to the first page,
    //    // configuring the new page by passing required information as a navigation
    //    // parameter
    //    rootFrame.Navigate(typeof(MainPage), args.Arguments);
    //}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Call the &lt;code&gt;AddKeyboard&lt;/code&gt;method and navigate to the main page:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    // Add UnoKeyboard to the Window
    MainWindow.AddKeyboard(height: 300);

    // Navigate using McWindowEx.RootFrame
    if (RootFrame.Content == null)
    {
        RootFrame.Navigate(typeof(MainPage), args.Arguments);
        RootFrame.NavigationFailed += OnNavigationFailed;
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From this point on, the virtual keyboard will automatically appear whenever a &lt;code&gt;TextBox&lt;/code&gt;gains focus.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using an XAML Control:
&lt;/h2&gt;

&lt;p&gt;Add a reference to the xmlns:ukc="using:UnoKeyboard.Controls" namespace and then add a new control to your file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;ukc:UnoKeyboard x:Name="MyKeyboard"
                 Height="300"
                 Visibility="Collapsed"
                 HandleFocusManager="True" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Properties
&lt;/h2&gt;

&lt;p&gt;Here are some of the properties. For a complete list, refer to the control's documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Height
&lt;/h2&gt;

&lt;p&gt;This property defines the height of the virtual keyboard. It's important to note that the height of each key depends on the keyboard's height. For example, if the keyboard is 300px high and has 4 rows, each row will be::&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(300 - (Padding.Top + Padding.Bottom)) / 4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Similarly, the width of each key is calculated based on the number of keys per row.&lt;/p&gt;

&lt;h2&gt;
  
  
  HandleFocusManager
&lt;/h2&gt;

&lt;p&gt;If the &lt;code&gt;HandleFocusManager&lt;/code&gt;property is set to True, the control will automatically show and hide the virtual keyboard when a TextBox gains or loses focus. Otherwise, the keyboard must be shown and hidden manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keyboard Type
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;McWindowEx&lt;/code&gt;extension class introduces a new attached property: &lt;code&gt;KeyboardType&lt;/code&gt;, which allows for keyboard selection. Two default keyboards are available, but you can add more custom keyboards:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;en-alfa&lt;/li&gt;
&lt;li&gt;numeric&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To use a specific keyboard, set the &lt;code&gt;KeyboardType&lt;/code&gt;attached property on your &lt;code&gt;TextBox&lt;/code&gt;control. The default keyboard is &lt;code&gt;en-alfa&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;Page 
    xmlns:mck="using:UnoKeyboard" /&amp;gt;

&amp;lt;TextBox Width="200"
         VerticalAlignment="Center"
         FontSize="30"
         mck:McWindowEx.KeyboardType="numeric" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Customization
&lt;/h2&gt;

&lt;p&gt;Two static dictionaries are used to define the keyboard and its keys. You can add more keys and keyboard layouts by adding new entries to these dictionaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  VirtualKeys
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/mcNets/UnoKeyboard/blob/main/src/UnoKeyboard/VirtualKeys.cs" rel="noopener noreferrer"&gt;The VirtualKeys.Key&lt;/a&gt; dictionary dictionary defines the keys that will be displayed on the keyboard. Each key is defined by a &lt;a href="https://github.com/mcNets/UnoKeyboard/blob/main/src/UnoKeyboard/Models/VirtualKeyModel.cs" rel="noopener noreferrer"&gt;VirtualKeyModel&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That is a reduced version of the dictionary:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public static class VirtualKeys
{
    public static Dictionary&amp;lt;string, VirtualKeyModel&amp;gt; Key = new()
    {
        { "N1", new VirtualKeyModel("N1", KeyType.Text, "1", "1", 0x0031, 0x0031, null) },
        { "N2", new VirtualKeyModel("N2", KeyType.Text, "2", "2", 0x0032, 0x0032, null) },
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, to add the | key to your custom keyboard layout:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VirtualKeys.Key.Add("|",                // Dictionary key
    new VirtualKeyModel("|",            // Key ID
                        KeyType.Text,   // Type
                        "|",            // Uppercase
                        "|",            // Lowercase
                        0x007C,         // Unicode uppercase
                        0x007C,         // Unicode lowercase
                        null));         // A Func&amp;lt;Microsoft.UI.Xaml.Shapes.Path&amp;gt;? that returns a Path
                                        // used to draw special keys.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Keyboards
&lt;/h2&gt;

&lt;p&gt;The Keyboards.Keyboard dictionary defines the keyboard layouts. Each keyboard is defined by a KeyboardModel.&lt;/p&gt;

&lt;p&gt;Let's add the new key to the keyboard layout:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Keyboards.Keyboard.Add("my_keyboard",   // Dictionary key
    new KeyboardModel("my_keyboard"     // Keyboard Id
                      "1",              // Number of pages.
                      "3",              // Number of rows.
                      "10",             // Max. keys per row.
                      [
                        new KeyModel(0,                     // Page 0
                                     0,                     // Row 0
                                     1,                     // Column 1
                                     1,                     // Column span
                                     VirtualKeys.Get("|")), // Key
                      ]));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For any questions or suggestions, feel free to contact me in the &lt;a href="https://github.com/mcNets/UnoKeyboard/discussions" rel="noopener noreferrer"&gt;Discussions&lt;/a&gt; section or &lt;a href="https://github.com/mcNets/UnoKeyboard/issues" rel="noopener noreferrer"&gt;open an Issue&lt;/a&gt; on the GitHub repository. You can also find me active in the &lt;a href="https://platform.uno/discord" rel="noopener noreferrer"&gt;Uno Platform Discord server&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Everyone is welcome to contribute to the project. Thank you for your interest!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Joan Magnet Sabata&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>unoplatform</category>
      <category>csharp</category>
      <category>opensource</category>
    </item>
    <item>
      <title>3 productivity tips for .NET developers</title>
      <dc:creator>mtmattei</dc:creator>
      <pubDate>Tue, 16 Jul 2024 18:57:35 +0000</pubDate>
      <link>https://forem.com/uno-platform/3-productivity-tips-for-net-developers-4mmo</link>
      <guid>https://forem.com/uno-platform/3-productivity-tips-for-net-developers-4mmo</guid>
      <description>&lt;p&gt;The .NET ecosystem provides a variety of tools, and libraries designed to boost your productivity. However, there's invaluable insight to be gained from experienced developers who've honed their skills over the years. &lt;/p&gt;

&lt;p&gt;To uncover these tips and tricks, we reached out to some of our seasoned &lt;a href="https://platform.uno/" rel="noopener noreferrer"&gt;Uno Platform&lt;/a&gt; developers. They've generously shared practical advice that has boosted their productivity—and can do the same for you&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Dan Siegel&lt;/strong&gt; - Microsoft MVP&lt;br&gt;
&lt;strong&gt;Years of experience:&lt;/strong&gt; 28 years writing code (14 full-time / professionally)&lt;br&gt;
&lt;strong&gt;Dev Environment:&lt;/strong&gt; Visual Studio on Windows&lt;br&gt;
&lt;strong&gt;Favorite Library:&lt;/strong&gt; &lt;a href="https://github.com/PrismLibrary/Prism" rel="noopener noreferrer"&gt;Prism&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dan’s Top 3 Productivity Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Step Away: Take breaks away from your computer. Many solutions to complex issues come to mind when you're not actively working on them.&lt;br&gt;
“Honestly, you'd be surprised how many answers/solutions I come up with for things I'm working on when I walk away from the computer and go to lunch. I have even fixed bugs or come up with radical ideas for solving a complex issue while I'm on the dive boat. Software development is a creative process... and many times you need to get away from the computer to let your brain solve problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Development is a team sport. No matter how good you think you can make something, you’ll make something better collaborating with someone else. Sometimes, the simple exercise of explaining it to someone else can lead to mind-blowing breakthroughs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When you’re working with open-source code, don’t be afraid to look at the code. You’d be amazed at how many things you’ll have a better understanding of just by looking at the code, and how many possibilities that will unlock for you.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Follow Dan on: &lt;a href="https://github.com/dansiegel" rel="noopener noreferrer"&gt;GitHub &lt;/a&gt;&amp;amp; &lt;a href="https://x.com/DanJSiegel" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Martin Zikmund&lt;/strong&gt; - Microsoft MVP&lt;br&gt;
&lt;strong&gt;Years of experience:&lt;/strong&gt; 15 years&lt;br&gt;
&lt;strong&gt;Dev Environment:&lt;/strong&gt; Visual Studio on Windows&lt;br&gt;
&lt;strong&gt;Favorite Library:&lt;/strong&gt;  &lt;a href="https://github.com/unoplatform/uno" rel="noopener noreferrer"&gt;Uno Platform&lt;/a&gt; (of course 😁)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Martin’s Top 3 Productivity Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Invest in workplace: If you have control over your environment, investment into everything you are using while working is a worthwhile investment. This means a quality PC to ensure its performance does not hinder your efficiency; comfortable chair to save your back; standing desk; and ergonomic keyboard and mouse. You are likely spending a lot of time at your PC, so any investments in this regard are worthwhile as they will return to you in both health and time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use PowerToys: Don’t get me wrong, Windows is a productive OS out of the box, however, you can make it even better by extending it with useful tools. And one of the best comes directly from Microsoft – PowerToys! It is a set of small modules that enhance the OS in ways that will make it hard to imagine your life without after you integrate it into your workflow. I am currently making a series of videos about this on my YouTube channel, if you want to learn more!  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Know your shortcuts: Nothing can speed up your work as much as knowing keyboard shortcuts of your IDE and other apps you use frequently. Just not having to reach for your mouse and being able to keep your hands on the keyboard saves a surprising amount of time! So, find the list of keyboard shortcuts, print it out, and start learning them as you go. My trick to learn faster is to put your mouse on the side of your non-dominant hand for 30 minutes. Just the fact that the mouse is not where you expect it will make force you to think whether using a keyboard shortcut could be better for that specific task!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Follow Martin on:&lt;/strong&gt; &lt;a href="https://github.com/MartinZikmund" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; &amp;amp; &lt;a href="https://x.com/mzikmunddev" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Steve Bilogan&lt;/strong&gt; - Microsoft MVP&lt;br&gt;
&lt;strong&gt;Years of experience:&lt;/strong&gt; 8.5 years&lt;br&gt;
&lt;strong&gt;Dev Environment:&lt;/strong&gt; Visual Studio on Windows / VS Code on macOS&lt;br&gt;
&lt;strong&gt;Favorite Library:&lt;/strong&gt;  unoplatform/uno.toolkit.ui&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve’s Top 3 Productivity Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Take a walk, every couple of hours or whenever needed: walk around the block, let your mind wander, decompress, and come back fresh.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Visual Studio CTRL+T Quick Search can search by just the capital letters. Example: Searching for RDP.xaml will resolve properly to RecipeDetailsPage.xaml&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open on GitHub - Visual Studio Marketplace Great extension for quickly opening the highlighted lines in the browser from the GitHub repo. Great for needing to quickly grab the link to lines that you are talking about when communicating on Teams&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Follow Steve on: &lt;a href="https://github.com/kazo0" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; &amp;amp; &lt;a href="https://x.com/BiloganSteve" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Youssef Victor&lt;/strong&gt; - Microsoft MVP&lt;br&gt;
&lt;strong&gt;Years of experience:&lt;/strong&gt; 2 years&lt;br&gt;
&lt;strong&gt;Dev Environment&lt;/strong&gt;: Visual Studio on Windows&lt;br&gt;
&lt;strong&gt;Favorite Library:&lt;/strong&gt; NodaTime, PolySharp &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Youssef’s Top 3 Productivity Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Master Keyboard Shortcuts: Learn to use Visual Studio's Quick Search (Ctrl+T) to navigate quickly through both your code and IDE features.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Leverage Multi-Caret Editing: Use your editor's multi-caret functionality in specific situations where it can significantly speed up your editing process. This allows you to edit multiple locations in your code simultaneously.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consider using grep.app for advanced text searching within your codebase. It offers more powerful search capabilities than the basic search functions within your editor.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Follow Youssef on: &lt;a href="https://github.com/Youssef1313" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; &amp;amp; &lt;a href="https://x.com/YoussefV1313" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Nick Randolph&lt;/strong&gt; - &lt;strong&gt;Microsoft MVP&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Years of experience:&lt;/strong&gt; 30 years&lt;br&gt;
&lt;strong&gt;Dev Environment:&lt;/strong&gt; Windows (Desktop) + VS&lt;br&gt;
&lt;strong&gt;Favorite Library:&lt;/strong&gt; Moq for mocking interfaces for testing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nicks Top 3 Productivity Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Better team work through focused, and frequent pull requests.&lt;/li&gt;
&lt;li&gt; Release when features are complete rather than try to hit arbitrary deadlines&lt;/li&gt;
&lt;li&gt; Don't spin cycles; If you're stuck reach out to someone for help.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Follow Nick on: &lt;a href="https://github.com/nickrandolph" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; &amp;amp; &lt;a href="https://x.com/thenickrandolph" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>dotnet</category>
      <category>csharp</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Cybertruck in XAML and running Cross-Platform with WebAssembly</title>
      <dc:creator>Uno Platform</dc:creator>
      <pubDate>Tue, 03 Dec 2019 15:41:16 +0000</pubDate>
      <link>https://forem.com/uno-platform/cybertruck-in-xaml-and-running-cross-platform-with-webassembly-4f88</link>
      <guid>https://forem.com/uno-platform/cybertruck-in-xaml-and-running-cross-platform-with-webassembly-4f88</guid>
      <description>&lt;p&gt;It simply had to be done – Cybertruck in XAML. See for yourself, and further customize the Cybertruck if you’d like,  in our &lt;a href="https://cybertruck.platform.uno/" rel="noopener noreferrer"&gt;WebAssembly implementation of Cybertruck.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq6om9oe9ix0qs9ezjorb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq6om9oe9ix0qs9ezjorb.png" alt="Cybertruck XAML" width="800" height="208"&gt;&lt;/a&gt;Cybertruck XAML&lt;/p&gt;

&lt;p&gt;&lt;a href="https://platform.uno/cybertruck-in-xaml-and-running-cross-platform-with-webassembly/" rel="noopener noreferrer"&gt;Go ahead, have a swing at its windows with your mouse!&lt;/a&gt; Shout out goes to Lynn Fisher whose &lt;a href="https://twitter.com/lynnandtonic/status/1197989912970067969?s=20" rel="noopener noreferrer"&gt;tweet&lt;/a&gt; inspired us to recreate Cybertruck in XAML. Of course we had to add a lil’ Uno logo there on the door.&lt;/p&gt;

&lt;p&gt;What is Uno Platform Anyway?  &lt;/p&gt;

&lt;p&gt;Before getting into the details of Cybertruck in XAML. The &lt;a href="http://www.platform.uno/" rel="noopener noreferrer"&gt;Uno Platform&lt;/a&gt; enables C# and XAML based code to run on iOS, Android, and WebAssembly. To avoid having to learn the UI-layout techniques and approaches for each platform, the Uno Platform mimics the Windows XAML approach of defining UI and layouts. The Uno Platform does this by providing full API definitions of the Universal Windows Platform and implementations of parts of the API – such as Windows.UI.XAML. Uno Platform is Open Source (Apache 2.0) and &lt;a href="https://github.com/unoplatform/uno" rel="noopener noreferrer"&gt;available on GitHub&lt;/a&gt;. As fans of XAML, and Tesla, it made sense we have some fun with Cybertruck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How did we do it&lt;/strong&gt;&lt;strong&gt;?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Everything was done in XAML and we mainly used simple controls for the entire content (Grid, Border, Path and a ViewBox to be able to resize the content for all aspect ratios).&lt;br&gt;&lt;br&gt;
For the colors, we used solid ones or LinearGradientBrushes (Horizontal, Vertical or Diagonal).&lt;br&gt;&lt;br&gt;
In terms of animations, we simply used DoubleAnimations, changing the Opacity for the lights or using aRotateTransform for the wheels.&lt;/p&gt;

&lt;p&gt;We created every part of the car using vector graphics software in order to create an SVG file, you can use your favorite software package for that part (eg Inkscape, Adobe Illustrator, PaintShop Pro, …).&lt;br&gt;&lt;br&gt;
You will then be able to extract the needed data in the generated SVG file, and use them in the different Path controls inside the content. &lt;/p&gt;

&lt;p&gt;How can you customize it?&lt;/p&gt;

&lt;p&gt;Having the CyberTruck in action running WebAssembly is pretty cool, but be able to customize it is also fun – &lt;a href="https://playground.platform.uno/#cybertruck" rel="noopener noreferrer"&gt;https://playground.platform.uno/#cybertruck&lt;/a&gt;.   &lt;/p&gt;

&lt;p&gt;It’s really easy to play around and change the values, here are two examples:&lt;/p&gt;

&lt;p&gt;For example, change the CyberTruck color.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

BEFORE
&amp;lt;!--MAIN BODY --&amp;gt; &amp;lt;Path Data="M 457.97791,2.8127639 227.25276,82.520113 822.32143,42.553571 Z"&amp;gt; &amp;lt;Path.Fill&amp;gt; &amp;lt;LinearGradientBrush StartPoint="0,0" EndPoint="1,1"&amp;gt; &amp;lt;GradientStop Color="#FFA7A7A7" Offset="0.0" /&amp;gt; &amp;lt;GradientStop Color="#FFDDDDDD" Offset="0.8" /&amp;gt; &amp;lt;GradientStop Color="#FFA7A7A7" Offset="1.0" /&amp;gt; &amp;lt;/LinearGradientBrush&amp;gt; &amp;lt;/Path.Fill&amp;gt;&amp;lt;/Path&amp;gt; 

AFTER
&amp;lt;!--MAIN BODY --&amp;gt; &amp;lt;Path Data="M 457.97791,2.8127639 227.25276,82.520113 822.32143,42.553571 Z"       **Fill**** =" ****DeepSkyBlue****"** /&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0dndd3usjla856hc2sn0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0dndd3usjla856hc2sn0.png" alt="Cybertruck Blue XAML" width="800" height="267"&gt;&lt;/a&gt;Cybertruck Blue XAML&lt;/p&gt;

&lt;p&gt;Or, to make the wheels spin in different direction.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

BEFORE
&amp;lt;DoubleAnimation From="0" To="-360" Duration="0:0:0.5" RepeatBehavior="Forever" Storyboard.TargetName="TeslaLeftWheel" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" /&amp;gt;

AFTER 
&amp;lt;DoubleAnimation From="0"** To="360"** Duration="0:0:0.5" RepeatBehavior="Forever" Storyboard.TargetName="TeslaLeftWheel" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" /&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Cybertruck on iOS, Android and Windows&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’d like to see Cybertruck run cross-platform or iOS, Android and Deslkop too, the code is available for you t&lt;a href="https://github.com/unoplatform/cybertruck" rel="noopener noreferrer"&gt;o compile from Cybertruck – Uno Platform GitHub&lt;/a&gt;.  Here are a few emulator screen captures. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3pmkwxzjs7tuou6hgos.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3pmkwxzjs7tuou6hgos.gif" alt="Cybertruck iOS Cross Platform" width="800" height="420"&gt;&lt;/a&gt;Cybertruck iOS Cross Platform&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvj6vlgxp36ps064y6ogl.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvj6vlgxp36ps064y6ogl.gif" alt="Cybertruck Android Tablet Cross Platform" width="800" height="516"&gt;&lt;/a&gt;Cybertruck Android Tablet Cross Platform&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3u7t7vld6ygst0q0n0f.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3u7t7vld6ygst0q0n0f.gif" alt="Cybertruck UWP / WinUI" width="800" height="459"&gt;&lt;/a&gt;Cybertruck UWP / WinUI&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next Steps&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;If you want to keep improving this XAML mock–up of the CyberTruck, the code is available at &lt;a href="https://github.com/unoplatform/cybertruck" rel="noopener noreferrer"&gt;Uno Platform GitHub&lt;/a&gt; and we will happily accept contributions.  &lt;/p&gt;

&lt;p&gt;We’d of course appreciate if you give Uno Platform a try. We have a complete step-by-step tutorial available on GitHub. Or, if you’d prefer something more comprehensive, a &lt;a href="https://github.com/unoplatform/workshops" rel="noopener noreferrer"&gt;full day workshop is also on GitHub&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://platform.uno/cybertruck-in-xaml-and-running-cross-platform-with-webassembly/" rel="noopener noreferrer"&gt;Cybertruck in XAML and running Cross-Platform with WebAssembly&lt;/a&gt; appeared first on &lt;a href="https://platform.uno" rel="noopener noreferrer"&gt;Uno Platform&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>news</category>
    </item>
    <item>
      <title>Uno Community Events are Booming this November-December</title>
      <dc:creator>Uno Platform</dc:creator>
      <pubDate>Wed, 06 Nov 2019 19:41:47 +0000</pubDate>
      <link>https://forem.com/uno-platform/uno-community-events-are-booming-this-november-december-3800</link>
      <guid>https://forem.com/uno-platform/uno-community-events-are-booming-this-november-december-3800</guid>
      <description>&lt;p&gt;The Uno Platform community has been creating quite a buzz as of late. With Microsoft’s recent &lt;a href="https://twitter.com/windowsdev/status/1191695227259478016" rel="noopener noreferrer"&gt;shout out to Uno&lt;/a&gt; and a slew of community events popping up in November and December, Uno Platform is making headlines and introducing user groups to the platform one announcement at a time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Things that keep us going. Uno community events in November:&lt;br&gt;&lt;br&gt;
– London 🇬🇧&lt;br&gt;&lt;br&gt;
– Orlando 🇺🇸&lt;br&gt;&lt;br&gt;
– Boston 🇺🇸&lt;br&gt;&lt;br&gt;
– Westerville 🇺🇸&lt;br&gt;&lt;br&gt;
– Scottsdale 🇺🇸&lt;br&gt;&lt;br&gt;
– Laval 🇨🇦&lt;br&gt;&lt;br&gt;
– Madrid 🇪🇸&lt;br&gt;&lt;br&gt;
– Malaga 🇪🇸&lt;br&gt;&lt;br&gt;
– Noida 🇮🇳&lt;/p&gt;

&lt;p&gt;THANK YOU.&lt;a href="https://twitter.com/hashtag/WinUIEverywhere?src=hash&amp;amp;ref_src=twsrc%5Etfw" rel="noopener noreferrer"&gt;#WinUIEverywhere&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;— Uno Platform #msignite (&lt;a class="mentioned-user" href="https://dev.to/unoplatform"&gt;@unoplatform&lt;/a&gt;) &lt;a href="https://twitter.com/UnoPlatform/status/1191925690695913473?ref_src=twsrc%5Etfw" rel="noopener noreferrer"&gt;November 6, 2019&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;If you are interested in learning about Uno Platform, check out the events listed below to find one closest to you!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpbs.twimg.com%2Fmedia%2FEHeAdo1WkAAKsny%3Fformat%3Djpg%26name%3D4096x4096" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpbs.twimg.com%2Fmedia%2FEHeAdo1WkAAKsny%3Fformat%3Djpg%26name%3D4096x4096" alt="Image" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;London, GB, UK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speaker: Matt Lacey and Jay Kannan&lt;br&gt;&lt;br&gt;
Description: Discussing Xamarin/.NET development with an introduction to the Uno Platform!&lt;br&gt;&lt;br&gt;
Date &amp;amp; Time: Wednesday, December 4 – 6:00 pm, 7:30 pm respectively&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/iOS_Arj/status/1186558280421822464/photo/1" rel="noopener noreferrer"&gt;See the event&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Orlando, FL, USA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speaker: Jerome Laban, CTO of Uno Platform&lt;br&gt;&lt;br&gt;
Description: Developing cross-platform apps for Windows, iOS, Android and WebAssembly can be a complex process, especially when it comes to the user interface. Each platform has its own ways of defining dynamic layouts, with some being more efficient, some more verbose, some more elegant, and some more performant than others.&lt;br&gt;&lt;br&gt;
Luckily, the open-source Uno Platform removes many complexities and enables developers to reuse their existing XAML and C# skills, resulting in a gain of overall productivity when creating UI-rich and data-driven applications. Come learn what the Uno Platform is all about.&lt;br&gt;&lt;br&gt;
Date &amp;amp; Time: Wednesday, November 6 – 6:45 pm&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.meetup.com/ONETUG/events/266035077/" rel="noopener noreferrer"&gt;See the event&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Burlington, MA, USA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speaker: Kenzie Whalen&lt;br&gt;&lt;br&gt;
Description: Uno is a new platform that allows developers to write a single codebase and deploy to iOS, Android, UWP, and Web Assembly. In this talk we will go over how Uno works, getting started with your first Uno application, and the future of the Uno Platform.&lt;br&gt;&lt;br&gt;
Date &amp;amp; Time: Saturday, November 23 – 10:15 am&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.bostoncodecamp.com/CC32/schedule" rel="noopener noreferrer"&gt;See the event&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Westerville, OH, USA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speaker: Steve Bilogan&lt;br&gt;&lt;br&gt;
Description: “Introduction to Uno”. Learn how the Uno Platform and how it was recently used to bring the official Microsoft UWP Calculator app to the web!&lt;br&gt;&lt;br&gt;
Date &amp;amp; Time: Tuesday, November 5 – 6:30 pm&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.meetup.com/westervilleweb/events/258854809/" rel="noopener noreferrer"&gt;See the event&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scottsdale, AZ, USA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speaker: Andres Pineda&lt;br&gt;&lt;br&gt;
Description: An introduction to the Uno Platform from guest speaker, Andres Pineda.&lt;br&gt;&lt;br&gt;
Date &amp;amp; Time: TBD&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.meetup.com/Uno-Platform-Arizona" rel="noopener noreferrer"&gt;See the event&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Laval, QC, Canada&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speaker: Marie-Christine Leclerc and Alexandre Beauchamp&lt;br&gt;&lt;br&gt;
Description: Developed by nventive in Montreal, Uno is the only platform that allows to develop native applications for mobile, desktop and WebAssembly with C # and XAML from a single code base. It is open source and supported by professionals. In this presentation you will be introduced to Uno Platform and its characteristics.&lt;/p&gt;

&lt;p&gt;Join us for this great opportunity to learn about new technologies in a relaxed atmosphere and around a good beer!&lt;br&gt;&lt;br&gt;
Date &amp;amp; Time: Wednesday, November 20 – 6:00 pm&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.eventbrite.ca/e/billets-biere-et-techno-20-novembre-2019-soiree-conference-sur-les-tendances-technologiques-75898240681" rel="noopener noreferrer"&gt;See the event&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Madrid, Spain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speaker: Paulo Vila and Jose Manuel Nieto&lt;br&gt;&lt;br&gt;
Description: In this talk we will introduce Uno Platform. You will discover the revolutionary way to create multi-platform applications and websites in a simpler, more productive and powerful way. We will explain its fundamentals, motivations and its relationship with the UWP (Universal Windows Platform), detailing each of the parts that make up Uno Platform. We will finish with a small hands-on Lab and a technical demo.&lt;br&gt;&lt;br&gt;
Date &amp;amp; Time: Thursday, November 7 – 7:00 pm&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.meetup.com/CrossDvlup/events/265555269/" rel="noopener noreferrer"&gt;See the event&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ftalent-woman.es%2Fwp-content%2Fuploads%2F2019%2F11%2Ftama%25C3%25B1o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ftalent-woman.es%2Fwp-content%2Fuploads%2F2019%2F11%2Ftama%25C3%25B1o.jpg" alt="Girls without limit. Professionals of the future" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Malaga, Spain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speaker: Elena Guzman&lt;br&gt;&lt;br&gt;
Description: In this talk we will introduce Uno Platform. You will discover the revolutionary way to create multi-platform applications and websites in a simpler, more productive and powerful way. We will explain its fundamentals, motivations and its relationship with the UWP (Universal Windows Platform), detailing each of the parts that make up Uno Platform. We will finish with a small hands-on Lab and a technical demo.&lt;br&gt;&lt;br&gt;
Date &amp;amp; Time: Friday, November 29 – 10:00 am&lt;/p&gt;

&lt;p&gt;&lt;a href="https://talent-woman.es/workshops/" rel="noopener noreferrer"&gt;See the event&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Noida, India&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speaker: Ravi Kumar&lt;br&gt;&lt;br&gt;
Description: Join us as we present our contributions to this year’s Hacktoberfest! We will talk about UNO &amp;amp; some other awesome projects that our meetup members have contributed to. Do not miss out on the chance to learn new frameworks &amp;amp; win some cool SWAG.&lt;br&gt;&lt;br&gt;
Date &amp;amp; Time: Saturday, November 9 – 11:15 am&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.meetup.com/DotCoreTechies/events/265445915/" rel="noopener noreferrer"&gt;See the event&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you would like to hold an Uno Platform event in your group/area, check out our &lt;a href="https://platform.uno/community/" rel="noopener noreferrer"&gt;Community page&lt;/a&gt; and let’s chat!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://platform.uno/uno-community-events-november-december/" rel="noopener noreferrer"&gt;Uno Community Events are Booming this November-December&lt;/a&gt; appeared first on &lt;a href="https://platform.uno" rel="noopener noreferrer"&gt;Uno Platform&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>news</category>
      <category>community</category>
      <category>december</category>
      <category>events</category>
    </item>
    <item>
      <title>WinUI on Windows 7 – Yes, it’s possible with Uno Platform</title>
      <dc:creator>Uno Platform</dc:creator>
      <pubDate>Wed, 30 Oct 2019 18:52:04 +0000</pubDate>
      <link>https://forem.com/uno-platform/winui-on-windows-7-yes-it-s-possible-with-uno-platform-2pij</link>
      <guid>https://forem.com/uno-platform/winui-on-windows-7-yes-it-s-possible-with-uno-platform-2pij</guid>
      <description>&lt;p&gt;WinUI is the future of developing beautiful Fluent experiences on Windows 10, Windows 10X and future Windows versions to come. Just as it is important to plan for the future of your Windows development, it is &lt;em&gt;also&lt;/em&gt; important to &lt;strong&gt;make sure your future UI stack investments are going to be able to run on previous versions of Windows&lt;/strong&gt;. This is just &lt;em&gt;one&lt;/em&gt; of the scenarios Uno Platform can play in making WinUI run everywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;About Uno Platform&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="http://www.platform.uno/" rel="noopener noreferrer"&gt;Uno Platform&lt;/a&gt; enables C# and XAML based code to run on iOS, Android, and WebAssembly. To avoid having to learn the UI-layout techniques and approaches for each platform, the Uno Platform mimics the Windows XAML approach of defining UI and layouts. The Uno Platform does this by providing full API definitions of the Universal Windows Platform and implementations of parts of the API – such as Windows.UI.XAML. Uno Platform is Open Source (Apache 2.0) and &lt;a href="https://github.com/unoplatform/uno" rel="noopener noreferrer"&gt;available on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;How it works under the hood&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;WinUI 3.0 will ship independently of Windows, allowing its features and capabilities to be used on in-market versions of Windows 10. &lt;strong&gt;As of today, with Uno Platform WinUI can also run on Windows 7 broadening its reach beyond UWP apps to traditional Win32 applications by utilizing WebAssembly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Right after //build 2019 we started working together with Microsoft to bring full WinUI XAML support in Uno while Microsoft open sourced it. If you have been paying close attention to &lt;a href="https://github.com/unoplatform/uno" rel="noopener noreferrer"&gt;Uno GitHub repo&lt;/a&gt; you might have noticed some UWP code appear in it. With this tie-in, when using Uno Platform to get your UWP/WinUI 3.0 and later apps on Windows 7 you now have two options for running your app:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run your app as a PWA. Your Windows 7 will need Chrome installed on it.&lt;/li&gt;
&lt;li&gt;Run your app on Chromium through Electron&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;How is it different than XAML Islands?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;XAML Islands enable creation of applications with ‘hybrid UI’. It allows for mixing different UIs from UWP/WinUI, Windows Forms and WPF, allowing developers to gradually modernize older desktop apps with new functionality found in UWP/WinUI. With Uno-built apps you are porting your complete UWP/WinUI application to Windows 7 by using WebAssembly.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why support Windows 7&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Windows 7 extended end of life is January 14, 2020 so why support it?&lt;/p&gt;

&lt;p&gt;Windows 7 is going to go down in history as one of the most used and loved operating systems. In a way, it has a similar reputation as the beloved Windows XP. January 2020 is around the corner and it still holds around 30% of the market share according to &lt;a href="https://netmarketshare.com/operating-system-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Trend%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22platformVersion%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22platformsDesktopVersions%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222018-10%22%2C%22dateEnd%22%3A%222019-09%22%2C%22segments%22%3A%22-1000%22%2C%22plotKeys%22%3A%5B%7B%22platformVersion%22%3A%22Windows%2010%22%7D%2C%7B%22platformVersion%22%3A%22Windows%207%22%7D%2C%7B%22platformVersion%22%3A%22Mac%20OS%20X%2010.14%22%7D%2C%7B%22platformVersion%22%3A%22Windows%208.1%22%7D%2C%7B%22platformVersion%22%3A%22Windows%20XP%22%7D%5D%7D" rel="noopener noreferrer"&gt;NetMarketShare&lt;/a&gt; or &lt;a href="https://gs.statcounter.com/os-version-market-share/windows/desktop/worldwide" rel="noopener noreferrer"&gt;Global Stats statcounter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsknhd24w6dcegek83qcm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsknhd24w6dcegek83qcm.png" width="646" height="320"&gt;&lt;/a&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0gkglb0tz3eygrtgg6j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0gkglb0tz3eygrtgg6j.png" width="627" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While Windows 10 is clearly gaining market share (and we love it), and Windows 7 is on the decline, Windows 7 &lt;em&gt;still&lt;/em&gt; has 3x more market share than MacOS.&lt;/p&gt;

&lt;p&gt;In addition, in our quick Twitter survey we discovered that 22% of the developers we polled have a need to target Windows 7 as their deployment OS beyond the end of support date, some 12% even targeting for at least 3 more. A similar survey on CodeProject unveiled that over 33% of the developers polled there plan to target Windows 7 past its end of support date.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxiu26djv0xf615iygy9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxiu26djv0xf615iygy9.png" width="661" height="410"&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fho6ce339j9iioaeutu0q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fho6ce339j9iioaeutu0q.png" width="800" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The estimated size of .NET developer community size is around 3-4 million developers. Given the poll stats above, &lt;strong&gt;there are at least 1,000,000 reasons why we think it is important to provide support for Windows 7 and help put WinUI Everywhere.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Uno Platform in Enterprise Scenarios and on Windows 7&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;We think WebAssembly is ready for prime time. We’ve had great experiences working with customers modernizing their rich internet/web applications with hundreds of screens with charts and grids, etc.  One of our customers, HubSE, has been using Uno to modernize their LOB applications and they saved 10x the time in the process. Also, to try Uno’s support for WinUI on Windows 7, we ported our UADO (Universal Azure Dev Ops) app to Windows 7 and to our delight it works just great. UADO currently runs on iOS, Android, WebAssembly, Windows Store and now on Windows 7 as well. Try UADO in any of those scenarios, compare the performance and you will be a believer as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sample UWP/WinUI application running on Windows 7 via WebAssembly&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fegtu30hylwuhgo7si9rx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fegtu30hylwuhgo7si9rx.png" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;In closing&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;We are very proud to have had the opportunity to help in this way. This work and the access Microsoft gave us has helped us out tremendously to both deliver on the ‘WinUI everywhere’ promise, as well as to accelerate Uno development itself. For example, just having access to unit tests for UWP has accelerated our development by 3x. It is a great benefit to complete developer community and another result of what the ‘new open Microsoft’ is capable of.&lt;/p&gt;

&lt;p&gt;We’d appreciate your feedback in using Uno Platform. Try Uno Platform now and reach out to us on &lt;a href="https://gitter.im/uno-platform/Lobby?source=orgpage" rel="noopener noreferrer"&gt;Gitter&lt;/a&gt; with any feedback. #WinUIEverywhere&lt;/p&gt;

&lt;p&gt;&lt;a href="https://platform.uno/docs/articles/getting-started-tutorial-1.html" rel="noopener noreferrer"&gt;Get Started&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are happy to be covering this crucial need for Windows developers and we hope to bring all of you 10x time savings like we did with &lt;a href="https://www.youtube.com/watch?v=vytKqoc8C7Y" rel="noopener noreferrer"&gt;HubSE&lt;/a&gt; and join the rest of our happy customers.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://platform.uno/winui-on-windows7-via-unoplatform/" rel="noopener noreferrer"&gt;WinUI on Windows 7 – Yes, it’s possible with Uno Platform&lt;/a&gt; appeared first on &lt;a href="https://platform.uno" rel="noopener noreferrer"&gt;Uno Platform&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>news</category>
      <category>microsoft</category>
      <category>uwp</category>
      <category>winui</category>
    </item>
    <item>
      <title>Dark Mode and MarkupExtensions now available in Uno Platform</title>
      <dc:creator>Uno Platform</dc:creator>
      <pubDate>Mon, 28 Oct 2019 13:14:46 +0000</pubDate>
      <link>https://forem.com/uno-platform/dark-mode-and-markupextensions-now-available-in-uno-platform-1jkd</link>
      <guid>https://forem.com/uno-platform/dark-mode-and-markupextensions-now-available-in-uno-platform-1jkd</guid>
      <description>&lt;p&gt;In the past few weeks we’ve had a couple big additions to Uno Platform which you should be aware of as your Uno development just got easier – and cooler.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Dark Mode by &lt;a href="https://twitter.com/mzikmunddev" rel="noopener noreferrer"&gt;@mzikmunddev&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fs3.amazonaws.com%2Funo-website-assets%2Fwp-content%2Fuploads%2F2019%2F10%2F25145559%2Fdark-mode-uno.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fs3.amazonaws.com%2Funo-website-assets%2Fwp-content%2Fuploads%2F2019%2F10%2F25145559%2Fdark-mode-uno.png"&gt;&lt;/a&gt;Uno Platform Dark Mode by &lt;a href="https://twitter.com/mzikmunddev" rel="noopener noreferrer"&gt;@mzikmunddev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You have probably heard of ‘dark mode’ – a UI option which displays light text on a dark background, as opposed to the default dark text on a light background. The reduced brightness of the screen has brought many benefits – such as courtesy in situations when a screen’s bright light creates a distraction (i.e. movie theatres). Also, users report it reduces strain on their eyes when using the ‘dark mode’. Finally, ‘dark mode’ has great advantages for the battery lifetime of your devices. Now, Uno Platform supports ‘dark mode’ as well!&lt;/p&gt;

&lt;p&gt;Thanks to the introduction of {ThemeResource} markup extension by Uno Platform core team member, Carl de Billy, you can add the Dark and High Contrast themes and automatic OS dark/light theme detection capability when the Application.RequestedTheme is not specified. The ‘dark mode’ works on iOS, Android, Windows and WebAssembly (WASM). Your app can now switch to dark theme automatically, without any additional code! The user will be able to switch between light and dark mode of your app the same way as all other applications – via Settings on their device.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;MarkupExtensions by&lt;/strong&gt; &lt;a href="https://twitter.com/cacchiom" rel="noopener noreferrer"&gt;&lt;strong&gt;@&lt;/strong&gt; cacchiom&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;MarkupExtensions were a great feature of WPF, and as of Windows 10 build 16299, they have been available to UWP developers to use in their own apps.&lt;/p&gt;

&lt;p&gt;In XAML applications, markup extensions are a method/technique to gain a value that is neither a specific XAML object nor a primitive type. Markup extensions can be defined by opening and closing curly braces and inside those curly braces, the scope of the markup extension is defined.&lt;/p&gt;

&lt;p&gt;As Xaml developers, we’ve come across MarkupExtensions very often since some of them we use on a regular basis: &lt;code&gt;{Binding} {StaticResource} {x:Bind} {x:Null}&lt;/code&gt;. But now with support for creating your own, developers have more flexibility in their Xaml code by creating custom MarkupExtensions to suit their needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here’s a very simple example of creating one:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;namespace MyApp.MarkupExtensions
{
    [MarkupExtensionReturnType(ReturnType = typeof(string))]
    public class CustomString : Windows.UI.Xaml.Markup.MarkupExtension
    {
        public string MyString { get; set; }

        public int MyNumber { get; set; }

        protected override object ProvideValue()
        {
            return $"{MyString ?? string.Empty} AND #{MyNumber}";
        }
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then in your Xaml:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;xmlns:ext="using:MyApp.MarkupExtensions"
.
.
.
&amp;lt;TextBlock Text="{ext:CustomString MyString='Simple text', MyNumber=999}" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Starting with **Uno.UI 2.0.275-dev.2987**, developers can now embrace this useful feature in their Uno apps and strengthen their Xaml. We hope you enjoy this new feature as we continue to improve on the capabilities of the Uno Platform.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://platform.uno/dark-mode-and-markupextensions-now-available-in-uno-platform/" rel="noopener noreferrer"&gt;Dark Mode and MarkupExtensions now available in Uno Platform&lt;/a&gt; appeared first on &lt;a href="https://platform.uno" rel="noopener noreferrer"&gt;Uno Platform&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>news</category>
      <category>background</category>
      <category>dark</category>
      <category>darkmode</category>
    </item>
  </channel>
</rss>
