New Series: .NET MAUI — Forget Me Not

My buddy in Argentina, Roberto Juarez, and I have set out to create a real-world, non-trivial program using .NET MAUI. This is a learning exercise, and I’d like to invite you to join us. We anticipate that (eventually) this will be in the stores, and we hope it will be open source (we are discussing a commercial video which might get in the way of giving away the copyright, but the source will definitely be available).

You can see an associated video here.

Associated (partial) code here.

Forget Me Not

This app was conceived and designed by Robin Liberty.

The premise is that you want to buy gifts for your “buddies,” and allow them to buy gifts for you. You start by filling out our form on your preferences (shirt size, favorite books, favorite food, etc. ect.). You then invite others to join (securely). Once they register as your buddy, they can see your list and you can see theirs. You can have as many buddies as you want, but the sharing is always 1:1.

In addition, you can put in shared occasions (birthdays, anniversaries, etc.) and be notified when one is coming up so you have time to buy a gift.

The server will provide an API for the client so that we can manage most of the data in the cloud (certain set-up preferences will be stored locally). In version 1 this is an on-line only app, running only on iOS, Android and Windows (though in theory it should also run on MacOS, watch, etc.)

Getting Started

Rodrigo is busy writing the API and I’ve started the client (he will join as soon as the API is in place). We can only put in about 6 hours a week, and we estimate this to be a 200-250 hour project, so it will span several months.

I expect we’ll publish the source code periodically in case you want to follow along. I’ll be showing the relevant code snippets here as different topics are discussed.

If you are new to .NET MAUI, you may want to start with my 15 part series on creating a simple .NET MAUI application.

What you need

We’ll be developing this using Visual Studio 2022 Preview running on Windows machines. As VS evolves, we’ll keep up to date. Development should work with any version of VS, but we’re using the Professional (your mileage may vary).

Once again, in theory you should be able to create all this in Visual Studio Mac, but we won’t be trying to do so, and as they say “In theory, theory and practice are the same. But in practice, they never are.”

We’ll also be using the Community Toolkit and CommunityToolkit.MVVM nuget packages (they are fantastic and I can’t imagine wanting to write a MAUI app without them).

If you are writing for iOS you’ll also need access to a Mac of some sort.

First Steps

The hard part is usually the first five minutes (okay, and then all the minutes after).

Let’s create some folders we’ll need: View, Model, ViewModel, Services, Helpers are the ones I usually start with (note that the first three are singular, you might to make them plural).

Get the nuget packages (Community Toolkit and CommunityToolkit.MVVM) and modify MainProgram.cs to look like this…

public static MauiApp CreateMauiApp()
{
	var builder = MauiApp.CreateBuilder();
	builder
		.UseMauiApp<App>()
        .UseMauiCommunityToolkit()
        .ConfigureFonts(fonts =>
		{
			fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
			fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
		});

	return builder.Build();
}

Note that you do not need to explicitly name the maui mvvm toolkit here. Also note that you do not want the Microsoft Community MVVM toolkit - that has been deprecated.

Key here is the addition of .UseMauiCommunitToolkit. I recommend reading the documentation on the toolkit before going much further.

In the next posting, we’ll add (and wire up) an About page.

Comments, corrections, and adulation welcome. See comments block below each posting.

Unknown's avatar

About Jesse Liberty

** Note ** Jesse is currently looking for a new position. You can learn more about him at https://jesseliberty.bio Thank you. Jesse Liberty has three decades of experience writing and delivering software projects and is the author of 2 dozen books and a couple dozen online courses. His latest book, Building APIs with .NET, is now available wherever you buy your books. Liberty was a Team Lead and Senior Software Engineer for various corporations, a Senior Technical Evangelist for Microsoft, a Distinguished Software Engineer for AT&T, a VP for Information Services for Citibank and a Software Architect for PBS. He is a 13 year Microsoft MVP.
This entry was posted in Essentials. Bookmark the permalink.

553 Responses to New Series: .NET MAUI — Forget Me Not

  1. CurtisInses's avatar CurtisInses says:

    deneme bonusu veren casino siteleri: lisanslı casino siteleri

  2. Vajemm's avatar Vajemm says:

    Sube de nivel tu juego con Betano Casino https://betanogame.org/es/. Consigue un fantástico bono de bienvenida de €500 y sumérgete en cientos de juegos premium. Ya sea que ames las tragamonedas, el póker o las apuestas deportivas, te tenemos cubierto. Únete al círculo de ganadores hoy.

  3. Timsothybioli's avatar Timsothybioli says:

    Hi there! Would you mind if I share your blog with my facebook group? There’s a lot of folks that I think would really enjoy your content. Please let me know. Cheers
    https://drive.google.com/file/d/1mumwB5FLTsyY-bTT4CQpxHxfm6LpJLEH/view?usp=sharing

  4. Waiihf's avatar Waiihf says:

    Oubliez les horaires d’ouverture : votre pharmacie ne ferme jamais. Gamme complete : medicaments, dermocosmetique, complements alimentaires. Livraison securisee et rapide a domicile ou en point relais. Bien-etreMax – prenez soin de vous sans bouger.Acheter celebrex

  5. betflix's avatar betflix says:

    โพสต์นี้ อ่านแล้วเข้าใจง่าย ค่ะ
    ดิฉัน ไปเจอรายละเอียดของ เนื้อหาในแนวเดียวกัน
    ที่คุณสามารถดูได้ที่ betflix
    น่าจะถูกใจใครหลายคน
    มีการยกตัวอย่างที่เข้าใจง่าย
    ขอบคุณที่แชร์ บทความคุณภาพ นี้
    จะรอติดตามเนื้อหาใหม่ๆ ต่อไป

  6. Pqpugy's avatar Pqpugy says:

    Opravdova lekarna = opravdove uspory az 80 % na lecich
    opravdovalekarna.cz

  7. Thanks for sharing. I read many of your blog posts, cool, your blog is very good. https://accounts.binance.com/en-NG/register-person?ref=YY80CKRN

  8. Heriberto's avatar Heriberto says:

    ข้อมูลชุดนี้ อ่านแล้วเพลินและได้สาระ ครับ
    ดิฉัน ไปเจอรายละเอียดของ หัวข้อที่คล้ายกัน
    ซึ่งอยู่ที่ Heriberto
    สำหรับใครกำลังหาเนื้อหาแบบนี้

    มีการยกตัวอย่างที่เข้าใจง่าย
    ขอบคุณที่แชร์ คอนเทนต์ดีๆ
    นี้
    จะรอติดตามเนื้อหาใหม่ๆ ต่อไป

  9. Ybktoy's avatar Ybktoy says:

    Your next big win starts here at betmgm michigan. Sign up and receive up to $1,000 bonus plus $25 On The House. Thousands of players are winning right now — be next!

  10. Lblypo's avatar Lblypo says:

    Elevate your casino play with DraftKings casino app. Wager $5 to get 500 bonus spins and up to $1K lossback on day one. Hundreds of games, endless excitement!

  11. Cifodm's avatar Cifodm says:

    Crypto casino done right. Instant deposits, anonymous play option, and rakeback that actually pays. gates of olympus stake is built different.

  12. Ripzma's avatar Ripzma says:

    luckyland slots real prizes brings the casino magic home! New players get 7,777 Gold Coins plus 10 free Sweeps Coins. Play top slots and turn Sweeps into actual prizes!

  13. Beatris's avatar Beatris says:

    ข้อมูลชุดนี้ อ่านแล้วเข้าใจง่าย
    ครับ
    ดิฉัน ไปอ่านเพิ่มเติมเกี่ยวกับ เนื้อหาในแนวเดียวกัน
    ดูต่อได้ที่ Beatris
    เผื่อใครสนใจ
    มีการยกตัวอย่างที่เข้าใจง่าย
    ขอบคุณที่แชร์ คอนเทนต์ดีๆ นี้
    และหวังว่าจะมีข้อมูลใหม่ๆ มาแบ่งปันอีก

  14. Eptiii's avatar Eptiii says:

    starburst free spins no deposit: colorful, fast, and forever addictive. Gems burst with color as wilds expand for respins. Both ways to win — classic done right.

  15. Danielhic's avatar Danielhic says:

    Подготовка домашних работ закрепляет материал, изученный в школе.
    Такая практика тренирует навыки независимой работы и поиска информации.
    Регулярное выполнение уроков формирует навыки самодисциплины и планирования.
    Домашняя работа позволяет взрослым видеть прогресс и пробелы ученика в обучении.
    Сборник ГДЗ по математике 3 класс

  16. Cwxpni's avatar Cwxpni says:

    Candyland just got wilder! sugarrushslotx brings tumbling symbols, multiplier spots and heart-racing free spins. Come claim your sweet prize!

  17. Juwxgj's avatar Juwxgj says:

    Gates of Olympus doesn’t do small wins for long. One good tumble sequence with Zeus help can deliver life-changing payouts. Step through play gates of olympus — destiny awaits.

  18. Franksnomo's avatar Franksnomo says:

    Срочный скупка машин становится всё очень востребованной опцией.
    Данный сервис позволяет владельцу быстро обрести наличные за транспорт.
    Многих подкупает отсутствие времени на долгие переговоры с клиентами.
    Компании осматривают машину на месте и предлагают реальную стоимость.
    Такой метод освобождает от хлопот с бумажной волокитой и гарантирует безопасность сделки.
    https://www.turkiyeforum.com/memberlist.php?mode=viewprofile&u=52335

  19. Richardquatt's avatar Richardquatt says:

    Dressing well creates a strong first impression.
    Your attire communicates volumes before you even say a word.
    This boosts your personal self-esteem and mood noticeably.
    Your put-together look conveys competence in the office.
    https://n1.mvmedia.ru/WxYBtQy/
    Stylish clothing let you to showcase your individual personality.
    People often perceive well-dressed people as more successful and trustworthy.
    Therefore, investing in your wardrobe is an investment in your personal brand.

  20. Ueajkv's avatar Ueajkv says:

    Join the premier world of online gaming where endless fun awaits. Bovada Casino Rewards offers top poker and no-deposit bonuses for all players.

  21. Richardquatt's avatar Richardquatt says:

    Dressing well projects a strong first impression.
    Your attire speaks loudly before a person actually speak a word.
    It boosts your own self-esteem and mindset noticeably.
    Your polished appearance signals competence in the office.
    https://n3.sneakero.ru/gOvJpz/
    Fashionable clothing allow you to showcase your unique identity.
    Others often judge stylish individuals as more successful and reliable.
    Ultimately, investing in your wardrobe is an valuable step in your personal brand.

  22. Stellaaluse's avatar Stellaaluse says:

    Feel high-energy pulses in casino actions. In ignation casino online, thrilling deliveries quicken. Pulse and prosper!

  23. Your point of view caught my eye and was very interesting. Thanks. I have a question for you.

  24. Richardquatt's avatar Richardquatt says:

    Looking stylish projects a strong first impression.
    Your outfit speaks volumes before you even speak a single word.
    It enhances your own confidence and mindset noticeably.
    Your put-together look conveys professionalism in the office.
    https://like.podium24.ru/zR6saQU67B/
    Stylish choices allow you to express your individual identity.
    People often perceive stylish people as more capable and reliable.
    Therefore, putting effort in your style is an valuable step in your personal brand.

  25. WilliamCig's avatar WilliamCig says:

    Luxury watches continue to attract attention despite the rise of smart technology.
    They are often seen as a sign of prestige and refined taste.
    Skilled engineering plays a major role in their lasting value.
    Many luxury watches are produced using carefully selected materials.
    https://bayractar.pp.ua/member.php?action=profile&uid=115
    They also represent a rich heritage passed down through generations.
    For collectors, these watches can serve as both practical items and long-term investments.
    Timeless design allows them to stay relevant across changing fashion trends.
    As a result, luxury watches continue to attract admirers around the world.

  26. Stellaaluse's avatar Stellaaluse says:

    mgm gambling app betmgm-play mgm casino login

  27. Richardquatt's avatar Richardquatt says:

    Dressing well projects a strong first impression.
    A outfit speaks volumes before a person even say a word.
    It enhances your personal self-esteem and mood noticeably.
    Your put-together appearance conveys competence in the workplace.
    https://s2.luxepodium.com/ob3KJkJ8/
    Fashionable clothing allow you to express your unique identity.
    Others often judge well-dressed people as more successful and trustworthy.
    Ultimately, investing in your wardrobe is an investment in your personal brand.

  28. Hello, i think that i saw you visited my website so i came
    to “return the favor”.I’m attempting to find things to improve my web site!I suppose
    its ok to use some of your ideas!!

  29. HaroldJousy's avatar HaroldJousy says:

    Умение одеваться со вкусом является значимым фактором в самовыражении.
    Она помогает выразить характер.
    Гармоничный стиль повышает самооценку.
    Одежда часто становится важным элементом визуального контакта.
    https://s3.superlooks.ru/redirect.php?id=7xazfWAX6556
    Кроме того, продуманный гардероб упрощает выбор в повседневных делах.
    В долгосрочной перспективе внимание к стилю развивает вкус.
    Таким образом стильная одежда становится важной частью современного образа жизни.

  30. Suzette's avatar Suzette says:

    เนื้อหานี้ มีประโยชน์มาก ค่ะ
    ผม ไปเจอรายละเอียดของ
    เนื้อหาในแนวเดียวกัน
    ดูต่อได้ที่ Suzette
    เผื่อใครสนใจ
    มีตัวอย่างประกอบชัดเจน
    ขอบคุณที่แชร์ ข้อมูลที่มีประโยชน์ นี้
    และหวังว่าจะมีข้อมูลใหม่ๆ มาแบ่งปันอีก

  31. Excellent blog here! Also your web site loads up very fast!
    What host are you using? Can I get your affiliate link to your host?
    I wish my site loaded up as fast as yours lol

  32. เนื้อหานี้ อ่านแล้วเข้าใจง่าย ครับ
    ผม ไปอ่านเพิ่มเติมเกี่ยวกับ หัวข้อที่คล้ายกัน
    ซึ่งอยู่ที่ เว็บสล็อต
    น่าจะถูกใจใครหลายคน
    มีการยกตัวอย่างที่เข้าใจง่าย
    ขอบคุณที่แชร์ คอนเทนต์ดีๆ นี้
    และหวังว่าจะมีข้อมูลใหม่ๆ มาแบ่งปันอีก

  33. Stevenhifup's avatar Stevenhifup says:

    Virtual phone number rental is a convenient service for modern communication needs.
    It helps individuals to get verification codes without using a physical SIM card.
    Such a service is commonly chosen for account verification.
    Using a virtual number supports personal privacy.
    https://www.techinexpert.com/voip-services-where-is-the-market-moving/
    The process is straightforward and usually requires minimal time.
    Virtual numbers work well across various online tools.
    This solution delivers efficiency for both one-time and long-term tasks.
    As a result, virtual number rental remains a popular choice among users worldwide.

  34. betflix's avatar betflix says:

    Hello! I could have sworn I’ve been to this website before
    but after reading through some of the post I realized it’s new to me.
    Anyways, I’m definitely happy I found it and I’ll be book-marking and checking back frequently!

  35. tinylink.In's avatar tinylink.In says:

    Hey there! Do you use Twitter?I’d like to follow you if
    that would be ok. I’m absolutely enjoying you
    blog and look forward to new posts.

    my web blog … tinylink.In

  36. Krovlyadus's avatar Krovlyadus says:

    Приветствую! На первом этапе нужно разобраться — узлы и детали. По сути: большинство проблем — это плохие примыкания. Ищешь тех кто умеет — могу рекомендовать: https://montazh-membrannoj-krovli-spb.ru. Зачем это: примыкания к парапетам — всё сваривается. Допустим вентшахта — делается фартук — так вот герметичность полная. Сейчас это самый передовой — фасонные детали из ПВХ. Резюмируем: это отличные параметры — узлы надёжны.

  37. MaXbef's avatar MaXbef says:

    Приветствую! Рассмотрим, что работало ранее — гул в салоне. Нужен профессиональный результат — могу рекомендовать специалистам: https://shumoizolyaciya-avtomobilej.ru . В принципе обработать только арки — это только часть. На данный момент главные источники шума — двери и колёсные ниши. Зачем это? На скорости слушаешь откуда идёт звук. Опять же, хочешь своими силами: готовишь, наносишь демпфер, прикатываешь как следует. Резюмируем: эффект гарантирован.

  38. EarnestSlecy's avatar EarnestSlecy says:

    Pin-Up AZ AzЙ™rbaycanda Й™n populyar platformadД±r. Saytda Г§oxlu slotlar vЙ™ Aviator var. Pulu kartД±nД±za anД±nda kГ¶Г§ГјrГјrlЙ™r. Mobil tЙ™tbiqi dЙ™ var, telefondan oynamaq Г§ox rahatdД±r. GiriЕџ linki п»їburada tГ¶vsiyЙ™ edirЙ™m.

  39. PhilipInids's avatar PhilipInids says:

    Умение стильно одеваться имеет большое значение в самовыражении.
    Она помогает выразить характер и выглядеть гармонично.
    Аккуратный внешний вид формирует мнение окружающих.
    В повседневной жизни одежда может помогать собранности.
    https://graph.org/Giorgio-Armani-01-12
    Стильный образ облегчает деловые контакты.
    При выборе вещей важно учитывать собственный вкус и уместность ситуации.
    Мода дают возможность экспериментировать.
    В целом, умение стильно одеваться делает образ завершённым.

  40. Davidpoeds's avatar Davidpoeds says:

    Being well-dressed is essential for self-expression.
    A thoughtful appearance helps express personality.
    Well-chosen outfits can improve self-esteem.
    In everyday life, appearance often affects social interactions.
    https://telegra.ph/Alaia-12-25
    Balanced style choices make social situations more comfortable.
    It is important to consider one’s own comfort as well as the occasion.
    Current trends give people the chance to experiment with looks.
    In conclusion, dressing stylishly positively affects perception.

  41. Jamestrorb's avatar Jamestrorb says:

    Знакомство с новостными источниками имеет большое значение в информационном пространстве.
    Оно помогает оставаться информированным и ориентироваться в ситуации.
    Оперативная информация позволяют формировать собственное мнение.
    Чтение СМИ способствует развитию критического мышления.
    https://telegra.ph/Novosibirsk-12-25-8
    Несколько точек зрения помогают сравнивать факты.
    В профессиональной сфере СМИ дают возможность оставаться конкурентоспособным.
    Регулярное изучение материалов формирует навыки анализа.
    Таким образом, чтение СМИ поддерживает осведомлённость.

  42. LeonardSax's avatar LeonardSax says:

    Продуманный внешний вид имеет большое значение в создании образа.
    Она помогает передать личный стиль и выглядеть гармонично.
    Аккуратный внешний вид создаёт первое впечатление окружающих.
    В повседневной жизни одежда может придавать уверенность.
    https://rentry.co/y5n4vdne
    Хорошо подобранная одежда облегчает общение.
    При выборе вещей важно учитывать личные предпочтения и уместность ситуации.
    Мода дают возможность обновлять образ.
    В итоге, умение стильно одеваться делает образ завершённым.

  43. Howardtroxy's avatar Howardtroxy says:

    Dressing stylishly is crucial for personal expression.
    It helps express personality and look polished.
    A neat outfit influences how others perceive you.
    In daily life, clothing can enhance personal image.
    https://telegra.ph/Alexander-McQueen-12-25
    Thoughtful clothing choices make social interactions easier.
    It is important to consider individual taste and appropriate setting.
    Current trends allow people to explore new ideas.
    Ultimately, dressing stylishly completes your personal image.

  44. Timsothybioli's avatar Timsothybioli says:

    Greate article. Keep posting such kind of information on your page. Im really impressed by your blog.
    Hey there, You’ve done an excellent job. I will definitely digg it and personally suggest to my friends. I’m confident they’ll be benefited from this web site.
    https://cryptoverze.com/atlas-pro-ontv-android-tv-guide-complet-pour-profiter-au-mieux-de-votre-iptv/

Comments are closed.