![]() | Le grand guide du métier de consultant: Ce livre se lit bien. Il aide à comprendre le chemin qu'il y a à parcourir pour passer du statut de cadre-expert à celui de consultant, aussi bien en tant qu'indépendant qu'au sein d'une entreprise. Il permet également d'aborder un bon nombre de points de manière analytique et à se poser de bonnes questions. A trouver également des chiffres clefs de l'activité d'un consultant et un test pour situer son projet. On peut retrouver ce test en ligne bien que je n'ai pas réussi à obtenir les résultats sur le site. |
![]() | .Net Framewrok 2.0 Application development Foundation: Premier livre à lire pour le MCPD, il comporte pas mal de longueurs pour ce livre de 1000 pages... notamment sur les questions de sécurité qui s'éloigne un peu de la plateforme .Net. Par contre, j'ai trouvé un vrai apport sur les attributs souvent sous-utilisés dans pas mal de domaines: authorization, sécurité, debugging, interop,... Bon, il fallait y passer! |
Coach & formateur Agile/Kanban - Certified Scrum Coach | coach et formateur Kanban accrédité
mardi 25 décembre 2007
Le grand guide du métier de consultant
CodeFx.MySqlProviders V1.0.0.1
* Accessibilité de la classe Aspnet_applicationsDTO accrue (internal => public)
* La chaine de connection et le nom de l'application des providers sont maintenant valorisés par les attributs ConnectionString et ApplicationName du web.config
English versionOpen source project CodeFx.MySqlProviders updated:
* increase accessibility of the Aspnet_applicationsDTO class (internal to public)
* Change the ConnectionString and ApplicationName to be setted by the attributes applicationName of the
dimanche 23 décembre 2007
Hébergement et Medium Trust
Un petit retour d'expérience sur l'hébergement Medium Trust
Un changement d'hébergeur pour TalentExpo puis une mise en ligne de Bestperf cet été m'ont appris deux/trois choses à anticiper lorsque l'on choisit un hébergeur ayant une politique de sécurité de type Medium Trust, c'est à dire la bonne majorité des hébergeurs en mode mutualisé.
Ce choix peut être structurant sur votre architecture ou votre code, comme nous allons le voir.
Mais d'abord quelques points simples pour éviter les problèmes:
- D'abord se renseigner sur la politique de l'hébergeur,
- Lui demander le fichier web_mediumtrust.config qu'il utilise pour le tester dans votre environnement, sinon utiliser celui par défaut.
C'est l'occasion de voir si votre futur hébergeur est transparent et réactif, ce qui est primordial par la suite. - Le déposer sous %windir%\Microsoft.Net\Framework\{version}\Config
- Mettre à jour votre fichier web.config:
- Vérifier que votre site fonctionne avec cette nouvelle politique de sécurité (plutot que d'essayer vainement de faire changer votre hébergeur...). Par défaut, votre environnement est en full trust.
Voici les deux points majeurs que j'ai pu rencontrer et qui ont été impactant sur mes sites:
Côté Web (Asp.Net 2.0)
Le problème principal est l'utilisation de la sérialisation/désérialisation binaire qui lève une exception de sécurité, voir ce post pour plus de détail.
Il est préférable d'opter pour une sérialisation xml dans ce cas.
ReflectionPermission est restreint aux membres publiques. L'accès aux membres privés est interdite. C'est pour cela que la sérialisation xml est possible et non la sérialisation binaire qui sérialise également les membres privés.
Pour en savoir plus sur l'utilisation du Medium trust, lire la page Msdn.
On peut, entre autre, y trouver la liste suivante:
OleDbPermission : is not available. This means you cannot use the ADO.NET
managed OLE DB data provider to access databases. However, you can use the managed SQL Server provider to access SQL Server databases.
EventLogPermission is not available. This means you cannot access the Windows event log.
RegistryPermission is not available. This means you cannot access the registry.
WebPermission is restricted. This means your application can only communicate with an address or range of addresses that you define in theelement.
FileIOPermission is restricted. This means you can only access files in your application's virtual directory hierarchy. Your application is granted Read, Write, Append, and PathDiscovery permissions for your application's virtual directory hierarchy.
Côté Base de donnée, MySql dans mon cas
N'ayant pas le droit d'utiliser la sérialisation binaire côté serveur, l'utilisation de type LOB est de fait interdite dans votre base. Cela peut être impactant si vous souhaitez par exemple sauvegarder des fichiers en binaire (une galerie photos par exemple), et peut nécessiter de rester sur un format fichier.
Par contre, l'utilisation de LOB reste autorisée (et même conseillée pour rester standard .Net) pour les tables de personnalizations si vous utilisez des WebParts ou le Profile, car la sérialisation est cette fois prise en charge par le framework .Net. Ainsi dans mon implémentation MySql de ces providers, CodeFx.MySqlProviders, on retrouve bien le type LongBlob dans les tables aspnet_Profile et aspnet_personalization* bien que ce framework tourne en medium trust.
Third Party API
Le fait d'utiliser du medium trust va peut être également vous interdire l'utilisation de certaines API externes tels que Flickr (pour l'upload de fichiers). Les Api Google ont elles-aussi mis un peu de temps afin d'être compatibles Medium trust.
Pour les assembly Open source, il sera peut être nécessaire de les recompiler avec l'attribut
[assembly: AllowPartiallyTrustedCallers()]
et une signature forte pour pouvoir les utiliser, ce qui est vrai également pour vos propres assemblies sous peine d'avoir une erreur du type partially trusted caller.
Ce sont donc autant de points à tester avant de partir sur une solution.
samedi 15 décembre 2007
Les livres lus cet automne
mardi 11 décembre 2007
Ajax.Net & référencement
Conséquence, le site peut ne pas se référencer. Il est recommandé de vérifier comment est vu votre site par ces robots en utilisant l'extension User Agent Switcher de firefox et en le configurant avec le user-agent du robot que vous souhaitez tester:
- Googlebot/2.1 (+http://www.google.com/bot.html)
- Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- Googlebot-Image/1.0
Et voici l'erreur que renvoit le robot:
"Partial rendering requires a browser that supports W3C DOM Level 1.0."
Avec le framework Ajax.Net on peut tester si le browser supporte ou non le partial rendering, ce qui laisse l'opportunité de le désactiver:
protected void Page_Init(object sender, EventArgs e)
{
MasterScriptManager.SupportsPartialRendering = !Request.Browser.Crawler
&& MasterScriptManager.SupportsPartialRendering;
}
Pour compléter cela, il peut être interessant d'ajouter un répertoire app_browser avec un .browser adapté comme kowitz le suggére ce qui peut améliorer l'indexation de votre site.
Après cela, il faut être un peu patient pour que le site se référence!
lundi 10 décembre 2007
Certification MicroSoft Niveau 3
Il me reste donc à passer le niveau 1 (les fondations c#) afin d'être certifié Professionnal web developper (MCPD).
mercredi 28 novembre 2007
CodeFx.MySqlProviders, des providers MySql pour ASP.Net
CodeFx.MySqlProviders est un ensemble de providers pour Asp.Net:
- MySqlMembershipProvider
- MySqlPersonnalizationProvider
- MySqlProfileProvider
- MySqlRoleProvider
Ces providers sont en production sur le site www.bestperf.com dans un environnement Medium Trust (un prochain article traitera de mon retour d'experience sur ces problématiques Medium Trust et référencement).
Les tables MySql pour le membership, personnalisation, profile et role ont la même structure que les tables équivalentes Sql Server. Cela permet de faciliter une éventuelle migration dans un sens ou dans l'autre.
English versionCodeFx.MySqlProviders is a set of providers:
- MySqlMembershipProvider
- MySqlPersonnalizationProvider
- MySqlProfileProvider
- MySqlRoleProvider
This is a example of CodeFx use.
Those providers are in production with the site www.bestperf.com since may 2007.
This assembly can be used in a medium trust environnement.The tables for membership, personnalization, profile and role have the same structure as the Sql Server tables.
A file for the database creation is delivered with the solution.
mardi 27 novembre 2007
CodeFx, un framework de persistance
Développé en C# sur le framework 2.0, il est utilisé avec des templates CodeSmith qui permettent de générér, en s'appuyant sur le schéma d'une base MySql, l'ensemble des classes
de type DAL, DTO et Persistance.
Ces classes peuvent également être définies manuellement afin de pouvoir définir des classes business.
La persistance, mix entre le mode de persistance (Cache, Session, IIS) et le niveau de persistance (Public, Private), est définie par attribut sur les classes de types Persistance:
[Persistance("ClassName" , EPersistanceMode.Cache, EPersistanceLevel.Public)]
Les classes DTO sont implémentées avec les attributs [DataObject] afin de pouvoir utiliser les ObjectDataSource d'asp.net de manière standard.
English versionCodeFx is a .NET based persistence framework (DAL, DTO, Persistence) working with attributes.
The mapping with tables can be made with codesmith templates or manually.
Either a table pattern or a business implementation can be made depending on the the architecture approach.
The DataBase used is MySql but the templates can be updated for others Db.
The type of persistance is defined is the Persistance classes with attributes:
[Persistance("ClassName" , EPersistanceMode.Cache, EPersistanceLevel.Public)]
Persistance is a mix between the persistance Mode (Cache, Session , Items) and the Level (Public or Private).
The DTO classes are implemented with [DataObject] attributes so that asp.net ObjectDataSource can be used in a standard way.
This framework is on production for the sites talentexpo and bestperf since beginning of 2007
Laurent Morisseau, auteur de ce blog, pour me contacter




