.NET 7 Consulting
- .NET 7: .NET is a free, cross-platform, development framework open-sourced by Microsoft. It was released in November, 2022. It's used to build web, mobile, desktop, games, IoT and other applications
- High performance: .NET 7 had more than 7000 performance-impacting pull requests, out of which 1000+ were deployed.
- 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
Introduction
With the release of .NET 7, Microsoft has continued to deliver on its vision of a unified platform, which can be used to build high-performance, high-scale applications on cloud, web, desktop, mobile, gaming, IoT and AI platforms. .NET 7 supports Windows, Linux and Mac (both Intel and ARM). With .NET being open-source and also supported by Microsoft, it brings the best of the both worlds for a framework that is used across the board; for large, mid-size and startup companies. No wonder, .NET is the most loved framework (2019-2022) according to Stack Overflow. 1.8 million more users adopted .NET 6 over .NET 5, taking the number of users to 5.7 million.
More than 48,000 community members have contributed to the project. NuGet is the package manager for .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery, the central package repository, has more than 330,000 packages now. Clearly, .NET community is not just growing, it's thriving.
Main Principles
.NET 7 is built upon the following principles:
- Unified: With .NET 7, there is only one Base Class Library (BCL). This helps us learn once and reuse our skills with just one SDK, one runtime and the same set of base libraries to build apps for cloud, web, desktop, mobile, gaming, IoT and artificial intelligence.
- Modern: .NET 7 is fully cross-platform as it runs on Windows, Mac and Linux. The same codebase can be used to build cross-platform mobile and desktop apps. It's easy to build and deploy distributed cloud native apps.
- Simple: All major updates for C# have focused on doing more with writing less code.
- Productive: With a clear focus on productivity, .NET 7 is one of the easiest platforms to develop, debug, configure, build and publish apps.
What's new in ASP.NET Core 7
Some of the new features and improvements in ASP.NET Core 7 are listed below:
- Servers and runtime: It introduces rate limiting that allows configuring a limit to the rate of handled requests. There's built-in support for the latest version of HTTP/3 based on the new QUIC multiplexed transport protocol. Other improvements are using WebSockets over HTTP/2 connections (not HTTP/3), creating streams and data grams over HTTP/3 and request decompression.
- Minimal APIs: There has been addition of endpoint filters to run cross-cutting code before or after a route handler, strongly retyped results and route groups (a way to organize groups of endpoints with a common prefix).
- gRPC JSON transcoding: is a high-performance Remote Procedure Call (RPC) framework that uses HTTP/2, streaming, Protobuf, and message contracts to create high-performance, real-time services. gRPC doesn't work when the browser doesn't support it. This is why REST APIs and JSON continue to have an important place in modern apps. .NET 7 introduces JSON transcoding which is an extension for ASP.NET Core that creates RESTful JSON APIs for gRPC services.
- Blazor: Blazor now supports custom elements which creates HTML custom elements with Blazor. This helps Blazor components integrate with any JavaScript-based app. With the introduction of dynamic authentication requests, Blazor WebAssembly apps can handle advanced authentication scenarios. It also adds support for intercepting location changing events to create custom user experiences when navigating. The JavaScript interop on WebAssembly performs faster now, thanks to the improved interop.
- MVC and SignalR: MVC now supports nullable view and page models. SignalR is now able to return client results in response to requests from server.
What's new in Entity Framework Core 7
Some of the new features and improvements in EF Core 7 are listed below:
- JSON columns: Since JSON columns are supported in most databases, now with EF Core 7 we can query the JSON in these columns. Some use cases include filtering and sorting by properties inside the documents, as well as projection of properties out of the documents into results. EF Core 7 updates the smallest single part of a JSON document that needs to be updated. This is clever and very efficient. Are you excited to use LINQ to query JSON?
- Bulk updates and deletes: EF Core tracks entities, but only sends updates to the database when SaveChangesAsync function is called. However, how do we handle scenarios in which update or delete commands need to be fired without loading the entities or effectively not having to involve the change tracker? It's possible now. We can now update and delete entities in the database immediately based on the results of the query.
- Faster save changes: Both methods - SaveChanges and SaveChangesAsync perform significantly better.
- Table-per-concrete-type (TPC) inheritance mapping: Have you ever felt the need of denormalizing an inheritance relationship in code? In TPC mapping, each table contains columns for every property in the concrete type and its base types. In contrast, Table-per-hierarchy maps the entire hierarchy of .NET types to a single table in the database.
- Stored procedure mapping for insert/update/delete: EF Core 7 introduces support for mapping of insert, update and delete commands to stored procedures. Previously, these commands worked directly with tables or updatable views.
What's new in .NET MAUI
.NET Multi-platform App UI (or MAUI) was released earlier this year during Build 2022. With a single codebase, it allows us to create apps targeting multiple platforms. Some of the new features and improvements in .NET MAUI 7 are listed below:
- Tech Support: This support includes the .NET MAUI framework and the .NET SDKs for Android, CarPlay, iOS, macOS, Mac Catalyst, and tvOS. Support will be available till May 2024 which also includes a 6-month overlap with support for .NET MAUI for .NET 6 through May of 2023.
- Performance improvements: This includes optimized rendering path for basic views, improved startup performance for Android, reduced application size on iOS, several bug fixes and enhancements to improve the smoothness of scrolling in CollectionView list control.
- Enhancements in desktop app development: Enhancements and new features introduced in the Window class that enables resizing and positioning the app window. Other enhancements in context menu, tooltips, right click event and pointer hover gesture offers better desktop experience.
- Map Control: This release also contains the map control updated from Xamarin forms and it provides support for pins, custom pins, drawing polygons, polylines, and circles, geocoding and geolocation. We can also launch the native map application on the device we are running. This control abstracts the native map application provided by each platform.
- Themes: Quality of the toolkit has been improved allowing developers to introduce better look and feel for their applications.
What's new in Windows Forms
Some of the new features and improvements for Windows Forms in .NET 7 are listed below:
- Performance: Considerable efforts have been put in order to increase the performance of out-of-process (OOP) designer, which has enabled reduced project load times and improved the experience of interacting with controls on the design surface, like selecting and moving controls.
- Enhancements and fixes: A lot of enhancements and fixes have been brought in including visibility improvements for ToolStripTextBox and ToolStripButton in high-contrast themes, color contrast ratio corrections in Button, DataGridView and PropertyGrid controls, announcement-related issues being resolved in screen readers (e.g. Narrator) and more.
- Databinding improvements: Developers can modernize their existing apps and adopt new cloud-based technologies and one of the ways to do that is to move away from the typical Windows Form code-behind pattern and adopt modern pattern like MVVM. Moving away from code-behind to MVVM opens better testing opportunities and makes integration with ORMs much easier. Support for new data binding strategy is introduced that involves more modern form of data binding with data contexts and command patterns.
- Designer extensibility: To develop custom Control Designers with third party controls, developers will now have to use a dedicated WinForms Designer SDK that will run in the context of the OOP designer.
- ComWrappers: Selected Windows Forms built-in COM interops are now replaced with ComWrappers which now completely disables the built-in COM during trimming/native AOT scenarios. However, currently this feature is experimental and some scenarios may require manual work.
- Scaling improvements:Improvements have been made to support high DPI and scale nested controls in multi-monitor scenarios. Since changes in the layout engine is risky, feature switches were reintroduced in the Windows Forms runtime. In .NET 7 this new scaling behavior is disabled by default, but in .NET 8 it will be on by default. The switch can be configured via runtimeconfig.json.
What's new in WPF
Some of the new features and improvements for WPF in .NET 7 are listed below:
- Performance improvements and bug fixes: WPF in .NET 7 offers a lot of improvements including enhancements in boxing and unboxing operations, using Span for string manipulation, better allocation/deallocation of objects, memory improvements, font rendering and more.
- Accessibility: The datagrid and gridview column width can be adjusted using keyboard shortcut Alt + Left arrow / Right arrow. Datagrid columms can now be sorted using keyboard shortcut and Onscreen narrators can correctly announce the presence of checkable menuitems.
- Upgrading the infrastructure: Over the years, contributions from the community towards the .NET tech stack has drastically increased. As part of open sourcing the test infrastructure, more than 30K integration tests will be moved from the internal source control to GitHub enabling the community to add new tests to the test repo.
What's new in Orleans 7
Orleans is a cross-platform framework for building robust, scalable distributed applications and with .NET 7 it brings over 150% improvements to some areas in its toolchain. Some of the new features and improvements for Orleans 7 are listed below:
- Better development experience: A few new roll-up NuGet packages are brought in that makes it easier to get started with new projects and solutions that take a dependency on Orleans. References to several NuGet packages have been simplified that makes it much easier to set up projects with fewer dependencies.
- Easier Grain & Stream identification: Both Grain and Stream are now identified using a string. Whereas in the previous versions of Orleans Grain IDs were identified by either Guid, long, string, Guid + string, or long + string. This increased its complexity. And in case of Streams, they were identified by Guid's. Switching to string now provides more flexibility.
.NET 7 Performance
Why move to .NET 7 from .NET 6? The number one reason is performance. With a serious focus on performance enhancements, .NET 7 had more than 1000+ performance impacting improvements that were actually released, out of 7000 pull requests that were submitted. In comparison, .NET 5 had 250 performance improvements and .NET 6 had 550.
.NET 7 performance compared to .NET 6(1):
- Plaintext: 8% faster
- JSON: 16% faster
- Fortunes: 25% faster
Entity Framework Core 7 performance (in .NET 7)
One of the key highlights of the recent keynote by Microsoft was a 4x improvement in the time taken to insert multiple rows using Entity Framework Core. (1)
Microsoft Orleans performance (in .NET 7)
With .NET 7, Microsoft Orleans 7.0 used by ASP.NET developers building distributed apps or apps designed to be cloud native, performs 150% faster compared to Orleans 3. (2)
Highlights of our Microsoft Practice
- Our team has great expertise in building multi-million-dollar enterprise web applications (with billions in revenue per year) for our Fortune 500 clients.
- We have expertise in many different domains: healthcare, insurance, finance, tech, entertainment, retail, energy, just to name a few.
- We have been fortunate to work directly with Microsoft product teams for almost a decade.
- Our team includes
- Microsoft awarded Regional Directors
- Microsoft awarded Most Valuable Professionals
- Azure Insiders
- Docker Insiders
- ASP.NET Insiders
- Web API Advisors
- Azure Cosmos DB Insiders and experts in other Microsoft as well as open-source technologies.
- We help our clients with:
- Software design, architecture and development
- Upgrades to latest versions
- DevOps and automation
- Consulting and mentoring
- Training and recruiting
- With the frequent changes in operating systems, platforms, frameworks and browsers; developers have a lot to keep up with these days. They can't specialize and be experts in every technology they work on. With an expert-led team like ours, we bring the benefit of our network to you. We save our clients a serious amount of effort on tasks they shouldn't be doing by providing them a streamlined strategy and updating it as and when we get more information. We work with clients all over the world and we learn what works and what doesn't work and incorporate that in our feedback to our clients to make sure their projects are successful.
How can Cazton help you with .NET 7 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 7 software development, deployment and automation with cloud support.
- Consulting and mentoring on .NET projects with any of the major UI or backend frameworks and technologies.
- Migration: .NET Core, .NET 5 or .NET 6 application to .NET 7.
- Migration: .NET Framework application to .NET 7.
- Performance optimization.
- Best practices: Design, development, DevOps, architectural and security best practices.
- Deployment: Deploy .NET 7 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 7 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, 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.