Microsoft .NET 7 Preview 1 coming this week

  • 23/February/2022
  • Paul Krill

Microsoft .NET 7 Preview 1 coming this week

Microsoft is marking the 20th birthday of .NET with the first preview of the next version of the platform.

In the midst of celebrating the 20th anniversary of its .NET software development platform, Microsoft said it plans to release an initial preview of .NET 7 this week.

In a bulletin published February 13, Microsoft said .NET 7 Preview 1 would be released this week, but did not provide details on what to expect in the new version. .NET 7 is due to be published as a production release in November, one year after the release of .NET 6, which Microsoft noted was the fastest adopted version of .NET yet.

.NET 6 provided a unified set of base libraries, an SDK, and a simplified development experience, along with enhancements for C# 10 and minimal APIs. Microsoft’s .NET MAUI (Multi-Platform App UI) development framework, meanwhile, is due “very soon,” according to the company. MAUI allows developers to build native apps for Windows, macOS, iOS, and Android using a single codebase.

February 13, 2022, marks 20 years since Visual Studio .NET launched and the first version of .NET was released. In noting the 20th anniversary of the platform, Microsoft said there were now five million developers using .NET, which is today a free, open-source, software development platform for building web apps, mobile apps for iOS and Android, and desktop applications for Windows, macOS, and Linux computers.

 

Visual Studio 2022 update offers Git improvements

  • 09/January/2022
  • Paul Krill

Visual Studio 2022 update offers Git improvements

C++ reference searches, code cleanup, autosaves, and stack traces also get attention in the planned upgrades.

With the second preview of its planned update to Visual Studio 2022, Microsoft is offering enhancements of the IDE’s Git experience, including capabilities for comparing branches and checking out commits.

Published January 5, Visual Studio 2022 17.1 Preview 2 is available from the Visual Studio website. In this version, developers can compare checked-out Git branches with any local or remote branch. They also can check out the tip commit or any previous commit of remote and local branches.

Multi-repo branching, a preview feature to manage new branches on all active repositories simultaneously, now has an enhanced inner loop branching experience. A line-staging capability, still in preview, splits changes across different commits by staging sections of code changes.

For C++ projects, Visual Studio 2022 version 17.1 offers speedier “Find All References” searches, improved by 22 percent. For embedded development in C++, additional views are featured to interact with peripheral registers on microcontrollers and real-time OS objects.

Also in the Visual Studio 2022 17.1 Preview 2:

Personalized Code Cleanup files can be configured to automatically run when a file is saved. This is intended to help minimize stylistic violations within pull requests and reduce the time needed to fix code that does not meet specific standards.

An autosave feature in preview will automatically save “dirty” documents when a Visual Studio application loses focus. A developer switching to other applications in Windows can have the IDE automatically commit changes to disk.

Embedded source and Source Link are surfaced as part of “Go To Definition” if a referenced assembly has embedded source or Source Link. This enables developers to navigate to the original source files that declare the target symbol.

A new Stack Trace Explorer Window displays stack traces to navigate directly to related code.

Visual Studio 2022 17.1 follows the November 8 release of Visual Studio 2022, which was highlighted by new 64-bit capabilities. Visual Studio 2022 17.1 Preview 1 also was published on that date, followed by Visual Studio 2022 17.1 Preview 1.1 on November 16.

The True Value of Serverless Computing

  • 12/December/2021
  • David Linthicum

The true value of serverless computing

Serverless computing just turned seven. Let’s examine when, where, and what to use it for today.

Have you heard about serverless computing? Guess what, it’s not serverless at all. It just automates the allocation of back-end servers you’ll need to complete a particular task. Today we have dozens of types of serverless systems from databases to containers to more traditional development systems. They all hold the same promise: to provide vertical and horizontal scaling automatically without having to configure servers ahead of time.

This means developers don’t have to guess how many storage and compute servers to launch prior to applications running. The serverless systems make those decisions for you, allocating the resources that you need during runtime and deallocating them when the need is no longer there.

Automation is really the key value. We’re removed from attempting to figure out how many resources we will need. Picking too many resources (most of which we forget to shut down), makes for a huge cloud bill at the end of the month. Pick too few resources and we watch our applications fail shortly after launch.

I have personally left resources running and have always resented the fact that cloud providers forced me, a human, to pick the resources I needed. It’s not a matter of if you’ll be wrong, but of how wrong you will be.

Thus, I like serverless as a concept. Unless a client has a good handle on what resources will be needed, it’s a safer bet to go for net-new, cloud-native applications than attempting to guess the capacity needed. Plus you have the ability to grow and change capacity ongoing. Therein exists the value of serverless, in my opinion.

The counterargument is that serverless is more expensive than resources that are self-allocated prior to runtime. Indeed. However, this assumes that you’ll correctly pick an optimal configuration that starts and stops at the correct time and in the correct sequence. Some can pull this off, but most can’t.

Also, there are several downsides to serverless that most don’t understand until they have used it. It’s “cloud native,” or specific to a single public cloud provider, meaning that easy portability is not a feature of serverless on any public cloud provider. There are few if any management and monitoring tools for native serverless systems beyond those provided by the public cloud provider that is selling it.

Microsoft Visual Studio 2022 arrives

  • 08/November/2021
  • Paul Krill

Microsoft Visual Studio 2022 arrives

64-bit upgrade to Microsoft’s flagship IDE ushers in new features to support faster, easier coding and larger, more complex projects.

Visual Studio 2022, a major upgrade that brings 64-bit performance to Microsoft’s flagship integrated development environment, is now available as a production release.

Officially unveiled November 8 and accessible from the product’s website, Visual Studio 2022 is positioned to help developers move from an idea to coding faster, emphasizing productivity and quality-of-life improvements.

  • With 64-bit support, Visual Studio 2022 can leverage modern hardware to scale to support larger and more complex projects. Also, Microsoft has focused on improving performance of common scenarios.
  • IntelliCode, an AI-assisted coding companion, enables developers to type less and code more. The feature can complete entire lines of code.
  • Hot Reload for .NET and C++ provides an opportunity to update running code and immediately see the results of changes.
  • New tools improve inner loop productivity and debugging. Command-line details are featured, as well as a parent-child process tree view, and a “Select running window from the desktop” option in the “Attach to process” dialog.
  • A new designer for Web Forms projects is powered by Web Live Preview.
  • The Cascadia font and new icons are offered.
  • Visual Basic refactorings help developers write more correct and efficient code. Also for Visual Basic, new capabilities such as subword navigation are intended to make coding smoother.
  • Cross-platform testing on Linux is supported.

Concurrently with Visual Studio 2022, the .NET 6 software development platform also is available for download. Visual Studio 2022 is positioned to offer a low-friction upgrade experience, with no code changes required. Developers still can build 32-bit apps and all existing apps in the new IDE. Microsoft also is shipping the first preview of Visual Studio 2022 17.1. Regular updates to Visual Studio are promised, with fixes and new features.

What’s new in Angular 13

  • 27/September/2021
  • Paul Krill

What’s new in Angular 13

The development of the next major version of the TypeScript-based web framework is underway.


Angular 13, a planned upgrade to Google’s popular TypeScript-based web framework, continues to take shape, with eight beta releases published as of September 24, impacting areas such as the router, core, and service workers.

Code for these can be found on GitHub. Among the key changes since the second beta, the router no longer replaces the browser URL when a new navigation cancels an ongoing navigation. This had caused URL flicker and served only to support some AngularJS hybrid applications. Hybrid apps that rely on navigationId to the router instead should subscribe to NavigationCancel events and conduct the location.replaceState themselves to add navigationId to the router state.

Elsewhere in recent Angular 13 betas:

The behavior of the SpyLocation used by the RouterTestingModule has been changed to match the behavior of browsers.

For the core, pure annotations are being added to static property initializers. Class properties with initializers that cause code execution can have side effects at module evaluation, similar in effect to module level code. Thus, optimizers cannot safely remove a class with such a static property, as potential side effects may impact application execution. To allow classes with these types of static properties to be optimized and removed if unused, the initializer expressions for the static properties can be annotated as pure.

Service worker cache is cleared in the safety worker to ensure stale or broken contents are not served in future requests.

For the platform-browser, the error message has been improved for a missing animation trigger.

The first two beta releases introduced changes to forms and the router.

For forms, Angular 13 debuts a new type, FormControlStatus, which is a union of all possible status strings for form controls. Also, AbstractControl.status has been narrowed from string to FormControlStatus and StatusChanges have been narrowed from Observable<any> to Observable<FormControlStatus>. Most applications should consume these new types seamlessly, according the Angular changelog.

For the router, a change has been proposed to fix a situation in which the default URL serializer would drop everything afterward, including a question mark in query parameters, resulting in incorrect parsing for a navigation to /path?q=hello?&other=123. This change provides for correct parsing.

Production releases of Angular are targeted for every six months, meaning version 13 would be published by November. The predecessor Angular 12 release arrived May 12.

Other changes proposed for Angular 13 include:

For the compiler-cli, a fix has been proposed to use correct module resolution context for absolute imports in d.ts files.

Also for the compiler-cli, analysis would be skipped for incremental builds for files without Angular behavior. In an incremental build, the compiler tries to reuse as much analysis data from a prior compilation as possible to avoid doing the analysis work again. For source files without Angular behavior, however, no analysis data would be recorded, with the result that the source file would be reanalyzed each build, even if nothing had changed. This commit avoids the analysis of such source files.

For the language service, support would be offered for autocomplete string literal union types in templates.

For the router, missing outlet events would be added to RouterOutletContract. This will be needed when components are rendered dynamically via the module federation at some point in the future.

What to expect in Java 18

  • 25/August/2021
  • Paul Krill

What to expect in Java 18

Not due until March 2022, Java 18 already has drawn proposals to preview record patterns and array patterns and to adopt UTF-8 as the default character set.

Java 18 is likely seven months away but is already starting to take shape, with three feature proposals for it so far: record and array patterns, character sets, and code snippets in API documentation.


The OpenJDK page for Java Development Kit (JDK) 18 lists code snippets and the UTF-8 charset as proposed to target JDK 18, as of August 25. The JEP (JDK Enhancement Proposal) index of Java technologies also cites the record patterns and array patterns proposal as eyed for JDK 18.

Specifics of the three JDK 18 proposals include:

A preview of record patterns and array patterns, in which the Java language would be enhanced with record patterns, to deconstruct record values, and array pattens, to deconstruct array values. Record patterns, array patterns, and type patterns, which were featured in JDK 16, can be nested so as to significantly enhance the expressiveness and utility of pattern matching. Goals of the proposal include extending pattern matching to express more sophisticated, composable data queries, and not changing the syntax or semantics of type patterns.

Specifying UTF-8 as the default charset of the standard Java APIs. UTF-8 is a variable-wide character encoding for electronic communication and is considered the web’s standard charset. Charset is character encoding capable of encoding all characters on the web. Through this change, APIs that depend on the default charset will behave consistently across all implementations, operating systems, locales, and configurations. The proposal is not intended to define new Java-standard or JDK-specific APIs. Proponents of the proposal expect that applications in many environments will see no impact from Java’s choice of UTF-8, as MacOS, many Linux distributions, and many server applications already support UTF-8. However, there is risk in other environments, the most obvious being that applications depending on the default charset will behave incorrectly when processing data produced when the default charset was unspecified. Data corruption may silently occur. The main impact is expected to be fall on users of Windows systems in Asian locales and possibly some server environments in Asian and other locales.

Code snippets in Java API documentation, involving the introduction of an @snippet tag for JavaDoc’s Standard Doclet, to simplify inclusion of example source code in API documentation. Among goals of the plan is facilitating the validation of source code fragments by providing API access to those fragments. While correctness is the responsibility of the author, enhanced support in JavaDoc and related tools can make it easier to achieve. Other goals include enabling modern styling, such as syntax highlighting, as well as the automatic linkage of names to declarations, and enabling better IDE support for creating and editing snippets. The proposal notes that authors of API documentation often include fragments of source code in documentation comments.

According to standard Java’s six-month release cadence, JDK 18 would arrive in March 2022. Other potential features targeting JDK 18 include pattern matching for switch expressions and statements, which is being previewed in the upcoming JDK 17 release, as well as a vector API and a foreign function and memory API, both of which are in an incubator stage in JDK 17.

JDK 17 is due as a production release on September 14. Now in a release candidate stage, JDK 17 is set to be a long-term support release, with years of support, while JDK 18 would only receive six months of support, based on Oracle’s standard Java release plans.