Gadgeteer est une plate-forme de développement et de conception de devices électroniques basée sur les technologies .NET :
Pour démarrer :
Par exemple, GHI Electronics propose un tutoriel assez bien fait avec leur hardware :
http://www.ghielectronics.com/downloads/Gadgeteer/Mainboard/Spider_GettingStarted/
Ensuite, il ne faut pas hésiter à consulter le blog gadgeteer :
http://blogs.msdn.com/b/net_gadgeteer/
Ce domaine micro et gadgeteer est en pleine expansion et fait partie de la stratégie MS sur les systèmes connectés et pour avoir un peu joué avec le développement de cartes électroniques il y a quelques années, ça n'a plus rien à voir.
Il y a eu une très jolie démonstration aujourd'hui au MS TECHDAYS sur le développement d'une station météo avec ces technologies et le résultat, en 15 lignes de code, est bluffant.
Bon DEV !
Mais aujourd'hui, c'est seulement sur XBOX360... C'est déjà pas mal. Une liste d'articles d'Eric VERNIE :
Il existe également 2 autres parties.
Un article sur les dernières nouveautés .NET : asp.net MVC3 et JTable pour faire des belles grilles fonctionnelles en Ajax :
http://www.codeproject.com/KB/ajax/jTable.aspx
Un très bon article qui montre comment exporter des données vers un classeur MS Excel avec les technologies .NET:
Il ne peut y avoir deux espaces de travail mappés sur un même serveur de build. Team Build génère une erreur.
Pour supprimer un espace de travail existant sur un serveur de Build :
TF workspaces /owner:*
TF workspace /delete /server:http://serveurTFS:8080/tfs/DefautCollection WORKSPACENAME;OWNERNAME
Il faut remplacer DefaultCollection par le nom de la collection hébergeant le projet et remplacer WORKSPACENAME et OWNERNAME par les valeurs listées par la commande précédente.
Il est souvent utile de construire une interface asp.net dynamique fonction de données XML (ici les données sont récupérées dans une colonne de type xml depuis SQL Server). Ceci permet d'adapter l'IHM en fonction du contenu XML variable.
L'exemple ci-dessous permet d'afficher et de modifier les paramètres msdeploy (Web Deployment Tool). Ces données sont au format suivant:
<parameters>
<setParameter name="IIS Web Application Name" value="WS_TEST" />
<setParameter name="UrlWS" value="http://Serveur/chemin" />
</parameters>
Le but est d'afficher une ListTable contenant pour chaque ligne un couple Label, TextBox.
Première étape : la page aspx
<asp:DataList ID="DataList1" runat
<ItemTemplate
<tr
<td
<asp:Label ID="Label1" runat="server" Width="300" style="font-weight: bold; font-size:small; color: Navy" Text='<%#XPath("@name") %>'></asp:Label
</td
<td
<asp:TextBox ID="TextBox1" runat="server" Width="600" Text='<%#XPath("@value") %>'></asp:TextBox
</td
</ItemTemplate
</asp:DataList>
// Création du document XML
XmlDocument xmldoc = new XmlDocument();
xmldoc.CreateXmlDeclaration("1.0", "ISO-8859-1", null);
//Lecture des données xml
xmldoc.LoadXml(item2["ConfigXml"].Text.ToString());
//Sélection dans l'arbre xml du noeud à afficher
XmlNodeList nodes = xmldoc.SelectNodes("parameters/setParameter"
DataList1.DataSource = nodes;
DataList1.DataBind();
Un très bon article pour aborder les tests unitaires (indispensables) lorsqu'on développe avec Silverlight :
http://www.codeproject.com/KB/testing/SilverlightUnitTestAsync.aspx
L'exemple ci-dessous est une méthode qui chiffre une chaîne de caractères avec une clé de 128 bits et un vecteur d'initialisation de 128 bits. L'algorithme de chiffrement est AES 128 bits.
///
<summary>
///
Méthode pour chiffrer une chaîne de caractères
///
</summary>
/// <param name="clearText">Chaîne à chiffrer
</param>
/// <param name="strKey">clé de chiffrement obligatoirement de 16 caractères (128 bits)
</param>
/// <param name="strIv">vecteur d'initialisation de 16 caractères (128 bits)
</param>
/// <returns>une chaîne de caractères chiffrée
</returns>
public static string EncryptString(string clearText, string strKey, string strIv)
{
// Place le texte à chiffrer dans un tableau d'octets
byte[] plainText = Encoding
.UTF8.GetBytes(clearText);
// Place la clé de chiffrement dans un tableau d'octets
byte[] key = Encoding.UTF8.GetBytes(strKey);
// Place le vecteur d'initialisation dans un tableau d'octets
byte[] iv = Encoding.UTF8.GetBytes(strIv);
RijndaelManaged rijndael = new RijndaelManaged();
// Définit le mode utilisé
rijndael.Mode = CipherMode.CBC;
// Crée le chiffreur AES - Rijndael
ICryptoTransform
aesEncryptor = rijndael.CreateEncryptor(key, iv);
MemoryStream ms = new MemoryStream();
// Ecris les données chiffrées dans le MemoryStream
CryptoStream cs = new CryptoStream(ms, aesEncryptor, CryptoStreamMode
.Write);
cs.Write(plainText, 0, plainText.Length);
cs.FlushFinalBlock();
// Place les données chiffrées dans un tableau d'octet
byte[] CipherBytes = ms.ToArray();
ms.Close();
cs.Close();
// Place les données chiffrées dans une chaine encodée en Base64
return Convert.ToBase64String(CipherBytes);
}
| Février 2012 | ||||||||||
| L | M | M | J | V | S | D | ||||
| 1 | 2 | 3 | 4 | 5 | ||||||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 | ||||
| 13 | 14 | 15 | 16 | 17 | 18 | 19 | ||||
| 20 | 21 | 22 | 23 | 24 | 25 | 26 | ||||
| 27 | 28 | 29 | ||||||||
|
||||||||||