C# is a programming language, and it doesn’t have its own standalone framework. However, C# is closely associated with the .NET framework, which provides a comprehensive set of libraries and runtime for developing, running, and deploying applications. The .NET framework includes several components:
- Common Language Runtime (CLR): The CLR is the execution environment for .NET applications. It manages memory, handles exceptions, and facilitates interoperability between different languages targeting the .NET platform.
- Base Class Library (BCL): The BCL is a set of classes that provide fundamental functionality for various application types. It includes classes for working with collections, input/output operations, networking, and more.
- ASP.NET: A web application framework for building dynamic web applications and services.
- Windows Presentation Foundation (WPF): A framework for building Windows desktop applications with rich user interfaces.
- Windows Forms: A framework for building Windows desktop applications with traditional, event-driven programming.
- Entity Framework: An Object-Relational Mapping (ORM) framework that simplifies database interactions in .NET applications.
- ASP.NET Core: A cross-platform, high-performance framework for building modern, cloud-based, and internet-connected applications.
- Xamarin: A framework for building cross-platform mobile applications using C#.
- Windows Communication Foundation (WCF): A framework for building service-oriented applications.
In recent years, Microsoft has shifted towards a more modular and cross-platform approach with .NET 5 and later versions, unifying the previously separate .NET Core and .NET Framework into a single, cohesive platform. This evolution allows developers to build applications that can run on Windows, Linux, and macOS.
Exploring C# and .NET: A Sample Code Journey
C# and the .NET framework offer a versatile and powerful ecosystem for building a wide range of applications. In this article, we’ll take a tour of key features and frameworks within the .NET ecosystem through a series of sample codes.
1. Hello World in C#:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello, C#!");
}
}This simple “Hello World” program showcases the basic structure of a C# console application.
2. ASP.NET Core Web Application:
// Startup.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}This snippet illustrates a basic setup for an ASP.NET Core web application with MVC (Model-View-Controller) architecture.
3. WPF Desktop Application:
// MainWindow.xaml.cs
using System.Windows;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hello from WPF!");
}
}A simple WPF application with a button click event displaying a message box.
4. Entity Framework Core Database Interaction:
// ApplicationDbContext.cs
using Microsoft.EntityFrameworkCore;
public class ApplicationDbContext : DbContext
{
public DbSet<User> Users { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("your-connection-string");
}
}
// User.cs
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}Setting up a simple Entity Framework Core database context and model for user data.
5. Xamarin Cross-Platform Mobile App:
// MainPage.xaml.cs
using Xamarin.Forms;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
var button = new Button
{
Text = "Click me!",
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalOptions = LayoutOptions.CenterAndExpand
};
button.Clicked += (sender, e) => DisplayAlert("Greetings", "Hello from Xamarin!", "OK");
Content = new StackLayout
{
Children = { button }
};
}
}A simple Xamarin.Forms mobile application with a button triggering an alert.
Conclusion: Embracing the .NET Ecosystem
These sample codes provide a glimpse into the diverse application scenarios that C# and the .NET framework can address. Whether you’re developing console applications, web applications, desktop applications, or cross-platform mobile apps, the .NET ecosystem offers a unified platform with a rich set of libraries and frameworks to streamline your development journey.

