Some of the best tools you can use as a .NET developer

No Comments »

The .NET framework is one of the most popular open-source frameworks that is used by millions of software developers. According to the latest estimates, there are over 6 million .NET engineers worldwide. This has spurred the growth of various third-party development tools. To get a first-hand opinion on the most valuable and useful developer tools out there. Today, we presented a compiled list of essential .NET developer tools. Let’s have a look at the 10+ most valuable tools every .NET developer should use.

Best Tools for .NET Developers

Visual Studio Gallery

This is an essential tool that offers quick access to Visual Studio extensions, controls, and templates. The marketplace integrates with the IDE, allowing you to access over 7,000 products currently available. The Visual Studio Gallery is critical in how you locate the right extension for your needs. Without the VS Gallery, clicking on Extensions in VS wouldn’t work.

GitHub Extension for Visual Studio

With version control being so popular, Microsoft couldn’t ignore GitHub by NOT including it within Visual Studio. For developers, GitHub is vital. This extension helps us to connect our IDE directly to our GitHub repositories. This means that one can create, clone, and publish your projects, and create or view pull requests right within Visual Studio.

ReSharper

A developer who wants to become more productive when writing C# code should run, not walk, to purchase this tool. This is a Visual Studio extension by JetBrains. ReSharper adds the power to analyze code quality, then to find and fix the errors quickly. It also has several shortcuts for quick and easy refactoring and navigation.

NDepend

NDepend is also a Visual Studio extension for static code analysis. For optimizing and refactoring code at a high level, NDepend is one of the best. It essentially allows developers to see the “wood for the trees”, giving a wide view of your application and how is your code organized. The tool helps us measure our code quality using various metrics, to visualize its design, and to accurately estimate your technical depth, right within the IDE.

NuGet

NuGet is a package manager for .NET that allows you to access various third-party libraries, or to create and share your tools. With over 98 thousand packages currently available, it is the largest database of third-party components for .NET. NuGet streamlines the delivery of third-party components directly into your Visual Studio project at design time and contains a command line for CI/CD automated deploys.

Web Essentials for Visual Studio

This Visual Studio extension augments the core VS functionality with more powerful and useful features, including task shortcuts and improved Intellisense for CSS/HTML/JavaScript, etc. This is a handy tool for web developers using Visual Studio that can be a real productivity booster. In this one extension, you receive custom editors, a Browser Link to immediately see changes in the browser, TypeScript, Less, Markdown, and CoffeeScript support.

Novi Builder

Novi Builder is a visual HTML editor that allows changing texts, images, links, backgrounds, and other elements effortlessly. There are 200+ useful elements that make it possible to create different pages. Novi also provides a code editor to work with HTML, CSS, and JS code for your online projects.

.NET Reflector

.NET Reflector is a decompiler and static analyzer for the .NET framework. It helps you understand and debug your .NET code, including third-party components, even if you don’t have any documentation or comments. It also gives us a solid insight into what an assembly contains and what code is actually doing when decompiled.

SQLComplete

SQLComplete is a productivity tool that augments the SQL Server Management Studio with several useful features, including tab coloring, script generation, navigation, and more. Full-stack developers always get their hands dirty with SQL. This freemium tool is the equivalent of Intellisense in C# and plugs into SQL Server Query Analyzer and Visual Studio. Along with its exceptional Intellisense capabilities, it also has a handful of features to assist with snippets, templating, and SQL formatting.

LINQPAD

This is a safe playground where you can test your LINQ queries or any C#/F#/Visual Basic program. The tool has a built-in debugger and autocomplete features, and is a perfect platform for prototyping with instant feedback. LIt is simply a Notepad for LINQ and also an essential tool for experimenting with LINQ and testing code snippets before they are introduced into code.

ELMAH

ELMAH stands for Error Logging Modules and Handlers. It is an open-source debugging and error logging tool for ASP.NET, and is provided by Google. It really stands in comparison to some other paid .NET logging solutions that you can find online.

Microsoft Web Platform Installer

This free package management software makes it easy to access the latest components of the Microsoft Web Platform, including IIS, SQL Server Express, .NET Framework, Visual Web Developer, and much more. The system keeps you up to date by automatically installing the latest versions of each component.

Conclusion

The choice of .Net tool varies greatly on the specific task or situation. Using additional instruments can free you from routine tasks and automate many processes, thus optimizing your performance and eliminating errors. Some of them have some similar as well as some unique features that can be very helpful on a specific situation.

MAUI lets you create a cross-platform mobile app with .NET and C# from a single codebase

No Comments »

What if we could create native mobile apps and desktop apps using .NET C# and XAML from a single code base? How cool would that be? Yes, now we can create native Android, iOS, macOS, and Windows applications from a single code base. This is possible using .NET’s new feature called Multi-platform App UI (MAUI). .NET Multi-platform App UI (.NET MAUI) is a cross-platform framework for creating native mobile and desktop apps with C# and XAML. Microsoft Build 2020 announced that Microsoft has evolved Xamarin.Forms and taken the next step in the .NET unification to give us a cross-platform mobile-first framework for Android, iOS, macOS, and Windows. .NET MAUI will introduce new ways to build applications – available in .NET 6 and in preview now!

What is .NET MAUI?

.NET Multi-platform App UI (MAUI) is the evolution of Xamarin. Forms extended from mobile to desktop scenarios with UI controls rebuilt from the ground up for performance and extensibility. – Maddy Leger, Program Manager Xamarin/.NET MAUI Team. is an open-source cross-platform framework which can be used to develop and build native Android, iOS, macOS, and Windows applications from a single code base.

What are Xamarin and Xamarin.Forms?

Xamarin is an open-source .NET platform for building iOS, Andriod, macOS, and Windows applications. It was introduced in 2011. It allows us to share business logic across platforms, using .NET, while creating a native UI for each. Xamarin allows developers to share an average of 90% of their application across platforms. To help with the overhead of creating native UI’s for each platform, we have Xamarin.Forms.

Xamarin.Forms is an open-source UI framework that allows us to combine the code for Xamarin.Android, Xamarin.iOS, Xamarin.Mac, and Windows applications into a single shared codebase.

Microsoft is now thinking about creating a unified .NET platform that can replace .NET Framework, .NET Core, and Xamarin. .NET MAUI is the next step in unifying .NET by replacing Xamarin.Forms. It addresses some of the issues and downsides of Xamarin.Forms, while providing an updated architecture on top of the new generation of .NET and project system.

Difference between MAUI and Xamarin.Forms

Microsoft is rebuilding the core of Xamarin.Forms, bringing us performance improvements, consistent design systems, and an extension from mobile to desktop. Now you may ask if we use Xamarin.Forms then why should we move to MAUI? Why is so special about MAUI?

.NET MAUI provides cross-platform APIs for native device features. It has some major Improvements like a Single project experience across platforms and .NET hot reload. It MAUI allows us to have a single project experience instead of one project for each target platform. We can use one language across our application to target all the supported platforms and easily share resources across them while maintaining an option for platform-specific code. Also the Model-View-ViewModel (MVVM) and XAML pattern used in existing Xamarin.Forms applications will continue to be supported and improved with the evolution. .NET MAUI will introduce further support for the Model-View-Update (MVU) development pattern, popular in C#, enabling developers to write fluent C# UI and create a code-first development experience.

How .NET MAUI works?

.NET MAUI unifies Android, iOS, macOS, and Windows APIs into a single API that allows a write-once run-anywhere developer experience, while additionally providing deep access to every aspect of each native platform.

.NET 6 provides a series of platform-specific frameworks for creating apps: .NET for Android, .NET for iOS, .NET for macOS, and Windows UI 3 (WinUI 3) library. These frameworks all have access to the same .NET 6 Base Class Library (BCL). This library abstracts the details of the underlying platform away from your code. The BCL depends on the .NET runtime to provide the execution environment for your code. For Android, iOS, and macOS, the environment is implemented by Mono, an implementation of the .NET runtime. On Windows, Win32 provides the execution environment.

.NET MAUI provides a single framework for building the UIs for mobile and desktop apps. The following diagram shows a high-level view of the architecture of a .NET MAUI app:

.NET MAUI architecture diagram.

In a .NET MAUI app, you write code that primarily interacts with the .NET MAUI API (1). .NET MAUI then directly consumes the native platform APIs (3). In addition, app code may directly exercise platform APIs (2), if required.

About .NET hot reload

.NET MAUI includes support for .NET hot reload, which enables you to modify your managed source code while the app is running, without the need to manually pause or hit a breakpoint. Hot reload increases productivity for .NET developers, allowing instant updates to running applications with new code changes. .NET MAUI includes support for XAML hot reload, which enables you to save your XAML files and see the changes reflected in your running app without recompilation. In addition, your navigation state and data will be maintained, enabling you to quickly iterate on your UI without losing your place in the app.

During Microsoft Build 2021, Microsoft announced the availability of .NET MAUI Preview 4. Each preview provides us with more features and tools with general availability scheduled for November 2021 at .NET Conf. With the release of Preview 4, we can now create functional applications across all supported platforms using .NET MAUI. In addition, they have added new capabilities to support running Blazor on desktop using .NET MAUI, allowing the reuse of Blazor UI components across native desktop and web applications. Alongside Preview 4 is the release of Visual Studio 2019 version 16.11 Preview. The Visual Studio 2019 16.11 Preview enables .NET Hot Reload for MAUI and provides productivity features for developing .NET MAUI projects. To see what is coming in future releases, visit the MAUI product roadmap.

Major dot NET update 7 is about to be released soon

No Comments »

.NET is one of the best software development framework and ecosystem designed and supported by Microsoft that allows for easy desktop and web application engineering. It’s a popular free platform which is used for a lot of different types of applications as it provides the programming environment for most software development phases. .NET best suits businesses that look for a wide range of features like web-based services, desktop software, and cloud infrastructure support. .NET provides a lot of features to build applications on Windows, Linux, macOS, iOS, watchOS, Android, tvOS, or using WebAssembly. The platform comes with new APIs, language features, and runtime capabilities.

Recently, Microsoft .NET open source framework just celebrated its 20th birthday and the company is now pushing ahead with a new version, .NET 7. In a blog post, Microsoft said they would be releasing .NET 7 Preview 1 alongside ASP.NET Core Preview 1 and EF7 Preview 1.

“.NET 7 is built on the foundation established by .NET 6, which includes a unified set of base libraries, runtime, and SDK, a simplified development experience, and higher developer productivity,” says Microsoft’s Jeremy Likness. “Major areas of focus for .NET 7 include improved support for cloud native scenarios, tools to make it easier to upgrade legacy projects, and simplifying the developer experience by making it easier to work with containers.”

.NET 7 Preview 1 is now available!. This is the first preview of the next major version of .NET, which will include the next wave of innovations for web development with ASP.NET Core. This .NET 7 Preview 1 is the first of many. .NET 7 preview releases in preparation for the .NET 7 release in November 2022.

In May 2019, the company announced the big release that would tie the ecosystem together: All .NET elements were supposed to be bundled in the .NET 5 development platform. While changes were made to the schedule because of COVID-19, the .NET 5 unified development platform was finally introduced in November 2020. The successor to .NET Core 3.1 and .NET Framework 4.8, .NET 5 puts order into the fragmentation of the .NET world. It includes ASP.NET Core, Xamarin, Entity Framework Core, WPF, WinForms, and ML.NET. While .NET 5 set the unification foundations, the newest .NET 6 version delivered the final parts of it in November 2021, with Visual Studio 2022 released the same day. This is a unified platform for building projects across cloud, browser, IoT, mobile, and desktop environments, enabling all to use the same .NET libraries, SDK, and runtime.

Some headline features of this .NET 7 is the addition of .NET Multi-platform App UI (MAUI). Also, the new tools that will make it easier to build cloud-native apps by simplifying the setup and configuration necessary to implement secure authentication and authorization, and also improving the performance of application startup and runtime execution.

More .NET news

.NET Framework 4.5.2, 4.6, and 4.6.1 will reach End of Support on Apr 26, 2022. After this date, they will no longer provide updates, including security fixes or technical support for these versions. If you are currently using .NET Framework 4.5.2, 4.6, or 4.6.1 runtime you need to update your deployed runtime to a more recent version – at least .NET Framework 4.6.2 before April 26, 2022 – in order to continue to receive updates and technical support. There is no need for you to retarget or recompile your application against .NET Framework 4.6.2. When .NET Framework 4.5.2, 4.6, and 4.6.1 reach the end of support, applications that run on top of these versions will continue to run. Starting May 2022, Microsoft won’t be issuing security updates for .NET Framework 4.5.2, 4.6, and 4.6.1 when they issue these security updates for .NET Framework 4.6.2 and later versions. This means that starting May 2022, if a computer has .NET Framework 4.5.2, 4.6, or 4.6.1 installed, it may be insecure. Additionally, if you run into any issue and need technical support, you will be asked to first upgrade to a supported version.

Now you may ask why are they doing this?

The .NET Framework was previously digitally signed using certificates that use the Secure Hash Algorithm 1 (SHA-1). SHA-1 is a legacy cryptographic hashing algorithm that is no longer deemed secure. After looking at download and usage data across the different versions of .NET Framework, they have found that updating .NET Framework 4.6.2 and newer versions to support newer digital certificates (for the installers) would satisfy the vast majority (98%) of users without them needing to make a change. The small set of users using .NET Framework 4.5.2, 4.6, or 4.6.1 will need to upgrade to a later .NET Framework version to stay supported.

There is no change to the support timelines for any other .NET Framework version, including .NET Framework 3.5 SP1, which will continue to be supported as documented on .NET Framework Lifecycle FAQ.

After many years opposing open source, Microsoft is now leaning into making the space better. It’s fair to say many developers were initially skeptical of Microsoft and its commitment to making open source tools as the company, seeking to maintain its dominant position, opposed many developers and projects. But Microsoft’s GitHub acquisition(opens in a new tab) for $7.5 billion in 2018 helped the company turn a new page and win over skeptics.

By maintaining .NET 7 – which is truly open source and cross-platform – so thoroughly (you could even say lovingly), Microsoft is doing its bit for the furtherance of computing. Tell us what is, please share with us what you think about this new .NET 7 release.

DevURLs – A Neat Developer News Aggregator

No Comments »

Here’s an interesting new project. It’s called DevURLs and it’s a really nice developer news aggregator. It collects news stories from top 30 software development websites and programming blogs and presents it in a neat way.


devurls-developer-news-aggregator

This website is now my homepage and I visit it multiple times a day to get my daily dose of programming news.

Online Developer Tools

No Comments »

Here’s something that all you, my fellow C# developers, will find useful. Yesterday a company called Browserling announced that they’re launching a network of online developer tools.

If you haven’t heard about Browserling then you should check them out. They’re a friendly and fun cross-browser testing service and they’ve created and open-sourced over a hundred projects, including browserify for node.js.

Online developer tools network is a collection of websites where each website focuses on a single category of developer tools. Right now there are four websites in the network and they’re releasing 30 more websites over the next couple of years.

All websites in the network are ad-free. The reason why Browserling built this network is because their developers got fed up with other online services that offer similar tools. They were often filled with ads, popunders, blinking buttons and other crap. Browserling’s developers had had enough of this and they decided to create their own utilities that just work in your browser and do the right thing.

Let’s take a look at each site in more details.

Online String Tools


Online String Tools for Developers
String Tools for Developers

Online String Tools has hundreds of tiny string utilities for converting strings, generating strings, encoding/decoding strings, filtering and replacing strings and more. All string utilities work right in your browser. There is no server-side processing going on and everything is super fast.

Online JSON Tools


Online String Tools for Developers
JSON Tools for Developers

Online JSON Tools has two dozen utilities for working with JSON config files and JSON documents. Just like string tools, JSON tools work in your browser and are powered by modern JavaScript code, which makes them very fast. You can convert JSON to various data formats, encode and decode JSON, and compress, validate and prettify JSON.

Online XML Tools


Online XML Tools for Developers
XML Tools for Developers

Similar to string and JSON tools, this website offers two dozen utilities for working with XML configuration files and XML documents. All tools on this website also work inside your browser and nothing gets sent to the server. You can pretty much do all XML tasks with these tools. For example, you can compress XML, prettify XML and validate XML documents, and you can also convert XML to other data formats, such as YAML, TSV, CSV, JSON and Base64.

Online CSV Tools


Online CSV Tools for Developers
CSV Tools for Developers

Online CSV Tools offers over two dozen different utilities for working with CSV data files. All CSV data processing happens in the browser and it’s super fast. You can convert CSV to a bunch of other data formats, like JSON and YAML, then you can work with CSV columns and rows. You can insert rows, swap columns, as well as change CSV delimiter and change quoting of CSV fields.

What’s next?

Browserling loves marathons. They will be adding 30 more websites to their network over the next 5 years. Here are some of the other sites they will be launching:

  • Online BROWSER Tools – A collection of browser/web developer tools
  • Online YAML Tools – A collection of Yet Another Markup Language tools
  • Online TSV Tools – A collection of Tab Separated Values tools
  • Online IMAGE Tools – A collection of image editing tools
  • Online AUDIO Tools – A collection of audio editing tools
  • Online PDF Tools – A collection of PDF editing tools
  • Online CRYPTO Tools – A collection of cryptography tools
  • Online RANDOM Tools – A collection of randomization tools
  • Online FILE Tools – A collection of file editing tools
  • Online TIME Tools – A collection of various time and date tools
  • Online LIST Tools – A collection of tools for working with data lists
  • Online CSS Tools – A collection of CSS tools
  • Online JS Tools – A collection of JavaScript tools
  • … and more websites!

If you found these tools useful, please follow Browserling on Twitter and follow Browserling on Facebook.

How to Initialize Flags Enumerations in C#

3 Comments »

I have a friend who is just starting to learn C#, so I am getting some interesting questions whose answers seem obvious to me but apparently not to beginners.  Today I answer the question: What’s the best way to initialize Flags enumerations in C#?

As a quick review, here is how Microsoft describes the Flags enumeration:  “You can use an enumeration type to define bit flags, which enables an instance of the enumeration type to store any combination of the values that are defined in the enumerator list.  (Of course, some combinations may not be meaningful or allowed in your program code.)  You create a bit flags enum by applying the System.FlagsAttribute attribute and defining the values appropriately so that AND, OR, NOT and XOR bitwise operations can be performed on them.”

In other words, each enumeration value must correspond to a single, unique bit.  So one way to initialize flags is to use integers that are a power of 2.  The disadvantage of this method is it’s not easy to see which bit is being set, and errors might creep in enumerations with many flags, especially when you start getting up into the range of 16384, 32768, 65536, and 131072.  But there is nothing inherently wrong with this approach either:

[Flags]
public enum DaysOfTheWeek
{
	None = 0,
	Sunday = 1,
	Monday = 2,
	Tuesday = 4,
	Wednesday = 8,
	Thursday = 16,
	Friday = 32,
	Saturday = 64,
}

Read the rest of this entry »

Zoom the View in Visual Studio

No Comments »

I was using Visual Studio on my laptop when suddenly the font in the code editor got so small I could barely read it.  I figured I must have engaged some obscure key sequence, so I did a little research and discovered there are many ways to change the zoom level in Visual Studio:

Keyboard Shortcuts

  • To make the font larger, press CTRL+SHIFT+PERIOD
  • To make the font smaller, press CTRL+SHIFT+COMMA

Keyboard+Mouse Shortcuts

  • To make the font larger, press & hold the CTRL key while scrolling the mouse wheel up one click
  • To make the font smaller, press & hold the CTRL key while scrolling the mouse wheel down one click

Note this also works with the trackpad on most laptops.  Sliding your finger up or down along the right edge of the trackpad is the same as scrolling the mouse wheel.  By the way, I had the CTRL key pressed while I slid my finger down along the right edge of the trackpad, and this is how I accidentally made the font really small.  Also note that each click increases or decreases the font size by 10%.

Read the rest of this entry »

C# Modeling Tools

2 Comments »

C# modeling tools help you model, visualize, analyze, understand and document C# source code.  Most modeling tools use the Unified Modeling Language (UML), which is a standardized way to create visual models from object-oriented source code.

Following is a list of modeling tools that run on Microsoft Windows and model software written with the C# programming language.  Prices listed are direct from the manufacturer for a single license of the “Professional Version” which includes C# round-trip engineering.  This means the modeling tool can read C# source code and generate models, allow the user to make changes to the model, then automatically generate the updated C# code.  Foreign prices are converted to U.S. Dollars at the current exchange rate. 

Please comment with any corrections or additions, as I will keep this list updated.

Read the rest of this entry »

Google Considered C# as the Native Language for Android

5 Comments »

Wow, I nearly fell out of my chair when I read this little gem on TechCrunch:

Android chief Andy Rubin wrote in a 2005 email, “If Sun doesn’t want to work with us, we have two options: 1) Abandon our work and adopt MSFT CLR VM and C# language – or – 2) Do Java anyway and defend our decision, perhaps making enemies along the way.”

Imagine how different the world would be today if Google had chosen .NET instead of Java as the native development framework for the Android mobile operating system…

Read more at DevTopics >>

C# Custom Enumerators Made Simple with the Yield Keyword

2 Comments »

An enumerator enables you to iterate over a collection in a foreach loop.  You can use foreach to iterate over all C# collection classes, because all C# collection classes inherit from the IEnumerable interface (regular or generic).  IEnumerable contains the GetEnumerator method, which returns an enumerator.

Occasionally you may find a need to create a custom enumerator, which used to be somewhat of a challenge until the yield keyword was introduced.  Here is how Microsoft describes yield:

The yield keyword signals to the compiler that the method in which it appears is an iterator block.  The compiler generates a class to implement the behavior that is expressed in the iterator block.  In the iterator block, the yield keyword is used together with the return keyword to provide a value to the enumerator object.  This is the value that is returned, for example, in each loop of a foreach statement.

So rather than creating your own enumerator class and managing the enumeration state — which is time consuming and tricky — you can simply write the enumeration logic in the GetEnumerator method, and the yield keyword will automagically wrap your code in a handy-dandy enumerator.

Read the rest of this entry »

keep looking »