|
Apologies for the shouting but this is important.
When answering a question please:
- Read the question carefully
- Understand that English isn't everyone's first language so be lenient of bad spelling and grammar
- If a question is poorly phrased then either ask for clarification, ignore it, or mark it down. Insults are not welcome
- If the question is inappropriate then click the 'vote to remove message' button
Insults, slap-downs and sarcasm aren't welcome. Let's work to help developers, not make them feel stupid..
cheers,
Chris Maunder
The Code Project Co-founder
Microsoft C++ MVP
|
|
|
|
|
For those new to message boards please try to follow a few simple rules when posting your question.- Choose the correct forum for your message. Posting a VB.NET question in the C++ forum will end in tears.
- Be specific! Don't ask "can someone send me the code to create an application that does 'X'. Pinpoint exactly what it is you need help with.
- Keep the subject line brief, but descriptive. eg "File Serialization problem"
- Keep the question as brief as possible. If you have to include code, include the smallest snippet of code you can.
- Be careful when including code that you haven't made a typo. Typing mistakes can become the focal point instead of the actual question you asked.
- Do not remove or empty a message if others have replied. Keep the thread intact and available for others to search and read. If your problem was answered then edit your message and add "[Solved]" to the subject line of the original post, and cast an approval vote to the one or several answers that really helped you.
- If you are posting source code with your question, place it inside <pre></pre> tags. We advise you also check the "Encode "<" (and other HTML) characters when pasting" checkbox before pasting anything inside the PRE block, and make sure "Use HTML in this post" check box is checked.
- Be courteous and DON'T SHOUT. Everyone here helps because they enjoy helping others, not because it's their job.
- Please do not post links to your question into an unrelated forum such as the lounge. It will be deleted. Likewise, do not post the same question in more than one forum.
- Do not be abusive, offensive, inappropriate or harass anyone on the boards. Doing so will get you kicked off and banned. Play nice.
- If you have a school or university assignment, assume that your teacher or lecturer is also reading these forums.
- No advertising or soliciting.
- We reserve the right to move your posts to a more appropriate forum or to delete anything deemed inappropriate or illegal.
cheers,
Chris Maunder
The Code Project Co-founder
Microsoft C++ MVP
|
|
|
|
|
Hi,
I'm currently learning how to use Entity Framework Core and I'm trying to create a "more advanced" application divided into multiple projects.
When I was using ADO.NET, I would usually make:
- Project.DatabaseAccess - for managing connection strings,
- Project.Shared - base classes and interfaces (which implement INotifyPropertyChanged)
- for example Project.Customers - models for customer-related stuff and a static class with CRUD methods for them.
Customers would then reference the Shared and DatabaseAccess projects.
When using EfCore, I wanted to achieve similar structure, so:
- Project.DatabaseAccess - managing connection strings, main DbContext
- Project.Shared,
- Project.Customers - models for customer-related stuff and repositories for them (with DbContext provided in the constructor)
The problem with that approach is that Customers reference to the DatabaseAccess (for accessing DbContext), and DatabaseAccess needs to reference to the Customers (because it has DbSet<customer>). Unfortunately, you can't make A<-->B references in the Visual Studio.
What other project structures do you recommend? I know that there is something called CleanArchitecture (Application, Domain, Infrastructure), but it doesn't provide the separation between different spheres of my program (Project.Customers, Project.Planning, Project.Mailing, etc.)
Thank you in advance!
|
|
|
|
|
Hi,
I have downloaded Visual Studio to write and run C# scripts.
Can I use Microsoft SQL Manager for free to use with C# to create windows database apps?
Or do you suggest another free DB to use? or even another app to run C#?
Basically I want to get my Grand Daughter into programming using C# for, well FREE
Any suggestions and code examples greatly appreciated.
Thanks
|
|
|
|
|
|
Thank you for the quick response, really appreciated
|
|
|
|
|
You're welcome! Good luck with the granddaughter - teaching isn't as easy as some people think ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I'm trying the C# example here:
Changing the Bluetooth Radio Mode | Microsoft Learn
It's referencing BthUtil.dll. I can't find this DLL anywhere. How can I find this?
Thanks
In theory, theory and practice are the same. But in practice, they never are.”
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
|
|
|
|
|
Look at the date on the article. It's from 14 years ago and really doesn't apply today.
From what I can tell, BthUtil.dll was part of Windows CE/Mobile, which doesn't exist anymore. It was never part of full-blooded Windows.
You're looking at an article for Windows Mobile!
|
|
|
|
|
I'm not sure that even if you find it, it would be any use to you - BthUtil.dll is part of the Windows Mobile (WM) API which was a derivative of WinCE and which finally died the death back in 2013 - it ran on relatively short lived hardware that certainly isn't being made these days and MS ended support for it back in 2019.
If you are targeting WM deliberately in 2024 then you have to ask yourself "why am I doing this?" as it's going to get increasingly hard to find hardware it will still run on that works!
If you are trying to get something working and didn't realize it was a WM app example you were following then that's your problem, right there!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Do these links help?
/ravi
|
|
|
|
|
Hi
I am trying to use Parallel.ForEach with ConcurrentBag and it work but to display a feedback I used progessbar control to display fname value , problem after few seconds I get error and the error message is not visible instead a wight box appear because of using a thread . any idea what is the problem in this code ?
int row_idx = 1;
ConcurrentBag<(int, string, float)> bag = new ConcurrentBag<(int, string, float)>();
Parallel.ForEach(elements, element =>
{
string fname = element.name;
float ftrack = (float)(element.track);
var elementsToAdd = new (int, string, float)[]
{
(row_idx, fname, fsize)
};
bag.Add(elementsToAdd[0]);
row_idx++;
ProgressBar1.Text = fname;
ProgressBar1.Update();
});
|
|
|
|
|
That's because you cannot touch a UI control from anything other than the UI (startup) thread. When you use tasks, you're using other threads that are not the UI thread.
To change the text of a control, you have to marshal a call to a function back to the UI thread so that function updates the Text property and does it on the correct thread.
You can see how it's done at How to make thread-safe calls to controls - Windows Forms .NET | Microsoft Learn[^]
|
|
|
|
|
|
Hello everyone,
I'm currently working on a C# project that processes a large dataset. While my code works correctly, it's running slower than expected, especially with bigger files. I'm looking for advice on optimizing the performance.
Here’s a brief overview:
-I'm reading data from a CSV file.
-Processing involves several nested loops and string manipulations.
-Writing results to a new file.
I've tried using Parallel.For for the loops but it didn't improve much. I suspect the string operations might be the bottleneck. Does anyone have suggestions on more efficient data handling or alternative approaches for processing large datasets in C# ? Any tips on using memory more efficiently or reducing execution time would be greatly appreciated.
Thank you in advance for your help.
Best regards,
Steve
tensorflow
modified 6-Jun-24 2:06am.
|
|
|
|
|
off to the C# forum you go
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
Aside from posting your question in the correct forum - did you somehow miss the repeated "no programming questions" warnings at the top of the page? - the only thing we can suggest based on such a vague description is that you profile your code to find out where the actual bottleneck is.
Anything else is going to be a wild stab in the dark, with very little chance of success.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Profile.
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
|
As has been mentioned, this is not the right place for programming queries - post your request here instead: C# Discussion Boards[^]
But ... Think about a few things first.
1) Remember that we can't see your screen, access your HDD, or read your mind - we only get exactly what you type to work with - we get no other context for your project.
Imagine this: you go for a drive in the country, but you have a problem with the car. You call the garage, say "it broke" and turn off your phone. How long will you be waiting before the garage arrives with the right bits and tools to fix the car given they don't know what make or model it is, who you are, what happened when it all went wrong, or even where you are?
That's what you've done here. So stop typing as little as possible and try explaining things to people who have no way to access your project!
Have a look at this: Asking questions is a skill[^] and think about what you need to know, and what you need to tell us in order to get help.
2) Parallelism isn't a "magic bullet" which automagically speeds up your code: it's is a complicated subject and it's very simple to slow an app down if you don't understand what you are doing.
3) The first part of speeding up an app is identifying where bottlenecks occur: if you are guessing (and "I suspect ..." is a good clue that you are) then you are very likely to chase off down a blind alley making tiny gains in performance but ignoring the "slow code". Profile your app and find out what is actually taking time!
4) We can't tell you "do this and your code will be faster" without understanding your code - and nobody wants to wade through a whole app looking for performance gains: we are all volunteers and most of us have paying job to do!
So show us code fragments that we actually need to see - without those, we are just whistling in the dark!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
It sounds mildly interesting. More specifics would help.
|
|
|
|
|
The terms "nested loops" and "performance" do not belong in the same sentence.
If you're nesting loops in what is supposed to be high-performance code, you're killing performance of that code.
|
|
|
|
|
A week has passed, and your rather provocative, categorical statement hasn't succeeded in provoking a single reaction
I smiled when I first saw it, not sure if it was intended as a pure joke or as a serious, but provocatively phrased, statement. Nested loops should of course raise your awareness level (and so should single loop, although not necessarily as much). But some problems are by nature two- (or even multi-) dimensional, and lends themselves to nested loop implementations. The only alternative is to roll out one of the levels, requiring the iteration count to be fixed (which is not always the case). It could reduce code cash hit rate significantly, and in extreme cases ever virtual memory hit rate.
So I hope noone takes your advice as Absolute Truth. It very strongly tells you to check twice what you put into the loops, whether simple or nested. But as single loops have their place, so has nested loops (but of cause a smaller one) - even in high performance code.
Religious freedom is the freedom to say that two plus two make five.
|
|
|
|
|
Sigh. WTF is it with you?
Is it absolute gospel? NOOOOO! Should a nested loop be your first port of call for high-performance code? Again, NOOOOOO! Is it possible that you don't have a choice have to use a nested loop in high-performance code? YESSSSSS!
Happy now?
Loops are only one specific case of performance issues in code. I NEVER said it was the only reason for performance issues.
|
|
|
|
|
You had forgotten to flag your post as "Super sensitive matter! No critical remarks or alternate opinions, please!"
If you do that next time, I will of course leave your post totally uncommented (and as soon as I discover the flag: unread).
Religious freedom is the freedom to say that two plus two make five.
|
|
|
|