#c_ — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #c_, aggregated by home.social.
-
Get ready for .NET Conf 2025 on November 11th!
As we are approaching to the final release of .NET 10.0, a conference for .NET developers has been finally set to be scheduled for November 11th, and this event lasts three days up to November 13th. This conference talks about what’s new in .NET 10.0 and Visual Studio 2026, where they both introduce new features and improvements to enhance your developer experience.
Joining the conference is free, and you can mark the schedule on your calendar using the below button.
.NET ConfThe below main events will happen in this conference:
- November 11th (8 AM to 6 PM PST): This is a big day for .NET developers where .NET 10.0 and Visual Studio 2026 will be showcased for new features and improvements, as well as the Code Party that you can win some great prizes.
- November 12th (9 AM to 5 PM PST): This showcases a deep dive into .NET, Azure, and AI.
- November 13th (5 AM to 5 PM PST): This is a community event with speakers around the world.
After the main events, there comes two additional days, which are the Student Zone on November 14th that is a beginner-friendly virtual event where experts teach you how to build awesome projects using C# and .NET, and November 13th to 15th where the community events are held.
There will also be giveaways and digital swags where you receive them with many valuable perks, such as digital goods worth over $5,500, like high-value software licenses and other goodies.
The speakers in this conference event will be (in alphabetical order):
- Allie Barry
- Brady Gaster
- Cathy Sullivan
- Damian Edwards
- David Fowler
- Gaurav Seth
- Maddy Montaquila
- Mads Kristensen
- Maria Naggaga Nakanwagi
- Mike Kistler
- Rachel King
- Safia Abdalla
- Scott Hanselman
Join the .NET Conf for free!
#Net #Net10 #Net100 #NETConf #NETConf2025 #C_ #dotnet #F_ #fsharp #news #Tech #Technology #update #VB
-
.NET Short Term Releases get 2 years of support!
Earlier, the short term releases for each .NET version would last only 1.5 years (18 months), which means that once an LTS gets released, you’ll have to upgrade to that LTS versions before your .NET version gets deprecated. Now, it seems that Microsoft have adjusted this support length for short term releases of the modern .NET framework, starting from .NET 9.0 released November 12th of the last year.
Microsoft has added six more months to the total support length for such releases, making them end with their LTS version that came before. For example, on November 10th, 2026, both .NET 8.0 and 9.0 will reach end of life.
Here’s the chart that demonstrates the new support timeline:
This is a welcome change, as you’ll now have six extra months to upgrade to the new LTS release by the time the current STS and LTS versions are still in support. You can learn more about this change here.
Learn more#Net #Net9 #Net90 #NetCore #C_ #dotnet #news #Tech #Technology #update
-
.NET Short Term Releases get 2 years of support!
Earlier, the short term releases for each .NET version would last only 1.5 years (18 months), which means that once an LTS gets released, you’ll have to upgrade to that LTS versions before your .NET version gets deprecated. Now, it seems that Microsoft have adjusted this support length for short term releases of the modern .NET framework, starting from .NET 9.0 released November 12th of the last year.
Microsoft has added six more months to the total support length for such releases, making them end with their LTS version that came before. For example, on November 10th, 2026, both .NET 8.0 and 9.0 will reach end of life.
Here’s the chart that demonstrates the new support timeline:
This is a welcome change, as you’ll now have six extra months to upgrade to the new LTS release by the time the current STS and LTS versions are still in support. You can learn more about this change here.
Learn more#Net #Net9 #Net90 #NetCore #C_ #dotnet #news #Tech #Technology #update
-
.NET Short Term Releases get 2 years of support!
Earlier, the short term releases for each .NET version would last only 1.5 years (18 months), which means that once an LTS gets released, you’ll have to upgrade to that LTS versions before your .NET version gets deprecated. Now, it seems that Microsoft have adjusted this support length for short term releases of the modern .NET framework, starting from .NET 9.0 released November 12th of the last year.
Microsoft has added six more months to the total support length for such releases, making them end with their LTS version that came before. For example, on November 10th, 2026, both .NET 8.0 and 9.0 will reach end of life.
Here’s the chart that demonstrates the new support timeline:
This is a welcome change, as you’ll now have six extra months to upgrade to the new LTS release by the time the current STS and LTS versions are still in support. You can learn more about this change here.
Learn more#Net #Net9 #Net90 #NetCore #C_ #dotnet #news #Tech #Technology #update
-
.NET Short Term Releases get 2 years of support!
Earlier, the short term releases for each .NET version would last only 1.5 years (18 months), which means that once an LTS gets released, you’ll have to upgrade to that LTS versions before your .NET version gets deprecated. Now, it seems that Microsoft have adjusted this support length for short term releases of the modern .NET framework, starting from .NET 9.0 released November 12th of the last year.
Microsoft has added six more months to the total support length for such releases, making them end with their LTS version that came before. For example, on November 10th, 2026, both .NET 8.0 and 9.0 will reach end of life.
Here’s the chart that demonstrates the new support timeline:
This is a welcome change, as you’ll now have six extra months to upgrade to the new LTS release by the time the current STS and LTS versions are still in support. You can learn more about this change here.
Learn more#Net #Net9 #Net90 #NetCore #C_ #dotnet #news #Tech #Technology #update
-
Terminaux 7.0 Beta 1 is Live!
Starting from today, we are very thrilled to announce the first beta version for an upcoming version of the Terminaux library, the seventh major version, under the beta program. Beta versions of Terminaux 7.0 allows you to try it out in its early access phase for you to report bugs and give feedback when developing Terminaux apps.
This beta program will end when the new version of Terminaux is ready, and next beta versions of Terminaux 7.0 will be released when required. This beta program will consist of several beta versions to ensure that we deliver this new version of Terminaux in its highest quality possible and to fix all bugs (obvious or not) prior to the official release.
The first beta version of Terminaux offers new features and enhancements to existing features, such as improvements to the cyclic writers. These make sure that they improve your development experience when building Terminaux apps.
The beta versions will be suffixed with the representative
-betaversion according to the semantic versioning guidelines, and this is important to help you identify whether you’re using the beta version or the official release. Those packages will be released on NuGet, just like all other stable releases. In GitHub, those releases will be branded as the “pre-release” versions to let you know.If you have any feedback, bugs, or suggestions, please send them to our GitHub issues via this link. Your feedback is essential in helping us identify areas for further improvements and to enhance user experience.
#bassboom #beta #BetaProgram #C_ #csharp #news #nitrocid #Programming #Tech #Technology #terminaux #update
-
Introducing the Terminaux Beta Program
We are excited to announce the first beta program for an upcoming version of the Terminaux library, the seventh major version. This program allows you to try out the new version of Terminaux in its early access phase for you to report bugs and give feedback when developing Terminaux apps.
This beta program will commence on May 8th, 2025, and will end when the new version of Terminaux is ready. This program will consist of several beta versions to ensure that we deliver this new version of Terminaux in its highest quality possible and to fix all bugs (obvious or not) prior to the official release.
The beta versions will be suffixed with the representative
-betaversion according to the semantic versioning guidelines, and this is important to help you identify whether you’re using the beta version or the official release. Those packages will be released on NuGet, just like all other stable releases. In GitHub, those releases will be branded as the “pre-release” versions to let you know.If you have any feedback, bugs, or suggestions, please send them to our GitHub issues via this link. Your feedback is essential in helping us identify areas for further improvements and to enhance user experience.
#bassboom #beta #BetaProgram #C_ #csharp #news #nitrocid #Programming #Tech #Technology #terminaux #update
-
Mono is back! Mono 6.14.0 released!
The first major version of Mono has been released after more than five years of no release. The WineHQ project has taken over the development of the .NET Framework version of Mono back on August 2024 after a fork has been made back in February 2024 under the project’s GitLab instance. This major version is under 6.14.0 and is available to download now.
The release changelogs states that Mono finally has native support for macOS with ARM64 processors, which makes your developer experience when using such machines improved. In addition to that, there have been several improvements regarding System.Windows.Forms for Mono GUI applications to fix resource leaks, to re-implement clipboard and drag-and-drop functionalities, and to improve stability on X11.
This release has also improved support for generated COM interfaces for apps that use them. Mono should no longer hang when the process is being exited in some common cases. In addition to that, Mono should no longer experience many bugs and many build warnings.
For Gregorian users, Mono finally has support for the Gregorian language, which means that you can now use Mono in your native language to improve your user experience.
To download Mono’s source code, click on the button below:
Download source codehttps://audiomack.com/aptivi/song/mono-is-back-mono-6140-released
#Net #NetFramework #C_ #csharp #dotnet #FrameworkMono #Mono #MonoRuntime #news #Tech #Technology #update
-
Try out the .NET 10.0 Alpha SDK!
.NET 9.0 was released on November 12th, 2024, to provide your applications with brand new features, such as
ref structin interfaces, performance improvements, and bug fixes related to several of the .NET components.Not so long after, .NET 10.0 alpha builds were spotted in the main installer GitHub repository, which is public. The table shows the platform table with two releases: .NET 9.0 and the upcoming .NET 10.0, which is going to be another LTS release.
The upcoming version of .NET will provide you with several of nice features, as well as performance improvements and bug fixes. This .NET version is to be released on November 2025 to accommodate with the release schedule, as well as its first preview to be scheduled for February 2025.
If you have Visual Studio 17.13 or later (may change across preview releases), you can now try out the Alpha builds of .NET 10.0, which you can find in the above link. Here are the links to .NET 10.0:
- Windows 64-bit (installer, zip)
- Windows 32-bit (installer, zip)
- Windows ARM64 (installer, zip)
- Linux 64-bit (deb, rpm, tar, musl tar)
- Linux ARM32 (tar, musl tar)
- Linux ARM64 (tar, musl tar)
- macOS 64-bit (installer, tar)
- macOS ARM64 (installer, tar)
Please note that this software is in its alpha state and may contain features that may not make it to the final release. Use with care.
Enjoy!
#Net #Net10 #Net100 #NETConsoleProject #NetCore #NetFramework #NetStandard #azure #C_ #dotnet #runtime #sdk #softwareDevelopment
-
Reverse Iterations
Sometimes, we all need a way to iterate over a container in the opposite direction. There are several ways to reverse-iterate a container, and in this article, we’ll explore them.
Index Iteration
Probably the simplest way, taken from C is to iterate using an index location:
for (int64_t index = ssize(container) - 1; index >= 0; --index) { // do something with `container[index]`}This way is highly not recommended as it might lead to infinite loops if done incorrectly (for example by using
uint64_torsize_tfor the index type), and you can find more issues with this way in some previous articles about iterators in this blog.Reverse Iterators
Another way to iterate a container is by using reverse iterators (
rbegin()andrend()):for (auto it = container.rbegin(); it != container.rend(); ++it) { // do something with `*it`}This is a more recommended way, but it might be a little bit frustrating compared to a regular for-range loop:
for (auto elem : container) { /*do something with `elem`*/ }The closest way to this method using the standard (before C++20) is:
std::for_each(container.rbegin(), container.rend(), [](auto elem) { // so something with `elem`});Ranges (C++20)
If you are using the ranges library, or using at least C++20, you can use the following method to iterate a container in reverse order:
for (auto elem : container | std::views::reverse) { // do something with `elem`}Custom Reverse Container View
Another way to use the for-range loop (even if you don’t use C++20 or the ranges library), is to create your own container mask, to modify the behavior of the
begin()andend()functions:template <typename T>class reverse_view {public: reverse_view(T& cont) : container(&cont) {} typename T::reverse_iterator begin() { return container->rbegin(); } typename T::reverse_iterator end() { return container->rend(); } private: T* container;};Then, you’ll be able to use it like that:
std::vector<int> container = {1, 2, 3, 4, 5};for (int elem : reverse_view(container)) { std::cout << elem << ", ";}More Ways
I hope you learned something new, and feel free to share in the comments if you know other ways to reverse-iterate over a container.
#advanced #C_ #c11 #c14 #c17 #c20 #containers #Intermediate #Iterators #ranges #reverse #reverseIterators
-
ADL – Avoid Debugging Later
Back in the day, being a witch was considered a grave crime. Today, we’re diving into one of C++’s lesser-known spells: ADL (Argument-Dependent Lookup). But before we explore this arcane magic, you must heed a warning—black magic comes with consequences. ADL is particularly treacherous, often leading to frustrating and hard-to-debug issues. Whenever possible, it’s wise to avoid casting this spell unless absolutely necessary.
Ingredients
Every spell needs ingredients, this time the only ingredients you need are a C++ compiler and a function that accepts at least one parameter, but there is a try catch, the parameter type has to belong to the same namespace of the function.
Casting the Spell
This spell works in shadows—you must look closely to uncover its effect.
std::cout << "Can you see me?";
Should the spell have passed you by, I’ll summon its power again for your eyes:
std::vector<int> a{1}, b{2};swap(a, b);If the spell’s effect remains elusive, let’s summon the entire code for you to see:
#include <vector>int main() { std::vector<int> a{1}, b{2}; swap(a, b); return 0;}And there it is, I didn’t use
using namespace std;and yet I calledstd::swapfunction without thestd::prefix.Dangerous Path
Before we dive into unveiling the syntax secrets, this is the place for warning signs. We all know that
using namespace std;is considered bad practice—and for a good reason. When you import an entire namespace into your own without being fully aware of the functions and names you’re bringing in, collisions can occur. Such collisions might result in calling an unintended function or class, often one with a slightly different algorithm or mechanism (after all, there’s usually a reason for the identical naming).Calling an unexpected function might unintentionally summon dependencies from distant, unforeseen corners of your code, and in doing so, awaken Undefined Behavior lurking quietly in the shadows, waiting for the right moment to strike.
This ‘spell’ exposes you to the exact same issue, even without explicitly using
using namespace. There are situations where you may need to cast this spell to achieve generic or scalable code. However, even in those cases, you must ensure the area is clear. Treat these spell locations as dangerous and suspicious zones—mark them clearly, and suspect them first whenever a bug appears nearby.Syntax Ritual: Unveiling the Dark Art of ADL
This spell was originally crafted to support the well-known foundation of C++ code:
std::cout << "Hello World";
This simple, foundational code uses ADL to access
std::operator<<(std::ostream&, const char*), as the actual code is:std::operator<<(std::cout, "Hello World"); // Without using ADLoperator<<(std::cout, "Hello World"); // Using ADL
The general idea behind this magic is that the compiler searches for a matching function in the current namespace and in the namespaces of each argument in the function call. For example, in the code above, the
operator<<is located in thestdnamespace, and the argumentstd::coutalso belongs to the same namespace.However, there are many more rules regarding what the lookup would contain in each case. The exact rules of the ADL can be found on cppreference.
A slightly more complex example comes from my experience with the dlib library, which looks like this:
namespace dlib { class dense_feature_extractor { public: friend void serialize(const dense_feature_extractor& item, std::ostream& out) { out << "dense_feature_extractor::serialize\n"; } friend void deserialize(dense_feature_extractor& item, std::istream& in) { std::cout << "dense_feature_extractor::deserialize\n"; } }; class matrix {}; void serialize(const matrix& m, std::ostream& out) { out << "dlib::serialize(matrix)\n"; } void deserialize(const matrix& m, std::istream& in) { std::cout << "dlib::deserialize(matrix)\n"; }}Now, it becomes interesting: without ADL, we can’t access the
serializeanddeserializefriend functions inside thedense_feature_extractorclass, unless we modify the library to declare them outside the class or make them static functions within the class.By casting a few ADL spells, we can craft the following function:
dlib::matrix m;dlib::dense_feature_extractor d;serialize(m, std::cout); // dlib::serialize(matrix)// same as: dlib::serialize(m, std::cout);serialize(d, std::cout);// dense_feature_extractor::serializedeserialize(m, std::cin); // dlib::deserialize(matrix)// same as: dlib::deserialize(m, std::cin);deserialize(d, std::cin); // dense_feature_extractor::deserialize
Since the calls appear identical, we can generalize them as follows:
template <typename T>void dlib_serializer(const T &val) { serialize(val, std::cout);}template <typename T>void dlib_deserializer(T &val) { deserialize(val, std::cin);}void func() { dlib::matrix m; dlib::dense_feature_extractor d; dlib_serializer(m); dlib_serializer(d); dlib_deserializer(m); dlib_deserializer(d);}The Spell You Might Unintentionally Already Cast
This spell is subtle and elusive, and you may already be summoning it without even noticing—simply by forgetting the
std::prefix (or any other namespace’s arcane sigil). The silver lining is that now, armed with this knowledge, you’ll be able to spot its presence in any code that calls upon it.Special Thanks
- Ellie Bogdanov for spelling assistance.
- ChatGPT for the logo and for grammar and spelling assistance.
#adl #advanced #ArgumentDependentLookup #C_ #coding #cpp #debug #dlib #include #Intermediate #magic #namespace #programming #spell #spells #usingNamespace
-
Imparare a programmare giocando
Volete imparare a programmare giocando? Oppure siete già in grado ma volete mettere alla prova le vostre conoscenze? Abbiamo quello che fa per voi!
https://www.lealternative.net/2020/10/07/imparare-a-programmare-giocando/
-
Imparare a programmare giocando
Volete imparare a programmare giocando? Oppure siete già in grado ma volete mettere alla prova le vostre conoscenze? Abbiamo quello che fa per voi!
https://www.lealternative.net/2020/10/07/imparare-a-programmare-giocando/
-
Imparare a programmare giocando
Volete imparare a programmare giocando? Oppure siete già in grado ma volete mettere alla prova le vostre conoscenze? Abbiamo quello che fa per voi!
https://www.lealternative.net/2020/10/07/imparare-a-programmare-giocando/
-
Imparare a programmare giocando
Volete imparare a programmare giocando? Oppure siete già in grado ma volete mettere alla prova le vostre conoscenze? Abbiamo quello che fa per voi!
https://www.lealternative.net/2020/10/07/imparare-a-programmare-giocando/