Epic.NET is a framework composed of a process, a set of patterns and a set of architectural constraints for applications that need to follow the Domain Driven Design principles.
The document discusses best practices for API design. It covers topics such as considering the perspective of the caller, keeping APIs simple, striving for consistency, choosing memorable names, specifying behavior, making APIs safe, anticipating evolution, and writing helpful documentation. The overall message is that API design has a significant impact and requires careful consideration to create interfaces that are intuitive, easy to use, and stand the test of time.
Domain Model e SOA (Service Oriented Architecture)DotNetMarche
In un mondo che è sempre più orientato ai servizi è fondamentale comprendere l’interazione tra il concetto stesso di servizio e un’architettura fortemente Domain Driven. In questo scenario lo sviluppatore si trova ad affrontare scelte talvolta difficili, come ad esempio decidere come esporre all’esterno il proprio Domain Model oppure capire se e quanto le tecnologie a supporto dell’interoperabilità debbano influire il modello implementativo del nostro Domain Model. In questa sessione si cercherà di capire quali sono i principi di design che possono venire in aiuto nella progettazione di architetture SOA, come ad esempio l'inversione di controllo o la programmazione orientata agli aspetti e si esamineranno i tool che possono aiutarci ad implementare correttamente un modello a servizi.
Introduzione al Domain Driven Design (DDD)DotNetMarche
In questa sessione si approfondirà il concetto di Domain Driven Design, un principio di progettazione che può essere visto come una “forma-mentis” per aiutare a concepire e modellare applicazioni enterprise che fanno un forte uso del Domain Model. Questa metodologia, introdotta da Eric Evans, mette in risalto il dominio applicativo di un progetto, costituendo quindi il collante tra il modello analitico e il modello implementativo e trovando la sua naturale applicazione in ambienti di sviluppo agili come Extreme Programming. Come completamento della sessione verranno esaminate alcune tecniche di Layering e pattern architetturali che ben si sposano con questa tecnica.
Quando un'entità può essere considerata valida? Come effettuare la validazione? Lo scopo della sessione è quello di illustrare e condividere alcune considerazioni relative a diversi approcci, facendo distinzione tra validazione "costante", quindi strettamente legata alle entità, e quelle che invece sono le validazioni appartenenti ad un contesto specifico. Verrà presentato l'approccio "always-valid" e messo a confronto con il classico metodo "IsValid()".
The document discusses best practices for API design. It covers topics such as considering the perspective of the caller, keeping APIs simple, striving for consistency, choosing memorable names, specifying behavior, making APIs safe, anticipating evolution, and writing helpful documentation. The overall message is that API design has a significant impact and requires careful consideration to create interfaces that are intuitive, easy to use, and stand the test of time.
Domain Model e SOA (Service Oriented Architecture)DotNetMarche
In un mondo che è sempre più orientato ai servizi è fondamentale comprendere l’interazione tra il concetto stesso di servizio e un’architettura fortemente Domain Driven. In questo scenario lo sviluppatore si trova ad affrontare scelte talvolta difficili, come ad esempio decidere come esporre all’esterno il proprio Domain Model oppure capire se e quanto le tecnologie a supporto dell’interoperabilità debbano influire il modello implementativo del nostro Domain Model. In questa sessione si cercherà di capire quali sono i principi di design che possono venire in aiuto nella progettazione di architetture SOA, come ad esempio l'inversione di controllo o la programmazione orientata agli aspetti e si esamineranno i tool che possono aiutarci ad implementare correttamente un modello a servizi.
Introduzione al Domain Driven Design (DDD)DotNetMarche
In questa sessione si approfondirà il concetto di Domain Driven Design, un principio di progettazione che può essere visto come una “forma-mentis” per aiutare a concepire e modellare applicazioni enterprise che fanno un forte uso del Domain Model. Questa metodologia, introdotta da Eric Evans, mette in risalto il dominio applicativo di un progetto, costituendo quindi il collante tra il modello analitico e il modello implementativo e trovando la sua naturale applicazione in ambienti di sviluppo agili come Extreme Programming. Come completamento della sessione verranno esaminate alcune tecniche di Layering e pattern architetturali che ben si sposano con questa tecnica.
Quando un'entità può essere considerata valida? Come effettuare la validazione? Lo scopo della sessione è quello di illustrare e condividere alcune considerazioni relative a diversi approcci, facendo distinzione tra validazione "costante", quindi strettamente legata alle entità, e quelle che invece sono le validazioni appartenenti ad un contesto specifico. Verrà presentato l'approccio "always-valid" e messo a confronto con il classico metodo "IsValid()".
This document discusses how traditional object-oriented programming practices and patterns may not directly apply to dynamic programming languages. It provides examples of how concepts like immutability, encapsulation, and testing are different in dynamic languages that support features like duck typing, metaprogramming, and runtime changes. The document advocates expressing intent clearly through interfaces and composition over rigid patterns and hierarchies when using dynamic languages. It also notes tradeoffs with IDE support when using dynamic features.
The document discusses the principles and tactical tools of Domain-Driven Design (DDD). It describes DDD as a way to build a domain model focused on business concepts rather than data. The key aspects covered include:
- Using a ubiquitous language and bounded contexts to separate domains and ensure clear communication.
- Identifying the core domain and distilling it from supporting subdomains to focus modeling efforts.
- Tactical patterns like entities, aggregates, value objects, domain services, events, and repositories to structure the domain logic and persistence.
- Command Query Responsibility Segregation (CQRS) and event sourcing as effective ways to implement DDD by separating writes from reads and modeling state as events
This document summarizes and compares different JavaScript frameworks. It discusses the pros and cons of JavaScript, including that it is weakly typed, supports both imperative and functional paradigms, and has no packaging. It also covers reasons to use a framework, such as leveraging community support. Two main types of frameworks are described: Swiss army knife frameworks that provide utilities and widget-based frameworks that focus on components and effects. Popular examples of each type are listed and what problems they aim to solve. Finally, criteria for evaluating frameworks are outlined.
Developer practices for traditional and agile Java development are well understood and documented. But dynamic languages (Groovy, Ruby, and others) change the ground rules. Many of the common practices, refactoring techniques, and design patterns we have been taught either no longer apply or should be applied differently and some new techniques also come into play. In this talk, we'll relearn practices needed for dynamic languages. Along the way we will look at typing, design patterns,
refactoring, functional style, SOLID principles revisited and more.
The importance to be Driven
There are many buzzwords and acronyms to describe how the software should be designed. TDD (Test Driven), BDD (Behaviour Driven), DDD (Domain Driven) are the most well known. In this speech we'll run thought all these techniques comparing each one of those with TDD and finding what are the common concepts. An exercise will show to the students how different the code will be using different design methodologies as driver.
This document discusses security concerns related to continuous integration and continuous delivery (CI/CD) pipelines. It begins by defining key CI/CD concepts like continuous integration, continuous delivery, pipelines, DevOps, and DevSecOps. It then details several security risks that can occur at different stages of the CI/CD process, including in source code, during building, in deployment, and within infrastructure. Specific attacks mentioned include sensitive information leaks, trojanized artifacts, zip bombs, memory bombs, and more. The document emphasizes the importance of monitoring, limiting permissions, and network isolation to help secure CI/CD systems.
One of the main advantages of PHP is that it allows you and your company to build up projects in no time and with immediate feedback and business value. Sometimes, however, fast growth and unprevented complexities could make your codebase more and more difficult to manage as time passes and new features are added.Domain Driven Design can be an elegant solution to the problem, but introducing it in mid-large sized projects is not always easy: you have to deal with difficulties at technical, team and knowledge levels. This talk focuses on how to approach the change in your codebase and in your team mindset without breaking legacy code or stopping the development in favor of neverending refactoring sessions.
This document discusses key principles for framework engineering based on the work of experts in the field like Douglas Schmidt, Krzysztof Cwalina, and Robert C. Martin. It emphasizes organizing frameworks to avoid duplication, managing dependencies carefully, balancing advances with backward compatibility, and designing APIs based on code samples rather than forcing an object model. It also stresses the importance of simplicity, measurement, avoiding unfinished integrations, and understanding how organizational factors impact a product.
This document discusses design for testability. It defines testability as having controllability and visibility. Controllability is the ability to apply inputs and place a system in specified states, while visibility is the ability to observe states and outputs. The document outlines why testability is important for improving quality and reducing costs. It describes how to achieve testability through good design practices like abstraction, encapsulation, and avoiding interdependence. Testability features like logging and assertions are also recommended. Development techniques like defensive programming, design by contract, and test-driven development can further enhance testability.
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Juraj Martinka
This document discusses technical debt and how CodeScene helps organizations manage it. It begins with questions about an organization's technical debt and then defines technical debt as excess complexity that slows development. CodeScene identifies technical debt based on how an organization works with code over time, prioritizing areas that are worked on often, have become complex, or are riskier after personnel changes. It analyzes trends, pinpoints problematic code, and provides metrics to help focus refactoring efforts and maximize returns. The document emphasizes that technical debt is more than just technical and recommends using CodeScene to support developers' expertise and experience in managing it.
I delivered this presentation at the Eclipse Modeling Days in NYC and Toronto, Ca: http://wiki.eclipse.org/Eclipse_Modeling_Day in November 2009.
The slides are based on the ones Jan Koehnlein presented at the Eclipse Summit Europe 09.
The document discusses code reviews, including what they are (formal vs lightweight reviews), why they are important (avoiding knowledge silos, early bug detection, improved code quality), how to conduct them (taking it easy, communicating clearly, following best practices), and the mindset needed (focus on code, not people, and be grateful). It emphasizes that code reviews can find up to 75% of defects and improve software evolvability.
Crafty communications - Dealing with the pesky people parts of communicationsAsher Glynn
The document discusses challenges with communication between different crafts and professions due to differing terminology and approaches. It provides examples of terminology differences between fields like brewing, construction, cooking, etc. It then discusses techniques for building a common language, including user stories, pair programming, design patterns, and code reviews focused on intent rather than style. It notes where these techniques are effective and how they can go wrong. It also addresses different personalities that can impact communication effectiveness.
The document discusses DevOps, including what it is, why it is useful, and how to get ready to implement DevOps practices. Specifically, it defines DevOps as combining development and operations life cycles to reduce the time between coding and production. It recommends understanding concepts like continuous integration, continuous delivery, containers, infrastructure as code, source control, testing automation, and deployment strategies. The document provides tips on tools and skills to learn in order to be DevOps ready, and suggests ways to evaluate the success of DevOps implementations by measuring key performance indicators.
Domain Driven Design (DDD) is an approach to software development that prioritizes domain knowledge. It focuses on building a shared understanding between technical and domain experts through a ubiquitous language. The fundamentals of DDD include modeling the domain, domain objects like entities and value objects, aggregates, repositories, and bounded contexts. Patterns like modules, factories, and specifications help implement the domain model. The goal is clean, knowledge-rich design focused on the business domain.
This document discusses test-driven development (TDD), including what it is, why it is used, and how to implement it. TDD is a development approach where small test cases are written before code to validate requirements, with code written only to pass failing tests. It is a philosophy of workflow and design that helps clarify expectations, validate system state through assertions, break problems into smaller pieces, and protect against regressions. The process involves writing a single small test, writing just enough code to make it pass, thinking of other inputs and edge cases, and using mocks to stand in for external resources when testing relationships between code units.
Coder sans peur du changement avec la meme pas mal hexagonal architectureThomas Pierrain
Découvrez en pratique l'architecture hexagonale, indispensable pour vos applications complexes !
Ce style d'architecture permet d'adapter votre code à tout changement de technologie sans souffrir. Si vous aimez changer de frameworks ou de librairies, tester correctement ou appliquer le Domain-Driven Design, alors vous avez besoin d'architecture hexagonale !
Avec des exemples en code Java, et au travers d’un kata d’architecture auquel vous pourrez participer, nous vous montrerons les pièges à éviter et comment mettre en œuvre ce pattern sans trop galérer, et ce dès votre retour au bureau !
This document discusses how traditional object-oriented programming practices and patterns may not directly apply to dynamic programming languages. It provides examples of how concepts like immutability, encapsulation, and testing are different in dynamic languages that support features like duck typing, metaprogramming, and runtime changes. The document advocates expressing intent clearly through interfaces and composition over rigid patterns and hierarchies when using dynamic languages. It also notes tradeoffs with IDE support when using dynamic features.
The document discusses the principles and tactical tools of Domain-Driven Design (DDD). It describes DDD as a way to build a domain model focused on business concepts rather than data. The key aspects covered include:
- Using a ubiquitous language and bounded contexts to separate domains and ensure clear communication.
- Identifying the core domain and distilling it from supporting subdomains to focus modeling efforts.
- Tactical patterns like entities, aggregates, value objects, domain services, events, and repositories to structure the domain logic and persistence.
- Command Query Responsibility Segregation (CQRS) and event sourcing as effective ways to implement DDD by separating writes from reads and modeling state as events
This document summarizes and compares different JavaScript frameworks. It discusses the pros and cons of JavaScript, including that it is weakly typed, supports both imperative and functional paradigms, and has no packaging. It also covers reasons to use a framework, such as leveraging community support. Two main types of frameworks are described: Swiss army knife frameworks that provide utilities and widget-based frameworks that focus on components and effects. Popular examples of each type are listed and what problems they aim to solve. Finally, criteria for evaluating frameworks are outlined.
Developer practices for traditional and agile Java development are well understood and documented. But dynamic languages (Groovy, Ruby, and others) change the ground rules. Many of the common practices, refactoring techniques, and design patterns we have been taught either no longer apply or should be applied differently and some new techniques also come into play. In this talk, we'll relearn practices needed for dynamic languages. Along the way we will look at typing, design patterns,
refactoring, functional style, SOLID principles revisited and more.
The importance to be Driven
There are many buzzwords and acronyms to describe how the software should be designed. TDD (Test Driven), BDD (Behaviour Driven), DDD (Domain Driven) are the most well known. In this speech we'll run thought all these techniques comparing each one of those with TDD and finding what are the common concepts. An exercise will show to the students how different the code will be using different design methodologies as driver.
This document discusses security concerns related to continuous integration and continuous delivery (CI/CD) pipelines. It begins by defining key CI/CD concepts like continuous integration, continuous delivery, pipelines, DevOps, and DevSecOps. It then details several security risks that can occur at different stages of the CI/CD process, including in source code, during building, in deployment, and within infrastructure. Specific attacks mentioned include sensitive information leaks, trojanized artifacts, zip bombs, memory bombs, and more. The document emphasizes the importance of monitoring, limiting permissions, and network isolation to help secure CI/CD systems.
One of the main advantages of PHP is that it allows you and your company to build up projects in no time and with immediate feedback and business value. Sometimes, however, fast growth and unprevented complexities could make your codebase more and more difficult to manage as time passes and new features are added.Domain Driven Design can be an elegant solution to the problem, but introducing it in mid-large sized projects is not always easy: you have to deal with difficulties at technical, team and knowledge levels. This talk focuses on how to approach the change in your codebase and in your team mindset without breaking legacy code or stopping the development in favor of neverending refactoring sessions.
This document discusses key principles for framework engineering based on the work of experts in the field like Douglas Schmidt, Krzysztof Cwalina, and Robert C. Martin. It emphasizes organizing frameworks to avoid duplication, managing dependencies carefully, balancing advances with backward compatibility, and designing APIs based on code samples rather than forcing an object model. It also stresses the importance of simplicity, measurement, avoiding unfinished integrations, and understanding how organizational factors impact a product.
This document discusses design for testability. It defines testability as having controllability and visibility. Controllability is the ability to apply inputs and place a system in specified states, while visibility is the ability to observe states and outputs. The document outlines why testability is important for improving quality and reducing costs. It describes how to achieve testability through good design practices like abstraction, encapsulation, and avoiding interdependence. Testability features like logging and assertions are also recommended. Development techniques like defensive programming, design by contract, and test-driven development can further enhance testability.
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Juraj Martinka
This document discusses technical debt and how CodeScene helps organizations manage it. It begins with questions about an organization's technical debt and then defines technical debt as excess complexity that slows development. CodeScene identifies technical debt based on how an organization works with code over time, prioritizing areas that are worked on often, have become complex, or are riskier after personnel changes. It analyzes trends, pinpoints problematic code, and provides metrics to help focus refactoring efforts and maximize returns. The document emphasizes that technical debt is more than just technical and recommends using CodeScene to support developers' expertise and experience in managing it.
I delivered this presentation at the Eclipse Modeling Days in NYC and Toronto, Ca: http://wiki.eclipse.org/Eclipse_Modeling_Day in November 2009.
The slides are based on the ones Jan Koehnlein presented at the Eclipse Summit Europe 09.
The document discusses code reviews, including what they are (formal vs lightweight reviews), why they are important (avoiding knowledge silos, early bug detection, improved code quality), how to conduct them (taking it easy, communicating clearly, following best practices), and the mindset needed (focus on code, not people, and be grateful). It emphasizes that code reviews can find up to 75% of defects and improve software evolvability.
Crafty communications - Dealing with the pesky people parts of communicationsAsher Glynn
The document discusses challenges with communication between different crafts and professions due to differing terminology and approaches. It provides examples of terminology differences between fields like brewing, construction, cooking, etc. It then discusses techniques for building a common language, including user stories, pair programming, design patterns, and code reviews focused on intent rather than style. It notes where these techniques are effective and how they can go wrong. It also addresses different personalities that can impact communication effectiveness.
The document discusses DevOps, including what it is, why it is useful, and how to get ready to implement DevOps practices. Specifically, it defines DevOps as combining development and operations life cycles to reduce the time between coding and production. It recommends understanding concepts like continuous integration, continuous delivery, containers, infrastructure as code, source control, testing automation, and deployment strategies. The document provides tips on tools and skills to learn in order to be DevOps ready, and suggests ways to evaluate the success of DevOps implementations by measuring key performance indicators.
Domain Driven Design (DDD) is an approach to software development that prioritizes domain knowledge. It focuses on building a shared understanding between technical and domain experts through a ubiquitous language. The fundamentals of DDD include modeling the domain, domain objects like entities and value objects, aggregates, repositories, and bounded contexts. Patterns like modules, factories, and specifications help implement the domain model. The goal is clean, knowledge-rich design focused on the business domain.
This document discusses test-driven development (TDD), including what it is, why it is used, and how to implement it. TDD is a development approach where small test cases are written before code to validate requirements, with code written only to pass failing tests. It is a philosophy of workflow and design that helps clarify expectations, validate system state through assertions, break problems into smaller pieces, and protect against regressions. The process involves writing a single small test, writing just enough code to make it pass, thinking of other inputs and edge cases, and using mocks to stand in for external resources when testing relationships between code units.
Coder sans peur du changement avec la meme pas mal hexagonal architectureThomas Pierrain
Découvrez en pratique l'architecture hexagonale, indispensable pour vos applications complexes !
Ce style d'architecture permet d'adapter votre code à tout changement de technologie sans souffrir. Si vous aimez changer de frameworks ou de librairies, tester correctement ou appliquer le Domain-Driven Design, alors vous avez besoin d'architecture hexagonale !
Avec des exemples en code Java, et au travers d’un kata d’architecture auquel vous pourrez participer, nous vous montrerons les pièges à éviter et comment mettre en œuvre ce pattern sans trop galérer, et ce dès votre retour au bureau !
Similar to Epic.NET: Processes, patterns and architectures (20)
This presentation provides valuable insights into effective cost-saving techniques on AWS. Learn how to optimize your AWS resources by rightsizing, increasing elasticity, picking the right storage class, and choosing the best pricing model. Additionally, discover essential governance mechanisms to ensure continuous cost efficiency. Whether you are new to AWS or an experienced user, this presentation provides clear and practical tips to help you reduce your cloud costs and get the most out of your budget.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
A Comprehensive Guide to DeFi Development Services in 2024Intelisync
DeFi represents a paradigm shift in the financial industry. Instead of relying on traditional, centralized institutions like banks, DeFi leverages blockchain technology to create a decentralized network of financial services. This means that financial transactions can occur directly between parties, without intermediaries, using smart contracts on platforms like Ethereum.
In 2024, we are witnessing an explosion of new DeFi projects and protocols, each pushing the boundaries of what’s possible in finance.
In summary, DeFi in 2024 is not just a trend; it’s a revolution that democratizes finance, enhances security and transparency, and fosters continuous innovation. As we proceed through this presentation, we'll explore the various components and services of DeFi in detail, shedding light on how they are transforming the financial landscape.
At Intelisync, we specialize in providing comprehensive DeFi development services tailored to meet the unique needs of our clients. From smart contract development to dApp creation and security audits, we ensure that your DeFi project is built with innovation, security, and scalability in mind. Trust Intelisync to guide you through the intricate landscape of decentralized finance and unlock the full potential of blockchain technology.
Ready to take your DeFi project to the next level? Partner with Intelisync for expert DeFi development services today!
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3Data Hops
Free A4 downloadable and printable Cyber Security, Social Engineering Safety and security Training Posters . Promote security awareness in the home or workplace. Lock them Out From training providers datahops.com
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
4. Ch oose D.D.D.
✔ Cool? Just expensive!
✔ Requires experience
✔ For applications
business critical
operative
complex beyond tech
✔ Not for
data driven apps
vendor-driven teams
6. Ch oose a Modeler
✔ Humble ✔ Out of touch devs
✔ Motivated ✔ Inexperienced devs
✔ Smart ✔ Technologists
✔ Fearless ✔ Hackers
✔ Really skilled in OOP ✔ Unmotivated people
✔ Diligent ✔ Sociopathics
✔ Comunicative ✔ Leaving company
✔ Responsible ✔ Yielding people
(responsum abilem)
7. D i s c ov e r th e Cont ex t s
Creative ✔ Identify the Core
Collaboration ✔ Identify supporting
contexts
Domain Expert
(Business Experience) ✔ Name each context
vs think to namespaces
Modeler ✔ git add VISION.txt
(Development Needs)
(vision statement)
✔ Look for dependencies
Track Decisions!
✔ Schedule works
8. Distill Languages
✔ Bounded Context → Point of View / Language
✔ Context Name → Namespace (Project?)
✔ Distill Language → Write Contracts (POCO)
ITERATE ! ! !
Entities, Value Objects, Services +
Events & Exceptions (no checked exceptions in C#!)
✔ Share with clients → Look for questions
(devs & archs) and feedbacks!!!
✔ Dwelve into (until the model is clear to the team)
OUTPUT CODE ! ! !
(well documented)
9. D e v Po o l . S t a r t ( . . . )
Once a Context is ready and known to the team, the
related development tasks can START.
You can parallelize (with or without Epic):
✔ Infrastructure (persistence, log, bus, cache...)
✔ User Interface (a good MVP framework can help here)
✔ Exposed Services (Soap / ReST / WCF...)
Meanwhile modelers can distill the next context.
10. Measure (to estimate)
✔ Customer feedbacks Look For
✔ # / € of Bugs
✔ Global Optimum
✔ Modeling Effort
✔ Explicitness/Precision
✔ Development Effort
✔ Shared Languages
✔ Breakthroughs
✔ Fast Evolution
!
✔ Refactorings
Analyze Failures
✔ Parallelization issues
to
✔ Reuse opportunities
Reduce Risks
11. Pa t t e r n s
✔ Plain old C# Objects Shared
✔ Bounded Roles modeling grammar
✔ Shared Identifiers Born from experience
✔ CQS & Idempotence ✔ work together
they help each other
✔ Observable Entities
✔ reliable
✔ SOLID Principles most valuable asset here
✔ Linq Repositories ✔ complete the blue book
✔ Single Mutable State lower the learning curve
standardize modelers' skills
http://epic.tesio.it/doc/manual.html
12. ●
Plain old C# Objects
Aim for Avoid
✔ Nothing but business ✔ Framework-like naming
Keep it simple conventions
Consistent for Experts ✔ Your own abstractions
✔ Typed explicitness ✔ Technological
Declarative: bits are dependencies
cheaper than bugs!
Explicit: dll reference
✔ Stable contracts Implicit: virtual members
Interfaces, Identifiers, ✔ To worry about db
EventArgs, Exceptions
13. Bounded Roles
✔ Points of view
Partition complexity
Keep the language
consistent and simple
Require translations
✔ Often present in U.L.
✔ Explicit access rules
✔ Are junction points
Belong to Model
Belong to Infrastructure
14. S h a r e d I d e n t i fi e r s
✔ Concrete Contracts
Immutable
Strongly typed
!(string || long)
Validate in constructor
Key in Identity Maps
✔ Decouple entities SHARED ! ! !
✔ Decouple contexts ✔ Between players
✔ Avoid naming ✔ Between layers
conventions ✔ Between contexts (often)
15. C.Q.S. & Idemp otence
Commands Queries
✔ Void Imperative ✔ Return value
(out params, if needed) ✔ Free from side-effect
✔ Have side-effects ✔ Failures are bugs!
✔ Throw Typed Exceptions ✔ Thread safe (easily?)
✔ Fire Events (properly) (V.O.'s Factories here!)
(Entities' Factories here!)
Neither should change the arguments!
Both should be IDEMPOTENT (this = 1st operand)
16. Observable Entities
Identity Evolution No Domain Events?
✔ Implicit
C# as reporter need to read the code
✔ A bit Java oriented
✔ Who? The Sender!
✔ Wait, we have them!
✔ What? Event Name
You just need an observer
most of times, contains inside repository or
a verb in past tense Epic.Server
✔ Where? EventArgs!
✔ When? On callback! What's about
Earthquakes?
✔ Why? Decoupling.
17. Single Resp onsibility
The One Reason
✔ Business evolution
✔ deeper insights
✔ bug fixes
Split contexts properly
Forget # of methods
No “helper” overloads!
18. Open - Closed
✔ Well bounded contexts
✔ Small design decisions
Template methods (!)
SerializableAttribute
Single Mutable State
Allow Binary Reuse
Break (with Branch)
on Deeper Insight
19. Li s kov S u b st it ut io n
✔ Always forgot
✔ Concerns abstractions
✔ Easy... if you don't
abstract on your own
small inheritance depth
(most of times...)
✔ Developers hate it
(until debug)
What's about events?
And exceptions?
20. I n t e r fa c e S e g r e g at i o n
✔ Clear Contexts == Small Classes
✔ Anti-corruption layers (domain services)
✔ Shared kernels
contain contracts only
with or without a role
should emerge from existing code
should be carefully analized (no “coding convention”)
✔ Avoid multiple inheritance
different interfaces == divergent evolutions
21. D e p e nde nc y Inv e rs ion
a)High-level modules Domain Models
should not depend on Contracts Code
low-level modules. (highest levels)
Both should depend on
abstractions. Any thing else
b)Abstractions should not ✔ Persistence
depend on details. ✔ User Interfaces
Details should depend
on abstractions. ✔ Infrastructure
– Robert Martin (2002) Epic itself is replaceable
(lower levels)
22. Lin q Re p os ito r ie s
✔ Generic Repositories IQueryable<TEntity>
Consistent API ✔ Explicit (and complete)
– Select<T>(QueryObj)
stable and consistent
– Save<T>(T) (?!)
needs declarative types
– Delete<T>(T) (?!)
Easy with O/RM
✔ Decouple
IMPLICIT! ! ! clients ignore executors
✔ Custom repositories can inject infrastructure
explicit interfaces (pro)
✔ Derive IRepository<T>
harder to maitain (cons) ease versioning
can blend to custom rep
23. Single Mutable State
✔ Optional design pattern for entities
preserves the model expressivity
allows concurrent access to entities
✔ Fine grained locks
a single field contain the state
the state
– is immutable
– replicate entity's api but instead of void returns next state
on command: execute, compare & swap
✔ Designed for Epic.Server
a “transparent” CQRS grid, at need
24. A r chit e c t ure s
Technological req. Business req.
✔ Modularization ✔ MiFID (2004, 2006... 2011?)
binary reuse (up to views) complex financial rules
decoupled cooperation on human processes
✔ High scalability “implemented” by banks
“strict” compliance
✔ Easy integration ✔ Dispatch orders!
● SOA is not enough!
Sync with trading online
No Ring to rule them all!
25. Ch oosing th e Business
✔ We decided to protect the Domain Knowledge
customers find techicalities weird
customers love who talk their language
✔ Looking for perceptible excellence
we want to compete on value instead of price
we want to build custom applications
– rapidly adapted to the customers' environments and needs
– on top of stable products (and assemblies)
We built a set of brand-new tools!
26. Innovation & Risk
Frameworks are Risky Investments!
✔ P = f(D) + f(A)
P = productivity gain
f = architects' skills
● technical, social, economic
D = investment in design & development (doc & edu included)
A = alternatives' evaluation
Found no alternatives?
Build next Secret Weapon!
34. Dress the Model
...with Epic's petals!
✔ Epic.Linq
Composable Query Provider
✔ Epic.Proxy
More than AOP
✔ Epic.Poem
Asp.NET, WPF, MonoTouch
✔ Epic.Security
✔ Epic.Server
Transparent CQRS/ES
35. An Epic Investment
✔ Technically challenging
✔ Estimated ~ 400.000 €
dual-licensing model
✔ Still Work in Progress
15% done in one year
Looking for developers
✔ Target niche markets
DDD applications only
For skilled OOP devs
World wide