.NET 8 Consulting
- .NET 8: .NET is a free, cross-platform, development framework open-sourced by Microsoft. It was released in November 2023. It's used to build web, mobile, desktop, games, IoT and other applications.
- .NET Aspire: A framework introduced to simplify the development of cloud-native applications using .NET. It aims to streamline the complexity involved in building such applications, offering a curated set of components optimized for cloud-native environments.
- Awarded experts: Cazton team comprises of experts that have been awarded the Microsoft Regional Director and Most Valuable Professional awards. Our experts happen to be Azure insiders, ASP.NET advisors, Azure Cosmos DB insiders and Docker insiders.
- Top clients: At Cazton, we help Fortune 500, large, mid-size and startup companies with web and app development, deployment, consulting, recruiting services and hands-on training services. Our clients include Microsoft, Broadcom, Thomson Reuters, Bank of America, Macquarie, Dell and more.
The software development realm is continuously evolving, and the advent of .NET 8, the latest long-term support (LTS) version, marks a significant milestone in this journey. Packed with a myriad of enhancements, optimizations, and fresh capabilities, this release represents a culmination of extensive refinements spanning performance, stability, security, and tooling. .NET 8 empowers developers to craft intelligent, cloud-native applications and services that effortlessly scale, underlining a leap forward in the landscape of software development.
From redefined performance benchmarks and cloud-native frameworks like .NET Aspire to container enhancements, AI integration, and advancements in ASP.NET Core and Entity Framework Core, the features and improvements in .NET 8 redefine possibilities for developers. This comprehensive overview encapsulates the diverse facets of .NET 8, showcasing its potential to reshape the development landscape and elevate project efficiency and performance.
What's new in .NET 8?
- Performance redefined: Performance lies at the heart of .NET 8, delivering an unprecedented level of speed and efficiency. .NET 8 thrives on speed and efficiency, boasting a range of enhancements like Dynamic Profile-Guided Optimization that tailors apps based on real-world usage, potentially speeding them up by 20%. It taps into AVX-512 for swift parallel data handling, supercharging processing power. Plus, upgraded primitive types directly handle UTF-8 formatting and parsing, streamlining tasks without extra encoding steps, showcasing .NET 8s focus on efficiency.
- .NET Aspire: .NET Aspire emerges as a curated stack tailored for building resilient and observable cloud-native applications. Enriched with telemetry, resilience, configuration, and health checks as default features, this stack simplifies the development journey. It's simple yet sophisticated local developer experience ensures seamless acquisition and configuration of essential dependencies, making it a go-to choice for cloud-native applications.
- Container enhancements: .NET 8 redefines containerization with enhanced security and productivity features. Every .NET image now includes a non-root user configuration by default, fortifying container security with minimal effort. The streamlined SDK tooling enables image publication sans Dockerfile, further streamlining the deployment process. Reduced image sizes contribute to faster deployment, while experimental image variants promise even smaller footprints, maximizing efficiency and security.
- Native AoT: The journey toward sustainable computing takes a significant stride with Native Ahead-of-Time (AoT) compilation. This feature compiles .NET apps into native code, minimizing memory usage and enabling instant startup, eliminating the need for JIT compilation at runtime. The deployment of only necessary code modules renders apps compatible with restricted environments, optimizing performance and flexibility.
- AI integration: In a nod to the AI revolution, .NET 8 seamlessly integrates with generative AI and large language models. The System.Numerics library receives enhancements tailored for compatibility with generative AI workloads, integrating Tensor Primitives for enhanced functionality. Collaboration with leading partners such as Azure OpenAI and Microsoft Teams ensures effortless access to a plethora of AI models and services through their respective SDKs. The open-source Semantic Kernel SDK further simplifies the integration of these AI components into both new and existing applications, enabling developers to craft innovative user experiences effortlessly.
- Blazor enhancements: Blazor in .NET 8 offers a full-stack web UI, combining server and client capabilities for web applications. Optimizations focused on page load time and scalability enhance the user experience. Blazor Server and Blazor WebAssembly can now work together in the same app, seamlessly transitioning users between server and client runtime. Improved runtime for WebAssembly, known as "Jiterpreter," accelerates .NET code execution, delivering faster performance. Enhanced authentication and identity management now include full Blazor-based Identity UI support.
- .NET MAUI advancements: .NET MAUI streamlines cross-platform app development with a unified project system and codebase for WinUI, Mac Catalyst, iOS, and Android. Native Ahead-of-Time (AOT) compilation, experimental for iOS-like platforms, enhances performance. The introduction of a Visual Studio Code extension for .NET MAUI facilitates the development of cross-platform .NET mobile and desktop apps. Support for the latest iOS (Xcode 15) and Android API 34 enhances compatibility and target options. Noteworthy quality improvements in performance, controls, UI elements, and platform-specific behaviors further elevate the user experience.
- C# 12 features: C# 12 simplifies coding with a focus on developer productivity. Primary constructors can now be created in any class or struct, eliminating boilerplate code for field and property initialization. Enhanced syntax for arrays, spans, and collection types streamlines code writing, making it more concise and expressive. Default parameter values in lambda expressions eliminate the need for overloading or null checks for handling optional arguments. The "using" alias directive now allows aliasing any type, not just named types, improving code readability.
- Support across Visual Studio Tools: Visual Studio 2022 17.8 release aligns with .NET 8, integrating support for .NET 8 and C# 12 language enhancements, alongside various productivity features. Visual Studio Code coupled with the C# Dev Kit offers a versatile environment for experimenting and learning .NET 8, available across Linux, macOS, and GitHub Codespaces. The GitHub Codespaces template for .NET, equipped with the .NET SDK and pre-configured extensions, provides a swift starting point for .NET 8 development.
Build a Chatbot with Azure OpenAI and .NET 8
This video demonstrates how to construct an Azure OpenAI Chat Bot that enables you to interact with your proprietary data. Throughout the tutorial, you'll learn to develop the API, UI, and ChatBot from the ground up. This will empower you to ask questions in natural language and seamlessly engage with the system you build. Learn more.
What is .NET Aspire?
.NET Aspire is a framework introduced to simplify the development of cloud-native applications using .NET. It aims to streamline the complexity involved in building such applications, offering a curated set of components optimized for cloud-native environments. The framework includes various tools and features designed to enhance productivity, observability, and resilience.
Here's an overview of the key aspects of .NET Aspire:
Goals and Features:
- Cloud-Native development focus: .NET Aspire aims to make .NET one of the most productive platforms for building cloud-native applications.
- Resilience and configurability: It includes components for resilience, observability, service discovery, health checks, and configuration by default.
- Developer experience: Simplifies developer experiences by providing a comprehensive dashboard for monitoring, logs, traces, and diagnostics.
Components and Functionality:
- Opinionated stack: Offers opinionated stacks to simplify app complexity, providing enhanced components for resilience, observability, and service discovery.
- .NET Aspire components: These are curated libraries configuring SDKs for cloud environments, providing JSON Schema-based configurations, resilience patterns, health checks, and integrated observability.
- ServiceDefaults Project: Contains common service-centric logic applied to all projects, such as service discovery, telemetry setup, and health check endpoints.
Developer Dashboard:
- Diagnostic Hub: Provides a centralized dashboard for developers, offering insights into logs, metrics, distributed traces, and project statuses.
- Observability: Enables developers to observe and analyze app behavior through structured logs, traces, and metrics, aiding in troubleshooting and performance optimization.
Application Model and Orchestration:
- AppHost Project: Orchestrates app dependencies, configurations, and service connections, simplifying communication between various components.
- Service Discovery: Offers a service discovery library for seamless integration with HttpClientFactory, YARP, Kubernetes, and Azure Container Apps.
Deployment and Compatibility:
- Deployment Process: Facilitates deployment to cloud environments using container-first approaches and a manifest definition describing app relationships and dependencies.
- Compatibility with Existing Apps: Allows incremental adoption for existing applications with tooling support for incorporating Aspire's components and capabilities.
Adoption and Community Engagement:
- Open-Source Project: .NET Aspire is part of the .NET platform and is open source, encouraging community engagement, feedback, and improvements via GitHub.
In essence, .NET Aspire acts as a comprehensive framework aimed at simplifying the intricate process of developing cloud-native applications using .NET, providing tools, components, and a streamlined developer experience.
What's new in ASP.NET Core 8?
The latest iteration of ASP.NET Core in .NET 8 heralds a new era in web development, offering a comprehensive solution that spans both the front-end and back-end realms. Seamlessly bridging the gap between front-end interactivity and robust backend services, this release empowers developers to craft captivating, high-performance web experiences with ease. From the innovation of Blazor to the reliability and security of backend APIs, ASP.NET Core in .NET 8 stands as the quintessential tool for building cloud-native applications. Moreover, enhanced tooling within Visual Studio and Visual Studio Code elevates productivity, making full-stack development accessible to every developer.
Let's delve into the array of new features and enhancements that accompany ASP.NET Core in .NET 8.
- Performance boost: ASP.NET Core in .NET 8 sets a new benchmark for speed. Notably, it exhibits an impressive 18% increase in performance on the Techempower JSON benchmark and a remarkable 24% improvement on the Fortunes benchmark compared to its predecessor, .NET 7. The Fortunes scenario is closer to a real-world workload, including database access and server-side HTML rendering.
18% improvement: Achieving nearly 1 million requests per second with ASP.NET Core Minimal APIs.
24% improvement: over 300K requests per second with ASP.NET Core.
- Native AOT support: A standout feature in .NET 8 is the introduction of native Ahead-of-Time (AOT) compilation support for ASP.NET Core, primarily tailored for cloud-native API applications. This functionality enables the publication of ASP.NET Core apps as self-contained, AOT-compiled native code executables. While the integration of native AOT in ASP.NET Core is groundbreaking, not all features or commonly used libraries are immediately compatible. .NET 8 initiates this support, particularly focusing on Minimal APIs, gRPC, and cloud-based deployments. However, the benefits are manifold:
- Reduced footprint: Applications published with native AOT yield smaller deployment sizes, leading to compact container images and expedited deployment times in containerized scenarios.
- Swift startup times: Native AOT applications boast significantly faster startup times, eliminating JIT compilation delays. This expedites service readiness and streamlines deployment with container orchestrators.
- Lower memory utilization: By default, ASP.NET Core apps leveraging native AOT enjoy reduced memory demands, enhancing deployment density and scalability, particularly beneficial for high-load workloads.
- Revolutionizing full-stack Web UI development: Blazor in .NET 8 revolutionizes full-stack web UI development by merging Blazor WebAssembly, Blazor Server, and advanced server-side rendering techniques into a unified, component-based framework. This evolution introduces features like static server-side rendering for immediate HTML display without client code downloads, streamlining page loading and enhancing user experience. Dynamic streaming rendering swiftly displays content while managing asynchronous tasks, ensuring a responsive interface. Adaptive interactivity through the @rendermode directive optimizes performance, seamlessly transitioning users between Blazor Server and Blazor WebAssembly, improving load times and scalability.
- Advancements in .NET WebAssembly: In .NET 8, WebAssembly execution undergoes significant improvements, leveraging a new Jiterpreter-based runtime that enhances performance, accelerating component rendering by 20% and doubling JSON deserialization speed. Hot Reload now supports a wider range of edit types, mirroring CoreCLR capabilities and enabling seamless editing of generic types. Moreover, the introduction of WebCIL, a web-friendly packaging format for Blazor WebAssembly apps, streamlines deployment by removing Windows-specific elements from .NET assemblies, fostering leaner and more efficient application distribution. These advancements not only boost performance but also empower developers with agile development and deployment capabilities, facilitating the creation of faster and more responsive web experiences.
- Streamlined identity management: ASP.NET Core introduces dedicated API endpoints facilitating seamless interaction with ASP.NET Core Identity, empowering developers with programmable access for user registration and login functionalities. This simplification streamlines the setup of authentication processes for browser and mobile client applications, catering to both cookie and token-based authentication.
- Form binding in ASP.NET Core: ASP.NET Core strengthens security with a unified anti-forgery middleware that validates tokens across multiple frameworks like Blazor, Minimal APIs, and MVC, reinforcing defenses against cross-site request forgery (CSRF) attacks. Minimal APIs' form binding upgrades to handle complex types from form inputs, aligning its functionality with Blazor's robust binding logic, streamlining form processes and enhancing the ASP.NET Core development experience overall.
- SignalR's stateful reconnect: SignalR introduces a stateful reconnect feature, minimizing perceived downtime during network disconnects. Configurable within SignalR, this feature orchestrates synchronized reconnections, replaying missed messages and managing buffers seamlessly, ensuring smoother transitions and enhancing connectivity resilience for real-time application users, notably reducing disruptions caused by transient network interruptions.
- Keyed dependency injection: ASP.NET Core 8 introduces Keyed DI, enabling multiple service implementations distinguished by names, fostering diverse service usage. This feature proves crucial in scenarios demanding varied service implementations, notably in multi-tenant applications for customizations without complexity. It also aids feature management, allowing seamless toggling and simplified alternative implementation testing, marking a significant step toward cleaner, adaptable codebases for ASP.NET Core developers.
- App monitoring with enhanced metrics: ASP.NET Core unveils an advanced metric monitoring system powered by System.Diagnostics.Metrics, a new cross-platform API developed in collaboration with the OpenTelemetry community. This upgraded system introduces diverse measurements like counters, gauges, and histograms, offering powerful reporting with multi-dimensional values. Aligned with OpenTelemetry standards, this integration deepens connectivity within the cloud-native ecosystem, empowering developers with a robust toolset for comprehensive app monitoring and timely alerts, significantly enhancing ASP.NET Core's monitoring capabilities.
- Output caching with Redis: Redis integration emerges as a pivotal addition, enabling the utilization of Redis as a distributed cache for output caching. This functionality offers a flexible approach to caching HTTP responses from the server, facilitating improved performance and response times. Leveraging Redis for cache storage ensures consistency across server nodes by implementing a shared cache that transcends individual server processes. This integration not only enhances caching capabilities but also fosters greater efficiency and reliability in managing and delivering cached content across distributed ASP.NET Core applications.
- .NET and JavaScript collaboration: ASP.NET Core introduces a new JavaScript SDK and project system within Visual Studio, bridging the gap between .NET and the JavaScript ecosystem. This innovation simplifies the integration of .NET with frontend JavaScript frameworks by offering MSBuild integration for streamlined building, debugging, testing, and publishing of JavaScript or TypeScript code alongside .NET projects. The JavaScript SDK seamlessly integrates with popular JavaScript build tools like WebPack, Rollup, Parcel, esbuild, and others, empowering developers to navigate and collaborate between the .NET and JavaScript worlds with ease, ultimately facilitating efficient and cohesive full-stack development experiences.
What's New in Entity Framework Core 8?
Entity Framework Core 8, abbreviated as EF8, emerges as the next-gen iteration following the EF Core 7. With its release, EF8 mandates .NET 8, denoting a breakaway from compatibility with prior .NET versions such as 6 or 7, as well as the .NET Framework. Aligned with .NET 8's long-term support (LTS) structure, EF8 embodies a strategic synergy. As an LTS release, it adheres to the .NET support policy, ensuring longevity and stability.
Noteworthy enhancements and features in EF8:
- Enhanced "Value Object Mapping" with complex types: Prior to EF8, maneuvering objects structured to encapsulate multiple values sans a defining identity proved challenging. EF8 introduces "Complex Types" to address this niche. Unlike owned types - essentially entity types bound by key values - complex types:
- Lack identification or tracking through key values.
- Are integral parts of entity types, precluding the existence of DbSet for a complex type.
- Span both .NET value types and reference types (Owned types restrict to reference types).
- Permit shared instances among multiple properties, a feature absent in owned types.
- Immutable Records as complex types: The flexibility of EF8 extends to its compatibility with diverse .NET types for complex types in the EF model. Immutable record value types, especially, emerge as an exemplary fit for representing complex types. For instance, an immutable struct record effortlessly embodies a product:
This implementation enables using the 'with' syntax to update properties, akin to working with immutable class records, offering simplicity and reliability.public readonly record struct Product(string name, string code, double amount);
- Handling primitive collections: EF8 confronts the perennial challenge of handling collections of primitive types in relational databases. For PostgreSQL users, native support simplifies storage using PostgreSQL's array type. For other databases, EF8 presents a streamlined approach - utilizing JSON as the serialization format. JSON's intrinsic compatibility with modern relational databases enables treating the JSON column akin to a table, sans the overhead of actual table creation.
- Strengthened query capabilities: Leveraging JSON for primitive collections unlocks new query translations, exploiting relational databases' JSON capabilities. This innovation facilitates inline, temporary tables creation for values, enhancing query efficiency and versatility.
- Expanded support - JSON columns: Building upon EF7's groundwork, EF8 extends support for mapping to JSON columns in SQLite databases, alongside PostgreSQL databases through the Npgsql.EntityFrameworkCore.PostgreSQL EF Core provider. This comprehensive support spans mapping aggregates, executing queries, and seamless updates to JSON documents.
- HierarchyId integration: Introducing HierarchyId type integration for Azure SQL and SQL Server, EF8 empowers the storage and manipulation of hierarchical data structures. This feature is instrumental in managing organizational structures, file systems, project task sets, taxonomy structures, and web page link graphs, enabling sophisticated querying based on hierarchical relationships.
- Unmapped types in raw SQL queries: EF8 elevates raw SQL queries by enabling retrieval of any mappable CLR type sans inclusion in the EF model. Leveraging SqlQuery or SqlQueryRaw, EF8 enhances the execution of queries with unmapped types, ensuring parameterization and alignment with result sets.
The evolution from EF Core 7 to EF8 signifies a significant leap in capabilities, empowering developers with enhanced modeling, querying, and flexibility. With a comprehensive suite of enhancements, EF8 fortifies its position as a cornerstone in the realm of data access and management within the .NET ecosystem.
How can Cazton help you with .NET 8 Consulting?
At Cazton, we help Fortune 500, large and mid-size companies with .NET development, consulting, recruiting services and hands-on training services. Our team includes Microsoft Regional Directors, Microsoft awarded Most Valuable Professionals, Azure Insiders, Docker Insiders, ASP.NET Insiders, Web API Advisors, Azure Cosmos DB Insiders as well as experts in other Microsoft and notable open-source technologies. We have significant experience in Microsoft technology stack, and our expertise can enhance your project's performance and improve its efficiency. We believe in customizing each solution to tailor to the exact needs of the client. We can provide you the following services:
- Top User Experience: Design, architect and develop applications with desirable user experience.
- Full life-cycle development: Custom .NET 8 software development, deployment and automation with cloud support.
- Consulting and mentoring on .NET projects with any of the major UI and backend frameworks and technologies.
- Migration: .NET Core, .NET 5, .NET 6, .NET 7 applications to .NET 8.
- Migration: .NET Framework applications to .NET 8.
- Performance optimization.
- Best practices: Design, development, DevOps, architectural and security best practices.
- Deployment: Deploy .NET 8 apps to cloud, multi-cloud, hybrid cloud or on-premises.
- Continuous Integration and Delivery: Build CI/CD pipeline and automate your deployment process.
- Microservices: Build fully automated microservices using Docker, Kubernetes and Terraform.
- Code reviews: Expert led code reviews for improved productivity and reduced tech debt.
- Training: Full customized .NET 8 training
- Custom development, consulting and training services for Web, mobile, desktop and hybrid applications, gRPC, APIs, SignalR, front-end and back-end solutions, big data, machine learning and artificial intelligence. We support the entire .NET ecosystem including .NET 5, .NET 6, .NET 7, .NET 8, ASP.NET Core and all versions of classic .NET framework. We work on a wide array of technologies including: Blazor, Angular, React, Vue, TypeScript, EF Core, MAUI, Xamarin and support all major RDBMSs (SQL Server, Postgres, MySQL, Oracle) and NoSQL databases (Azure Cosmos DB, MongoDB, Cassandra, Riak, Redis, Elastic search, SOLR etc.).
Our clients trust us to deliver complicated projects within a short delivery time frame. We have saved our clients millions of dollars and have proven multiple times that we can be more economical than even offshore options. We can provide our experts with flexible engagements at a very cost-effective rate.