26
5
27
5
28
3

cross-posted from: https://programming.dev/post/9780587

In MAUI 8.03 we had the Flyout bug where the NavigationPage Title wouldn't update from the first page you had been on. In MAUI 8.06 that bug has been fixed but has introduced a new one on Windows (sigh).

Starting on Page1 I can use the Flyout to switch to Page2. Then, on Windows, if I use Flyout to switch back to already-existing Page1 it crashes with...

System.Runtime.InteropServices.COMException (0x800F1000): No installed components were detected.

Element is already the child of another element

It works on Android, and it works if you are creating a new page each time, it just doesn't work on Windows to switch back to an already-created page (which defeats the whole purpose of having a Flyout menu - switch between 2 pages without making a new one every time).

  1. Does anyone know of a workaround to this? I can't find anything that relates to this in the context of a MAUI Flyout.
  2. Does anyone have a real simple Flyout template that could be used for the repro (to put in the issue I'm gonna need to create). The one I'm working on has a whole bunch of my own libraries in it, so I'm gonna need to tear them all out before I can use it to make a repro (and of course they don't provide a template, and their sample doesn't work due to different bugs - sigh).
29
7

cross-posted from: https://programming.dev/post/9650331

Just had this pop up in my Mastodon feed, if we have any Brisbane-based dotnet engineers in the job market here eigenmagic.net/@arichtman/111883866093603121

30
14

Hello! I'm starting a personal project in .NET.

For a logging solution, I want to achieve something similar to what I have in a Python REST API I wrote a while back using the decorator pattern (example in the image).

In the example, the outter "log" function receives the logger I want to use, the decorator function receives a function and returns the decorated function ready to be called (this would be the decorator), and the wrapper function receives the same arguments as the function to be decorated (which is a generic (*args, **kwargs) ofc, because it's meant to decorate any function) and returns whatever the return type of the function is (so, Any). In lines 17 - 24 I just call the passed in "func" with the passed in arguments, but in between I wrap it in a try except block and log that the function with name func.__name__ started or finished executing. In practice, using this decorator in Python looks like this:

import logging
from my.decorator.module import log

_logger = logging.getLogger(__name__)

@log(_logger)
def my_func(arg1: Arg1Type, arg2: Arg2Type) -> ReturnType:
    ...

Ofc it's a lot simpler in Python, however I was wondering if it would be possible or even recommended to attempt something similar in C#. I wouldn't mind having to call the function and wrap it manually, something like this:

return RunWithLogs(MyFunction, arg1, arg2);

What I do want to avoid is manually writing the log statements inside the service's business logic, or having to write separate wrappers for each method I want to log. Would be nice to have one generic function or class that I can somehow plug-in to any method and have it log when the call starts and finishes.

Any suggestions? Thanks in advance.

31
13
submitted 5 months ago by ylai@lemmy.ml to c/csharp@programming.dev
32
-5
33
1

cross-posted from: https://programming.dev/post/8419041

I'm just trying out the built-in builder.Logging.AddDebug(); in a MAUI app, but don't see the output anywhere. From several blogs I expected to see the messages in the Visual Studio Debug output window, but they aren't appearing.

Just using the stock-standard MAUI app, the only changes I have made are in App.cs as follows...

using Microsoft.Extensions.Logging;
using Microsoft.Maui.Controls;
namespace BaseMAUIApp;
internal class App :Application
{
public App(ILogger<App> logger) {
    logger.LogDebug("******************* Message from logger!");
// rest of code...

But I don't see my message anywhere. Is there something else I have to configure, or somewhere else I have to look?

34
10
35
-4
36
9

cross-posted from: https://programming.dev/post/6722007

I had cause to mention this to someone today, and thought I would share this here for anyone who may not have seen it before and would be interested in this info - Creating MAUI UI's in C#

37
1
submitted 7 months ago* (last edited 7 months ago) by Cyno@programming.dev to c/csharp@programming.dev

Short explanation of the title: imagine you have a legacy mudball codebase in which most service methods are usually querying the database (through EF), modifying some data and then saving it in at the end of the method.

This code is hard to debug, impossible to write unit tests for and generally performs badly because developers often make unoptimized or redundant db hits in these methods.

What I've started doing is to often make all the data loads before the method call, put it in a generic cache class (it's mostly dictionaries internally), and then use that as a parameter or a member variable for the method - everything in the method then gets or saves the data to that cache, its not allowed to do db hits on its own anymore.

I can now also unit test this code as long as I manually fill the cache with test data beforehand. I just need to make sure that i actually preload everything in advance (which is not always possible) so I have it ready when I need it in the method.

Is this good practice? Is there a name for it, whether it's a pattern or an anti-pattern? I'm tempted to say that this is just a janky repository pattern but it seems different since it's more about how you time and cache data loads for that method individually, rather than overall implementation of data access across the app.

In either case, I'd like to learn either how to improve it, or how to replace it.

38
20
39
5
40
5
Announcing C# 12 (devblogs.microsoft.com)
41
1
42
2

Lately I've been reading a lot about functional programming principles and how they (of some of them) can be applied in C#. So I came across Language-Ext and CSharpFunctionalExtensions (as well as a few smaller ones). I briefly tried Language-Ext and am liking what I see, but haven't tried the other. I know there's always F#, but I want to explore other options as well.

I'd love to hear about other people's experiences with those libraries (or similar ones). What do you like about them and what don't you like?

43
1
44
1
45
2
46
1
47
1
submitted 11 months ago by pizzahoe@lemm.ee to c/csharp@programming.dev

I came across this video and it's been a great watch with lots of practical examples. As someone who had worked with java, I am in awe with the powerful concepts c# has. Hopefully, someone will find this course useful as well.

48
1
submitted 11 months ago by TurianHammer@lemm.ee to c/csharp@programming.dev

I feel like I'm missing something with ML.NET.

As a POC before investing serious computer time. I tried creating a CSV file, 2 columns with 1000s of rows:

Greeting,Reply
My name is Jimmy,Hi Jimmy! How are you today?
My name is Sally,Hi Sally! How are you today?
My name is Mike,Hi Mike! How are you today?

The Model Builder has classification models (I don't believe this is a classification model because I want the thing to be able to predict something new so when it received "My name is Poutine" it will say "Hi Poutine! How are you today?"

I tried anyway and kept getting 0% success on the model.

I came up with another idea, to convert the words to numeric values and then return an array of numeric values.

Doesn't seem like ML.NET can return arrays very easily. I kept getting errors about invalid schema expecting single Key returns rather than arrays.

When I followed up with Bing AI on this it suggested:

Unfortunately, ML.NET does not currently have built-in support for text generation or sequence-to-sequence models. You may want to consider using a different machine learning framework that supports these capabilities, such as TensorFlow or PyTorch.

Am I getting accurate info from the AI? Should I be looking outside of the MicrosoftSphere for this stuff?

Anything you'd recommend?

49
1

I have a repo with a bunch of C# projects in it, probably a couple dozen. These projects are shared between maybe seven applications.

I'm looking for a tool that can map out these projects, starting with the application startup projects and draw connections between them showing which projects are referenced and used by what other projects.

Does something like that exist?

50
1
submitted 11 months ago by TurianHammer@lemm.ee to c/csharp@programming.dev

How do you all go about validating that there's nothing malicious in your nuget packages?

Is there a best practice for this?

It's easy if the package is from a known source like Microsoft but I'm curious what you do for lesser know people?

I will usually see how many others are using it, probably scan the code in the GITHUB repo. Sometimes if it's a lesser known dev I'll just pull from GITHub rather than using NuGet.

Today however, I was looking at a package and the nuget package itself looks fine but it contains some C++ code that is compiled elsewhere...fine I'll go get that and see. But that code requires CMake and some other 3rd party add-ons which I also have to review.

I'm not aware of any audits on NuGet that would prevent bad people from uploading code. What do you all do to protect the integrity of your software?

view more: ‹ prev next ›

C Sharp

1462 readers
6 users here now

A community about the C# programming language

Getting started

Useful resources

IDEs and code editors

Tools

Rules

Related communities

founded 1 year ago
MODERATORS