C#
Alexey Zimarev
Wdrożenie zasad projektowania dziedzinowego (DDD) jest szansą na uzyskanie doskonałych wyników projektowania oprogramowania dla złożonych wymagań biznesowych. Aby podejście DDD ujawniło swoje zalety, konieczne jest zrozumienie potrzeb użytkowników i zidentyfikowanie właściwych problemów do rozwiązania. Dopiero potem można przystąpić do budowania modeli. Zaangażowanie zainteresowanych stron biznesowych w ten proces nie zawsze jednak przebiega efektywnie. Konieczne jest zrozumienie natury modeli dziedzinowych opartych na zachowaniu oraz tego, jaką rolę odgrywają one w budowie zwinnych i zmodularyzowanych systemów. Dzięki tej książce zrozumiesz praktyczne znaczenie złożoności dziedziny i behawioralnych aspektów języka dziedzinowego. Poznasz podstawowe zasady DDD i nauczysz się używać takich narzędzi jak EventStorming, Event Sourcing i CQRS. Dowiesz się, jak stosuje się DDD do różnych stylów architektonicznych, takich jak REST, systemy reaktywne i mikrousługi. Nauczysz się pracować we frameworku .NET Core 2.2, aby przetłumaczyć modele dziedzinowe na wykonywalny kod C#, oraz Vue.js, aby zbudować frontend aplikacji. Nie zabrakło tutaj również zagadnień refaktoryzacji kodu, numerowania wersji zdarzeń i migracji. W rezultacie poszczególne zespoły w organizacji będą mogły pracować elastyczniej i efektywniej dzięki ulepszonym usługom i oddzielonym interakcjom. W książce między innymi: angażowanie interesariuszy biznesowych do rozwiązywania złożoności dziedziny koncepcja kontekstu ograniczonego i agregatu projektowanie modeli tymczasowych na podstawie zachowania wzorzec CQRS i modele odczytu wykorzystujące rzutowania jednokierunkowy przepływ interfejsu użytkownika w Vue.js praktyczne stosowanie zasad projektowania dziedzinowego Programowanie dziedzinowe: tak się trafia w sedno potrzeb!
Effective .NET Memory Management. Build memory-efficient cross-platform applications using .NET Core
Trevoir Williams
In today’s software development landscape, efficient memory management is crucial for ensuring application performance and scalability. Effective .NET Memory Management addresses this need by explaining the intricacies of memory utilization within .NET Core apps, from fundamental concepts to advanced optimization techniques. Starting with an overview of memory management basics, you’ll quickly go through .NET’s garbage collection system. You’ll grasp the mechanics of memory allocation and gain insights into the distinctions between stack and heap memory and the nuances of value types and reference types. Building on this foundation, this book will help you apply practical strategies to address real-world app demands, spanning profiling memory usage, spotting memory leaks, and diagnosing performance bottlenecks, through clear explanations and hands-on examples. This book goes beyond theory, detailing actionable techniques to optimize data structures, minimize memory fragmentation, and streamline memory access in scenarios involving multithreading and asynchronous programming for creating responsive and resource-efficient apps that can scale without sacrificing performance. By the end of this book, you’ll have gained the knowledge to write clean, efficient code that maximizes memory usage and boosts app performance.
Steven Antonio Christian, Patrick B. Thomas
Virtual reality (VR) has emerged as one of the most transformative mediums of the 21st century, finding applications in various industries, including gaming, entertainment, and education.Enhancing Virtual Reality Experiences with Unity 2022 takes you into the fascinating realm of VR, where creativity meets cutting-edge technology to bring tangible real-world applications to life. This immersive exploration not only equips you with the essential skills needed to craft captivating VR environments using Unity's powerful game engine but also offers a deeper understanding of the philosophy behind creating truly immersive experiences.Throughout the book, you’ll work with practical VR scene creation, interactive design, spatial audio, and C# programming and prepare to apply these skills to real-world projects spanning art galleries, interactive playgrounds, and beyond. To ensure your VR creations reach their full potential, the book also includes valuable tips on optimization, guaranteeing maximum immersion and impact for your VR adventures.By the end of this book, you’ll have a solid understanding of VR’s versatility and how you can leverage the Unity game engine to create groundbreaking projects.
Functional Programming with C#. Unlock coding brilliance with the power of functional magic
Alex Yagur
In an era where software complexity is increasing by the day, functional programming offers a paradigm that simplifies code maintenance and enhances reliability. Functional Programming with C# takes you on an exhaustive journey into functional programming within C#. The book familiarizes you with the core principles and benefits of functional programming, juxtaposing it with imperative and object-oriented paradigms. You’ll get to grips with the functional features of C# and learn to write expressive, modular code through expressions, pure functions, and higher-order functions. As you advance, you’ll explore advanced concepts such as error handling and asynchronous programming, which will equip you with the practical skills that you need to tackle real-world challenges. By comparing functional programming in C# with other languages and providing additional resources, this book ensures that you’re well-equipped to continue your journey toward mastery in functional programming. By the end of this book, you’ll have gained a thorough understanding of functional programming techniques, such as recursion, memoization, and composition, empowering you to write robust, maintainable code.
Gray Hat C#. Język C# w kontroli i łamaniu zabezpieczeń
Brandon Perry
C# to nowoczesny język programowania, który został od podstaw zaprojektowany jako obiektowy. Ta dojrzała technologia jest często wybierana przez twórców oprogramowania, również tego służącego do pokonywania zabezpieczeń systemów. Dzięki temu, że platforma .NET jest oprogramowaniem open source, w C# można pisać kod, który bez problemu będzie działał w każdym systemie operacyjnym. Co prawda język ten jest prosty i łatwy do nauczenia się, jednak dopiero gruntowna znajomość C# umożliwia efektywne tworzenie narzędzi związanych z bezpieczeństwem, służących choćby do wyszukiwania luk w infrastrukturze czy prowadzenia testów penetracyjnych. Ta książka jest przeznaczona dla specjalistów ds. bezpieczeństwa, którzy chcą korzystać z języka C# do takich zadań jak fuzzowanie, skanowanie w poszukiwaniu luk zabezpieczeń i analiza złośliwego oprogramowania. Opisano tu zarówno podstawy języka C#, jak i jego dość zaawansowane funkcje. Przedstawiono szereg bibliotek dostępnych dla tego języka. Pokazano, jak pisać kod wyszukujący luki w zabezpieczeniach i jak tworzyć eksploity. Przedstawiono sposoby korzystania z takich narzędzi jak Nessus, sqlmap i Cuckoo Sandbox. Dzięki technikom zaprezentowanym w książce administrator bezpieczeństwa bez problemu zautomatyzuje nawet najbardziej żmudne codzienne zadania! W tej książce między innymi: Podstawowe i zaawansowane funkcjonalności języka C# Generowanie kodu ładunków, również wieloplatformowych Skanery, w tym OpenVAS, Nessus i Nexpose Automatyczna identyfikacja luk umożliwiających wstrzyknięcie kodu SQL Tworzenie w C# narzędzi do inżynierii wstecznej C#. Sprawdź swój system zabezpieczeń! Brandon Perry jest programistą i gorącym zwolennikiem idei open source. Odkąd pojawiło się środowisko Mono, pisze aplikacje w języku C#. Tworzy też moduły dla frameworka Metasploit, analizuje pliki binarne i zarządza ciekawymi projektami (https://volatileminds.net/). Fascynuje się badaniami nad bezpieczeństwem systemów informatycznych. Chętnie dzieli się swoją wiedzą, pisze książki i pomaga innym w tworzeniu solidniejszego oprogramowania.
Marcelo Guerra Hahn
Developing graphical user interfaces in C# can feel overwhelming with so many frameworks and tools to choose from. This book simplifies the journey by teaching GUI fundamentals through small, structured, and practical examples.You start with core GUI concepts, event driven programming, and basic interface design. Then you build simple web apps using Blazor and WebAssembly, learning about components, rendering, and data binding. Next, you explore cross platform development with .NET MAUI, working with XAML, layouts, controls, and basic app logic. Finally, you create Windows desktop applications with WinUI 3, using common controls and foundational patterns such as MVVM and data binding.Rather than focusing on complex enterprise architecture, the book builds your skills step by step. Each chapter reinforces key ideas through clear examples designed to build confidence and practical understanding.Written by Marcelo, a developer with over 18 years of experience in C#, C++, Azure, and data driven systems, this book helps you gain clarity in GUI development. By the end, you will be able to create simple, well structured web and desktop interfaces in C# and understand the core concepts behind them.
Gaurav Aroraa, Jeffrey Chilberto
Design patterns are essentially reusable solutions to common programming problems. When used correctly, they meet crucial software requirements with ease and reduce costs. This book will uncover effective ways to use design patterns and demonstrate their implementation with executable code specific to both C# and .NET Core.Hands-On Design Patterns with C# and .NET Core begins with an overview of object-oriented programming (OOP) and SOLID principles. It provides an in-depth explanation of the Gang of Four (GoF) design patterns, including creational, structural, and behavioral. The book then takes you through functional, reactive, and concurrent patterns, helping you write better code with streams, threads, and coroutines. Toward the end of the book, you’ll learn about the latest trends in architecture, exploring design patterns for microservices, serverless, and cloud native applications. You’ll even understand the considerations that need to be taken into account when choosing between different architectures such as microservices and MVC.By the end of the book, you will be able to write efficient and clear code and be comfortable working on scalable and maintainable projects of any size.
Alexey Zimarev
Developers across the world are rapidly adopting DDD principles to deliver powerful results when writing software that deals with complex business requirements. This book will guide you in involving business stakeholders when choosing the software you are planning to build for them. By figuring out the temporal nature of behavior-driven domain models, you will be able to build leaner, more agile, and modular systems.You’ll begin by uncovering domain complexity and learn how to capture the behavioral aspects of the domain language. You will then learn about EventStorming and advance to creating a new project in .NET Core 2.1; you’ll also and write some code to transfer your events from sticky notes to C#. The book will show you how to use aggregates to handle commands and produce events. As you progress, you’ll get to grips with Bounded Contexts, Context Map, Event Sourcing, and CQRS. After translating domain models into executable C# code, you will create a frontend for your application using Vue.js. In addition to this, you’ll learn how to refactor your code and cover event versioning and migration essentials.By the end of this DDD book, you will have gained the confidence to implement the DDD approach in your organization and be able to explore new techniques that complement what you’ve learned from the book.