APSQL

Evolutivity

Le projet evolutivity (http://www.evolutility.com ) est intéressant à plus d’un titre car il permet de mettre en place très rapidement une application web de type CRUD (Create/Retrive/Update et Delete) soit les actions de base habituellement réalisés sur les tables.

Tous les écrans sont complémentent paramétrés au travers de fichiers XML. Les écrans sont donc facilement paramétrables et adaptable en fonction de l’évolution des structures de données.

Bien entendu dans le cas ou le projet demandes des affichages et /ou des contraintes de validation complexe, alors EVOLUTIVITY ne sera pas adapté à votre projet.

Afin de mieux comprendre le type d'application qui peut être généré avec evolutivity, le plus simple est de se rendre sur le site du projet et de faire tourner les démonstrations: http://www.evolutility.com/demo/demo.aspx et n'oubliez pas tout cela sans une ligne de code au niveau développement.

Le développement d'un projet evolutivity se base sur un modèle relationnel solide dans lequel les contraintes d'intégrités sont définies sur les différentes tables. Afin de simplifier le schéma et le fichier de mappage la colonne qui représente la clé primaire se nomme toujours id et est toujours de type identity. Ainsi, il n'est pas nécessaire de définir la clé primaire dans le fichier xml.

Comme vous pouvez le constater Evolutivity présente 5 format différent d'affichage:

  • Vue (view)
  • Liste (list)
  • Edition (edit)
  • Recherche (search)
  • Recherche avancée (advanced search)

SQL Server Express + Web Developer Express +Evolutivity

Il s'agit sans doute de la meilleure équation en termes d'outil pour mettre en place ce type de projet. En effet ici l'environnement de développement est utilisé à minima pour permettre une intégration rapide des composants dans les différentes pages.

L’installation de SQL Server Express est détaillé sur http://www.apsql.com/articles/InstallerSQLExpress2008.html

Le téléchargement de visual web developer express est disponible sur http://msdn.microsoft.com/fr-fr/express/aa975050.aspx .

Dans le cadre d’un développement avec Evolutivity, il est tous à fait possible de s’appuyer sur les outils des de la gamme Express : SQL server Express (dont l’installation est détaillé sur : …) et visual web developer express (http://msdn.microsoft.com/fr-fr/express/aa975050.aspx) .

Ensuite il est nécessaire de télécharger le package evolutivity depuis : http://www.evolutility.com/download/download.aspx .

La mise en place

Une fois l’archive zip téléchargé localement, il est nécessaire de la décompresser localement.

Configurer  votre projet Visual Web Developer

Créer un nouveau projet Web par exemple le projet EvolTest

Depuis l’explorateur de fichier recopier les fichiers DLL depuis l’archive Evolutivity vers le dossier bin de votre projet web

Au niveau du projet Web définissez le dossier PixEvo et le compléter comme indiquer ci-dessous à partir des éléments présents dans l’archive Evolutivity

Modifier le fichier web.config afin d’ajouter la connexion au serveur et à la base SQL qui va contenir les données. Ce fichier contient également la déclaration du composant Evolutivity :

<appSettings>
      <add key="SQLConnection" value="Server=localhost\SQLExpress;Database=EvolTest;Trusted_Connection=yes;" />
</appSettings>

Et

<add verb="*" path="evolutility.aspx" type="Evolutility.DataServer.DataServer,Evolutility.DataServer" />

Soit par exemple le fichier :

<?xml version="1.0"?>
<configuration>
	<appSettings>
		<add key="SQLConnection" value="Server=localhost\SQLExpress;Database=EvolTest;Trusted_Connection=yes;"/>
	</appSettings>
	<system.web>
		<compilation debug="true" />
		<authentication mode="Windows"/>
		<httpHandlers>
      <add verb="*" path="evolutility.aspx" type="Evolutility.DataServer.DataServer,Evolutility.DataServer"/>
		</httpHandlers>
	</system.web>
</configuration>

Intégrer le composants Evolutivity

Afin d'améliorer votre travail au niveau du développement des pages, il est possible d'intégrer le composant Evolutivity dans la barre d’outils pour son intégration graphique dans les pages aspx en développement. Pour cela afficher la page default.aspx puis effectuer un clic droit dans la barre d’outils afin de faire apparaitre le menu contextuel et sélectionner  Choisir les éléments.

La boite de dialogue Choisir les éléments de boite à outils est alors affichée puis cliquez sur le bouton Parcourir afin de sélection le composant Evolutivity .UIServer.dll.

Le composant UIServer apparait alors dans la barre d’outils

Configurer votre base de données

La première étape consiste à lancer SQL Server Managament Studio et à créer la base EvolTest avec le script suivante

CREATE DATABASE EvolTest;

Au niveau du serveur de base de données l’utilisateur qui exécute l’application Web doit être en mesure de se connecter au serveur de base de données car c’est le mode de sécurité approuvé qui est retenu dans cet exemple. Il convient donc de permettre au compte AUTORITE NT\Service Réseau de se connecter au serveur et de venir travailler avec la base ce qui peut être fait à l’aide du script suivant :

USE master;
go
CREATE LOGIN [AUTORITE NT\SERVICE RÉSEAU] 
FROM WINDOWS WITH DEFAULT_DATABASE=EvolTest; USE EvolTest; GO CREATE USER [SERVICE RÉSEAU] FROM LOGIN [AUTORITE NT\SERVICE RÉSEAU]; GRANT CONNECT TO [SERVICE RÉSEAU]; exec sp_addrolemember 'db_datareader',[SERVICE RÉSEAU]; exec sp_addrolemember 'db_datawriter',[SERVICE RÉSEAU];

La base d’exemple va contenir la table crée à l’aide du script suivant :

use EvolTest;
go
create table Individus(
	id int identity(1,1) constraint pk_individus primary key,
	nom nvarchar(50),
	prenom nvarchar(50),
	email nvarchar(100)
);

Enfin pour permettre à evolutivity de travailler avec cette base il est nécessaire d’exécuter les scripts Evol-Common.sql et Evol-MultiUsers.sql. Ces scripts sont disponible dans le dossier SQL depuis l’archive zip Evolutivity.

Enfin pensez à vérifier que le protocoloe TCP/IP est actif pour l’instance par l’intermédiaire du Gestionnaire de configuration de SQL Server :

Créer une page

Depuis Web Developer Express demander la création d’une nouvelle page de type aspx : Individus.apsx

Depuis la barre d’outils faite glisser le composant UI Server vars la page individus.aspx et déposez le dans la division centrale afin de produire la code suivant

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Individus.aspx.cs" Inherits="EvolTest.Individus"  %>
<%@ Register Assembly="Evolutility.UIServer" Namespace="Evolutility" TagPrefix="Evol" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server" enctype="multipart/form-data">
    <div>
        <Evol:uiserver id="evol1" runat="server" 
        virtualpathtoolbar="./PixEvo" 
         XMLfile="./xml/individus.xml"
         DisplayModeStart="Search" DBAllowDesign="true" SecurityModel="Single_User" Width="100%"
         ToolbarPosition="Top" NavigationLinks="true"
         Language="FR" 
         RowsPerPage="20"></evol:uiserver>
    </div>
    </form>
</body>
</html>

Pour prendre en compte les caractères accentués quoi peuvent être saisis modifier la première ligne du document individus.aspx de la façon suivante :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Individus.aspx.cs" Inherits="EvolTest.Individus" ValidateRequest="False" %>

Mettre en place le fichier xml de mappage

Dans le projet ajouter un dossier xml qui va contenir tous les fichiers de mappage et y ajouter le fichier individus.xml

Le ficher xml doit va être structuré de la façon suivante :

<?xml version="1.0" encoding="utf-8" ?>
<form label="individus" xmlns="http://www.evolutility.com" >
  <data entity="individu" entities="individus" dbcolumnlead="nom" dbtable="Individus" dborder="t.nom, t.prenom" dbcolumnpk="id"
	splogin="EvoSP_Login @login, @password"
	sppaging="EvoSP_PagedItem @SQLselect, @SQLtable, @SQLfrom, @SQLwhere, @SQLorderby, @SQLpk, @pageid, @pagesize"/>
  <tab label="Général">
    <panel label="Identité" width="62">
      <field type="text" label="Nom" maxlength="50" dbcolumn="nom" dbcolumnread="nom" required="1" cssclass="fieldmain" width="62" search="1" searchlist="1" searchadv="1"/>
      <field type="text" label="Prénom" maxlength="50" dbcolumn="Prenom" dbcolumnread="prenom" required="0" cssclass="fieldmain" width="38" search="2" searchlist="2" searchadv="2"/>
      <field type="email" label="Mail" maxlength="255" dbcolumn="email" dbcolumnread="email" width="100" search="1" searchlist="1" searchadv="1"/>
    </panel>
  </tab>
</form>

Voila il ne vous reste plus qu’à tester le projet !

Quelques références

Le site du projet evolutivity : http://www.evolutility.com/

Les articles détaillant sont utilisation: