March 20th, 2024

Introducing .NET Smart Components – AI-powered UI controls

Daniel Roth
Principal Product Manager

New advances in AI promise to revolutionize how we interact with and use software. But adding AI features into existing software can be challenging. That’s why we built the new .NET Smart Components, a set of genuinely useful AI-powered UI components that you can quickly and easily add to .NET apps. You don’t have to spend weeks of dev time redesigning your UX or researching machine learning and prompt engineering. .NET Smart Components are prebuilt end-to-end AI features that you can drop into your existing app UIs to make your users more productive.

The .NET Smart Components are an experiment and are initially available for Blazor, MVC, and Razor Pages with .NET 6 and later. We expect to provide components for other .NET UI frameworks as well, like .NET MAUI, WPF, and Windows Forms, but first we’re interested in your feedback on how useful these components are and what additional capabilities you’d like to see added.

Watch Steve Sanderson demonstrate what the .NET Smart Components can do:

What’s included

The .NET Smart Components currently include the following smart features:

Smart Paste

Smart Paste fills out forms automatically using data from the user’s clipboard with the click of a button. You can use this with any existing form in your web app. This helps users add data from external sources without re-typing.

Screen capture of Smart Paste feature

Learn more: Smart Paste docs

Smart TextArea

An intelligent upgrade to the traditional textarea. You can configure how it should autocomplete whole sentences using your own preferred tone, policies, URLs, and so on. This helps users type faster and not have to remember URLs etc.

Screen capture of Smart TextArea feature

Learn more: Smart TextArea docs

Smart ComboBox

Upgrades the traditional combobox by making suggestions based on semantic matching. This helps users find what they’re looking for.

Screen capture of Smart ComboBox feature

Learn more: Smart ComboBox docs

Running the samples

You can try out the .NET Smart Components with Blazor or MVC/RazorPages using the .NET Smart Components sample apps on GitHub.

To get started with the .NET Smart Components sample apps:

  1. Download and install the .NET SDK if you don’t already have it installed.

  2. Clone or download the .NET Smart Components sample repo from GitHub: https://aka.ms/smartcomponents.

  3. Deploy an Azure OpenAI backend if you don’t already have one, and then edit the RepoSharedConfig.json file at the root of the solution to add your API key, deployment name, and endpoint URL.

    RepoSharedConfig.json

    "SmartComponents": {
      "ApiKey": "<API key>",
      "DeploymentName": "<deployment name>",
      "Endpoint": "https://YOUR_ACCOUNT.openai.azure.com/"
    }
  4. Run either ExampleBlazorApp or ExampleMvcRazorPagesApp to see the .NET Smart Components in action.

Add to an existing app

Once you’re ready, you can add .NET Smart Components to your existing Blazor, MVC, or Razor Pages apps by following these guides:

Feedback and support

The .NET Smart Components are currently experimental and not officially supported. We want to hear from you whether these components are useful and how we can improve them to best meet your app development needs. Please take a moment to share your thoughts and feedback with us by filling out our short .NET Smart Components survey. You can also report issues and suggest improvements by creating an issue on GitHub.

Thank you for trying out the .NET Smart Components!

Author

Daniel Roth
Principal Product Manager

Daniel Roth is a Program Manager on the ASP.NET team at Microsoft.

26 comments

Discussion is closed. Login to edit/delete existing comments.

  • Alberto Chirinos

    It’s amazing! Thanks!

  • John Gathairu

    This is amazing! This will help smarten our products

  • Stilgar Naib

    I love the smart paste (the others are a bit "meh") but I don't love it enough to send the data to some other server and in general accept that kind of external dependency in my project. More credentials to worry about, more bills to make sure are paid, more servers and communication that can break, more things that can be deprecated and I'd have to migrate away from. If like my dependencies simple, like...

    Read more
  • Pedro Dias

    This would be exactly what my company would need. We are developing software where our clients often have to copy/paste product information into our systems, and the smart paste button would make their lives SO much easier. You have my vote!

  • Karen Payne

    I keep getting errors when running either of the apps and I believe it points too when I put in my account in place of YOUR_ACCOUNT. And not recognizing my DeploymentName.

    "Endpoint": "https://YOUR_ACCOUNT.openai.azure.com/"
    • Daniel RothMicrosoft employee Author

      Hi Karen. If you’re using Azure OpenAI, you should be able to get the endpoint URL from the Azure portal when you browse to your Azure OpenAI resource. To get the deployment name, make sure you actually create a deployment using the Azure AI Studio and then use the name from that deployment. You can get to the Azure AI Studio from your Azure OpenAI resource in the Azure portal.

  • Robert Haken

    Hello,
    with permission from Steve Sanderson, we've incorporated these new AI-powered experimental SmartComponents our into HAVIT Blazor Bootstrap:
    - HxSmartPasteButton
    - HxSmartTextArea
    - HxSmartComboBox

    ...enhanced with Bootstrap styling and usual Hx-component features.

    Read more
  • Peter Vo

    That looks great. One question: I don't want to keep the API Key in the appsettings.Development.json because the source code, including this json, is public on GitHub. So is there a way for me to get it from environment variable and register it in the Program.cs (I'm using Blazor Web Server)?

    Or am I overthinking, as there may be no threat model to require me to secure the API Key?

    Read more
  • Ken Kohler

    Why just web pages and blazor? How about with MAUI and WinUI?

  • Carl Franklin

    Fantastic application of existing technology to solve real-world problems! Amazing.

  • Clemens Degasper

    looks like a cool feature.
    btw there is typo in the github link “https://aka.ms/smartcompoennts”