.NET Core 2.0 et la gamme de produits connexes sont finis

.NET Core 2.0 et la gamme de produits connexes sont finis

Microsoft a fourni la deuxième version majeure de sa gamme de produits de base avec .NET, Core ASP.NET et Entity Framework de base. En parallèle, la troisième mise à jour a été publiée pour Visual Studio qui prend en charge les produits de base 2.0.

La version 2.0 de .NET fini, Core ASP.NET et Entity Framework Core est maintenant quelque chose de plus que l'annonce au Techwiese de Microsoft le 9 Août, 2017 suggéré. Par billet de blog Microsoft a annoncé aujourd'hui que les versions 2.0 RTM sont disponibles dès maintenant.

.NET Core 2.0

La plus grande nouveauté dans .NET 2.0 Core est la mise en œuvre de la spécification "Norme .NET 2.0"Microsoft avait seulement terminé la semaine dernière. Par rapport à .NET Core 1.1 2.0 réalisé .NET de base de sorte que d'environ 19 000 interfaces de programmation supplémentaires du cadre .NET d'origine. Non seulement la migration du code existant Core .NET est beaucoup plus facile, mais aussi courir beaucoup plus de composants existants de logiciels .NET avec .NET de base, qui ont été écrit pour le .NET Framework classique. Selon le directeur de programme Microsoft .NET Immo Landwerth 70% du disponible sur les paquets Nuget.org exécutent maintenant sous .NET 2.0 de base, en particulier depuis .NET Core peut maintenant se référer packages .NET framework directement. A également déclaré des classes mortes telles System.Data.DataSet trouvent ainsi dans le monde du .NET de base.

.NET de base utilise désormais la plus récente, célèbre et tristement célèbre dans la première version en raison de ses graves bogues juste à temps compilateur RyuJIT dans la version 32 bits au lieu de l'ancien JIT32. RyuJIT a été introduit pour les systèmes 64 bits dans .NET Framework 4.6 et utilisé dans 1.x Core .NET en mode 64 bits. Maintenant dans .NET 2.0 de base RyuJIT vient dans une version accélérée pour les applications 32 bits et 64 bits.

Les téléchargements de base .NET 2.0 (Runtime et SDK pour plusieurs systèmes d'exploitation) se trouvent sur GitHub et la page Microsoft .NET de base officiel. Aussi les images Docker basées sur des serveurs Linux et Windows Nano sont disponibles. Sauf sur les versions bien prise en charge Windows, Linux et MacOS .NET de base maintenant fonctionne également sur Fedora 25/26, Debian 9, Ubuntu 17.04, Linux Mint 18, Suse Linux Enterprise 12 SP2 + et MacOS 10:13 "High Sierra", Prise en charge des processeurs ARM32 reste pour l'instant au stade de prévisualisation.

.NET Core 2.0 peut 1.x existe sur un système en plus de .NET de base. Notez, cependant, que, après l'installation du SDK de base .NET 2.0 (voir la figure 1) dont les outils sont également pour les projets 1.x de base .NET utilisés automatiquement, si les développeurs ne sont pas globalement par une entrée dans le. fichier JSON du dossier du système de fichiers pertinents appliquer l'utilisation explicite de plus SDK. En plus de C # et F # Microsoft peut maintenant gérer pour le développement de base .NET avec Visual Basic .NET. Les modèles de projet, il ne fournit pas Microsoft, mais d'abord seulement pour les applications de la console et les bibliothèques pour les projets Web à ce jour.

Les développeurs utilisant Core .NET 1.0 ou été note 1.1 qui prennent en charge doit un maximum de courses au 27 Juin 2019. Il peut même se terminer plus tôt si Microsoft .NET 2.0 pour la version de base de soutien à long terme (LTS) a expliqué. Cela n'a pas encore eu lieu. A partir de cette déclaration d'état utilisateurs de 1.x Core .NET ont seulement un an pour passer à la version 2.0.

Installation du .NET Core 2.0 SDKInstallation du SDK .NET de base 2,0 (Fig. 1)

Visual Studio 2017 Mise à jour 3

Pour le développement avec .NET 2.0 de base Visual Studio 2017 est publié en parallèle Mise à jour 3 (voir la figure 2) est nécessaire. Il est la première version de Visual Studio, le fonctionnement en parallèle de plusieurs différents .NET SDK de base, .NET de base dans des conteneurs nano-Docker sur serveur Windows (auparavant Visual Studio toujours mettre uniquement des conteneurs Linux à), ainsi que le live-Unit prend en charge les applications de base .NET -Evaluation. Les développeurs ont encore besoin de l'unité en direct tester la version coûteuse entreprise de Visual Studio. .NET 2.0 de base peut également utiliser Visual Studio pour Mac dans la version nouvelle version 7.1.

Visual Studio set-up propose désormais la mise à jour. 3 à partir de la Visual Studio mise en place permet la mise à jour immédiate 3 (Fig. 2).

Noyau ASP.NET 2.0

Aussi pour le Webentwicklungsframework ASP.NET de base Microsoft a terminé la version 2.0. Contrairement à annoncé la publication de la première version de prévisualisation en cours d'exécution ASP.NET Core 2.0 maintenant non seulement sur .NET 2.0 de base, mais aussi continuer sur le .NET Framework classique (version 4.6.1). ASP.NET Core 2.0 est basé sur la norme et donc .NET 2.0 ne fonctionnera pas sur les anciennes versions de .NET Framework.

A partir de ASP.NET 2.0 de base Microsoft propose Microsoft.AspNetCore à un package Nuget qui fonctionne comme un méta-paquet tous les paquets NuGet créés par Microsoft pour ASP.NET noyau soit - y compris Entity Framework Core 2.0. À première vue, cela contredit les classes .NET de référencement minimum promu par Microsoft avec la stratégie de base .NET. Au deuxième coup d'œil, les outils de déploiement fournissent de base .NET à la fin restent seulement les paquets nécessaires. Microsoft documente le processus de migration des applications ASP.NET de base 1.x à la version 2.0.

ASP.NET Core offre des améliorations de performance fournissent maintenant un soutien pour la syntaxe C # -7,1 dans les vues ainsi que "Pages rasoir" Marqué des vues qui font entièrement sans contrôleur. ASP.NET 2.0 Vues de base peuvent désormais precompile - Microsoft a déjà intégré dans les versions bêta pour la version 1.0, mais élargi à nouveau. Le code de programme de démarrage d'ASP.NET, l'entreprise a dans la version 2.0 grandement simplifiée avec l'introduction de la méthode WebHost.CreateDefaultBuilder ().

Visual Studio 2017 offre récemment lors de la création de nouveaux projets web ASP.NET-core un choix entre .NET de base 1.0, 1.1 et 2.0, ainsi que de nouveaux modèles de projet, en plus du code de programme serveur directement code client angulaire (actuellement sur le stand 4.1.2) ou React (actuellement la version 15.5.0) (voir figure 3). Les nouveaux modèles sont également disponibles via l'outil ligne de commande dotnet nouveau disponible.

Plus de choix lors de la création de nouveaux projets Web ASP.NET de base dans Visual Studio 2017 Mise à jour 3 (Fig. 3) Plus de choix lors de la création de nouveaux projets Web ASP.NET de base dans Visual Studio 2017 Mise à jour 3 (Fig. 3)

L'extrait de code source ci-dessous montre un exemple d'un rasoir eingestreutem page code C # dans ASP.NET Core 2.0:

@page
{@fonctions
Format chaîne publique date (thetime datetime) {
retour theTime.ToString ("ré");
}
}


Temps sur le serveur:


@FormatDate (DateTime.Now)



Entity Framework Core 2.0

Entity Framework Core est également disponible en version 2.0 dans plusieurs packages NuGet pour les systèmes de gestion de bases de données Microsoft SQL Server, Microsoft SQL Server Compact 3.5 et SQL Server Compact 4.0, SQLite et le pilote en mémoire pour les tests unitaires. Mise à jour des pilotes d'autres fabricants suivront. La publication pour les pilotes de version 1.x ne sont pas compatibles avec la version 2.0, parce que Microsoft a une nouvelle fois changé la programmation dès la phase bêta de 1.x.

Entity Framework Core 2.0 est maintenant basée sur la norme .NET 2.0 et peut fonctionner sur toutes les plateformes qui prennent en charge cette norme API, donc .NET Framework, version 4.6.1, la version .NET Core 2.0, la version Xamarin.iOS 14,10, Xamarin Version 7.5 et .android version 3.8 Xamarin.Mac. Cela inclut, mais n'est pas actuellement la plate-forme Windows Universal (UWP) dans Windows 10. Ceci est seulement à l'automne avec le support de mise à jour de Windows 10 créateurs CASE pour .NET standard dans la version 2.0.

Entity Framework Core 2.0 reçoit de nouvelles fonctionnalités telles que les filtres de données globales qui sont définis dans le contexte de la classe et affectent toutes les requêtes, y compris les commandes de chargement Eager. Ainsi, les exigences multiclient et spéciales peuvent être comme un chiffon doux Supprimer (marquer une ligne comme supprimée plutôt que de supprimer réellement) à réaliser. Les instances du contexte Entity Framework peuvent désormais produire à l'avance et de gérer dans une piscine, de sorte que les applications Web peuvent accéder rapidement à des requêtes HTTP entrantes sur elle (avec AddDbContextPool). Lors de l'utilisation des requêtes SQL pour les développeurs peuvent désormais utiliser la syntaxe introduite dans d'interpolation de chaîne C # 6.0 pour assembler la commande SQL. Entity Framework de base assure qu'il peut être utilisé non pour des attaques par injection SQL, comme le code suivant à l'interpolation chaîne avec des commandes SQL dans Entity Framework Core 2.0 montre:

ville string = "Berlin";
en utilisant (var ctx = new WWWingsContext ())
{
ctx.Log ();
liste des vols IQueryable =
ctx.FlugSet.FromSql ($ @"Sélectionnez * d'où le départ du vol = {lieu}");
WriteLine (flugliste.Count ());
foreach (vol var dans la liste des vols)
{
WriteLine (vol);
}
}

Microsoft a dans certaines situations améliore la traduction de LINQ to SQL, et mène maintenant quelques commandes dans la base de données au lieu de RAM (cf .. Notes de version pour Entity Framework Core 2.0). Dans une première entité de test Framework Core 2.0 par opposition à la version 1.1 interroge maintenant en fait avec ToString (). Contient () et AddDays () a traduit correctement SQL. Malheureusement, cela ne concerne pas l'opérateur majeur GroupBy, qui continue d'inviter tous les enregistrements dans la RAM afin de les regrouper là, ce qui est souvent pas acceptable dans la pratique. Les utilisateurs sur GitHub répondent avec une grande incompréhension. Silveria Miranda a commenté: "Deux ans et presque deux versions plus tard cette fonction de base n'a pas encore été mise en œuvre, ni est-il dans les priorités. Le EntityFramework de base Shoulderstand tranquillement être en version bêta et ne va pas à la version 2.0",

Microsoft lui-même avait la traduction de GroupBy dans la feuille de route pour Entity Framework de base comme "caractéristique essentielle qui manque" mentionné. Un regard sur la feuille de route révèle que Microsoft n'a pas mis en œuvre de nombreuses autres fonctionnalités de cette liste dans Entity Framework Core 2.0, ce qui est surprenant étant donné que d'autres fonctionnalités mineures ont été réalisées. (Holger Schwichtenberg) /(RME)

Moteur de jeu: Unity 5.5 Beta fait des particules aux couleurs vives

Moteur de jeu: Unity 5.5 Beta fait des particules aux couleurs vives

(Photo: Unity)

Un ajout de nombre dans le système de particules et des améliorations lors de l'importation des textures pour faciliter les développeurs de jeux dans la version actuelle du travail de l'unité de moteur de jeu.

En avant-première de la version 5.5 du moteur de jeu Unity, est maintenant une version bêta disponible. La plate-forme principalement destiné à de développement de jeux fonctionne sur la mise à jour avec la version 4.4 du compilateur C # du Mono et par le travail par défaut avec l'API graphique 3D WebGL 2.0 pour de nouveaux projets gratuits.

À la charge incluse dans les améliorations actuelles de la version comprendra des travaux sur l'algorithme pour les lignes de dessin, à la fois en ligne et dans le sentier utilisé Renderer. Dans le système de particules nouvelles options pour la création d'effets visuels sont quant à lui à trouver. En tant que feux-module peut aider à fabriquer des particules faire la lumière sur leur environnement et les utilisateurs peuvent programmer le mouvement des particules à travers un nouveau module de bruit avec une qualité variable du bruit.

D'autres changements se rapportent à la Farbgradientensystem, qui va maintenant permettre à un plus grand contrôle, et avec l'autorisation des traces de particules génèrent un nouveau module de sentiers. De plus, les développeurs ont pu importer la texture, comme le découplage des options pour le format de texture et à la compression et à deux dimensions, des effets physiques, tels que les possibilités supplémentaires dans la détection de collision, d'améliorer.

Le moteur est à usage privé et des projets commerciaux qui génèrent moins de 100.000 dollars par an dans les ventes, gratuitement. Pour une utilisation professionnelle et le besoin de fonctionnalités supplémentaires que l'unité offre différents produits d'abonnement.(Dec)

base de données en mémoire: SAP attire l’édition Express gratuite de HANA

SAP attire l'édition Express gratuite de HANA

Au plus grand fabricant de logiciels de l'Europe Open House TechEd a introduit une version simplifiée de sa plate-forme en mémoire qui peut être tout à fait développer des applications de production, selon SAP.

SAP a annoncé le tient actuellement à la conférence des développeurs de TechEd à Las Vegas avec le HANA Express Edition gratuitement, mais dépouillé version de sa propre plate-forme en mémoire. de sorte que les utilisateurs ont un accès gratuit à une sélection de fonctions pour simplifier l'entrée avec HANA. Avec l'édition Express, mais devrait être bien développer des applications de production, de test et peut être mis en œuvre qui utilisent une mémoire allant jusqu'à 32 Go d'espace libre. Moyennant des frais, l'espace supplémentaire peut acquérir.

L'Express Edition fournit des services de base de données et des applications et des services pour des analyses plus ambitieuses préparées sur une plate-forme cohérente. Les développeurs peuvent créer des applications qui utilisent le HANA pour effectuer des opérations de traitement transactionnel et analytique sur une copie de données. Par conséquent, vous avez la possibilité de tirer de nouvelles connaissances à partir de données structurées et non structurées (comme le texte, Geo et les données graphiques) en temps réel.

Le HANA Express Edition est disponible dans le centre SAP Developer pour télécharger. L'installation sur les serveurs standard, ordinateurs de bureau ou des ordinateurs portables avec des paquets d'installation binaires pour SUSE Linux Enterprise Server (SLES) et Red Hat Enterprise Linux fourni (RHEL). Sinon, l'édition Express peut être utilisé sur un système d'exploitation Windows ou Mac par l'image d'une machine virtuelle est téléchargée, qui est fourni avec SLES. Il est également disponible à la bibliothèque SAP-Cloud Appliance, qui offre des options de déploiement pour les plates-formes de cloud public commun. (ANE)

Java: CDI 2.0 est maintenant officiellement terminé

Java: CDI 2.0 est maintenant officiellement terminé

Le Groupe d'experts JCP a approuvé la spécification pour le contexte et l'injection de dépendance. CDI est une partie importante de Java EE, mais orienté dans la version 2.0 et Java SE.

Alors que le rejet provisoire de l'état actuel de la plate-forme Java Module System (JPMS) alias Jigsaw, qui est une partie centrale de Java 9, déstabilisé le monde Java, a un important surtout pour la spécification Java EE maintenant la bénédiction du JCP Groupe d'experts correspondant reçu: CDI 2.0 (contexte et injection de dépendance) est maintenant la norme Java officielle.

Une innovation majeure de la spécification JSR 365 guidée (Java Specification Demande) est également modularisation, mais pas le système, mais la spécification elle-même. Par conséquent, les décideurs reflètent le fait que le CDI été spécialement conçu pour être utilisé en Java EE applications ont été conçues, mais maintenant s'intègre explicitement pour Java sE. Bien que les mises en œuvre précédentes CDI utilisent déjà pris en charge, mais les anciennes spécifications avaient la plate-forme Java EE même au nom.

division claire

Maintenant, le cahier des charges divisé en "noyau CDI"Qui contient les spécifications de base, "CDI en Java SE" avec des règles pour l'édition Standard et "CDI en Java EE" avec des fonctions et des règles supplémentaires pour l'édition d'entreprise de Java. Le premier élément contient le Konezpte de base et fondamentale, essentielle comme qualification, injection Scopes, dépendance, intercepteurs et les événements. La spécification EJB ont externalisé les décideurs dans la dernière partie tandis que la zone SE, entre autres, l'API pour les conteneurs bootstrapping CDI dans Java SE sur la classe abstraite SeContainerInitializer et son newInstance statique () - contient la méthode.

Une innovation technique importante est le système d'événements étendu. Événements récemment ne peuvent plus synchroniser, mais aussi traitée de manière asynchrone. Il est également possible de désactiver Observer individuel et trier leur ordre sur l'annotation @ prioritaire.

Annotation littérale et Java 8

Autre nouveauté sont l'annotation littérale qui représentent les classes statiques et une Instaziierung nombreuses annotations CDI, y compris javax.enterprise.inject.Any, javax.enterprise.inject.Default et les annotations de portée javax.enterprise.inject.RequestScoped, javax. enterprise.context.SessionScoped et javax.enterprise.context.ApplicationScoped permet, par exemple comme suit:

Par défaut defaultLiteral Default.Literal = new ();

De plus, les fabricants ont CDI 2.0 adapté aux Java 8 fonctions - de sorte que la norme actuelle de Java SE, pas prévu pour Java EE 8. Juillet Pour prendre en compte le cahier des charges, entre autres cours d'eau et lambdas. En outre, le Qualifier répété étendre le concept de qualification CDI en permettant à travers les annotations répétables de Java 8 est une affectation multiple.

La spécification complète peut également être téléchargé à partir du côté du CDI-Spec comme une implémentation de référence et un TCK correspondant (technologie de compatibilité Kit).(RME)

En mémoire de grille de données: Hazelcast 3.7 est plus rapide et plus modulaire

En mémoire de grille de données: Hazelcast 3.7 est plus rapide et plus modulaire

La nouvelle architecture modulaire permet apparemment d'accéder rapidement aux mises à jour, de nouvelles fonctionnalités et de programmation clients et conduit à des corrections de bugs plus rapides.

Hazelcast la version 3.7 du même en mémoire grille de données a publié. La nouvelle version devrait comporter environ 30 pour cent plus rapide que la version précédente. Hazelcast 3.7 doit la vitesse supérieure à nouveau une couche de réseau révisée pour améliorer la concurrence.

HazelcastLe graphique montre les améliorations de performances dans la version 3.7 (les données se rapportent à un cluster à quatre nœuds, mesurée dans un 1 Gbit / s réseau à grande vitesse).(Photo: Hazelcast)

Dans Hazelcast 3.7 est la première version entièrement modulaire du système, ce qui signifie que le client ou langue prise en charge ainsi que les plug-ins sont maintenant disponibles sous forme de modules autonomes. Avec la nouvelle architecture modulaire sont disponibles 29 modules. Cela devrait rendre leur communauté plus facile de fournir le soutien nécessaire dans la langue ou ajouter une fonctionnalité manquante. Les modules correspondants sont soumis par les propositions de programme de mise en valeur Hazelcast.

L'intégration de Cloud Foundry et OpenShift

Avec la sortie de la nouvelle version est Hazelcast peut être utilisé dans un total de neuf environnements cloud et est extensible via des plug-ins de découverte de nuage vers d'autres environnements. Pour les mises en œuvre PaaS (Platform as a Service) Hazelcast apparaît désormais comme un service sur le Cloud Foundry et OpenShift disponibles. De plus, la grille de données en mémoire comprend des options de déploiement de conteneurs pour Docker.

Pour soutenir AWS plus de disponibilité et Azure offre des zones de disponibilité. Dans la version 3.7, par conséquent, une stratégie de partition peut affecter la fonction ZONE_AWARE. Ainsi, un cluster unique peut être mis en oeuvre dans plusieurs zones de disponibilité, dans lequel les sauvegardes sont conservées dans des zones séparées pour les données primaires. Doit remplir la zone de disponibilité est perdue, le cluster fonctionne toujours.

L'accès à Spark

En Hazelcast vous pouvez mettre une politique Eviction que l'on appelle de la LRU ou cache LFU tôt. La nouvelle version 3.7 offre désormais une politique Eviction individuelle pour carte et mises en œuvre JCache.

Une nouvelle révision concerne l'introduction du connecteur Spark Apache. Le cadre Big Data peut être utilisé avec le plug-in et API Spark RDD Hazelcast cartes et caches en cache RDD partagée. Les deux API Java et Scala Spark sont pris en charge.

En outre, introduit avec la version 3.7 du DurableExecutorService. Il fait apparemment souvent utilisé pour le traitement distribué faute Hazelcast ExecutorService tolérant.(ANE)

Code de Google est

Code de Google est

Pour de nombreux développeurs la plate-forme de Google pour l'exécution de projets open source avait depuis longtemps dépassé le premier choix. Maintenant, le groupe a décidé de Google Code.

Le 18 Mars 2005, qui a commencé il y a près d'une décennie, le code Google a longtemps été considéré comme l'une des plateformes les plus importantes pour l'exploitation de projets open-source. Ici, la société Internet lui-même tourné des interfaces de programmation aussi pour ses propres services, tels que YouTube ou Google Maps disponible, même il a couru là des projets tels que le Google Web Toolkit (GWT). Maintenant, cependant, la compagnie tire la poignée d'ouverture: A partir de maintenant il est plus possible de lancer de nouveaux projets sur Google Code.

Et Google continue: Donc, pas de soumissions sont encore en activité sur les projets de plate-forme du 24 Août 2015 pour accepter sa façon de visiter uniquement en mode lecture seule. 25 Janvier, 2016 code Google sera alors complètement fermé.

La fermeture a lieu sur le fond que dans l'intervalle, les concurrents GitHub comme BitBucket ont une entrée nettement plus grande ou avaient déplacé de nombreux anciens projets Google code déjà GitHub, Bitbucket et Co. - et que, bien que Google Code a également distribué un bon moment Git et les systèmes de contrôle de version Mercurial pris en charge.

Principalement exploité sur des projets Google Code sur GitHub, il est fait référence au mouvement. À cette fin, le Groupe propose un outil pour exporter les ressources. Pour BitBucket et SourceForge il y a aussi l'importation des outils. Certains propres projets de Google avaient migré plus tôt à GitHub ou ont été lancés il y a la même chose.(ANE)

téléphone à la maison … avec l’Arduino

Jusqu'à présent, arrivé dans la série actuelle et des circuits électroniques fondamentaux avec des capteurs et des actionneurs pour la langue. La carte microcontrôleur a utilisé n'a connu qu'une insularité et était peut-être connecté via USB à l'hôte. Ce document va baisser cette restriction. Dans ce domaine et les prochains épisodes, la série portait sur une variété d'options de communication pour les cartes Arduino.

Internet des objets moyens de communication: la communication entre les appareils, la communication entre les appareils et les services de cloud computing et l'interaction entre les appareils et les gens. Mais comment l'homme, appareil mobile ou PC peut parler au microcontrôleur? En d'autres termes: Comment une carte Arduino pour appeler à la maison, ou discuter avec d'autres machines?

Dans cet article, Shields Ethernet sont à l'avant-garde. Dans d'autres épisodes aussi WiFi et Bluetooth sont discutées. De plus, nous traitons avec différents protocoles de communication spécifiques à l'application tels MQTT. de sorte que nous posons les bases pour connecter nos appareils IdO à Internet.

Avant de commencer avec des exemples pratiques, une petite excursion dans le monde des systèmes de bus est nécessaire. Shields Ethernet communiquent avec l'Arduino via le bus SPI.

SPI - Serial Peripheral Interface

Dans les épisodes précédents, nous avons des bus tels que I2C et 1 fils I2C rencontrés sur fait, par exemple, la connexion d'un écran à cristaux liquides, à propos de capteur de température 1-Wire DS18B20 et le système de microcontrôleur communique avec l'autre. Mais il y a plus de systèmes de bus orientés vers la pratique.

Un système de bus très commun appelé SPI (Serial Peripheral Interface), est à l'origine de Motorola et est utilisé pour communication synchrone full-duplex entre un maître (!) Et ses esclaves. Pour les esclaves comme un lecteur de carte SD, et affiche les composants de communication peuvent comprendre. Vous pouvez vous demander pourquoi nous ne l'utilisons aussi pour I2C. La réponse est courte. communication SPI est simplement plus rapide que via un bus I2C.

Configuration type SPI avec un maître et trois esclavesConfiguration type SPI avec un maître et trois esclaves(Photo: wikipedia.org)
quatre lignes

Mais comment fonctionne SPI en détail? Un trait caractéristique de SPI est que le protocole spécifie quatre lignes:

wikipedia.orgCommunication de registres à décalage en utilisant maître et esclave(Photo: wikipedia.org)

écourter

Au début de chaque communication SPI, le maître configure l'horloge pour que l'esclave peut fonctionner à cette fréquence. Ensuite, le maître sélectionne le dispositif désiré par l'intermédiaire d'un signal faible. Si vous avez besoin d'une période d'attente, le maître attend pour le temps spécifié avant d'initier la communication.

SPI transmet bit de données par bit en duplex intégral. Les principales unités sont des octets ou des mots machine. Le maître envoie un bit par sa sortie MOSI, où l'esclave reçoit les données. En parallèle, les bits envoyés d'esclaves sur sa sortie MISO, qui à son tour reçoit le maître.

Cette communication bidirectionnelle a lieu même lorsque les données d'utilisateur est transporté dans une direction seulement. Chaque partenaire de communication comporte deux registres à décalage à 8 bits, une pour l'émission et l'autre pour recevoir des données.

polarités et les phases SPI

Ainsi, le maître et l'esclave peuvent communiquer avec succès, il faut un réglage non seulement la fréquence d'horloge, mais aussi la polarité utilisée (CPOL) et la phase (ACSP) de l'horloge.

dépend de la polarité, dont la valeur du signal actif et qui représente l'état inactif. la phase dépend si est lu sur le front montant et écrit sur le front descendant, ou vice versa.

wikipedia.orgChronogramme des polarités et des phases(Photo: wikipedia.org)

Affectation des broches Arduino

arduino.cc assignement des broches SPI avec Arduino(Photo: arduino.cc)

La question des prix est l'endroit où les broches SPI mentionnés ci-dessus sont effectivement situés dans les différents cartes Arduino. sont la preuve d'une page SPI sur Arduino.cc. Vous trouverez au moins les missions pour le Conseil d'arduino.cc. Dans les répliques et d'autres conseils, vous devriez consulter la documentation du fabricant.

Qu'est-ce qu'un UART

De toute évidence, il y a à la fois la communication série et parallèle au sein des conseils de microcontrôleur.

Nous avons besoin d'une interface qui combine les deux variantes.

Le Universal Asynchronous Receiver / Transmitter a pour tâche de traduire des données entre la communication série et parallèle. Par exemple entrer par l'intermédiaire d'une interface parallèle d'octets décompose l'UART de l'émetteur, et envoyé sur un bit de la ligne série par bit au récepteur, où un récepteur UART réassemble les bits en octets de nouveau. L'ingrédient le plus important du UART contient registre à décalage - en fait il y a deux. Nous avions appris à l'examen des LED, comme le 74HC595 de registre à décalage reçoit un octet et fournit à son bit de sorties disponibles. La communication série entre UART est synchronisée par les bits start et stop. Elle peut être réalisée en duplex ou en mode recto.

Un UART est pas responsable du niveau logique des composants connectés. Pour la prise en charge de signalisation dépendant de la tension au lieu des normes telles que RS-232, RS-422 et RS-485.

Ethernet Shield Arduino

Le blindage Ethernet Arduino dans sa version actuelle est basée sur la puce W5100 de Wiznet. Les données de performance les plus importantes sont dénombrées rapidement. Le dispositif fournit jusqu'à 100 Mo / s transmission de données, prend en charge la norme IEEE 802.3 / 10BASE-T, IEEE 802.3u / 100BASE-TX possède une mémoire tampon interne de 16 kilo-octets et permet jusqu'à quatre connexions socket parallèles.

Pour conduire le bouclier Ethernet, nous avons besoin d'une bibliothèque appropriée. L'Arduino IDE implique déjà une bibliothèque correspondante appelée Ethernet.

Nous commençons par un petit sketch, qui ouvre seulement une connexion Ethernet. Si vous trouvez votre Ethernet Shield une étiquette avec une adresse MAC unique située, situé dans la partie inférieure Sketch cette URL. Cependant, il n'y a pas de telles informations, vous inventez une adresse MAC. Le plus simple est bien sûr si vous avez changé l'adresse MAC de l'esquisse. Le risque qu'un dispositif avec la même adresse MAC est dans votre réseau est négligeable, de toute façon.

Le programme tente d'obtenir par adresse IP dynamique DHCP, et donne des informations appropriées en cas d'échec. Si vous utilisez des adresses statiques, procédez comme indiqué dans la liste.

////////////////////////////////////////////////// /////////////
//
// sketch Arduino: A propos de Log Shield Ethernet
// a) avec une adresse statique ou
// b) avec une adresse dynamique via DHCP
//
////////////////////////////////////////////////// /////////////

#include
#include

////////////////////////////////////////////////// /////////////
// Nous avons besoin d'une adresse MAC.
// Si le bouclier Ethernet sans adresse
// (généralement des autocollants collés)
// a, nous devons inventer notre propre:
////////////////////////////////////////////////// /////////////

mac octet [] = {
0x00, 0xCC, 0xBB, 0xAA, 0xDE, 0x02
};


// client Ethernet: API pour accéder au bouclier Ethernet
Ethernet client du client;

////////////////////////////////////////////////// /////////////
// Le croquis est basé sur les adresses IP dynamiques via DHCP.
// Vous pouvez également spécifier une adresse statique serait possible.
// Remplacer les informations suivantes par votre
// environnement système:
//
// IPAddress ip (192, 168, 178, 72);
// IPAddress dns (192168178, 1);
// passerelle IPAddress (192, 168, 178, 1);
// sous-réseau IPAddress (255, 255, 0, 0);
// Ethernet.begin (Mac, IP, DNS, passerelle, sous-réseau);
//
// Remplacer ggf.in la configuration de la méthode ()
// si la déclaration
//
// if (Ethernet.begin (mac) == 0) {
// Ethernet.begin (Mac, IP, DNS, passerelle, sous-réseau);
//}
//
////////////////////////////////////////////////// /////////////

void setup () {
Serial.begin (9600); // Ouvre une connexion série

// Ouvre une connexion Ethernet et demandez à l'adresse IP DHCP:
if (Ethernet.begin (mac) == 0) {
Serial.println ("Adresse IP via DHCP demande échoué");

while (true) {} // indéfiniment en attente
}

// adresse via la sortie du port série:
Serial.print ("Votre adresse IP est: ");
Serial.println (Ethernet.localIP ());
}

void loop () {
////////////////////////////////////////////////// ////////////
// Les adresses IP ne sont que DHCP jusqu'à un
// "date limite de vente" décerné. Par conséquent, selon
// un certain temps un Neuabonnement nécessaire:
////////////////////////////////////////////////// ////////////

commutateur (Ethernet.maintain ())
{
Cas 1:
Serial.println ("Erreur: le vieillissement d'adresse rejetée");
break;
Cas n ° 2:
Serial.println ("Adresse vieillissement avec succès");
break;
Cas n ° 3:
Serial.println ("Erreur: Échec reconsolidation");
break;
Cas 4:
Serial.println ("reconsolidation avec succès");
break;
default: // Rien ne se produisit
break;
}
}

Arduino joue serveur Web

La version la plus simple de communication pour communiquer avec l'Arduino via Internet, HTTP est. L'utilisateur sélectionne une page Web particulière et les personnes de répondre à la carte Arduino avec la rétroaction des données de capteur de courant. Toutefois, cela apparaîtrait comme un serveur Web de l'Arduino. Heureusement, il appartient à la bibliothèque Ethernet n'est pas difficile, il suffit que l'action
mettre en œuvre.

////////////////////////////////////////////////// /////////////
//
// sketch Arduino: A propos de Log Shield Ethernet
// et travailler comme un serveur web.
// Utilisation du client: la page du navigateur http: // go 80
//
////////////////////////////////////////////////// //////////////

#include // Serial Peripheral Interface
#include // Ethernet Shield

// Entrez l'adresse MAC de votre Shields Ethernet
mac octet [] = {
0xDE, 0xAA, 0xBB, 0xCC, 0xdd, 0xED
};

////////////////////////////////////////////////// ////////////
// utiliser l'adresse IP statique. Entrez ici
// votre adresse IP statique.
// alternative serait l'adresse IP dynamique via DHCP////////////////////////////////////////////////// ////////////
IPAddress serverIP (192, 168, 178, 72);

////////////////////////////////////////////////// ////////////
// Le Sketch mis en place un serveur
// avec le serverIP et le port 80:////////////////////////////////////////////////// ////////////
serveur Ethernet serveur (80);

void setup () {
// Lancer Serial Monitor
Serial.begin (9600);

// initialiser le serveur avec MAC et IP:
Ethernet.begin (mac, serverIP);
server.begin ();
Serial.print ("Serveur a commencé. Adresse IP: ");
Serial.println (Ethernet.localIP ());
}

////////////////////////////////////////////////// ////////////
// boucle d'événement de serveur Web basé sur Arduino////////////////////////////////////////////////// ////////////void loop () {
// En attente d'un client:
Ethernet client = server.available ();
si (client) {
Serial.println ("nouvelle connexion");
// Une ligne vide marque la fin de la requête HTTP:
boolean endOfRequestReached = true;
// Tant que la connexion est établie, les données sont lues à partir du client:
while (client.connected ()) {
si (client.available ()) {
char c = client.read ();
Serial.write (c);
// En arrivant à la fin de la requête HTTP
// nous pouvons assembler la réponse. if (c == '\ n' && endOfRequestReached) {
// envoyer la réponse:
client.println ("HTTP / 1.1 200 OK");
client.println ("Content-Type: text / html"); // Il est nécessaire de rompre le lien:
client.println ("Connection: close"); // Toutes les 10 secondes, qui aura lieu un rafraîchissement:
client.println ("Actualiser: 10");
client.println ();
client.println ("");
client.println (""); // Nous redonnons une valeur aléatoire de A0:
int val = lecture analogique (A0);
client.print ("Analog Port A0 ");
client.print ("a la valeur: ");
client.print (val);
client.println ("
");
client.println ("");
}
endOfRequestReached = (c == '\ n') || (C == '\ r');
}
}

Téléchargez l'esquisse à votre Arduino, ouvrez votre navigateur et saisissez plus bas que l'URL (serverIP est la sortie de l'esquisse sur l'adresse IP du moniteur série):

http: // serverIP: 80

Vous devriez alors obtenir de voir des problèmes similaires comme suit:

Analog Port A0 a la valeur: 434
HTTP / 1.1 200 OK Content-Type: text / html Connection: close refresh: 10 Analog Port A0 a la valeur: 390
HTTP / 1.1 200 OK Content-Type: text / html Connection: close refresh: 10 Analog Port A0 a la valeur: 322
HTTP / 1.1 200 OK Content-Type: text / html Connection: close refresh: 10 Analog Port A0 a la valeur: 314
HTTP / 1.1 200 OK Content-Type: text / html Connection: close refresh: 10 Analog Port A0 a la valeur: 286
HTTP / 1.1 200 OK Content-Type: text / html Connection: close refresh: 10 Analog Port A0 a la valeur: 395
HTTP / 1.1 200 OK Content-Type: text / html Connection: close refresh: 10 Analog Port A0 a la valeur: 296
HTTP / 1.1 200 OK Content-Type: text / html Connection: close refresh: 10 Analog Port A0 a la valeur: 276
HTTP / 1.1 200 OK Content-Type: text / html Connection: close refresh: 10 Analog Port A0 a la valeur: 432

conclusion

Dans cet épisode, nous avons commencé à regarder le détail Ethernet Shield. Pour la communication de langage de bas niveau via TCP / IP et HTTP est venu. En outre, les exemples ont été limités à 1: 1 communications. Ainsi, déjà peut en effet quelques-uns sur les jambes, mais pour les applications IdO seraient protocoles orientés vers l'application bénéfique. Pour donner un échantillon appelé MQTT il va dans le prochain épisode.

Java 7 pour les utilisateurs finaux

Comme annoncé la semaine dernière pour la quatrième mise à jour version de Java 7, est maintenant fin également aux utilisateurs le dernier numéro de programmation que la version standard lors du téléchargement de Java Runtime Environment (JRE) Java.com disponible. Bien que Java a été ratifiée en Juillet 2011 7, le gouverneur de Java Oracle avait d'abord offert sur la version du site 6 comme référence et les nouveaux développeurs Java gardé seul. La société a annoncé maintenant que vous avez commencé le processus de mise à niveau sur Java 7, de sorte que les utilisateurs Java recevront automatiquement une mise à jour dans les prochains mois.

Le géant du logiciel conseille aussi de toujours utiliser la dernière version de la plate-forme Java, qui contient les dernières fonctionnalités et mises à jour de sécurité. Sur l'utilisateur Java.com peut vérifier la version de Java qu'ils utilisent actuellement. , Oracle recommande également de supprimer les anciennes versions de Java lors de la mise à niveau. Network Technology Oracle intéressé peut trouver au-delà des informations détaillées sur Java Standard Edition 7 (Java SE) et la mise à jour automatique.

Du côté allemand Oracle est pas encore à jour. Ici Java 6 Update 32 est toujours recommandé en téléchargement standard.

(ANE)

Micro Services

innhold
  1. Micro Tjenester i forbindelse med kontinuerlig Levering, del 1 - teorien
  2. Micro Services
  3. Deep-dive & Konklusjon
  4. leste på en side

kunn monolitten kampen

En annen innflytelse på arkitektur har kontinuerlig levering gjelder distribusjon gjenstander. Spesielt i Java verden store monolittiske applikasjoner hovedsakelig oppstår. Monolithic her betyr ikke den interne strukturen av programmet, men programvaredistribusjon: Også perfekt modularized Java-programmer er ofte levert i en enkelt EAR-fil, som deretter alle moduler er inkludert - eller til og med i en krig, hvor de andre modulene som biblioteker. Denne tilnærmingen fører til et problem: Hvis det bare er en liten del av programendringer, må re-bygget hele programmet og testet. Selv funksjoner som er den samme, må gå gjennom alle trinnene av kontinuerlig tilførsel rørledningen på nytt. Men dette er unødvendig - tross alt, ingenting har endret seg, og det kan være noen nye feil.

Ytterligere arbeid forsinket tilbakemelding, som i sin tur sikte på kontinuerlig levering enig: Først etter mange unødvendige forsøk er utført, som faktisk er relevant for den nye stykke kode. Derfor er det ikke lett å etablere en kontinuerlig levering rørledning for et monolittisk program som er virkelig effektiv. Ved bygging og teste anvendelsen ett eller kjører i flere timer, kan rørledningen ikke være så stor sjanse til å gå igjennom, og det skal bli klart for feil. Tester og bygge kan bli fremskyndet sikkert - men det er dyrt og potensialet for optimalisering er strenge grenser.

Alternativet er å optimalisere arkitekturen for kontinuerlig levering. Målet er så liten som mulig deployerbare gjenstander som kan distribueres separat. Programvaren fordelingen bør være så uavhengig som mulig - ideelt sett, dvs. uten andre gjenstander vil også måtte ta i bruk nye eller omstart. Deretter med en endring bare utplassering rørledning for den endrede gjenstanden er å gå gjennom alle de andre programvaremoduler er ikke berørt. Siden gjenstander er mindre og har færre funksjoner og kode, passasjen av distribusjonsrørledninger er mye raskere. Hvordan nå rask tilbakemelding.

Som nevnt må gjenstandene være helt atskilt fra hverandre - endring av en gjenstand kan ikke engang føre til en annen er å starte ideelt. Til slutt, må hver blokk være en separat prosess. For dette konseptet, har navnet "Microservice" naturalisert.

du kan se ham helt avgjørende: "Micro" representerer størrelsen av tjenestene i sentrum. Gjerne de er relativt små og mindre enn "normal" Applikasjoner. Viktigere enn størrelsen, men den faglige delen, hvorav sammenbrudd i tjenester resultater. Også Micro Services er mer enn "bare" Tjenester - er en viktig del av konseptet at de også har grafiske elementer. Når ved behandling av en brukerinteraksjon fra det grafiske grensesnittet via den logiske gjennom den vedvarende fullt ut kan utføre på en Micro tjeneste, gjelder ingen kommunikasjon overhead. I tillegg er alle de tekniske elementer for en profesjonell samhandling i en Microservice samlet. Fordelene med den tekniske arkitekturen. Til slutt, la bare som definerer prøvakseptansetester for brukeren. Hvis brukeren kan utløse aktiviteter gjennom et GUI selv, forstår han bedre hva noensinne akkurat går i testene.

Eksempler og avgrensning

I en e-handel applikasjoner som orden, søk eller katalog kan være sine egne Micro Services. Tradisjonelle portaler som bringer sammen ulike funksjoner og tilby felles sted allerede fra sin oppgave skaper en underavdeling i nærheten av Micro Services: Endelig kan hver funksjon beskrives som en slik tjeneste implementere. På samme måte kan man gjennomføre tilsetning av en monolittisk påføring av Micro tjeneste. Integrasjonen kan gjøres for eksempel ved linker eller samtaler til det gamle programmet. Fordelen med Micro Tjenesten kan bruke sin egen teknologi stabelen, og det er nesten ingen endringer i ofte vanskelig brukbar arven kode nødvendig.

Micro Services også skille seg klart fra tjenesteorienterte arkitekturer (SOA) fra: sistnevnte fokus på integrering av ulike applikasjoner på tvers av virksomheten. SOA er å skape nye integrasjonsmuligheter innen tjenester og få nye applikasjoner gjennom sammensetningen av tjenestene enklere å realisere gjennom deling av applikasjoner. innflytelse SOA
Så flere programmer og derfor flere lag som kan være spredt over ulike organisasjonsenheter. Micro Services, derimot, er en modell for å implementere en enkelt applikasjon. , For å bruke dem i stedet for komponenter for å realisere programmer eller biblioteker, for eksempel, JAR-filer.

Så Micro Services oppstå i et prosjektteam. Dette forenkler kommunikasjon og koordinering. Derfor, for i ham alle tjenester koordinere slik at alle tjenester er byttet til et nytt grensesnitt med en endring i et grensesnitt på relativt kort tid. I et SOA-arkitektur som er mye mer vanskelig fordi lagene og tjenester som ikke er så tett koordinert - kanskje noen tjenester kanskje ikke bli utviklet videre.

inspirer les enfants pour la programmation

Si vous aimez programmé et a des enfants (neveux, nièces, petits-enfants ...), il se tôt ou tard, la question de savoir quand et comment laisser aller ces enfants sur le thème de la programmation. De nos jours, peut-être liée à la question de la façon dont il favorise le contenu créatif et social, plutôt que de faire simplement un problème de jeu.

Une très cool Remarque m'a donné maintenant un étudiant qui enseigne comme les enfants d'emploi secondaire dans les programmes de l'école primaire. Lorsqu'on leur a demandé ce qu'ils utilisent là-bas, il a à zéro. Développé au MIT, Scratch est livré avec un explicite, en cours d'exécution dans le navigateur IDE, par conséquent, vous pouvez donc avec accès à Internet (et effacé de JavaScript) commencent immédiatement.

Une intégration dans une communauté crée ainsi un environnement social gratuit et sans publicité qui vous donne envie de présenter fièrement les résultats et d'apprendre des exemples curieux des autres. Juste avec les enfants essayer (également seul ou).

Le seul moment critique, dites-moi l'étudiant qui apprend aux enfants est quand les enfants découvrent qu'ils "sons" peut programmer.

Une page Wikipedia sur le sujet "Programmation pour les enfants" Soit dit en passant énumère d'autres alternatives.

Le système de construction

contenu
  1. L'intégration continue avec Java et JavaScript, Partie 1: L'art de versionnage
  2. Le système de construction
  3. Structure du projet et le système cible
  4. conclusion provisoire
  5. lire sur un côté

La base du chantier de construction est le système de construction

Un système de construction, aussi connu comme outil de construction est un programme pour créer automatiquement le logiciel. Un tel système Apache Ant, Gnu Make, Apache Maven ou NPM construit un logiciel dans lequel il réalise une série d'actions pour le système cible. Ce sont généralement des appels simples à des programmes externes dans un ordre défini. Les outils ont des approches différentes. Ant et faire fonctionner par exemple, des tâches qui dépendent les uns des autres. existe pour les sources et les artefacts produits dans les deux outils pas de modèle (modèle), donc il y a toujours une séquence pour créer l'artefact doit être spécifié. En revanche, l'outil de build Maven définit un modèle de projet. Autrement dit, la construction est configuré en premier lieu. Pour l'exemple dans la deuxième partie d'un hybride a été utilisé: L'outil de construction Gradle est à la fois basée sur les tâches, mais il sait, en fonction des plug-ins utilisés également des modèles de projet et combine le prédiviseur deux mondes: la flexibilité et éviter la redondance.

Une autre caractéristique d'un système de construction est le degré de dépendance du système d'exploitation et la stabilité de la version associée. C'est, comme outil de construction stable s'installe dans une version requise. l'utilisateur peut spécifier Gradle au numéro de version requise, suivi par l'outil lui-même invite dans la version spécifiée à partir d'un référentiel et de prendre soin de l'installation. La stabilité de la version des outils de construction est un élément important pour la création reproductible builds.

suffisamment de temps avant devrait être prévue pour la sélection des outils de construction. Techniquement, en passant, il n'y a rien à construire le code source Java avec des outils Java tels que NPM étranger ou Gnu faire. Habituellement, un outil de construction est optimisé pour un système cible vers le bas. Ainsi décider des détails concernant les plug-ins nécessaires mécanismes de dépendance ou de soutenir un des référentiels particuliers.

garder le contrôle des versions

Lors de la création d'un administrateur de système de construction doivent décider où les objets créés pour les étapes ultérieures prises et ce que les artefacts de passage nécessaires ces bibliothèques sont inclus. La façon la plus simple est de stocker les artefacts sur un (réseau) lecteur et / ou vérifier les bibliothèques nécessaires dans le système de contrôle de version (CVS, SVN, Git). L'inconvénient de cette approche est que le travail existant sur Internet ne peut pas être utilisé à nouveau et mettre à jour les bibliothèques utilisées est cher.

Une alternative consiste à utiliser un système de stockage pour l'accès ou le stockage d'objets. Un tel outil géré métadonnées en plus des artefacts que les dépendances, la version buzzer version précédente, l'auteur et la licence. Sur la base des méta-données, une entreprise peut faire en sorte que, par exemple, au large d'une certaine licence ou pris au piège. Depuis un système de dépôt met en cache la voie d'accès est toujours archivé une copie redondante, ce qui assure la reproductibilité de la construction à une défaillance d'un système distant. La copie aide pour les cas où le fournisseur décide de supprimer une version requise de l'Internet à nouveau. Idéalement, le système de construction prend en charge un référentiel en interne à des défaillances des services externes, tels que le pont de GitHub en Avril à 2015.

interdépendant

La troisième catégorie de problème lors de la création reproductible construit est la gestion des dépendances. Cela peut se référer à une version simple ou la version plage. Certains systèmes prennent en charge les propriétés orthogonales tels que le système d'exploitation ou de l'architecture du processeur. Donc NPM en mesure de configurer les dépendances du système d'exploitation. Les paquets Scala-environnement doivent être distingués sur la base du compilateur utilisé Scala, et le système Portage pris en charge par ce qu'on appelle des drapeaux générales d'utilisation des nécessités orthogonales telles que le support vidéo, IPv6 ou les langues prises en charge. Au bout du compte, il a dans la création de logiciels, la grande division des dépendances compiler, tester et exécution avéré suffisant dans les catégories. Les deux dépôts Maven et NPM connaissent cet ordre. En fin de compte, l'équipe devrait envisager comment un système de construction peut traiter les objets d'une autre.

marché des magazines .net: Il n’y avait que trois

Alors que je parcourais le sac de conférence de Strategy Summit Software Microsoft, j'ai rencontré Hannes Preishuber de ppedv. Dans le sac plusieurs magazines informatiques sont: Computer Week, papier d'ordinateur, OBJEKTspektrum, LANline, dotnetpro, databasepro et le magazine dotnet. "Il n'y a en effet pas ASP.NET Professional ici"J'ai remarqué directement, après Hannes dit, le magazine avait été fixé. Le magazine soeur Visual Studio One, mais il y avait encore.

Le professionnel ASP.NET a toujours été un peu curieux plantes sur le marché des magazines .Net. Le groupe cible était évidemment beaucoup plus faible en limitant le développement Web .Net, la mise en page rappelle mon temps de journal de l'école et Hannes a appelé de la première édition (9/2002) de toutes les années "Rédacteur en chef intérimaire", Il m'a expliqué une fois en disant qu'il voulait occuper le poste jusqu'à ce que le magazine est elle-même. d'avoir ainsi semble pas fonctionner ... Je pense que c'est dommage parce qu'un magazine a renforcé la communauté grandissante de développeurs ASP.NET.

ayant déjà "MSCoder" disparu après une brève apparition sur le marché allemand, il y a maintenant seulement trois spécialisés dans les magazines .Net:

dotnetpro

  • la société des nouveaux médias Ulm, Siège social: Munich
  • Sortant de BASICPRO, VBA Magazine et le Journal système
  • disponible uniquement par abonnement
  • publié chaque mois
  • Rédacteur en chef: Tilman Börner
  • Abonnement annuel: 76,20 euros (ou 14,90 euros par numéro unique plus frais.)

dot.net Magazine

  • Logiciel et Support Média, Siège social: Francfort
  • Abonnement et en kiosque
  • publié chaque mois
  • Rédacteur en chef: Masoud Kamali
  • Abonnement annuel: 89,90 Euro, étudiants: 76,60 Euro (. Ou simple question 9.80 euros frais de port inclus)

Un Visual Studio

  • ppedv, bureau: Burghausen
  • Abonnement et en kiosque
  • zweimonatlich
  • Rédacteur en chef: Harald M. Genauck
  • Abonnement annuel: 33,00 euros (ou 4,90 euros par numéro unique)

Photon: Le conseil d’IdO Maker

Photon: Le conseil d'IdO Makercontenu
  1. Photon: Le conseil d'IdO Maker
  2. facilité
  3. développer des applications
  4. accès & conclusion
  5. lire sur un côté

La particule de photons Conseil est le résultat d'un projet Kickstarter qui ajoute un puissant microcontrôleur avec une connectivité WiFi et de nuages. Cette recette fournit tous les éléments de base pour les applications IdO.

Auparavant, une carrière rapide de misère à la richesse que le rêve américain. Aujourd'hui, le raccourci pour une version moderne de ce rêve pourrait kickstarter.com chaud. recueillir par l'inventeur de l'argent site de la communauté afin de mettre en œuvre leurs idées novatrices.

2013 Zach Supalla, Zachary Crockett, Stephanie Rich et Will Hart se sont enrôlés dans kickstarter.com pour leur vision du noyau Spark. Dans ses propres mots, il est "plate-forme de développement Arduino compatible avec le support WiFi et une plate-forme de développement basée sur le cloud", Le concept de la communauté a convaincu les quatre protagonistes ont été en mesure de recueillir 567,968 dollars américains de 5549 partisans. Au printemps 2015, les premières copies de la partie centrale d'allumage à gauche de la ligne d'assemblage.

Les particules et les photons

Aujourd'hui, il y a la société matériel open source de particules, qui vend maintenant à côté du successeur du Spark Core appelé Photon d'autres produits, y compris la carte électronique avec 2G ou 3G soutien. Dans cet article, cependant, est tout au sujet de photons qui est spécifiquement destiné à Maker IdO.

Vers le bas au point un photon sur la planche à pain; ci-dessus à titre de comparaison, un Arduino également compatible Teensy-3,2-Board (Fig. 1) Vers le bas au point un photon sur la planche à pain; ci-dessus à titre de comparaison, un Arduino également compatible Teensy-3,2-Board (Fig. 1)

Regardez sous le capot

Avec sa taille de 36,58 mm x 20,32 mm x 6,86 mm et le poids net de cinq grammes (y compris les en-têtes de broches) un photon appartient à la classe des planches très compactes. son "lecteur de photons" est constitué d'un microcontrôleur STM32F205 ARM Cortex-M3 avec 120 MHz. Il nécessite 3,3 V "carburant",

Schéma de principe du photon gauche, la puce Wi-Fi de Broadcom, à droite du processeur ARM 3 (figure 2). Schéma de principe du photon gauche, la puce Wi-Fi de Broadcom, à droite du processeur ARM 3 (figure 2).

Dans le compartiment à bagages sont en plus de 1 mégaoctet Flash et 128 Ko de RAM (plus 4 Ko de RAM de sauvegarde) disponible. Pour réellement prendre avantage de la mémoire, la grand-mère proverbiale doit tricoter beaucoup de code. Cela conduit les utilisateurs de larmes métaphoriques classiques planches Arduino dans ses yeux.

Pour l'amarrage de périphérique exister GPIOs numérique 18 (à des fins générales de ports E / S), neuf d'entre eux à l'aide d'une modulation de largeur d'impulsion. En outre, il y a huit entrées analogiques avec CAN (convertisseur analogique-numérique) et deux sorties analogiques avec DACs (convertisseur numérique-analogique).

Les composants les plus importants du photon en bref (Fig. 3) Les composants les plus importants du photon en bref (Fig. 3)


Plus de détails sur les connexions d'un photon avec le monde extérieur se trouve dans le tableau ci-dessous. 5 V dans la colonne de droite indique la tolérance de 5 V tension.

Type de connexionnombreEntrée (E) / sortie (A)5 V / 3,3 V
numérique18I / O5 V / 3,3 V
Analogique (ADC)8e3.3V
Analogique (DAC)2A3.3V
SPI2I / O3.3V
I2S1I / O3.3V
I2C1I / O5 V
CAN1I / O5 V
USB1I / O3.3V
PWM9A3.3V

Modulation de largeur d'impulsion en charge les sorties D0, D1, D2, D3, A4, A5, WKP, RX, TX, dont seulement sept sont indépendants, puisque deux broches (A5 / A4 D2 et / D3) partagent une minuterie.

La gauche, les connecteurs d'or sur la figure 3, en plus de la puce de processeur sont prévus pour la coexistence et la coordination d'une radio Bluetooth connecté.

Le second côté de la pièce de monnaie est le composant WiFi qui est une base de puce Broadcom BCM43362. La communication se fait dans la bande 2,4 GHz avec IEEE 802.11b / g / n avec jusqu'à 65 Mbit / s sur les suspects habituels du monde des protocoles de sécurité: Ouvert, WEP, WAPI, WPA et WPA2-PSK WiFi. L'AP douce intégré (Access Point) simplifie la configuration de la carte. Comme il sied à un dispositif compatible IdO, un programme peut permettre le photon en mode veille.

Pour les décideurs devraient être intéressant que le conseil peut être utilisé avec un en-tête bien sur la carte de test, mais il est également compatible CMS.

Le prix de la carte est Photon officiellement à 19 dollars américains. En Allemagne, il est disponible à partir de 20 euros - y compris à Watterott et exp-tech. Qui ne veut pas souder, vous devez acheter une carte avec les en-têtes de broches montées (broches d'en-tête).

Intégration continue dans les temps de programmation agile

contenu
  1. Intégration continue dans les temps de programmation agile
  2. serveur CI
  3. tendances & conclusion
  4. lire sur un côté

L'intégration continue est un moyen éprouvé pour optimiser le développement de logiciels. L'article suivant explique ses fondations, renomme des pierres d'achoppement dans la pratique et les meilleures pratiques résultant et enfin une perspective sur les tendances actuelles.

L'équipe des projets logiciels développés sont de plus en plus difficiles à gérer avec la taille et la complexité croissante et la construction. L'interaction constante de nombreux développeurs, tôt ou tard inévitablement appelé erreurs d'intégration fluage que selon le moment où ils sont remarqués peuvent être enlevés difficile, voire impossible.

Ce problème est en fin de compte aussi vieux que le développement de logiciel lui-même et, par conséquent, il y a des idées depuis longtemps et les moyens d'y faire face. ils sont connus sous des noms tels que "Construire tous les jours" et "Test de fumée", Cependant, il a été l'article Martin Fowlers "L'intégration continue" (CI) en 2000, qui a fait connaître le sujet sous le nom de selbigem. Depuis lors, plus de dix ans se sont écoulés, et en plus des concepts originaux existent maintenant prêt serveur CI différents fabricants. Leur utilisation dans le développement de logiciels est maintenant de rigueur.

travail d'abord, puis le plaisir

Pour faire fonctionner un système de CI raisonnable, certaines exigences techniques et organisationnelles doivent être respectées, qui sont brièvement expliquées ci-dessous.

Une condition préalable technique central pour les projets de travailler avec CI, la gestion du code source et d'autres fichiers associés à un système de contrôle de version (VCS). Il n'a pas d'importance de CI-vue, que ce soit un système centralisé comme Subversion ou un système distribué comme Git.

Depuis l'opération du serveur de CI est de fonctionner sans intervention humaine, il est nécessaire que la construction des projets est entièrement automatisé (automatisation de construction mot-clé). La signification exacte "construire" varie en fonction du projet, généralement cachée derrière au moins une compilation du code source et l'exécution des tests automatisés.

Ainsi, le fonctionnement d'un serveur CI finalement valable à long terme, les tests automatisés mentionnés ci-dessus soit (automatisation des tests) doit exister en quantité suffisante. Les résultats d'un serveur CI en cours d'exécution ou seulement quelques tests triviaux ne sont pas très significatifs en général.

Tout en travaillant sur un projet, l'équipe de développement responsable, il apporte des modifications de code source et passe avec un soi-disant engager à VCS. Les commits sont fréquemment effectuées, sinon l'augmentation de la probabilité que brusquement ne peuvent plus être les changements locaux du développeur sur l'intégration du système de CI.

Étant donné que le système de CI est d'être une partie du développement de la culture de l'équipe, il est nécessaire que tous les membres de l'équipe ont un accès facile à et être informés des résultats respectifs de leur travail et celui de leurs collègues (visibilité, par exemple en envoyant des e-mails appropriés ,

Le tout est plus que la somme de ses parties

Un système de CI est non seulement le serveur CI réel ou d'autres composants. La figure 1 montre schématiquement les éléments essentiels d'un système de CI typique. Le point de départ est un projet qui travaillera avec CI et son code source est géré avec VCS. L'équipe de développement responsable travaillant sur le projet et transmet les modifications au code source via engager dans le VCS. Tout d'abord est de faire une fois connu dans le serveur de CI où le projet dans le VCS est situé, généralement en spécifiant une URL spécifique à VCS et comment le serveur CI au VCS authentifié. Semblable à un développeur normal du serveur CI crée maintenant une copie de travail locale du projet concerné avec lui.

Les composants d'un système de CI (Fig. 1)

Désormais les adresses de serveur de CI demande périodiquement aux VCS s'il y a eu des changements dans le projet concerné depuis la dernière fois. Dans ce cas, le serveur de CI, un nouveau soi-disant construire CI est déclenchée. La première étape dans un tel CI-build est essentiellement que le serveur CI met à jour sa copie locale du travail par soi-disant mise à jour VCS. le projet avec ces fichiers en cours est alors à l'étape suivante "construit"Ce qui signifie généralement la compilation et l'exécution des tests automatisés.

L'exécution de compilation et d'essai ne conduit pas le serveur de CI à travers, mais un outil de construction comme Maven ou faire. Cela suppose que l'équipe de développement a complètement automatisé le processus de construction dans la course et les fichiers de construction spécifiques à l'outil tels que Maven (POMs Object Model de projet), ou la création de fichiers sont également gérés dans le VCS. Selon la façon dont l'appel des outils de compilation se termine, le serveur CI classe la construction entière de CI concluante. Cela se fait, en principe, le schéma suivant:

  1. succès: Les deux la compilation et les tests automatisés n'a pas révélé d'erreurs.
  2. Attention: la compilation et de test était en principe avec succès, mais il y avait des problèmes mineurs, tels que des tests simples ou à défaut des avertissements du compilateur.
  3. Erreur: Il y avait une telle erreur critique ou beaucoup que la construction de CI est réputé avoir échoué, par exemple, une terminaison du compilateur ou de dépasser un certain nombre de tests ont échoué.

En accédant au serveur VCS CI peut déterminer quels membres de l'équipe de développement ont fait ces changements qui ont causé récemment la construction de CI. Ces développeurs peuvent être conclus avec des informations spécifiques, par exemple par e-mail du résultat de construction et ainsi obtenir des informations sur si les modifications ont entraîné des problèmes.

En général, les résultats de toutes les données construit et associé sur le serveur de CI seront sauvegardés sous forme de rapports et sont disponibles en utilisant les pages Web, de sorte que seul son URL et le résultat global doit être envoyé comme une notification. Au point il convient de mentionner que le scénario décrit la "typique" décrit CI-débit. Adaptations et extensions de l'idée de base est tout à fait possible, par exemple:

Une introduction à la livraison en continu, Partie 1: Principes

contenu
  1. Une introduction à la livraison en continu, Partie 1: Principes
  2. Les étapes de test
  3. défis
  4. conclusion
  5. lire sur un côté
Une introduction à la livraison en continu, Partie 1: Principes

Livraison continue promet les établissements de production des logiciels développés à portée de main avec une meilleure qualité. Quelles sont les idées centrales derrière elle et quelles conditions vous devez créer pour réussir? Dans une série en plusieurs parties d'articles étapes très spécifiques sur la voie à une canalisation de distribution continue à décrire, en plus des informations de base.

Développement de logiciels pour un modèle de phase classique est le développement en trois étapes, l'assurance qualité et la livraison habituellement une seule fois pour chaque version avant: Après avoir terminé une phase de développement un mois, prévu pour la prochaine version des modifications du logiciel sont transférés à l'assurance de la qualité. Dans la phase de test après on les examine là pour répondre aux exigences et maintenant réparé après l'événement des écarts. Après cela, la version du logiciel sur le système de production peut être installé.

De l'idée au client - Livraison en continu une partie de cette chaîne (Fig. 1) est De l'idée au client - Livraison en continu une partie de cette chaîne (Fig. 1) est

Ces dernières années, de nombreuses entreprises ont déménagé à une approche progressive itérative, qui a également des résultats intermédiaires des logiciels développés sont déjà une qualité assurée et livré au client. La chaîne de développement, l'assurance qualité et la livraison est donc déjà subi plusieurs fois au cours du processus de développement du logiciel.

Mais si le logiciel est développé en utilisant des méthodes agiles dans lequel un logiciel exécutable de livraison à intervalles de quelques semaines fait partie de la base de la méthode? Un test manuel de toutes les fonctions de toutes les deux semaines et une livraison subséquente être ici Showstopper rapidement: les environnements de test ne sont pas en nombre suffisant disponible, l'installation du logiciel est effectuée par l'équipe d'exploitation, la configuration de l'application sur l'environnement de test ne correspond pas, et exige le vote fastidieux entre le développement et l'équipe des opérations. Seulement après le test réel peut commencer. Comment cet ajustement dans un délai de deux semaines?

Livraison continue les tentatives pour résoudre ces problèmes par l'automatisation radicale. Le développement des étapes, l'assurance qualité et la livraison du logiciel sont affichés dans des unités beaucoup plus petites: Toute modification ou améliorations apportées au logiciel de cette version du logiciel est testé automatiquement directement après. Les tests fournissent une rétroaction rapide sur les effets secondaires et des régressions. Si elles réussissent, peuvent être installés sur le système de production de la version du logiciel en appuyant sur un bouton et en quelques minutes. La chaîne de développement, d'assurance qualité et de mise en production est continue à chaque modification du logiciel et les résultats dans un pipeline automatisé: D'une part, un ensemble, un logiciel prêt à la production et installable assurance qualité est dans chaque cas une nouvelle version du logiciel en elle, de l'autre dehors.

Les premières idées pour changer le processus de développement de logiciels dans ce sens ont déjà été présentés Jez Humble, Chris Read et Dan North au 2006 Agile dans une conférence que jusqu'à présent étude la plus détaillée du sujet se trouve dans le livre publié 2010 "Livraison en continu" Humble et David Farley.

Chaque changement de code source déclenche la canalisation de refoulement en continu (Fig. 2) Chaque changement de code source déclenche la canalisation de refoulement en continu (Fig. 2)

Dans la canalisation de distribution continue, l'assurance de la qualité est obtenue par une combinaison de tests automatiques et manuelles ou libérer étapes. Vous essayez de valider les exigences fonctionnelles et non fonctionnelles par différents types de tests avec un haut degré d'automatisation:

Les tests sont organisés en plusieurs étapes et les ont exécutés un par un pour chaque version du logiciel. Seulement si une étape de test a réussi, lancer le test, l'étape suivante du tout. Ici, le processus suit le comme "Arrêter la ligne" principe connu de la fabrication maigre. Plus il a réussi avec succès à travers le pipeline, une version logicielle, plus vous pouvez être sûr que le changement ne génère pas de régressions et le logiciel continue de répondre aux besoins.