Qu'est-ce que le .NET Framework ? Comprendre les concepts du .NET Framework exécutant des applications sur la plate-forme Microsoft Net

Types d'applications .NET

Le langage C# peut être utilisé pour créer des applications console - des applications textuelles qui s'exécutent dans une fenêtre DOS. Très probablement, ces applications seront utilisées pour tester les bibliothèques de classes. Cependant, vous utiliserez le plus souvent C# pour créer des applications ayant accès à de nombreuses technologies associées à .NET. Cet article fournit un bref aperçu des différents types d'applications pouvant être écrites en C#.

Création d'applications ASP.NET

Initialement, l’avènement d’ASP.NET 1.0 a fondamentalement modifié le modèle de programmation Web. ASP.NET 4 est la version senior du produit et repose sur les réalisations précédentes. ASP.NET 4 introduit des étapes révolutionnaires majeures visant à augmenter la productivité. L'objectif principal d'ASP.NET 4 est de vous permettre de créer des applications puissantes, sécurisées et dynamiques en utilisant le moins de code possible.

Fonctionnalités ASP.NET

Premièrement, et peut-être le plus important, les pages structuré. Autrement dit, chaque page est en fait une classe héritée de classe .NET System.Web.UI.Page, qui peut remplacer un ensemble de méthodes appelées pendant le cycle de vie d'un objet Page. (Vous pouvez considérer ces événements comme des parents spécifiques à une page des événements SurApplication_Start Et SurSession_Start, qui sont fournis dans les fichiers global.asax de l'ASP classique.) Étant donné que les fonctionnalités des pages peuvent être distillées dans des gestionnaires d'événements à des fins spécifiques, les pages ASP.NET sont beaucoup plus faciles à comprendre.

Une autre fonctionnalité intéressante des pages ASP.NET est qu'elles peuvent être créées dans Visual Sludio 2010, le même environnement dans lequel sont programmés la logique métier et les composants d'accès aux données utilisés par ces mêmes pages ASP.NET. Un projet ou une solution Visual Studio 2010 contient tous les fichiers associés à une application. De plus, les pages ASP classiques peuvent être déboguées directement dans l'éditeur. Autrefois, avec Visual InterDev, il existait un besoin ennuyeux de configurer spécifiquement InterDev et le serveur Web du projet pour activer le débogage.

Pour plus de clarté, la fonctionnalité code-behind d'ASP.NET vous permet d'étendre encore plus l'approche structurée. ASP.NET vous permet d'isoler la fonctionnalité côté serveur d'une page dans une classe, de compiler cette classe avec d'autres pages dans une DLL et de placer cette DLL dans un répertoire sous la partie HTML. La directive @Page en début de page associe ce fichier à une classe. Lorsque le navigateur demande une page, le serveur Web génère des événements dans une classe située dans le fichier de classe de la page.

La dernière fonctionnalité, mais non la moindre, d'ASP.NET qui doit être mentionnée est l'augmentation des performances. Alors que les pages ASP classiques étaient interprétées à chaque accès à la page, les pages ASP.NET étaient mises en cache sur le serveur Web après leur compilation. Cela signifie que toutes les requêtes de page ASP.NET suivantes sont plus rapides que la première.

ASP.NET facilite également l'écriture de pages affichant des formulaires dans le navigateur que vous pouvez utiliser sur votre réseau d'entreprise. L'opinion traditionnelle sur les applications basées sur des formulaires est qu'elles fournissent une interface utilisateur riche, mais qu'elles sont plus difficiles à maintenir car elles s'exécutent sur de nombreux ordinateurs clients. Pour cette raison, les utilisateurs s'appuient sur des applications centrées sur les formulaires uniquement lorsqu'ils ont besoin d'une interface riche et peuvent fournir une assistance utilisateur fiable.

Formulaires Web

Pour faciliter encore plus la conception de pages Web, Visual Studio 2010 propose la bibliothèque Web Forms. Cet outil vous permet de créer graphiquement des pages ASP.NET, tout comme vous créez des fenêtres dans Visual Basic 6 et C++Builder. En d'autres termes, vous devrez faire glisser les contrôles nécessaires de la barre d'outils vers la surface du formulaire, puis ajuster légèrement le code du formulaire et écrire des gestionnaires d'événements pour les contrôles. Lorsque vous utilisez C# pour créer un formulaire Web, vous créez une classe C# qui hérite d'une classe de base Page, et une page ASP.NET qui expose cette classe en tant que code-behind. Bien entendu, vous n’êtes pas obligé d’utiliser C# pour créer un formulaire Web ; Pour cela, vous pouvez également utiliser Visual Basic 2010 ou tout autre langage orienté .NET.

Dans le passé, la complexité du développement Web a empêché certaines équipes de développement d’essayer de le maîtriser. Pour réussir dans le développement d’applications Web, il fallait connaître de nombreuses technologies différentes, telles que VBScript, ASP, DHTML, JavaScript, etc. L'application des concepts Web Forms aux pages Web a rendu la création d'applications Web beaucoup plus facile.

Contrôles du serveur Web

Les contrôles utilisés dans les formulaires Web ne sont pas des contrôles au même sens que les contrôles ActiveX. Il s'agit plutôt de balises XML appartenant à l'espace de noms ASP.NET, que le navigateur Web transforme dynamiquement en balises HTML et en scripts côté client lorsque cette page est demandée. Ce qui est étonnant, c'est qu'un serveur Web peut restituer les mêmes contrôles côté serveur de différentes manières, générant ainsi une transformation qui correspond au navigateur Web spécifique qui a effectué la demande. Cela signifie que vous pouvez désormais facilement créer des interfaces utilisateur de page Web parfaites sans avoir à vous soucier de la façon de faire fonctionner la page dans l'un des navigateurs disponibles - Web Forms s'en charge.

Services Web XML

Aujourd'hui, les pages HTML représentent la majorité du trafic du World Wide Web. Cependant, avec XML, les ordinateurs disposent d'un format indépendant du périphérique qu'ils peuvent utiliser pour communiquer sur Internet. À l'avenir, les ordinateurs pourront utiliser XML pour échanger des informations au lieu de s'envoyer des messages via des lignes louées dans un format propriétaire spécial comme l'EDI (Electronic Data Interchange). Les services Web XML sont conçus pour un environnement Web orienté services, dans lequel des ordinateurs distants se fournissent mutuellement des informations dynamiques qui peuvent être analysées et reformatées avant de produire leur présentation finale à l'utilisateur. Les services Web XML constituent un moyen simple permettant aux ordinateurs de fournir des informations sous forme XML à d'autres ordinateurs sur Internet.

En terminologie technique, un service Web XML dans .NET est une page ASP.NET qui renvoie du code XML au lieu du code HTML à la demande des clients. Ces pages s'appuient sur des DLL code-behind qui contiennent des classes héritées de WebService. L'IDE Visual Studio 2010 fournit un mécanisme qui facilite la création de services Web.

Une entreprise ou une organisation peut préférer les services Web XML pour deux raisons principales. La première raison est qu’ils sont basés sur HTTP ; Les services Web peuvent utiliser les réseaux HTTP existants comme intermédiaires pour transférer des informations. Une autre raison est que, étant donné que les services Web XML utilisent XML, le format des données transférées est auto-documenté, ouvert et indépendant de la plate-forme.

Création de formulaires Windows

Bien que C# et .NET soient conçus spécifiquement pour le développement Web, ils prennent toujours en charge les applications clientes dites « lourdes », c'est-à-dire applications qui doivent être installées sur la machine de l'utilisateur final, où la majeure partie du traitement est effectuée. Ceci est fourni par la bibliothèque Windows Forms.

Cependant, si vous commencez à apprendre la plateforme .NET, je je n'ai pas recommandé vous apprenez Windows Forms et passez immédiatement à l'apprentissage de la dernière technologie WPF.

Fondation de présentation Windows (WPF)

L'une des dernières technologies révolutionnaires est Windows Présentation Foundation (WPF). WPF s'appuie sur l'utilisation de XAML pour créer des applications. L'abréviation XAML signifie Extensible Application Markup Language - un langage de balisage d'application extensible. Cette nouvelle façon de créer des applications dans le framework Microsoft, introduite pour la première fois en 2006, fait partie du .NET Framework 3.0, 3.5 et 4. Cela signifie que pour exécuter n'importe quelle application WPF, vous devez vous assurer que la machine client dispose du framework installé .NET Framework 3.0, 3.5 ou 4. Les applications WPF sont disponibles pour Windows 7, Windows Vista, Windows XP, Windows Server 2003 et Windows Server 2008 (ce sont les seuls systèmes d'exploitation qui vous permettent d'installer .NET Framework 3.0 , 3.5 ou 4).

XAML est une déclaration XML utilisée pour créer des formulaires qui représentent tous les aspects visuels et le comportement des applications WPF. Parce que vous pouvez travailler avec une application WPF par programmation, cette technologie représente un pas dans la direction de la programmation déclarative vers laquelle l'industrie s'oriente aujourd'hui. La programmation déclarative signifie qu'au lieu de créer des objets en écrivant du code dans un langage compilé tel que C#, VB ou Java, tout est déclaré à l'aide d'une programmation de type XML.

Services Windows

Le service Windows (service Windows, initialement appelé service NT) est un programme conçu pour s'exécuter en arrière-plan sous Windows NT/2000/XP/2003/Vista/7 (mais pas sous Windows 9x). Ces services sont utiles lorsqu'il est nécessaire d'organiser le fonctionnement continu de programmes prêts à répondre à des événements, sans qu'il soit nécessaire de les lancer explicitement par l'utilisateur. Un bon exemple est le service World Wide Web sur les serveurs Web, qui écoute les requêtes Web des clients.

Développer des services en C# est très simple. Dans l'espace de noms Système.Service.Processus Des classes de base de l'environnement .NET sont disponibles et vous permettent de résoudre la plupart des problèmes de modèles associés aux services système. De plus, Visual Studio .NET vous permet de créer un projet de service Windows C# qui utilise le code source C# pour créer un service Windows.

Fondation de communication Windows (WCF)

En explorant la manière dont les technologies Microsoft déplacent les données et les services d'un point à un autre, vous constaterez que vous disposez d'une grande variété de solutions possibles. Par exemple, vous pouvez utiliser les services Web ASP.NET, .NET Remoting, Enterprise Services ou MSMQ. Quelle technologie choisir ? La réponse à cette question dépend de ce que vous essayez d’atteindre, car chacune de ces technologies est préférable dans une situation spécifique.

Dans cet esprit, Microsoft a vraiment rassemblé toutes ces technologies, et dans le .NET Framework 3.0 et son inclusion dans le .NET Framework 3.5 et 4, il existe un seul moyen de déplacer des données : Windows Communication Foundation (WCF). . La bibliothèque WCF offre la possibilité de créer initialement un service, puis de fournir ce service de différentes manières (même sur différents protocoles) simplement en modifiant le fichier de configuration. WCF est un nouveau moyen très puissant de connecter des systèmes distribués.

Windows Workflow Foundation (WF)

Le service Windows Workflow Foundation (WF) a été introduit pour la première fois dans .NET Framework 3.0, mais a maintenant subi une refonte majeure que beaucoup trouveront désormais beaucoup plus utile. Vous constaterez que Visual Studio 2010 a considérablement amélioré la façon dont vous travaillez avec WF, facilitant ainsi la création de vos propres flux de travail. Vous trouverez également de nouveaux contrôles de flux, la classe Flowchart, ainsi qu'un certain nombre de nouvelles actions telles que DoWhile, ForEach et ParallelForEach.

Le .NET Framework est l'un des composants du système Windows. Il vous permet de créer et d'utiliser des applications de nouvelle génération. Objectif de la plateforme Cadre .NET :

  • création d'une approche globale environnement de programmation orienté objet permettant diverses options de mise en œuvre : le code peut être stocké et exécuté localement ; être exécuté localement et distribué sur Internet ; ou effectué à distance ;
  • Fournir un environnement d'exécution de code qui minimise les conflits de déploiement de logiciels et de version ;
  • assurer la sécurité de l'exécution du code dans l'environnement - y compris le code créé par un développeur inconnu ou partiellement fiable ;
  • fournir un environnement d'exécution de code pour résoudre les problèmes de performances dans des environnements basés sur des scripts ou des interprétations ;
  • unification du travail des développeurs dans des applications complètement différentes : aussi bien dans les applications Windows que dans les applications web ;
  • l'utilisation des normes de l'industrie dans tous les domaines d'échange de données et, par conséquent, assurer la compatibilité du code créé dans le .NET Framework avec d'autres programmes.

Introduction

Une PLATEFORME est au moins un environnement d'exécution de programme et... quelque chose d'autre qui détermine les caractéristiques du développement et de l'exécution du code d'un programme - paradigmes de programmation, langages de programmation, de nombreuses classes de base.

Microsoft.NET (.NET Framework) est une plateforme logicielle. Contient les composants principaux suivants : le Common Language Runtime (CLR) et la bibliothèque de classes .NET Framework (.NET FCL).

CLS (Common Language Spécification) est une spécification générale pour les langages de programmation. Il s'agit d'un ensemble de constructions et de contraintes qui fournissent des conseils aux créateurs de bibliothèques et de compilateurs dans le .NET Framework. Les bibliothèques construites selon CLS peuvent être utilisées à partir de n'importe quel langage de programmation prenant en charge CLS. Les langages compatibles CLS (notamment Visual C#, Visual Basic, Visual C++) peuvent s'intégrer les uns aux autres. CLS constitue la base de la communication interlingue au sein de la plateforme Microsoft.NET.

CLR (Common Language Runtime) – Environnement d'exécution ou machine virtuelle. Garantit que la construction est terminée. Composant principal du .NET Framework. Une machine virtuelle est une abstraction d'un système d'exploitation géré de haut niveau encapsulé (séparé) qui assure l'exécution du code du programme et implique de résoudre les tâches suivantes :

§ gestion du code (chargement et exécution),

§ gestion de la mémoire lors du placement d'objets,

§ isolation de la mémoire des applications,

§ contrôle de sécurité du code,

§ conversion du langage intermédiaire en code machine,

§ accès aux métadonnées (informations étendues sur les types),

§ gestion des exceptions, y compris les exceptions multilingues,

§ interaction entre code managé et non managé (y compris les objets COM),

§ prise en charge des services de développement (profilage, débogage, etc.).

En bref, le CLR est un ensemble de services requis pour effectuer un build. Dans ce cas, le code du programme assembleur peut être soit géré (code, une fois exécuté, le CLR, notamment, active le système de gestion de mémoire), soit non géré (code de programme « ancien »).

Le CLR lui-même se compose de deux composants principaux : le noyau (mscoree.dll) et la bibliothèque de classes de base (mscorlib.dll). La présence de ces fichiers sur le disque est un signe certain qu'au moins une tentative a été faite pour installer la plate-forme .NET sur l'ordinateur.

Le noyau d'exécution est implémenté en tant que bibliothèque mscoree.dll. Lorsqu'un assembly est lié, des informations particulières y sont intégrées, qui, au lancement de l'application (EXE) ou au chargement de la bibliothèque (appel d'une DLL depuis un module non managé - appel de la fonction LoadLibrary pour charger un assembly managé) conduisent à chargement et initialisation du CLR. Une fois le CLR chargé dans l'espace d'adressage du processus, le noyau d'exécution effectue les actions suivantes :

§ trouve le lieu de montage,

§ charge l'assembly en mémoire,

§ analyse le contenu de l'assembly (identifie les classes, les structures, les interfaces),

§ analyse les métadonnées,

§ fournit la compilation du code de langage intermédiaire (IL) en instructions dépendantes de la plate-forme (code assembleur),

§ effectue les contrôles liés à la sécurité,

§ à l'aide du thread principal de l'application, transfère le contrôle à un fragment de code assembleur converti en commandes du processeur.

FCL (.NET Framework Class Library) est une bibliothèque orientée objet compatible CLS de classes, d'interfaces et de systèmes de types (types de valeurs) inclus dans la plateforme Microsoft .NET.

Cette bibliothèque donne accès aux fonctionnalités du système et sert de base au développement d'applications, de composants et de contrôles .NET.

NET est le deuxième composant du CLR.

NET FCL peut être utilisé par TOUTES les applications .NET, quel que soit le but et l'architecture utilisée pour développer le langage de programmation. Il contient notamment :

§ les types intégrés (élémentaires), présentés sous forme de classes (sur la plateforme .NET tout est construit sur des structures ou des classes),

§ cours de développement d'une interface utilisateur graphique (Windows Form),

§ cours de développement d'applications Web et de services Web basés sur la technologie ASP.NET (Web Forms),

§ cours de développement de protocoles XML et Internet (FTP, HTTP, SMTP, SOAP),

§ cours de développement d'applications fonctionnant avec des bases de données (ADO.NET),

§ et beaucoup plus.

L'application NET est une application conçue pour s'exécuter sur la plateforme Microsoft.NET. Implémenté dans des langages de programmation conformes au CLS.

MSIL (Microsoft Intermediate Language, également connu sous le nom d'IL - Intermedia Language) est un langage intermédiaire de la plateforme Microsoft.NET. Le code source des applications .NET est écrit dans des langages de programmation conformes à la spécification CLS. Pour les langages de programmation conformes à la spécification CLS, un convertisseur vers MSIL peut être construit. Ainsi, les programmes dans ces langages peuvent être traduits en code intermédiaire dans MSIL. Grâce à la conformité CLS, la traduction du code de programme écrit dans différentes langues aboutit à un code IL compatible.

En fait, MSIL est un assembleur de processeurs virtuels.

METADATA - lors de la conversion du code du programme en MSIL, un bloc METADATA est également généré, contenant des informations sur les données utilisées dans le programme. En fait, il s'agit d'ensembles de tables contenant des informations sur les types de données définis dans le module, sur les types de données référencés par ce module. Auparavant, ces informations étaient stockées séparément. Par exemple, une application peut inclure des informations sur les interfaces décrites dans le langage IDL (Interface Definition Language). Les métadonnées font désormais partie du module géré.

Plus précisément, les métadonnées sont utilisées pour :

§ enregistrer des informations sur les types. Lors de la compilation, les fichiers d'en-tête et de bibliothèque ne sont plus nécessaires. Le compilateur lit toutes les informations nécessaires directement à partir des modules gérés,

§ vérification du code lors de l'exécution du module,

§ gestion dynamique de la mémoire (memory freeing) lors de l'exécution du module,

§ lors du développement d'un programme à l'aide d'outils standards (Microsoft Visual Studio.NET)

§ Un indice dynamique (IntelliSense) est fourni sur la base de métadonnées.

Langues pour lesquelles la traduction vers MSIL a été implémentée :

et bien d'autres langues.

Exécutable - Quel que soit le compilateur (et la langue d'entrée), la sortie d'une traduction d'application .NET est un exécutable géré (module géré). Il s'agit d'un fichier exécutable portable Windows standard (PE - Portable Executable).

Les éléments du module géré sont présentés dans le tableau.

Un module géré contient du code managé.

Le code managé est du code qui s'exécute dans le CLR. Le code est construit sur la base de structures et de classes déclarées dans le module source qui contiennent des déclarations de méthodes. Le code managé doit avoir un certain niveau d’informations (métadonnées) pour l’environnement d’exécution. Le code C#, Visual Basic et JScript est géré par défaut. Le code Visual C++ n'est pas géré par défaut, mais le compilateur peut produire du code managé en spécifiant un argument de ligne de commande (/CLR). L'une des caractéristiques du code managé est la présence de mécanismes qui vous permettent de travailler avec des DONNÉES GÉRÉES.

Les données gérées sont des objets qui, lors de l'exécution du code du module, sont placés dans la mémoire gérée (sur le tas géré) et détruits par le garbage collector CLR. Les données C#, Visual Basic et JScript .NET sont gérées par défaut. Les données C# peuvent également être marquées comme non gérées.

L'assembly est l'élément de base d'une application dans le .NET Framework. Les modules gérés sont combinés en assemblages. Un assembly est un regroupement logique d’un ou plusieurs modules gérés ou fichiers de ressources. Les modules gérés au sein des assemblys sont exécutés dans l'environnement d'exécution (CLR). Un assembly peut être soit une application exécutable (dans un fichier avec l'extension .EXE), soit un module de bibliothèque (dans un fichier avec l'extension .DLL). Dans le même temps, l'assembly n'a rien de commun avec les applications exécutables et les modules de bibliothèque ordinaires (à l'ancienne !).

Une déclaration d’assembly (Manifest) fait partie intégrante d’un assembly. Un autre ensemble de tables de métadonnées qui :

§ identifie l'assembly sous la forme d'un nom de texte, de sa version, de sa culture et de sa signature numérique (si l'assembly est partagé entre applications),

§ détermine les fichiers inclus (par nom et hachage),

§ indique les types et ressources qui existent dans l'assemblage, y compris une description de celles qui sont exportées depuis l'assemblage,

§ répertorie les dépendances sur d'autres assemblées,

§ indique l'ensemble des droits nécessaires au bon fonctionnement de l'ensemble.

Ces informations sont utilisées au moment de l'exécution pour garantir le bon fonctionnement de l'application.

Le processeur NE PEUT PAS exécuter de code IL. Et la traduction du code IL est effectuée par un compilateur JIT (juste à temps), qui est activé par le CLR selon les besoins et exécuté par le processeur. Dans ce cas, les résultats du compilateur JIT sont stockés dans la RAM. Un mappage est établi entre un fragment de code IL traduit et le bloc mémoire correspondant, ce qui permet ensuite au CLR de transférer le contrôle aux instructions du processeur écrites dans ce bloc mémoire, en contournant un appel répété au compilateur JIT.

L'environnement CLR permet la collaboration et l'interaction de composants logiciels implémentés dans différents langages de programmation.

Basé sur un bloc de métadonnées généré précédemment, le CLR garantit une interaction EFFICACE entre les applications .NET en cours d'exécution.

Pour le CLR, tous les assemblys sont identiques, quels que soient les langages de programmation dans lesquels ils ont été écrits. L'essentiel est qu'ils soient conformes au CLS. En fait, le CLR brise les frontières des langages de programmation (interopérabilité multilingue). Ainsi, grâce à CLS et CTS, les applications .NET sont en réalité des applications MSIL (IL).

Le CLR s'attaque à de nombreux problèmes qui sont traditionnellement au centre des préoccupations des développeurs d'applications. Les fonctions exécutées par le CLR comprennent :

§ vérification et compilation dynamique (JIT) du code MSIL en instructions processeur,

§ gestion de la mémoire, des processus et des threads,

§ organisation de l'interaction entre les processus,

§ résoudre les problèmes de sécurité (dans le cadre de la politique de sécurité existante dans le système).

Un AppDomain est un conteneur d'assemblage logique utilisé pour isoler une application dans l'espace d'adressage d'un processus. Tous les objets créés par une application sont créés dans un domaine d'application spécifique. Plusieurs domaines d'application peuvent exister au sein d'un seul processus de système d'exploitation. Le CLR isole les applications en gérant la mémoire au sein du domaine d'application.

Le code exécuté dans le CLR (processus CLR) est distinct des autres processus exécutés simultanément sur l'ordinateur.

Un processus normal est lancé par le système dans l'espace d'adressage spécifiquement alloué au processus. Le CLR offre la possibilité d'exécuter plusieurs applications gérées en UN SEUL PROCESSUS. Chaque application gérée est associée à son propre domaine d'application (en abrégé AppDomain). En plus du domaine principal, plusieurs domaines supplémentaires peuvent être créés dans l'application.

La structure du runtime CLR est affichée dans l'image.

Propriétés du domaine :

§ les domaines sont isolés les uns des autres. Les objets créés dans un domaine ne sont pas accessibles depuis un autre domaine.

§ Le CLR est capable de décharger les domaines ainsi que tous les assemblys associés à ces domaines,

§ une configuration supplémentaire et une protection de domaine sont possibles,

§ Un mécanisme d'accès sécurisé spécial (marshaling) est mis en œuvre pour l'échange de données entre domaines.

§ Le .NET Framework a développé son propre modèle de composants, dont les éléments sont des assemblys .NET (.NET-assembly), et pour une compatibilité directe et ascendante avec le modèle COM/COM+, le CLR dispose de mécanismes intégrés (COM Interop ) qui donnent accès aux objets COM selon les règles .NET et aux assemblys .NET selon les règles COM. Cependant, les applications .NET ne nécessitent pas que les composants soient enregistrés dans le registre Windows.

Pour exécuter une application .NET, il suffit de placer les assemblys liés à cette application dans un seul répertoire. Si l'assembly peut être utilisé dans plusieurs applications, il est alors placé et enregistré à l'aide d'un utilitaire spécial dans le GAC (Global Assembly Cache).

CTS - Système de type commun Système de type standard. Pris en charge dans toutes les langues de la plateforme. Étant donné que .NET est un enfant de la POO, nous parlons ici de types élémentaires, de classes, de structures, d'interfaces, de délégués et d'énumérations.

Le système de types communs est une partie importante de l'environnement d'exécution, définissant la structure des constructions syntaxiques, les moyens de déclarer, d'utiliser et d'appliquer les types d'exécution COMMON. Le CTS contient des informations de base sur le système des types GÉNÉRAUX PRÉDÉFINIS, leur utilisation et leur gestion (règles de conversion de valeurs). CTS joue un rôle important dans l'intégration d'applications gérées multilingues.

Un espace de noms est un moyen d'organiser un système de types en un seul groupe. Il existe une bibliothèque de langage commune de classes de base. Et le concept d'espace de noms permet une organisation et une navigation efficaces au sein de cette bibliothèque. Quel que soit le langage de programmation, l'accès à certaines classes est assuré en les regroupant au sein d'espaces de noms communs.

Espace de noms But
Système
Système.Données Pour accéder aux bases de données
Système.Données.Common
System.Data.OleDb
Système.Data.SqlClient
Système.Collections Classes pour travailler avec des objets conteneurs
Diagnostique du systeme Classes pour le traçage et le débogage du code
Système.Dessin Cours de support graphique
Système.Drawing.Drawing2D
Système.Dessin.Impression
Système.IO Prise en charge des E/S
Système.Net Prise en charge du transfert de données sur les réseaux
Système.Réflexion Utilisation de types personnalisés au moment de l'exécution
Système.Réflexion.Émettre
System.Runtime.InteropServices Prise en charge de l'interaction avec le « code normal » – DLL, serveurs COM, accès à distance
Système.Runtime.Remoting
Système.Sécurité Cryptographie, autorisations
Système.Threading Travailler avec des fils de discussion
Système.WEB Travailler avec des applications Web
Système.Windows.Form Travailler avec les éléments de l'interface Windows
Système.XML Prise en charge des données XML

L'exécution de modules exécutables non gérés (applications Windows classiques) est assurée directement par le système Windows. Les modules non gérés s'exécutent comme des processus « simples » dans l'environnement Windows. La seule exigence à laquelle ces modules doivent répondre est qu'ils fonctionnent correctement dans l'environnement Windows. Ils doivent fonctionner « correctement » (ne pas planter le système, éviter les fuites de mémoire, ne pas bloquer d'autres processus et utiliser correctement le système d'exploitation lui-même pour travailler au nom des processus). Autrement dit, respectez les règles les plus générales pour travailler sous Windows.

Dans le même temps, la plupart des problèmes d'exécution correcte d'un module non géré (problèmes d'interaction, d'allocation et de libération de mémoire) sont des problèmes de développeurs d'applications. Par exemple, la technologie COM bien connue est un moyen d'organiser l'interaction de composants hétérogènes au sein d'une application.

Un objet est, au sens large, une zone de mémoire (pile ou tas) allouée lors de l'exécution d'un programme pour enregistrer des valeurs éventuelles. Il se caractérise par le type (un ensemble fixe de propriétés qui déterminent la taille de la zone occupée, la méthode d'interprétation de la valeur, la plage de valeurs, l'ensemble des actions autorisées lors de la manipulation d'un objet) l'emplacement en mémoire (adresse).

Le garbage collection est un mécanisme qui permet au CLR de déterminer quand un objet n'est plus disponible dans la mémoire gérée d'un programme. Lors du garbage collection, la mémoire gérée est libérée. Pour le développeur d’applications, disposer d’un mécanisme de garbage collection signifie qu’il n’a plus à se soucier de libérer de la mémoire. Cependant, cela peut nécessiter des changements dans le style de programmation, par exemple, une attention particulière doit être accordée à la procédure de libération des ressources système. Il est nécessaire de mettre en œuvre des méthodes qui libèrent les ressources système sous contrôle des applications.

Une pile est une zone mémoire spécialement organisée conçue pour le stockage temporaire des valeurs d'objets (variables et constantes), pour transmettre des paramètres lors de l'appel de méthodes et pour stocker l'adresse de retour. La gestion de la pile est assez simple par rapport au tas. Il est basé sur la modification de la valeur du registre correspondant en haut de la pile. Lorsque la taille de la pile est réduite, les objets sont tout simplement perdus.

Programme en C#

Un programme est une séquence de phrases correctement construite (ce qui ne soulève aucune objection de la part du compilateur C#), sur la base de laquelle un assemblage est formé.

En général, le programmeur crée un fichier contenant les déclarations de classe, qui est fourni en entrée au compilateur. Le résultat de la compilation est présenté par le traducteur sous forme d'assemblage et est déterminé par les préférences du programmeur. En principe, l'assemblage peut être de deux types :

§ Fichier exécutable portable (fichier PE avec extension .exe), adapté à une exécution directe par le CLR,

§ Fichier Dynamic Link Library (fichier DLL avec extension .dll), destiné à être réutilisé en tant que composant dans le cadre de toute application.

Dans tous les cas, sur la base du code d'entrée, le traducteur construit un module IL, un manifeste et génère un assembly. À l'avenir, l'assemblage pourra soit être effectué après la compilation JIT, soit être utilisé dans le cadre d'autres programmes.

Bonne journée à tous. Alexey Gulynin est en contact. Dans ce premier article sur C#, j'aimerais parler de la plateforme Cadre .NET. Le langage C# et la plateforme elle-même sont apparus pour la première fois en 2002. L'objectif principal de leur création était de fournir un modèle de programmation plus simple, plus évolutif et, surtout, plus puissant que le modèle de programmation COM. Basé sur la plate-forme .NET Framework, vous pouvez créer des applications pour la famille de systèmes d'exploitation Windows ; vous pouvez également créer des applications pour Unix, Linux et Mac OS X. Vous trouverez ci-dessous un bref aperçu. liste des fonctionnalités prises en charge par le .NET Framework:

1) Possibilité d'interagir avec le code existant. Cette fonctionnalité permet de compiler, par exemple, des composants binaires COM et des composants .NET.
2) Prise en charge de divers langages de programmation. Les applications .NET peuvent être créées à l'aide de différents langages de programmation, tels que C#, Visual Basic, F#.
3) Mécanisme d'exécution général. Le point ici est que .NET possède un ensemble spécifique de types que chaque langage prenant en charge .NET peut comprendre.
4) Intégration linguistique. Vous pouvez écrire une classe en Visual Basic, puis l'étendre en C#.
5) Grande bibliothèque de classes de base. Grâce à cette bibliothèque, nous pouvons oublier les complexités liées à la mise en œuvre d'appels de bas niveau aux API et nous concentrer simplement sur la programmation.
6) Modèle de déploiement simple. Contrairement à une bibliothèque COM, .NET n'a pas besoin d'être enregistré dans le registre. Il peut exister sous la forme d'un assembly.dll.

Peut-être que j'ai écrit ici sur des choses incompréhensibles, par exemple des classes, des interfaces API. Cela ne vaut pas la peine de s'en préoccuper pour l'instant. En principe, vous pouvez programmer sans savoir tout cela, mais comme nous apprenons, diluons un peu la pratique avec la théorie.
Pour en finir complètement avec la théorie, je vais vous parler des principaux éléments constitutifs de la plateforme .NET :

1) CLR (Common Language Runtime) - un environnement d'exécution de langage commun. La tâche principale de cet environnement est de charger et de gérer les objets .NET (afin que le programmeur n'ait pas à le faire manuellement). De plus, le CLR s'occupe d'un certain nombre de détails de bas niveau, tels que la gestion de la mémoire, le placement des applications et l'exécution de contrôles liés à la sécurité des applications.
2) CTS (Common Type System) - un système de types commun. Ceci décrit tous les types de données possibles pris en charge par le runtime (CLR). Vous devez être conscient qu'un seul langage peut ne pas prendre en charge absolument toutes les fonctionnalités définies par la spécification CTS. Il y a donc :
3) CLS (Spécification de langage commun). Il décrit un sous-ensemble de types et de constructions de programmation courants que tous les langages de programmation du .NET Framework doivent prendre en charge.

En plus des spécifications CLR et CTS/CLS, la plateforme .NET fournit bibliothèque de classes de base, qui est disponible pour tous les langages de programmation .NET. Cette bibliothèque vous permet de gérer, par exemple, les E/S de fichiers, les graphiques, divers périphériques externes, les flux de données et divers services à un niveau élevé (sans penser aux détails d'implémentation).

Je ne suis pas un maître en écriture théorique, je dirai donc que pour ceux qui veulent mieux comprendre la philosophie de .NET, je recommande de lire le premier chapitre du livre d'Andrew Troelsen « Le langage de programmation C# 5.0 et la plateforme .NET 4.5, publié en 2013. » Ce résumé de la plateforme .NET est tiré de ce livre. Le problème que j'ai rencontré avec ce livre est la difficulté de présenter le matériel à un débutant. Vous ne le pensez peut-être pas, ce n'est que mon avis.

Eh bien, mes amis, avez-vous toujours voulu apprendre le C# ? Alors passons hardiment à autre chose, je vous promets qu'à l'avenir il y aura un minimum d'articles théoriques (ne serait-ce qu'au début de l'apprentissage du C#), une seule pratique. Si vous avez besoin d’une théorie, fumez le livre d’Andrew Troelsen.
Ainsi, si vous avez besoin d'informations sur une classe ou sa méthode, rendez-vous directement sur

Notion d'environnement

La définition de la notion d'environnement dépend de concepts théoriques. Toutes les définitions peuvent être réduites aux idées de base suivantes :

*l'environnement est ce qui nous entoure, tout ce qui n'est pas nous, les conditions qui nous influencent. Les définitions de ce type sont plus proches de la compréhension biologique du rôle formateur de l'environnement ;

* l'environnement est une certaine relation entre nous et l'environnement.

* l'environnement est un élément du supersystème. Wilden a formulé cette approche ainsi : "L'environnement est un système ouvert associé à un supersystème. Il y a un échange de matière, d'énergie et d'informations entre eux."

D. Watson a identifié cinq classes de définitions données à l'environnement :

1. l'environnement en tant que processus ;

2. l'environnement en tant que domaine de l'activité humaine ;

3. l'environnement comme champ de sémantique ;

4. l'environnement comme ressource ;

5. l'environnement comme moyen de stratifier la société.

Un certain nombre d'études sur l'environnement abordent le problème du déterminisme. À proprement parler, nous pouvons envisager sept options d'interaction entre une personne et l'environnement et, apparemment, nous devrions supposer qu'elles se déroulent toutes dans des situations différentes :

1. déterminisme environnemental - détermination unidirectionnelle des causes et des effets. Il existe deux options : linéaire, dure, dépendance et dépendance probabiliste. Ce dernier signifie que l'une des variables considérées en donne naissance à une autre avec une certaine probabilité, ou qu'elles reposent sur un facteur commun. La conclusion principale de ce genre de connexion est qu’il n’y a rien dans l’effet qui ne soit contenu dans la cause ;

2. l’homme façonne l’environnement ;

3. les deux méthodes de détermination existent simultanément ;

4. détermination mutuellement causale - une interaction se produit entre l'environnement et la personne. Formes possibles : détermination équilibrante (homéostasie), équilibre instable ;

5. l'interaction est de la nature d'une lutte ;

6. l'environnement et l'homme représentent un seul système ;

7. détermination aléatoire, l'événement précédent n'affecte en rien le suivant, mais le résultat global peut être prédit selon les lois de la probabilité. (14, p.8)

Le terme « environnement spatial » doit désigner un ensemble de propriétés et de relations spatio-objectives de l'environnement, qui peuvent être de nature naturelle (forêt, mer, montagnes, steppe, plantes, animaux, etc.) ou anthropique : environnement urbain, parc paysage, environnement architectural, virtuel (espace présenté sur un écran d'ordinateur), etc.

Il convient de distinguer les types d'environnement spatial suivants :

* naturel (paysage naturel, plantes, animaux) ;

* anthropique (urbain, architectural, scolaire, logement). Dans un certain sens, on peut en dire qu'il s'agit d'un environnement sujet, puisque l'espace dans ce cas est déterminé par l'ensemble des relations sujet et intersujet. Par conséquent, lorsqu’on parle d’un environnement spatial de ce type, il est plus approprié de parler d’un environnement d’objets spatiaux. Si nous parlons de l'environnement spatio-objectif anthropique, alors du point de vue de la psychologie de la perception et de la psychologie de l'activité, il est important de noter que sa spatialité n'existe pas en soi, dans l'abstrait.

* un habitat écologique qui offre à chaque espèce d'êtres vivants son propre ensemble d'opportunités de vie.

* informations virtuelles, présentées sur l'écran d'affichage (jeux informatiques et vidéo, environnement Internet, simulateurs). Sa particularité réside dans le fait que l'opérateur travaillant avec un tel espace a la possibilité non seulement d'y observer, de percevoir et même d'y agir, mais, plus important encore, de modifier directement ses paramètres spatiaux, ses caractéristiques et ses relations.

Il existe une autre classification selon laquelle on peut distinguer :

Environnement primaire (un environnement dans lequel une personne passe une partie importante de son temps, connaît personnellement l'environnement et remplit de nombreuses fonctions vitales, comme un logement) ;

Environnements secondaires (environnements dans lesquels les rencontres avec les gens sont de courte durée, anonymes et sans conséquences, comme les lieux de loisirs).

Il existe quatre sous-systèmes dans l'environnement :

1) environnement naturel - le contexte général de la société - l'état de l'atmosphère, de l'eau, la composition de la surface terrestre, la structure du paysage, la flore et la faune, le climat, la densité de population ;

2) environnement « seconde nature » - modifications de l'environnement naturel transformées par l'homme : terres, routes, espaces verts, animaux domestiques, plantes cultivées ;

3) «troisième nature» - un monde artificiel créé par l'homme, qui n'a pas d'analogue dans le monde naturel, c'est-à-dire « nature humanisée » : asphalte, béton urbain, espace de vie et de travail, transports, objets techniques, environnement culturel et architectural ;

4) environnement social - une sorte d'intégration de trois environnements précédents, qui donne finalement une certaine qualité de vie, se manifestant, par exemple, dans l'établissement culturel (1, p. 350)

Le cadre de vie d’une ville est un espace-temps déterminé socioculturellement dans lequel se déroule la vie humaine. Il a une certaine structure, composée d'éléments objets (territoriaux, organisationnels, informationnels, groupe social, etc.) et subjectifs (valeurs et significations personnelles, attitudes, motivations et intentions, etc.) - toutes les stratégies de vie et biographies qui créent un continuum de coexistence, d'interaction, de communication.

La satisfaction ou l'insatisfaction à l'égard de la vie, le succès ou l'échec de la réalisation personnelle, le confort de vie dépendent de nombreuses circonstances, y compris l'habitat dans lequel se trouve le citadin - du paysage urbain créé par les mains, les actions, les émotions et les actes de ceux-ci. vivant sur le territoire donné, et ceux qui organisent et gèrent la vie du territoire. L'ensemble des stratégies de vie (conscientes et non pleinement réalisées) est objectivé et objectivé - un environnement surgit - avec sa propre structure (arrangement de vie), avec un ensemble de situations spécifiques de différents niveaux, un ensemble de problèmes et une qualité de communication . (18)

L'habitat a deux dimensions : territoriale et spatiale.

Le territoire est un ensemble d'aspects objectifs du milieu de vie, lieu de la vie humaine en tant qu'être psychophysique et individuel.

L'espace est un ensemble d'aspects subjectifs du milieu de vie - le lieu de vie, l'existence d'une personne en tant qu'individu, l'individualité dans son aspect social, culturel (vision du monde, valeur, etc.), communicatif, mental (personnel-historique), dimensions métaphysiques (idéales-fantastiques). Les individus, en tant que sujets de stratégies de vie, vivent dans différentes dimensions de l'espace de vie : chacun a sa propre vie. Mais les trajectoires des chemins de vie se croisent. Un endroit de l’espace socioculturel peut être plus « peuplé », un autre moins. L'espace de vie présente des caractéristiques qualitatives dont l'ensemble crée la saveur du lieu à travers un ensemble de situations et de problématiques spécifiques : d'une part, des territoires spécifiques, d'autre part, des personnes spécifiques. La spécificité d'un fragment spécifique de l'environnement urbain est déterminée à la fois par la situation spécifique du territoire et par l'ensemble des situations spécifiques des personnes vivant sur ce territoire. (24)

L'espace socioculturel dans lequel une personne vit en tant que créateur de son propre destin, réfracte et détermine la perception à la fois du territoire et de lui-même, influence le comportement, la réponse à la situation extérieure (y compris les paramètres physiques) et à ceux qui vivent à proximité. L’image du territoire et l’image de l’espace se confondent dans l’image du lieu de vie. Les problèmes personnels et les problèmes du territoire de résidence se croisent et s'interfractent. Description et analyse de l'espace socioculturel de l'ensemble des habitants d'un lieu donné - une carte sociologique de la zone, sur laquelle sont tracés les aspects significatifs, les paramètres, les problèmes de la situation spécifique d'un territoire spécifique et de personnes spécifiques.

Il ne fait aucun doute que l’environnement, différemment configuré et créé par l’homme, affecte inévitablement le psychisme, le comportement, la prise de décision, la perception, le mouvement et la compréhension de l’espace. Il existe de nombreuses similitudes dans les actions de différentes personnes dans le même environnement. La structure de l'environnement affecte le psychisme et le comportement des personnes de manière conservatrice : l'action se poursuit pendant longtemps et l'individualité des acteurs individuels peut parfois même ne pas se manifester de manière perceptible. Le même environnement, de par la nature de sa structure, semble prescrire des normes, un modèle de comportement, une réaction similaire. Le patrimoine culturel de la société et l'influence des facteurs sociaux s'inscrivent dans les coordonnées physiques de l'environnement artificiel créé par l'homme et déterminent le comportement des personnes quel que soit le développement mental des individus. (6, p173)

M. Chernoushek définit sept types d'informations qui caractérisent les situations suivantes de perception de l'environnement dans son ensemble :

1. L’environnement n’a pas de cadre spécifique et solidement fixé dans le temps et dans l’espace.

2. L’environnement affecte tous les sens et nous recevons des informations sur l’environnement à partir d’une combinaison de données provenant de tous les organes.

3. L'environnement fournit non seulement des informations principales, mais aussi des informations périphériques.

4. L’environnement contient toujours plus d’informations que nous ne pouvons enregistrer et comprendre.

5. L'environnement est perçu en lien étroit avec les activités pratiques ; la perception est liée à l’action et vice versa.

6. Tout environnement, ainsi que ses caractéristiques physiques et chimiques, a des significations psychologiques et symboliques.

7. L'environnement agit dans son ensemble.

Le contact avec l’environnement amène les gens à éprouver constamment toutes sortes de sentiments. Ils sont formés par les facteurs suivants :

1. Niveau de stress (bruit, pollution, surpopulation, sursaturation des impulsions).

2. Qualités sociales de l'environnement (le rôle de l'environnement physique dans le développement ou la suppression des interactions à caractère social).

3. Orientation et mobilité (comment les citoyens utilisent la ville en fonction de leurs « images » et « idées » sur l'environnement).

4. Plénitude de l'environnement (le niveau esthétique des impulsions qui contribuent à la satisfaction des besoins et créent un sentiment de satisfaction).

5. Culture et loisirs (comment la ville remplit ses tâches dans les domaines intellectuel, culturel, sportif et éducatif).

6. Capacités de prise de décision (comment les citoyens perçoivent les décisions individuelles concernant le niveau de développement de leur environnement et dans quelle mesure ils participent activement à la prise de ces décisions). (25)

Environnement et émotions

Du point de vue de la psychologie environnementale, une personne se trouve dans un champ constant d'interaction avec l'environnement, ce qui lui provoque, grâce à la présence de réactions généralisées du corps, un certain fond émotionnel. En psychologie, on sait que toute perception s'accompagne d'une tonalité sensorielle, quel que soit l'objet de notre perception - une ligne, une tache de couleur, un objet, une personne ou l'environnement. Le ton lui-même peut être biologiquement déterminé ou lié à certaines de nos expériences passées avec un objet. Dans les années 1920, Lundholm explore le ton sensuel des lignes. La tristesse est représentée par de grandes ondes sinusoïdales descendantes, la gaieté par de petites lignes pointant vers le haut, la gentillesse par de grandes courbes dirigées horizontalement. A. A. Barabanov a analysé l'impact émotionnel des compositions volumétriques-spatiales des temples, considérant les lignes, les formes et les figures des bâtiments comme des signes émotionnels et esthétiques porteurs d'une certaine signification symbolique.

Charles Osgood a exploré les réponses émotionnelles à divers objets esthétiques. Avec ses co-auteurs, il a créé une technique qui permet de mesurer et de comparer l'impact émotionnel de n'importe quel objet. Cette technique est appelée différentielle sémantique (SD). C. Osgood a utilisé des images comme stimuli expérimentaux, demandant aux sujets de trouver des paires d'antonymes pour les évaluer. En général, cinquante sujets évaluaient cinquante tableaux. Après le traitement mathématique, les échelles de signification similaire sont rejetées et il reste environ 20 paires d'adjectifs polaires. Une analyse factorielle a été appliquée aux échelles résultantes. En conséquence, trois facteurs ont été identifiés, que Charles Osgood a interprétés comme « évaluation », « force », « activité ».

Facteur d'évaluation :

Agréable - Désagréable

Beau laid

Propre sale

Gentil - Cruel

Facteur de force :

Autoritaire - Doux

Fort faible

Massif - Miniature

Durable - Fragile

Facteur d'activité :

Passionnant - Relaxant

Vite lent

Monotone - Sharp

Énergique - Léthargique

Il s'est avéré plus tard que, quel que soit le stimulus évalué (images, concepts, sons, couleurs, bâtiments), ces trois facteurs fondamentaux demeurent. Les échelles obtenues peuvent déjà être utilisées comme outil pour mesurer l’impact émotionnel des objets étudiés. En règle générale, chaque échelle comprend sept divisions ; les sujets évaluent l'objet sur chacune des échelles. Sur la base des points obtenus sur chacune des échelles, il est possible de construire un profil de l'impact émotionnel de l'objet. (27, p.15)