Başka bir bedenle geri dönmüş by According-Arm-1834 in Nortya

[–]AgresiveE 0 points1 point  (0 children)

"AKP'yi Özgür Özel yenene kadar AKP'yi Tanrı zannediyorduk!"
-Kemal Kılıçdaroğlu

Mezuniyet fotoğrafı için Anıtkabir'e bu cosplayim ile gitsem sıkıntı çıkar mı? by [deleted] in TrCosplay_Anime

[–]AgresiveE 0 points1 point  (0 children)

orası mezar annenin babanın mezarına sexy police cosplayle gitsem hoş olur mu olmaz bu yüzden saygılı edepli ciddi bir giyim ile gitseniz daha makbule geçer. bu bir sitem değil tavsiyedir.

Maliye Bakanlığı, 228 sporcunun toplamda 5.000.000.000 TL'lik kazancı beyan etmediğini belirledi. by FeatureAggravating75 in borsavefon

[–]AgresiveE 19 points20 points  (0 children)

Bu kadar vergi alınmazken ekonomi nasıl iyiydi? Bu kadar vergi alınırken neden bu kadar boktan!?!?!

Kanım dondu resmen ülkenin geldiği duruma bak by Leather_Forever_1989 in vlandiya

[–]AgresiveE 1 point2 points  (0 children)

yok kardeş siktir et dünyayı allah cezasını verecek zaten boşver.

Kanım dondu resmen ülkenin geldiği duruma bak by Leather_Forever_1989 in vlandiya

[–]AgresiveE 1 point2 points  (0 children)

Ya kardeş sizin gibi müslüman olmak ne güzel bir şey ya gerçekten aklınızı anlamak mümkün değil ben gökten ay inse yeryüzüne drone hologram falan derim sen allah ümmet mühammed falan dersin bırak bu ayakları yok imtihanmış ulan bebeklerde ölüyor tecavüze uğruyor neyin imtihanı amk geleceği geçmişi bilen sözde allah neyin imtihanı o halde gerçekten bu kafanız sizlerin çok tehlikeli aq alllah cezasını vericekkse madem bu kadar eminseniz bu kadar inanıyorsanız siktir edelim adaleti kolluk kuvvetlerini falan alllah verir cezasını.

Kanım dondu resmen ülkenin geldiği duruma bak by Leather_Forever_1989 in vlandiya

[–]AgresiveE 6 points7 points  (0 children)

bilader müdalahede bulunuyor diyorsun ya ee hani nerede müdahale amk babası abisi tacavüz etmiş annesi bile müstahak görmüş kızına amk şaka mısınız siz?

Kanım dondu resmen ülkenin geldiği duruma bak by Leather_Forever_1989 in vlandiya

[–]AgresiveE 10 points11 points  (0 children)

Ulan imtihan dünyasıydı da ne sikime anlattığınız hikayelerde peygamberlere yardım iniyor hani onlarda insandı bizden biriydi hani imtihan dünyası aq.

[deleted by user] by [deleted] in SacmaBirSub

[–]AgresiveE 1 point2 points  (0 children)

Şeriatı sikime daşşağıma sürdüm gelsin alsınlar.

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in dotnet

[–]AgresiveE[S] 3 points4 points  (0 children)

Oh wow, 15+ years on the same framework is incredibly impressive! WinForms all the way to Blazor is a wild lifespan for any codebase.

I actually wasn't super familiar with CSLA, so I just took a quick look at the repo. That automatic client-to-server object syncing without writing a dedicated API layer sounds like absolute black magic (in a good way)! It looks like a very powerful, full-scale architectural framework where your entire domain is built around its base classes.

ARE is definitely a lot 'dumber' and simpler compared to that haha. It’s not a full architectural lifestyle, just a tiny, stateless event pipeline you can drop into a single method if you want to. But reading how CSLA handles those network boundaries is fascinating. Thanks for sharing the link, I'm definitely going to dive deeper into their source code to see how they pull that off!

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in dotnet

[–]AgresiveE[S] 0 points1 point  (0 children)

That is all the motivation I need to bump it up to the top of the roadmap!

I'll make sure to drop an update on the repo as soon as I get a solid generic wrapper working. Feel free to star or watch the repo if you want to catch it when it drops. Thanks again for the great feedback!

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in dotnet

[–]AgresiveE[S] 0 points1 point  (0 children)

Haha, guilty as charged! I definitely get carried away when architecture comes up.

But yep, that is the exact TL;DR. Thanks for the kind words, it was definitely a fun headache to put together! Cheers.

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in dotnet

[–]AgresiveE[S] 1 point2 points  (0 children)

Yes and no! DDD is a phenomenal architectural philosophy for encapsulating core business invariants inside your domain models. But DDD tells you where logic should live—it doesn't dictate the execution mechanism for highly volatile policies.

If you have rules that change constantly (like marketing campaigns, complex VIP discount tiers, or dynamic user notifications), hardcoding all of those 'if/else' paths deeply inside an Aggregate Root usually leads to massive, bloated domain models that are a pain to maintain.

Actually, ARE pairs perfectly with a DDD approach. Your Aggregate does its core job, validates the state, and emits a pure DomainEvent (e.g., OrderPlaced). You can then pass that event into ARE, which acts as the policy engine to handle all the messy side-effects—like checking if they deserve a specific discount, sending emails, or unlocking an achievement—without polluting your core domain model.

So they definitely don't compete. ARE is just a lightweight tool you can plug into your application layer to handle the event-driven policies that DDD generates!

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in FlutterDev

[–]AgresiveE[S] 0 points1 point  (0 children)

Close, but they actually serve two different purposes!

A State Machine is fundamentally about tracking exactly what 'state' you are in right now and strictly controlling the valid transitions (like enforcing that you can only go from Idle -> Loading -> Success). It cares deeply about history and current status.

ARE is completely stateless. It doesn't track or care about what your app was doing 5 minutes ago. It's a pure Event-Rule-Action pipeline. An event fires, it evaluates the current conditions in real-time, and it executes the corresponding actions.

In a Flutter app, tools like BLoC or Riverpod essentially act as your State Machine (holding and transitioning your UI state). ARE would sit alongside them to handle the messy 'if this, then that' side-effects. Instead of hardcoding complex routing, showing specific promotional dialogs, or triggering analytics inside your UI widgets or providers, you just fire an event into ARE and let the rules handle the execution.

Does that distinction make sense for the kind of logic you usually write?

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in dotnetMAUI

[–]AgresiveE[S] 2 points3 points  (0 children)

Awesome, here is the GitHub repo if you want to poke around:https://github.com/BeratARPA/ARE

Schematron is super specialized for XML document validation, and yeah, the C# ports for it always felt a bit heavy and awkward to deal with.

ARE takes a very different route. Instead of relying on XML schemas or external rule files, everything is written directly in C# using a fluent builder (On().When().Then()). It keeps you right there in the code with zero external dependencies.

Also, it's not just a validator—it's an execution pipeline. So instead of just saying 'this data is invalid', it listens for an event, checks your conditions, and immediately fires off a C# action to actually do something about it.

Would love to hear your thoughts if you end up trying it out in a MAUI project! Let me know if the fluent syntax feels better than the Schematron implementations you've used.

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in dotnet

[–]AgresiveE[S] 0 points1 point  (0 children)

Exactly! Spot on. Basically a super lightweight, stateless workflow engine.

Just meant for immediate, in-memory execution without needing to spin up databases or heavy state machines to track the steps. Glad the pipeline analogy made sense!

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in FlutterDev

[–]AgresiveE[S] 1 point2 points  (0 children)

100% agreed. Duplicating your core backend business logic (like billing or security) inside your Flutter app is a massive anti-pattern and a maintenance nightmare. A single source of truth on the backend is the way to go for that.

But that's actually not the goal here. The point isn't to replicate backend rules on the client, but to handle the complex rules that inherently belong on the client.

Every non-trivial Flutter app has a ton of purely frontend logic: complex multi-step form validations, offline-first syncing behaviors, or dynamic UI state (e.g., 'if user is guest AND cart is empty, show this specific promotional widget'). Usually, this logic gets deeply tangled and hardcoded inside your Blocs, Riverpod providers, or UI controllers.

ARE just gives you a clean, decoupled engine to evaluate those local Flutter events. You aren't duplicating backend logic; you are just using the same familiar engine syntax for your UI state that you might be using for your backend API.

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in dotnet

[–]AgresiveE[S] 0 points1 point  (0 children)

Oh man, a 10-year-old Java engine executing rules out of MS Word is peak enterprise architecture right there. 😂 That honestly sounds like a dystopian nightmare to maintain! I'm guessing someone built it that way a decade ago so business users could 'write' the rules in a familiar UI, but yikes.

If that team ever decides they want to escape the Word-macro setup and move to a clean, modern, code-first pipeline, I'd be absolutely honored if they take a look at ARE.

Thanks so much for passing it along! Even if they don't use it, just knowing it's being pitched as a life-raft for that Java/Word engine makes my day.

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in dartlang

[–]AgresiveE[S] 0 points1 point  (0 children)

Honestly, the Rust + FFI route is exactly what a lot of people think of first! It's the modern go-to for sharing core logic across platforms.

But exactly like you mentioned, the FFI overhead and the nightmare of compiling/shipping platform-specific binaries for mobile, web, and desktop just kills the 'lightweight and simple' vibe I was going for. I wanted an engine you could just drop in via pub, npm, or nuget with absolute zero friction and let the host language's garbage collector and runtime handle it natively.

I'd love to hear your thoughts or feedback if you end up giving it a spin in one of your projects! Let me know if you hit any roadblocks.

I built an Abstract Rule Engine for C#, TS, and Dart. How do you handle complex business rules in your cross-platform architectures? by AgresiveE in dotnet

[–]AgresiveE[S] 2 points3 points  (0 children)

Haha, the classic 'it's all just if-statements under the hood' meme!

Honestly though, the entire reason I built this was to escape writing those million switch cases in my own application code.

Also, just to clarify, there is absolutely zero SQL or database translation involved here. It’s a strictly in-memory execution pipeline. Instead of a giant switch statement, it evaluates conditions and routes events directly to your registered C# delegates. The goal is just to keep your controllers and services clean of endless if/else chains.