IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Sommaire > IDE Delphi .NET
        Comment améliorer les performances de mon application ?
        Comment intégrer l'utilitaire sn.exe du SDK .NET ?
        Comment utiliser le WebService BabelCode pour convertir du code C# vers Delphi.Net

        


Comment améliorer les performances de mon application ?
auteur : Laurent Dardenne
Pour ce faire on redéclare l'attribut DebuggableAttribute :
La propriété IsJITOptimizerDisabled : Indique si l'optimiseur du runtime est désactivé.

* La valeur True augmente les performances d'exécution pour le debugger, ce qui peut diminuer les performances d'exécution de l'application.
* La valeur False augmente les performances d'exécution de l'application.

Propriété IsJITTrackingEnabled : Indique si le runtime récupére, pendant la génération de code, des informations pour le Debugger.
Cette propriété ne commande pas le debugger, mais informe le compilateur (JIT) de produire des informations utilisable par le débugger.

[assembly: Debuggable(False, False)]
Sous Delphi 2005, cet attribut est positionné par défaut à

[assembly: Debuggable(True, False)]
Code d'exemple :

// Aucune information de debbugage {$A-,B-,C+,D-,E-,F-,G+,H+,I+,J-,K-,L-,M-,N+,O+,P+,Q+,R+,S-,T-,U-,V+,W-,X+,Y-,Z1} { C+ = Directives d'assertion D+ = Informations de débogage Y+ = Déclaration de symboles et informations de référence croisée. } program DebugAttribut; {$APPTYPE CONSOLE} uses SysUtils, System.Diagnostics; [assembly : Debuggable(False, False)] function QueryPerformanceCounter(out lpPerformanceCount: Int64):LongBool; external 'kernel32.dll'; var StartCount, EndCount: Int64; i, j, k: Integer; begin QueryPerformanceCounter(StartCount); i := 0; while i < 1000000 do begin k := ((i*2)+2); i := k div 2; dec(i); j := i; inc(j); i := j; end; QueryPerformanceCounter(EndCount); Writeln(Convert.ToString(EndCount-StartCount)); Readln; end.

Comment intégrer l'utilitaire sn.exe du SDK .NET ?
auteur : Laurent Dardenne
L'utilisation du menu Outils permet ce type d'intégration, l'utilisation du script console suivant permet l'appel de l'utilitaire sn.exe :

@echo off
 rem Fichier MakeSN.cmd
 rem Crée un nom fort pour un assembly en utilisant le nom du fichier projet en cours
 rem Lignes à insérer dans le menu Outils :
 
  rem Titre      : Strong Name
  rem Programme  : C:\WINDOWS\system32\cmd.exe
  rem Répertoire : C:\WINDOWS\system32
  rem Paramètres : /K "VotrePath\MakeSN.cmd" $Exename
  rem Modifier le nom de répertoire.
 
 rem Dans le batch %1 correspond à $Exename
 rem %NetSamplePath% pointe sur le chemin du SDK .NET, utilisé Call Sdkvars.cmd
 rem Il est préférable de déclarer la variable d'environnement
 rem %NetSamplePath% dans la fenêtre variable d'environnement de l'onglet Avancé des propriétés Système.

For /F "tokens=*" %%I in  ('Echo %1') do "%NetSamplePath%Bin\sn.exe" -k "%%~dpnI.snk"
if errorlevel 1 goto Erreur
if errorlevel 0 goto Fin
:Erreur
Echo.
 rem génération en OEM
Title Erreur de g,n,ration de nom fort.
Echo Erreur de g,n,ration de nom fort.
pause
:Fin
 rem Termine le shell
Exit
Modifier le nom du répertoire dans la zone de saisie Paramètres.

Remarque :
Il est conseillé d'adopter une politique de signature cohérente de vos assemblages en utilisant toujours la même clé pour la signature.
Il est aussi possible de créer un modéle d'unité dédiée qui renseigne les attributs suivant :

... [assembly: AssemblyDelaySign(False)] [assembly: AssemblyKeyFile('FullPath\VotreFichierDeClé')] [assembly: AssemblyKeyName('votreClé')] ...
Voir le fichier template :
C:\Program Files\Borland\BDS\3.0\Objrepos\DelphiDotNet\AssemblyInfoTemplate.pas


Comment utiliser le WebService BabelCode pour convertir du code C# vers Delphi.Net
auteur : King Kaiser
Le WebService BabelCode est un outil en version Beta qui permet de convertir du code C# vers Delphi.Net. Il ne peut être utilisé sous l'édition Personnel de Delphi 2005 parce que celles-ci ne permettent pas l'ajout de références Web.

Nous allons utiliser deux RichTextBox : un pour afficher le code C# et un autre pour afficher le code Delphi.Net correspondant après conversion. Un bouton sera également ajouté sur la fiche pour lancer l'opération.

Mais avant cela, il faut ajouter la référence au WebService.
Pour le faire, aller dans le menu Project-Add Web reference et ajouter le lien vers la description du service. Vous trouverez ce lien sur la page d'accueil de BabelCode. Utilisez ensuite l'option Add Reference pour charger le convertisseur.

Il ne vous reste plus qu'à implémenter les fonctions pour charger le premier RichTextBox avec du code C# et sur l'évènement OnClick du bouton, saisissez :

procedure TWinForm.btnConvert_Click(sender: System.Object; e: System.EventArgs); begin rtbDelphiCode.Text := BabelCode.Create.CSharpToDelphi(rtbCSharpCode.Text); end;
Voilà. A noter que cette WebService est encore en version Beta et que la conversion ne sera pas forcément parfaite. Vous pouvez par ailleurs consulter cet excellent tutoriel de Laurent Dardenne sur la conversion du code C# vers Delphi .NET.

lien :  Conversion du langage C# vers Delphi 2005 pour .NET
lien :  Using the Borland WebService BabelCode

        

Consultez les autres F.A.Q's

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.