De retour d'Imagine Cup, j'ai enfin trouvé le temps de vous faire un petit post sur les méthodes de compression/décompression proposées par .NET 2.0.
Le framework propose ainsi 2 différentes classes : GZipStream et DeflateStream. La 1ère question est donc de savoir pourquoi avons nous 2 classes différentes?
GZipStream
Cette classe permettra d'ajouter des informations supplémentaires dans le header du fichier, ce qui peut s'avérer utile lors de la décompression avec l'outil GZip.
DeflateStream
Celle ci n présente pas la possibilité d'ajouter des infos supplémentaires, ce qui rendra le fichier de sortie légèrement plus light.
Les deux classes utilisent exactement le même algorithme de compression/décompression. La 1ère s'avérera plus pertinente si un outil tiers intervient pour la décompression sinon la seconde répondra parfaitement à vos besoins.
Je vous invite à aller sur MSDN pour avoir l'ensemble des fonctions et propriétés disponibles. Je vous donne néanmoins un exemple de code pour avoir une idée du fonctionnement.
Comme vous pourrez le remarquer, on s'appuie sur 2 streams différents (entrée/sortie), l'enum CompressionMode permet de définir le mode à utiliser et enfin on lance la compression/décompression en lisant les bytes du stream source.
public static void CompresssFile(String IN_FilePath, String OUT_FileName)
{ FileStream fsSource = new FileStream(IN_FilePath, FileMode.Open);
FileStream fsDest = new FileStream(OUT_FileName, FileMode.Create);
GZipStream compStream = new GZipStream(fsDest, CompressionMode.Compress);
int theByte = fsSource.ReadByte();
while (theByte != -1)
{ compStream.WriteByte((byte)theByte);
theByte = fsSource.ReadByte();
}
compStream.Close();
fsSource.Close();
fsDest.Close();
}
public static void UncompressFile(String IN_FilePath, String OUT_FilePath)
{ FileStream sourceFile = new FileStream(IN_FilePath, FileMode.Open);
FileStream destFile = new FileStream(OUT_FilePath, FileMode.Create);
GZipStream decompStream = new GZipStream(sourceFile, CompressionMode.Decompress);
int theByte = decompStream.ReadByte();
while (theByte != -1)
{ destFile.WriteByte((byte)theByte);
theByte = decompStream.ReadByte();
}
decompStream.Close();
sourceFile.Close();
destFile.Close();
}
A travers l'exemple ci-dessous vous verrez comment utiliser les objets de cette lib Novell pour vérifier qu'un utilisateur est bien dans un groupe Lotus Notes. Ainsi si les rôles de votre application sont définis via des groupes Notes (très répandu dans les grosses boites utilisant Notes), vous pouvez interroger le LDAP de cette manière.
Comme l'utilisateur peut appartenir à plusieurs groupes et que ces groupes ne sont pas liés entre eux, on va faire un parcours récursif pour vérifier à travers l'ensemble des utilisateurs du groupe courant.
Au niveau sécurité, le LDAP est souvent en mode de lecture, le mieux est néanmoins de définir un compte de service propre à cet accès notamment si vous souhaitez faire une authentification de type Windows sans demander les identifiants/mots de passe.
Si votre LDAP le permet vous avez un ensemble de possibilités pour des modifications des données et autre, tout dépend du niveau de sécurité de votre LDAP et des objectifs de votre appli J
Les détails sur cette lib : http://www.novell.com/coolsolutions/feature/11204.html
/// <summary>
/// Checks whether a user belongs to a Notes Group
/// </summary>
/// <param name="userDN"></param>
/// <param name="notesGroupToCheck"></param>
/// <returns></returns>
private static Boolean CheckLDAPUserGroup(String userDN, String notesGroupToCheck)
{
String searchBase = "";
String searchFilter = "CN=" + notesGroupToCheck;
try
{
// Opens the LDAP connexion, the adress/port are provided by the setting file
LdapConnection conn = new LdapConnection();
conn.Connect(AppSettingManager.GetLDAPServerPath(), Convert.ToInt32(AppSettingManager.GetLDAPServerPort()));
// Searching parameters
LdapSearchResults lsc = conn.Search(searchBase, LdapConnection.SCOPE_SUB, searchFilter, null, false);
// Go through the results
while (lsc.hasMore())
{
LdapEntry nextEntry = null;
try
{
nextEntry = lsc.next();
LdapAttribute attribut = nextEntry.getAttribute("Member");
try
{
String[] values = attribut.StringValueArray;
for (Int32 i = 0; i < values.Length; i++)
{
if (values[ i ].ToUpper().Contains(userDN.Replace('.', ' ').ToUpper()))
{
return true;
}
if (values[ i ].Contains("OU="))
{
continue;
}
else
{
if (CheckLDAPUserGroup(userDN, values[ i ]) == true)
{
return true;
}
}
}
}
catch (Exception e)
{
return false;
}
catch (LdapException e)
{
return false;
}
}
conn.Disconnect();
}
catch (Exception ex)
{
Logger.SaveNewLog(new Log(String.Empty, Log.LogCategory.ERROR, "CheckLdapUserGroup (" + userDN + "," + notesGroupToCheck + " ):" + ex.Message));
return false;
}
return false;
}
Vincent Bellet
Problématique: on veut charger le contenu des pages Web d'un site, par exemple d'un Intranet dont les pages sont générées à la volée en XSLT.
Contexte : cela est particulièrement utile lorsqu'on veut stocker des pages qui sont générées à la base par des transformations XSLT et qui ne présentent pas toujours des performances extraordinaires. Ainsi, on peut générer ces pages à intervalle donné et les stocker en file system ou en base. Bien entendu c'est valable lorsque le contenu de ces pages ne sont pas mises à jour toutes les 2 minutes.
Sécurité : bien entendu selon l'environnement vous pourriez être obligés de rajouter les informations d'un compte autorisé pour votre proxy ou encore un compte NT pour un accès réseau.
private String LoadPageContent(String pageURL)
{
WebRequest request = null;
WebResponse response = null;
if (pageURL != null)
{
try
{
request = WebRequest.Create(pageURL);
//WebProxy webProxy = new WebProxy(">YourProxyAddress");
//webProxy.Credentials = new NetworkCredential("login", "password");
//request.Proxy = webProxy;
response = request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding("utf-8");
StreamReader streamRead = new StreamReader(streamReceive, encoding);
return streamRead.ReadToEnd();
}
catch (Exception ex)
{
return null;
}
finally
{
response.Close();
}
}
else
{
throw new ArgumentNullException("PageURL cannot be null");
}
}
Happy coding!
Vincent
Une fonction qui peut s'avérer pratique lorsqu'on souhaite charger un document XML, lui appliquer un XSL pour générer un nouveau XML ou plus souvent un fichier (X)HTML.
Dans cette fonction il suffit d'indiquer le chemin complet pour chacun des 2 fichiers.
Pratique par exemple pour générer dynamiquement des fichiers depuis un XML et XSL sur d'autres serveurs.
Les namespaces à utiliser se limitent à :
- System.Xml
- System.Xml.Xsl
Pour plus d'information sur XslCompiledTransform et XmlWriterSettings :
/// <summary>
/// Allows to apply a XSL transformation
/// </summary>
/// <param name="xmlDoc">XML document path</param>
/// <param name="xslDoc">XSL document path</param>
/// <returns></returns>
private XmlDocument ApplyXSLTransformation(String xmlDocPath, String xslDocPath)
{
XmlDocument outputXmlDoc = new XmlDocument();
try
{
// Loads the XML document
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlDoc);
XmlNodeReader reader = new XmlNodeReader(xmlDoc);
// Settings to apply for the transformation
XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true;
// Object to apply XSL
XslCompiledTransform xslt = new XslCompiledTransform(true);
xslt.Load(xslDocPath, settings, null);
// Used to get generated XML/HTML according to the wished output format
StringBuilder transformOutput = new StringBuilder();
// XML writer + settings to write the stream results
XmlWriterSettings writerSettings = new XmlWriterSettings();
writerSettings.ConformanceLevel = ConformanceLevel.Auto;
XmlWriter htmlDoc = System.Xml.XmlWriter.Create(transformOutput, xslt.OutputSettings);
// Applies transformation
xslt.Transform(reader, null, htmlDoc, new XmlUrlResolver());
// Loads the resulting stream in the XML document outputXmlDoc.InnerXml = transformOutput.ToString();
}
catch (XmlException ex) { // To define }
catch (ArgumentNullException ex) {//To define }
catch (XsltException ex) { // To define }
return outputXmlDoc;
}
Si vous avez des remarques/critiques, n'hésitez pas !
Vincent
Salut à tous,
En faisant des petites recherches dans le domaine....je suis tombé sur une page MSDN qui ravira certainement plus d'une personne.
Perso, elle est d'ores et déjà dans mes favoris!
Plutôt qu'un grand discours...le rendez vous se trouve ICI
Au moins pour commencer et comprendre la logique, les exemples sont vraiment bien adaptés!
Happy coding!
Vincent
Hello,
Ayant eu récemment le cas, je vous partage une solution pour ce genre de problématique. Cela peut s'avérer utile par exemple pour faire une modification sur une chaîne récurrente.
Objectif : avoir un moyen qui permette dans une chaîne de caractères donnée de remplacer une partie de la chaîne par une autre.
Solution : créer un template récursif prenant 3 paramètres, la chaîne à analyser, la chaîne à remplacer, la nouvelle valeur de la chaîne.
Grosso modo vous vous retrouvez avec un code qui ressemble à ça:
<xsl:template name="replace-string">
<xsl:param name="str" />
<xsl:param name="strToReplace" />
<xsl:param name="newStr" />
<xsl:if test="string-length(substring-before($str,$strToReplace)) =0">
<xsl:value-of select="$str" />
</xsl:if>
<xsl:if test="string-length(substring-before($str,$strToReplace)) > 0">
<xsl:value-of select="substring-before($str,$strToReplace)" />
<xsl:value-of select="$newStr" />
</xsl:if>
<xsl:if test="string-length(substring-after($str,$strToReplace)) > 0">
<xsl:call-template name="replace-string">
<xsl:with-param name="str" select="substring-after($str,$strToReplace)" />
<xsl:with-param name="strToReplace" select="$strToReplace" />
<xsl:with-param name="newStr" select="$newStr" />
</xsl:call-template>
</xsl:if>
</xsl:template>
Il ne vous reste plus qu'à appeler votre template avec le traditionnel apply-templates et en précisant les valeurs des 3 paramètres.
Le tour est joué!
Vincent
Et voila, l'informatique qui a connu une évolution assez exceptionnelle en 50 ans possède maintenant son musée et ses expositions.
On est passé des ordinateurs, exclusivement utilisés par la science, à des tailles énormes et puissances modérées à une vulgarisation de cette dernière tant sur le matériel, les capacités, son utilisation et aussi de sa professionnalisation!
Avoir son PC, son écran TFT, imprimante, clé USB, faire ses photos numériques.....tout cela paraît tellement évident pour tout le monde aujourd'hui!
Ce musée a pour but de retracer cette histoire d'un domaine qui nous passionne tous dans cette communauté!
http://www.museeinformatique.fr/
Vincent
Si vous n'avez pas la possibilité d'avoir un serveur exchange ou que tout simplement vous souhaitez recevoir vos emails persos sur votre appareil, le mieux est d'utiliser la solution mail2web.
Je l'utilise et cela marche vraiment bien!
Les opérateurs proposent souvent du WAP illimité et cela impose certaines restrictions et vous oblige à utiliser les services de l'opérateur en question.
mail2web vous permet de profiter d'un serveur Exchange gratuit qui permet donc de faire du pushmail afin de recevoir les emails sur l'appareil. Et cela marche très bien, vous choisirez si vous souhaitez synchroniser vos emails, calendrier, tâches...
Le seul inconvénient est bien entendu que le serveur push les emails d'un compte mail2web, il vous faut faire une redirection des emails Gmail, hotmail...sur ce compte mail2web pour que cela soit opérationnel.
La marche à suivre:
- Créer un compte gratuitement sur mail2web
- Une fois le compte validé, RDV sur le control panel pour obtenir les paramètres de votre compte
- Une fois loggué avec votre compte @mail2web.com, onglet "Free Services" puis "mail2web live" et enfin "View active sync settings"
- Les informations qu'il nous faut pour configurer active sync sur l'appareil sont:
ActiveSync Settings for Windows Mobile 6
Server name
mobile.exchange.mail2web.com
User name
username
Domain*
ad2
- Dans active sync:
- Démarrer active sync
- Menu puis configurer le serveur
- Adresse du serveur: mobile.exchange.mail2web.com + connexion SSL
- Nom d'utilisateur: voir avec les infos ci dessus
- Mot de passe: celui utilisé à la création de votre compte
- Domaine: ad2 et enregistrer le mot de passe
- Choisissez ensuite les éléments que vous souhaitez synchroniser puis terminer
- N'oubliez pas de faire une redirection sur le compte dont vous souhaitez avoir les emails sur votre HTC
- C'est réellement pratique d'avoir les alertes de nouveaux emails sur le portable!
Vincent
Il y a maintenant 1 mois que j' ai fait l' acquisition de ce petit bijoux technologique.
Au début, je me suis demandé si j' allais vraiment en avoir une utilité importante....le verdict est tout simplement que je ne peux plus m' en passer. On l' adopte réellement vite.
Au menu technologique voici un petit résumé:
-
Processeur cadencé à 400 MHz
-
Windows Mobile 6.0/6.1
-
Connectivité
Bluetooth® 2.0
Wi-Fi® : IEEE 802.11 b/g
HTC ExtUSB
-
Réseau
HSDPA/UMTS : 2100 MHz (Europe), 850/1900 MHz (USA)
HSDPA : jusquà 384 kbit/s en liaison montante et 3,6 Mbit/s en liaison descendante
UMTS : jusquà 384 kbit/s en liaison descendante et montante
GSM/GPRS/EDGE : Quadri-bande 850, 900, 1800 et 1900 MHz (lappareil fonctionnera sur les fréquences disponibles sur le réseau cellulaire)
-
Connecteur micro SD
-
GPS
-
Ecran tactile avec la techno Touch Flo 2
-
Taille résonnable (110 mm (lo) X 58 mm (la) X 15,5 mm (h)) et un poids de 130g
Personnellement je l'ai pris dans le cadre d'un renouvellement SFR. Voici maintenant mes retours.
- Flasher la ROM SFR, elle est lente et bridée. Par exemple, SFR installe son propre logiciel de navigation GPS alors que la ROM constructeur est avec TomTom navigator...vous pouvez trouver des ROMs intéressantes sur xda-developpeurs
- Sauvegarde/restore de vos données notamment lors du flash de la ROM, un outil gratuit et bien sympathique: PIM backup
- GPS : utiliser le programme GPS rapide pour télécharger les dernières données, à la 1ère initialisation cela peut prendre jusqu'à 5 minutes avant de fonctionner
- Splash screen, si vous souhaitez le modifier, faites un tour ici
Vraiment très pratique pour gérer ses contacts, son calendrier et ses tâches. J'ai remplacé mon Ipod pour écouter la musique via une micro SD de 4 Go (cf rue montgallet pour les parisiens). On peut lire également des DIVX via un outil pratique: DivX video player
Vincent
Salut à tous,
Comme vous le savez surement, les finalistes fr des catégories conception de logiciel, interface design, game development et embedded development se sont retrouvés à Marcoussis au centre national du rugby français pour 2 jours de coaching.
Vendredi et samedi le programme a été bien chargé pour eux et je dois dire qu'en tant que coach de la conception de logiciel je suis impressionné par leur évolution, leur professionnalisme et leur motivation!
Vendredi chaque équipe devait présenter son projet à différents auditeurs:
- Coaching environnement - intervenant de l'ADEME
- Coaching business model
- Coaching présentation en public (MS France)
- Coaching conception de logiciel (Guillaume Belmas, Pascal Belaud, Jean-François d'Avanade et moi même)
Après un passage d'environ 25 minutes par team, nous leurs avons fait des retours sur différentes critères comme par exemple la faisabilité de leur solution, les points forts à mettre en avant, les points faibles à anticiper, la qualité de leur présentation....
Vendredi soir les participants étaient tous un petit blanc par les retours pas toujours très positifs :)
Ce n'est pas un problème! Ils ont bossé dur dans la nuit de vendredi à samedi, samedi matin et nous ont présenté en situation réelle leur projet durant l'après midi. Le résultat est tout simplement BLUFFANT.
Le jury était composé de:
- Pascal Belaud (MS France), acteur clé dans ce coaching :)
- Nix, merci pour les retours pertinents!
- Moi même
Je suis vraiment fiers de vous les gars et du travail accompli.
Vous êtes en bonne voie pour le 15 - la finale française!
Bon courage à toutes et tous
Vincent
Bonjour à tous,
On veut faire le maximum pour gagner le plus de médailles possibles pour Imagine Cup 2008, outre des choix sélectifs sur nos finalistes français, nous allons également les aider à se préparer en version grandeur nature.
Ainsi, deux jours de coaching leurs permettront d'affiner les points forts, revoir les limites, préparer leur présentation/démonstration et même leur état psychologique pour être au top le jour J!
Les 11 et 12 avril prochains seront l'étape ultime avant la finale française. Venez avec une solution la plus aboutie possible, une démo déjà bien avancée....car ces deux jours de coaching se termineront par un examen blanc....une présentation devant un jury!
Alors messieurs/dames à vos claviers et à vos répétitions et STEP UP TO THE CHALLENGE :)
Note: vous recevrez toutes les infos nécessaires très bientôt...notamment sur le lieu gardé secret!
Vincent
Et voila le 1er round touche à sa fin!
Les équipes ont rendu leur dossier le 15 février dernier, les délibérations ont eu lieu le 26 février et nous avons rendu public les résultats vendredi dernier!
Je peux vous garantir que nous avons une belle finale française qui se dessine avec des projets ambitieux, pertinents et très différents! Cela fait plaisir de voir que l' innovation et l' imagination de nos étudiants tournent à plein régime.
Nous devons encore définir la date de la finale mais je peux déjà vous dire que ce sera vers mi-mai. Nous attendons de votre part le développement d'un prototype avec démonstration en respectant bien évidemment les points clés de votre dossier!
Je vous rappelle que vous pouvez me contacter sur icsdicoach@gmail.com
Nous organiserons prochainement une conf call avec chaque équipe pour vous guider vers les portes de la finale mondiale.
Bon courage à tous
Vincent
Bonjour a tous,
Voila le petit planning des sessions qu il serait tres interessant de voir pour les participants a la conception logicielle d Imagine Cup 2008.
Plus que 2 semaines pour vos dossiers d inscription...
Lundi 11 fev
- Demystifier le developpement des Webpartds (OFF302)
- Atelier pratique : creer des formulaires Web performants avec le control toolkit AJAX (WEB215)
- Ameliorer l experience utilisateur: la vision, les outils, les nouveautes MS (DES101)
- Comprendre Windows Mobile et Windows embedded (MOB101)
- Microsoft Sync Framework en pratique (LAN203)
- Affichage de contenu dynamique pour Silverlight avec VS et Expression (DES203)
- Les challenges d aujourd hui et demain: le dev parallele PART I(LAN219)
- Decouverte Silverlight et outils Expression (WEB106)
- Data service for the web: projet Astoria (LAN311)
- Les challenges d aujourd hui et demain: le dev parallele PART II(LAN216)
- Developper une application multimedia communicante pour Windows Mobile (MOB204)
- Windows Home Server (INF220)
- Visual Studio 2008 et compact framework 3.5 pour le Dev de devices (MOB205)
- Intro a WPF (LAN106)
- Windows Home Server - dev nouveaux add ins (LAN114)
- INcorporer de l extensibilite dans vos applis grace a System.AddIn
Mardi 12 fev
- Developper des solutions online/offline avec ADO Sync Services (LAN304)
- Atelier: mise en oeuvre des communications unifiees (COM210)
- Dev applis avancees avec Silverlight (WEB401)
- Gestion des donnees geographiques et geometriques avex SQL Server 2008 (DAT207)
- Messagerie unifiee (COM206)
- Robotics studio: du divertissement a l application industrielle (MOB206)
- Utiliser Ajax pour dynamiser vos sites Web existants (WEB107)
CONSEIL: separez vous pour voir un maximum de sessions interessantes qui sont en parallele pour chaque equipe.
A bientot et bon courage!
Vincent
Bonjour a tous,
Je recherche actuellement un stagiaire en Webdesign/inforgraphie pour un stage ou une alternance conventionnee d une duree d au moins 6 mois.
- Lieu: Paris
- Type d entreprise: groupe international banque d investissement
- Charte graphique
- Composants (boutons, grid...)
- Techniques: CSS, (X)HTML, JS, Flash/Silverlight
- Environnement: equipe de developpement tactique en .NET
Si vous etes interesse ennvoyez moi un email sur vbellet[at]gmail.com
Vincent
Salut a tous,
Comme Regis pour Hoshimi (http://regis.arenium.fr/category/coachimaginecuphoshimi/), Manon pour Interface Design (http://interfacedesign2008.blogspot.com/) ou encore Benjamin pour la photo (http://benjamingauthey.com/CategoryView,category,CoachImagineCupPhoto%2B.aspx), je suis le coach de la conception logicielle (Software Design Invitational).
J ai cree un petit site pour les informations, conseils pour cette categorie ou la France veut particulierement etre representee cette annee!
Le contenu viendra progressivement, je vais mettre en place un petit systeme de notification pour les nouveaux articles.
Je reste egalement captain de cette competition au niveau WW avec notre ami Guillaume http://blogs.codes-sources.com/kangoo/
Bon courage et bonne chance aux participants. 
N oubliez pas de vous inscrire ici: http://imaginecup.com/Registration/Default.aspx
Addresse: http://www.thinkdotnet.org/imaginecup/
Vincent
Bonjour a tous,
En live from Seoul, la competition se prepare...
Comme vous l avez vu sur le blog de Richard on est arrive hier a Seoul pour mettre en place l orga. Kangoo et moi sommes les capitaines pour SDI et je peux vous garantir que la pression monte tant pour nous que pour les competiteurs qui arrivent entre aujourd hui et demain (notamment les francais).
L organisation coreenne est tres bonne, beaucoup de choses ont evolue par rapport a l Inde l an dernier.
On est loge dans un super hotel et tout commence a etre pret. Les salles de presentation sont quasiment finies, tout le materiel est pret.
On vous tiendra au courant des avancees notamment sur le blog de l equipe fr: http://blogs.codes-sources.com/imaginecup/default.aspx
Je souhaite d avance bonne chance aux francais meme si notre role doit rester objectif 
Vincent
Salut a tous,
Je vais m attaquer un sujet qui leve souvent des debats et polemiques et votre avis m interesse.
Je prepare actuellement mon MCTS ASP.NET par les learning officiels MS. Une chose m a frappe hier pendant l unit consacree a l affichage des donnees via les controls ASP.NET (datagrid, gridview...).
En effet, un des benefices non negligeables de .NET 2.0 est nul doute son IDE officiel. Un des avantages est de pouvoir developper des choses tres rapidement, qui demanderaient a la main surement plus de temps....bref! Ce qui me "sidere" c est l utilisant des objets source. Bien que tres bien faits, ils vont a l encontre de la separation des couches, notamment de pattern comme MVC.
En particulier dans une appli web, il est vraiment important de pouvoir separer la logique metier, de la presentation, des donnees. Je concois que pour des applications simples cela s avere peut etre non pertinent.
Personnellement, je suis en charge de mettre en place des solutions techniques dans le monde Microsoft (.NET/SQL Server et Sharepoint) pour l equipe de Londres de la banque d investissement societe generale, je peux vous garantir qu il est impensable d utiliser des requetes SQL dans la couche presentation. Quand je vois des requetes inside les fichiers aspx, j hallucine un peu. Merci le dynamisme si vous modifiez ne serait ce que le nom d une table, vous etes bons pour modifier votre code et le redeployer sur les serveurs de prod (process long et delicat dans de grandes organisations). Le raisonnement va plus loin, pour des raisons de securite (a moins de faire un deploiement readonly ou le contenu des fichiers aspx se trouve compile dans une DLL) sinon on peut acceder au contenu de la requete.
Je suis meme de plus en plus contre l utilisation de requetes SQL inside l application. Pour la simple et bonne raison qu il faut recompiler l appli ou du moins votre couche de donnees selon votre architecture des que vous changez quelque chose. Dans la plupart de nos choix techniques, la solution des procedures stockees avec SQL Server 2005 est privilegiee (je sais qu il y a des avantages/inconvenients pour les requetes comme pour les proc stockees)
Je serais curieux d avoir vos avis constructifs sur cette question.
Vincent
Salut a tous,
Depuis quelques jours je suis passe a du FULL Vista et je dois dire que je suis vraiment content de l OS, j en decouvre toujours un peu plus chaque jour.
Concernant le DEV avec IIS 7.0, a l ouverture d une solution existante avec une appli Web, vous pouvez avoir plusieurs types de messages d erreur qui tournent autour de la securite et des permissions.
Exemple:
You must be a member of the Administrators group on the local computer to access the IIS metabase. Therefore, you cannot create or open a local IIS Web site. If you have Read, Write, and Modify permissions for the folder where the files are located, you can create a file system Web site that points to the folder in order to edit the files.
Bon deja pour tout probleme de compatibilite verifiez les composants de IIS installes depuis panneau de config >> Programmes >> Activer ou desactiver des fonctionnalites Windows. 
Mais surtout d executer Visual Studio 2005 en mode administrateur depuis les proprietes de l executable car meme si votre compte windows est dans le groupe administrateur vous pouvez rencontrer ce type de probleme.
Voila j espere que ca pourra en aider certains.
++
Bonjour a tous,
Je suis tombe sur un point interessant lors du developpement d un framework d entreprise sur lequel je travaille en ce moment.
Avez vous deja essaye d ouvrir une connexion avec ADO a partir d un disque sur le reseau pointant su un serveur de donnees (qu il soit local ou lui aussi sur le reseau)?
Si oui et en gardant les options par defaut de securite de .NET 2.0, vous aurez cette magnifique exception:
Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed
Sous .NET 1.0/1.1, vous pouviez le faire sans probleme, il se trouve que les regles de securite ont ete augmentees sous .NET sur ce point precis.
En effet, pour permettre l execution de votre code, en l occurence l ouverture de votre connexion avec votre SGBD, vous devrez modifier un parametre depuis la console de configuration du framework.
Control panel / Admin Tools / Microsoft .NET Framework 2.0 Config
My Computer / Runtime security policy / Machine / Code Groups / All_Code / LocalIntranet_Zone
Clic droit properties: Permission Set et mettre la valeur Full Trust (si vous etes sur bien entendu des executions faites depuis ce disque reseau).
Relancez votre appli et ca devrait fonctionner!
Vincent BELLET
Bonjour a tous
,
Je ne sais pas si vous avez deja eu le probleme mais je peux vous garantir que c est relativement frustrant quand ca vous arrive.
Symptome
Vous creez une nouvelle solution dans votre IDE favori, vous desirez y ajouter un projet (quelque soit son type), et la vous voyez bien votre projet, pas de soucis mais votre solution n apparait plus dans le solution explorer! Oula c est bien embetant sachant que tous les elements d une solutions que l on souhaite ajouter se font depuis le solution item dans le solution explorer...
Ce qui est encore plus frustrant c est si vous ouvrez une solution existante et la tout semble fonctionner, vous voyez bien votre solution et vos differents elements. Mais que se passe t il?
On pourra par exemple supprimer les projets de cette solution et ajouter ses propres projets, helas a l avant dernier projet que vous supprimerez, votre solution disparaitra!
En fait, en dessous de deux projets, le solution item disparait. Ce n est pas un probleme avec le fichier SLN, d ailleurs vous penserez a regarder son contenu et tout sera normal si vous le comparez avec d autres.
Cause
En fait cela se produit si a la premiere utilisation de VS2005 vous avez parametre votre environnement de travail pour VB et que la vous developpez une solution C#.
Resolution
Reinitialiser l environnement de travail pour C#.
Tools / Export and Imports Settings... / Reset all settings / Visual C# environment settings
Comme j y ai passe quelque temps pour comprendre ce qui avait bien pu se passer, je prefere le diffuser au cas ou certains auraient ce probleme, tres ennervant et frustrant!
@+, Vincent Bellet
Les 10 derniers blogs postés
-
Avoir une propriété sur l'object context qui renvoit les sous-entités v2 par
Matthieu MEZIL le il y a 1 heure et 57 minutes
-
WPF : la gestion des dates (Label, TextBlock) par
Pierrick's Blog le il y a 7 heures et 38 minutes
-
[ASP.NET] - ASP.NET Generated Image par
Aurelien's Blog - When ClientSide meets .Net le il y a 9 heures et 6 minutes
-
Utiliser le SDK Open XML pour manipuler vos documents Office Open XML par
Julien Chable le il y a 10 heures et 20 minutes
-
[Silverlight] - Créer un contrôle réutilisable et des propriétés personnalisées. par
Danuz le il y a 13 heures et 37 minutes
-
Photosynth : Composez et partagez vos scènes ! par
Blog technique de Nicolas Boonaert le il y a 13 heures et 40 minutes
-
Comment débugger un programme de génération de code utilisé dans VS ? par
Matthieu MEZIL le il y a 13 heures et 41 minutes
-
Avoir une propriété sur l'object context qui renvoit les sous-entités par
Matthieu MEZIL le il y a 13 heures et 53 minutes
-
Sortie du SDK 1.1 de Visual Studio 2008 par
Michel Perfetti [Miiitch] le il y a 16 heures et 27 minutes
-
Skyfire, Silverlight sur votre mobile ! par
alex# le il y a 16 heures et 44 minutes