Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 134 additions & 0 deletions doc/.sample-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
uid: [Unique identifier for this sample, e.g., Uno.Samples.YourSampleName]
---

# [Sample Name]

> [!TIP]
> **Quick Info:** Single Project | .NET 9.0+ | Active & Up-to-date

## Overview

[Brief description of what this sample demonstrates and its primary purpose. 1-2 paragraphs maximum.]

## Sample Information

| Property | Value |
|----------|-------|
| **Repository** | [Link to GitHub repository] |
| **Documentation** | [Link to detailed documentation if available] |
| **.NET Version** | [e.g., .NET 9.0+] |
| **Uno.Sdk Version** | [e.g., 5.5+] |
| **Project Structure** | [Single Project or Multi-head] |
| **Target Frameworks** | [e.g., iOS, Android, WebAssembly, Windows, macOS, Linux (Skia)] |
| **Key UnoFeatures** | [e.g., Extensions, Navigation, Http, MVUX, Toolkit] |
| **Third-party Packages** | [List with versions, or "None" if not applicable] |
| **Tutorial Available** | [Yes or No] |
| **Tutorial Location** | [Maintained in Uno Docs / External / N/A] |
| **Markup Language** | [XAML / C# Markup / Both] |
| **Pattern** | [MVVM / MVUX / Other] |
| **Status** | [βœ… Active & Up-to-date / ⚠️ Outdated / 🚧 Work in Progress] |

## What You'll Learn

- [Key learning point 1]
- [Key learning point 2]
- [Key learning point 3]

## Prerequisites

- [List any prerequisites, e.g., specific SDKs, accounts, etc.]
- [Or state "Standard Uno Platform development environment" if none]

## Getting Started

### Clone and Run

```bash
# Clone the repository
git clone [repository URL]

# Navigate to the sample directory
cd [path/to/sample]

# Restore dependencies
dotnet restore

# Build the project
dotnet build

# Run the project (choose your platform)
dotnet run -f net9.0-[platform] # e.g., net9.0-windows, net9.0-android, net9.0
```

### Explore the Code

[Brief guide to the project structure and key files to look at]

## Key Features Demonstrated

### [Feature 1 Name]

[Description of what this feature demonstrates and where to find it in the code]

### [Feature 2 Name]

[Description of what this feature demonstrates and where to find it in the code]

### [Feature 3 Name]

[Description of what this feature demonstrates and where to find it in the code]

## Code Highlights

### [Highlight 1]

[Brief explanation with code snippet if relevant]

```csharp
// Example code snippet
```

## Tutorial

[If a step-by-step tutorial is available, link to it here or include it inline]

[If no tutorial: "A comprehensive step-by-step tutorial is not yet available for this sample. Explore the code and check out the README in the repository for guidance."]

## Third-Party Dependencies

[If applicable, list all third-party NuGet packages with versions and brief descriptions]

| Package | Version | Purpose |
|---------|---------|---------|
| [Package.Name] | [x.y.z] | [Brief description] |

[If none: "This sample uses only Uno Platform and standard .NET libraries."]

## Platform-Specific Considerations

[If applicable, note any platform-specific behaviors, limitations, or setup requirements]

[If none: "This sample works identically across all supported platforms."]

## Known Issues

[List any known issues or limitations]

[If none: "No known issues at this time."]

## Additional Resources

- [Link to related documentation]
- [Link to related samples]
- [Link to relevant blog posts or videos]

## Contributing

Found a bug or have a suggestion? Please [open an issue](link-to-issues) or submit a pull request!

## See Also

- [Related Sample 1](link)
- [Related Documentation](link)
- [Samples Catalog](xref:Uno.Samples.Catalog)
189 changes: 179 additions & 10 deletions doc/articles/guides/community-tutorials.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,186 @@ uid: Uno.Tutorials.CommunityTutorials

# Community Tutorials

This page lists links to our community provided tutorials.
This page lists links to our community provided tutorials with detailed information to help you assess their relevance and currency.

> [!NOTE]
> Please use this page to submit links to your blogs, articles, and other resources as community contribution to Uno Platform Advocacy.

- [A Quick Look at Uno Platform Development](https://jamesmccaffrey.wordpress.com/2021/05/31/a-quick-look-at-uno-platform-development/), by James D. McCaffrey.
- [Why I wrote (and you should buy) a book about Uno Platform when there are free resources available](https://www.mrlacey.com/2022/02/why-i-wrote-and-you-should-buy-book.html), by Matt Lacey
- [Uno Platform Getting Started with New Projects](https://www.andrewhoefling.com/Blog/Post/uno-platform-getting-started-with-new-projects), by Skye Hoefling
- [Uno Platform - Build a Todo App - Part 5](https://steven-giesel.com/blogPost/2c025ac6-d67f-45ec-a616-009e0285c999), by Steven Giesel
- [Uno Platform on Surface Duo](https://devblogs.microsoft.com/surface-duo/tag/uno-platform/), by Craig Dunn
- [Introduction to Uno Platform](https://ronicasingh.hashnode.dev/introduction-to-uno-platform), by Ronica Singh
- [Creating your First Uno Platform Application](https://ronicasingh.hashnode.dev/creating-your-first-uno-platform-application), by Ronica Singh
- [Uno Platform and its Fluent app design](https://ronicasingh.hashnode.dev/uno-platform-and-its-fluent-app-design), by Ronica Singh
- _Create a PR tp add yours here!_
> [!IMPORTANT]
> **About External Resources:**
> Community tutorials are external resources that may not reflect the latest Uno Platform features or patterns. Always check:
> - **Publication date** - Recent content is more likely to be current
> - **Project structure** - Look for Single Project templates (introduced in Uno Platform 5.0+)
> - **.NET version** - Prefer .NET 8.0+ content
>
> For the most up-to-date tutorials, see the [official Uno Platform workshops and samples](xref:Uno.Samples.Catalog).

## Articles and Blog Posts

### Getting Started Guides

#### A Quick Look at Uno Platform Development

**Author:** James D. McCaffrey
**Link:** [jamesmccaffrey.wordpress.com](https://jamesmccaffrey.wordpress.com/2021/05/31/a-quick-look-at-uno-platform-development/)
**Published:** May 2021
**Type:** Overview/Introduction
**Status:** ⚠️ May contain outdated patterns (3+ years old)

#### Uno Platform Getting Started Series

**Author:** Skye Hoefling (Microsoft MVP)
**Link:** [andrewhoefling.com](https://www.andrewhoefling.com/Blog/Post/uno-platform-getting-started-series)
**Type:** Multi-part tutorial series
**Topics Covered:**
- New project creation
- View Stack Navigation
- Tabbed Pages with Command Bar
- Platform-specific XAML
- Platform-specific C#
- MVVM and Dependency Injection
- ViewModelLocator patterns
- WASM JavaScript interop

**Key Articles:**
1. [Getting Started with New Projects](https://www.andrewhoefling.com/Blog/Post/uno-platform-getting-started-with-new-projects)
2. [View Stack Navigation](https://www.andrewhoefling.com/Blog/Post/uno-platform-view-stack-navigation-uwp-android-ios-wasm)
3. [Tabbed Pages with Command Bar](https://www.andrewhoefling.com/Blog/Post/uno-platform-tabbed-pages-with-the-command-bar-uwp-ios-android-wasm)
4. [Platform Specific XAML](https://www.andrewhoefling.com/Blog/Post/platform-specific-xaml-in-uno-platform-ios-android-wasm-uwp)
5. [Platform Specific C#](https://www.andrewhoefling.com/Blog/Post/platform-specific-c-sharp-in-uno-platform-ios-android-wasm-uwp)
6. [MVVM and Dependency Injection](https://www.andrewhoefling.com/Blog/Post/mvvm-and-dependency-injection-in-uno-platform-ios-android-wasm-uwp)
7. [ViewModelLocator for MVVM](https://www.andrewhoefling.com/Blog/Post/view-model-locator-for-mvvm-applications-in-uno-platform)
8. [WASM Invoke JavaScript](https://www.andrewhoefling.com/Blog/Post/uno-platform-wasm-invoke-javascript)

**Status:** ⚠️ May contain outdated patterns - Check for newer alternatives

#### Introduction to Uno Platform Series

**Author:** Ronica Singh
**Link:** [ronicasingh.hashnode.dev](https://ronicasingh.hashnode.dev/)
**Type:** Multi-part beginner series

**Articles:**
- [Introduction to Uno Platform](https://ronicasingh.hashnode.dev/introduction-to-uno-platform)
- [Creating your First Uno Platform Application](https://ronicasingh.hashnode.dev/creating-your-first-uno-platform-application)
- [Uno Platform and its Fluent app design](https://ronicasingh.hashnode.dev/uno-platform-and-its-fluent-app-design)

**Status:** Check publication dates for currency

### Application Development Tutorials

#### Building a Todo App with Uno Platform

**Author:** Steven Giesel ([linkdotnet](https://github.com/linkdotnet))
**Link:** [steven-giesel.com](https://steven-giesel.com/)
**Type:** Complete application tutorial (5-part series)
**Project:** Multi-platform Todo application

**Articles:**
- [Part 1 - Introduction and Environment Setup](https://steven-giesel.com/blogPost/b2234ada-0978-4c7b-841e-ca6a255247b0)
- [Part 2 - Requirements & First Features](https://steven-giesel.com/blogPost/85814db0-3495-492c-8ce1-5c83d708590b)
- [Part 3 - Dialog Component & ViewModel](https://steven-giesel.com/blogPost/a3179d55-d5be-48ba-b570-ee7d494a8b21)
- [Part 4 - Adding Elements to the Swimlane](https://steven-giesel.com/blogPost/2d96d970-ef11-48f4-a102-9339fc362a75)
- [Part 5 - Implementing Drag and Drop Behavior](https://steven-giesel.com/blogPost/2c025ac6-d67f-45ec-a616-009e0285c999)

> [!NOTE]
> This tutorial series covers comprehensive app development including UI components, MVVM patterns, and drag-and-drop functionality.

**Status:** ⚠️ External resource - verify against current Uno Platform patterns

### Platform-Specific Tutorials

#### Uno Platform on Surface Duo

**Author:** Craig Dunn (Microsoft)
**Link:** [devblogs.microsoft.com/surface-duo](https://devblogs.microsoft.com/surface-duo/tag/uno-platform/)
**Type:** Platform-specific guide
**Platform:** Surface Duo (dual-screen Android device)

**Status:** ⚠️ Check for current Surface Duo SDK compatibility

#### Raspberry Pi Applications with Uno Platform

**Author:** Peter Gallagher
**Link:** [petecodes.co.uk](https://www.petecodes.co.uk/developing-uwp-apps-for-the-raspberry-pi-with-uno-platform/)
**Type:** Platform-specific deployment guide
**Platform:** Raspberry Pi (Linux/Embedded)

**See also:** [Official Raspberry Pi Documentation](xref:Uno.RaspberryPi.Intro)

### Books and Courses

For information about books and paid courses, see the [Next Steps in Learning](xref:Uno.GetStarted.NextSteps) page.

## Tips for Using External Tutorials

### Assessing Tutorial Currency ⏰

**Check these indicators:**
- **Publication date** - Content older than 1 year may need adaptation
- **Uno Platform version mentioned** - Look for version 5.0+ (Single Project templates)
- **.NET version** - Prefer .NET 8.0+ tutorials
- **Project structure** - Multi-head projects indicate older patterns

### Adapting Older Content πŸ”„

If you're following an older tutorial:

1. **Use current templates** - Start with `dotnet new unoapp` for Single Project structure
2. **Check for package updates** - Older tutorials may use deprecated packages
3. **Refer to migration guides** - See [Migration Guidance](xref:Uno.Development.MigratingGuidance) for pattern updates
4. **Ask the community** - Join [Uno Platform Discord](https://platform.uno/discord) for help adapting older content

### Reporting Issues πŸ›

If you find issues with external tutorials:
- **Contact the author** - Most authors appreciate feedback
- **Share updated approaches** - Help the community by posting solutions
- **Update this page** - Submit a PR with status notes

## Contributing Your Tutorial

Have you written a tutorial about Uno Platform? We'd love to include it!

### Submission Guidelines

When adding your tutorial to this page, please include:

- **Direct link** to your content
- **Your name** and any relevant credentials
- **Publication date** (or "Updated: [date]" for maintained content)
- **Brief description** of what the tutorial covers
- **Prerequisites** if any (e.g., "Requires paid Pluralsight subscription")
- **Uno Platform version** if specified in your content
- **.NET version** if specified

### Example Format

```markdown
#### [Your Tutorial Title]

**Author:** Your Name
**Link:** [your-site.com](https://your-site.com/tutorial)
**Published:** Month Year
**Type:** Tutorial/Guide/Course
**Topics:** Brief description of topics covered
**Uno Platform Version:** 5.0+ (if specified)
**.NET Version:** .NET 8.0+ (if specified)
```

### How to Submit

1. Fork the [Uno repository](https://github.com/unoplatform/uno)
2. Edit this file: `doc/articles/guides/community-tutorials.md`
3. Add your entry in the appropriate section
4. Follow [Conventional Commits](xref:Uno.Contributing.ConventionalCommits) guidelines
5. Submit a pull request

_Create a PR to add yours here!_

## See Also

- [Official Samples Catalog](xref:Uno.Samples.Catalog) - Maintained samples with detailed metadata
- [Samples & Tutorials Overview](xref:Uno.SamplesTutorials.Overview) - Complete learning resources
- [Next Steps in Learning](xref:Uno.GetStarted.NextSteps) - Books, courses, and official resources
- [Contributing Guidelines](xref:Uno.Contributing.Intro) - How to contribute to Uno Platform
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,26 @@ uid: Uno.SilverlightMigration.Landing

# Migrating from Silverlight to WinUI and Uno Platform Documentation

> [!CAUTION]
> **This documentation is significantly outdated and maintained for historical reference only.**
>
> This Silverlight migration guide was created in 2021 and reflects patterns, tools, and approaches from that time. **It should NOT be used as a reference for current Uno Platform development.**
>
> **Key Outdated Elements:**
> - Uses **older project structures** (multi-head instead of Single Project)
> - References **deprecated packages** (e.g., IdentityServer4 which reached EOL in December 2022)
> - Based on **older .NET versions** and Uno Platform versions
> - Does not reflect **current best practices** or modern Uno Platform features
>
> **If you are migrating from Silverlight:**
> 1. Use this guide only as a **high-level conceptual reference** for migration patterns
> 2. Consult [current Uno Platform documentation](xref:Uno.GetStarted) for up-to-date implementation approaches
> 3. Use [current project templates](xref:Uno.GettingStarted.CreateAnApp.VS2022) (Single Project structure)
> 4. Check the [samples catalog](xref:Uno.Samples.Catalog) for modern examples
> 5. Ask for help on [Uno Platform Discord](https://platform.uno/discord) or [GitHub Discussions](https://github.com/unoplatform/uno/discussions)
>
> **For new Uno Platform projects:** Start with the [Counter Tutorial](xref:Uno.Workshop.Counter) and [Getting Started guides](xref:Uno.GetStarted) instead.

Silverlight will reach the end of support on October 12, 2021. As luck would have it, a new Windows UI framework is about to RTM in March 2021 – WinUI – the modern native UI platform of Windows. And with WinUI launch there is a renewed desire by C# and XAML developers to write single codebase applications for Windows and the Web.

Enter Uno Platform. Hello β€œRich Internet Applications (RIA)” again!
Expand Down
Loading
Loading