
Programare .NET
.NET Programming
C# and F# as two answers to the same engineering problems.
Record
About
Modern .NET taught through two languages that solve the same problems in different ways. The first half builds C# from types and control flow to object-oriented design, generics, LINQ, and the processing of XML, JSON, and CSV data. The second half turns to F# and functional programming: pattern matching, algebraic types, immutable collections, and railway-oriented error handling, closing with C# and F# working side by side in one solution.
Every chapter ends with a practical application that has complete code, its expected output, and a reference solution verified in a companion repository.
Contents
translated from Romanian
Part I · C#
- 1Introduction to the .NET PlatformA Brief History: From .NET Framework to Modern .NET · The Architecture of the .NET Platform · .NET Programming Languages · Development Environments · The Structure of a .NET Project
- 2Data Types, Variables, and Operators in C#The Structure of a C# Program · Primitive Data Types · Variables and Declarations · Type Conversions · Operators and Expressions · Value Types vs. Reference Types · Tuples and Deconstruction
- 3Control Structures and MethodsConditional Statements · Loops · Methods · Parameter Passing · Recursion · Comments and XML Documentation in Code
- 4Object-Oriented Programming in C#Classes and Objects · Class Members · Constructors · Access Modifiers · Static Members and Static Classes ·
recordandrecord structTypes - 5Inheritance, Interfaces, and PolymorphismInheritance · Abstract Classes and Abstract Methods · Interfaces · Polymorphism · Generic Types · Extension Members (C# 14) · Object-Oriented Design Principles: An Introduction to SOLID
- 6Collections, Lambda Expressions, and LINQArrays · Generic Collections · Delegates and Events · Lambda Expressions · LINQ Fundamentals · Advanced LINQ Operators
- 7Error Handling in C#The .NET Exception Mechanism · Common Exceptions · Throwing Exceptions:
throwandthrow ex· Creating Custom Exceptions · Error-Handling Best Practices - 8Data Processing with LINQ: XML, JSON, and CSVLINQ to XML · Working with JSON · Processing CSV Files · Transforming Between Formats
Part II · F#
- 9Introduction to Functional Programming with F#The Functional vs. the Imperative Paradigm · The Structure of an F# Program · Primitive Data Types in F# · Type Inference · The
OptionandTupleTypes · Defining and Calling Functions - 10Functions and Pattern Matching in F#Higher-Order Functions · Partial Application and Currying · Function Composition · Recursion and Tail Recursion · Pattern Matching ·
matchExpressions in Functions: ThefunctionKeyword - 11Algebraic Data Types in F#Records · Discriminated Unions · Units of Measure · Type Abbreviations · Modules and Code Organization
- 12Collections and Data Processing in F#Lists ·
ArrayandResizeArray· Sequences (Seq) and Lazy Evaluation ·MapandSet· The Pipe-Forward and Pipe-Backward Operators · Composition Operators · Custom Operators · List Comprehensions and Sequence Expressions - 13Functional-Style Error HandlingThe
ResultType: Typed Success or Failure · TheOptionType for Absent Values · Railway-Oriented Programming · Computation Expressions · Exception Handling in F#:try-with· Data Validation: A Complete Pattern - 14Processing CSV and XML Files in F#Processing CSV Files with the Standard Library · Processing XML Files with
FSharp.Data· Comparison: Data Processing in C# vs. F# - 15C# and F# InteroperabilityUsing C# Types from F# · Exposing F# Types to C# · Using Common .NET Libraries · Conversions Between F# and C# Types · Developing Mixed C# and F# Components
Appendices
- ASetting Up the Development Environment
- BC# Quick Reference
- CF# Quick Reference
Reviews
“This work approaches programming on the .NET 10 LTS platform in a didactic, textbook manner, from two complementary perspectives that answer one and the same problem: developing reliable, maintainable applications on the same runtime platform.”
„Lucrarea de față abordează programarea pe platforma .NET 10 LTS într-o manieră didactică, de manual, din două perspective complementare, ce răspund la o aceeași problemă – dezvoltarea de aplicații fiabile și ușor de întreținut pe aceeași platformă de execuție.”
“I consider the work well structured. It contains relevant, up-to-date information and is valuable teaching material for students, as well as for anyone else interested in programming on the .NET platform.”
„Consider că lucrarea este bine structurată, conține informații relevante și actuale și reprezintă un material didactic valoros pentru studenți, dar și pentru alte persoane interesate de programarea pe platforma .NET.”
“This book is the result of a passion for software engineering, born of the pragmatic challenges inherent in developing any commercial product and refined through the author's teaching, which offers, step by step, an exploration of unusual depth into .NET programming.”
„Această carte este rezultatul pasiunii pentru ingineria software, născută din provocările pragmatice proprii dezvoltării oricărui produs comercial și desăvârșită prin actul didactic al autorului, care oferă, pas cu pas, o incursiune de o profunzime aparte în programarea .NET.”
“I find that the work has a coherent structure, broad thematic coverage, and high teaching potential.”
„Apreciez că lucrarea are o structură coerentă, o acoperire tematică amplă și un potențial didactic ridicat.”
Cite
@book{bocan2026dotnet,
author = {Bocan, Valer},
title = {Programare .NET},
publisher = {Editura Politehnica},
address = {Timișoara},
year = {2026},
pages = {527},
isbn = {978-606-35-0689-5},
language = {romanian},
note = {In press}
}

