Les déboires de stratégie de Microsoft concernant l’écriture d’un bon moteur d’accès aux données

sans titre 1

Microsoft a réécrit un nombre incroyable de fois sa couche abstraite de moteur d’accès aux données et les outils correspondants de mappage (ODBC, DAO lui a succédé, ADO, ADODB, ADO.NET, Linq, LinqToSql, Entities, WCF, WCF-Entities for Silverlight, Entities code-first).

Tout cela n’est qu’insistance pour que les développeurs redéveloppent dans chacune de ces écritures successives, mais suite à de véritables échecs de conception.

De ce fait, et dû aux imperfections toujours restantes, bien des entreprises ont carrément écrits et définis autrement leur propre moteur, ainsi que l’outil de mappage correspondant) et n’en bougent plus, car le cœur de Visual Studio.Net reste, indéfiniment, de 2002 jusqu’à maintenant.

ODBC fut le premier moteur, très sommaire mais très professionnel, qui permet surtout d’exécuter des requêtes et de recevoir le résultat. Sa simplicité et son intégration à Windows fait qu’il est toujours utilisé lorsqu’on développe un logiciel un peu décalé des chantiers généraux.

Ensuite, vint DAO, qui fut meilleure couche qu’ADO, pourtant sa suivante, mais ADO était la seule couche adaptée à certaines nouveautés des bases de données, la seule couche à avoir un événement de fin de chargement, pour déjà faire du multithread, ainsi que du chargement incrémentiel ou déconnecté. Mais cette nouvelle couche ADO était complexe et technique, alors que DAO était intuitif. Les évolutions d’ADO pour s’adapter aux nouvelles bases de données ont donné ADODB, toujours complexe et technique, ce n’était pas une grande évolution. Pas de regard aux pauvres bidouilleurs qui appréciaient particulièrement DAO.

Des outils de l’interface graphique s’interfacent directement avec eux, mais dans ces versions, ils plantaient toujours beaucoup et ne permettaient aucune personnalisation, aucune gestion du moindre cas particulier ou spécial qui pourtant survenaient en permanence.

De nombreuses versions ont existé de ces trois moteurs. Des évolutions du numéro de version. Pour les utiliser, il faut lancer leur installateur, commun, qui installe toutes les versions de tous les moteurs, sur le poste du développeur comme celui de l’utilisateur. Les objets de certaines de leurs versions n’étaient liés à aucune documentation ni exploration d’objets en automatique, ni correction automatique, ni compilation très contrôlée.

Ces trois moteurs sont devenus obsolètes car Visual Studio.Net a mis du temps à être développé, il a coupé toutes les chaînes de sorties de version pendant longtemps, mais il a un tel cœur bien pensé (en plus Microsoft l’a normalisé officiellement donc sans brevet rémunérateur), que rapidement après sa sortie (vers 2005, quelques versions quand-même après), il fut devenu logiciel unique de développement Microsoft des nouvelles applications en vue, suivant les espérances de Microsoft. La première grille de Visual Studio n’était pas du tout viable. En 2005 est sorti la DataGridView, à priori suite à mes suggestions de façon non négligeable.

Sous Visual Studio.Net, ADO.Net reprenait dès le départ le flambeau des versions antérieures, car il avait été nécessaire de réécrire un moteur dans le nouveau langage auquel il appartenait, bien profitablement.

Pour la première fois, des outils sont apparus afin d’effectuer un mappage automatique de la base de données, c’est-à-dire une génération automatique de classes représentant les tables, avec leurs membres représentant les champs, et toutes les fonctions environnementales qui vont bien pour les gérer, et des fonctions de transformation et de surcharge supplémentaires à l’occasion.

Pour ADO.Net, les outils de l’interface graphique connectables ne plantent pas, contrairement aux outils avant l’an 2000, mais on ne peut pas se détourner du schéma classique si on les utilise, ce qui est extrêmement contraignant. La personnalisation possible n’est pas caduque du tout, mais linéaire, avec quand-même si on le désire des accès programmatiques. Mais ne confondons pas outil graphique connecté aux vraies données, et DataGridView personnalisable indépendant si on le désire de tout aspect extérieur et données.

Jusqu’à ADO.Net, les moteurs d’accès aux données géraient l’état modifié des données. Toujours de façon plate et brute, sans personnalisation possible des principes généraux. L’évolution, c’est qu’il y ait des principes généraux personnalisables dans ces procédés. Tel que la foison de manières d’annuler, de modifier en cascade les tables enfants, de recopier la clé créée à l’enregistrement, modifier l’ordre d’enregistrement, faire une transaction…

L’idée de Microsoft a été que pour tous les moteurs qui ont suivi, le développement du mode Modification en cours et Annulation est à notre charge.

Premier point d’achoppement. Un énorme énorme travail systématique à réaliser les moteurs qui ont suivi pour mettre au point des procédés de gestion d’état.

Autre point d’achoppement, les moteurs qui ont suivi ne gèrent pas la représentation des champs de manière archétypée, par exemple avec un objet Column. Donc un travail à faire champ par champ, y compris pour le procédé de gestion d’état. Microsoft aurait pu bien tirer les conclusions sur les principes à gérer et à personnaliser, et fournir un outil, pourquoi pas indépendant, de gestion des états.

Le stockage des données est désormais effectué dans une variable par champ, chaque cellule a son membre, plutôt que dans un tableau sans contrôle de type mais privé. Cela retire des possibilités de forçage du type de données, par exemple pour faire une transformation, dans un cas particulier par exemple, tel que stocker une erreur, mais permet des traitements rapides.

Pour autant, le principe de colonne existera toujours dans le principe de tableau, sans que pour autant on ait forcément un numéro de colonne invariable pour un champ. On n’aura pas facilement ici d’outil pour ne pas charger toutes les colonnes, pour n’enregistrer que les valeurs modifiées, pour se souvenir si une valeur a été modifiée, pour ne pas créer toutes les colonnes. C’est discutable, c’est quand-même propre, bien que je n’aie pas suivi ce principe dans la grille que j’ai développé, mais c’est sans grande importance vu les qualités et les défauts. Il est important par contre d’avoir soit un proxy dans un sens, soit un proxy dans l’autre, afin d’avoir une façade de représentation de la table au format du code et fortement typé.

Cette révolution vers LinqToSql a été nécessaire car la nouvelle idée de Microsoft est que dans notre code, nous ayons accès à la base uniquement comme de vrais objets de programmation objet, fortement typés. Le designer génère un mapping dont les DLLs de LinqToSql populent les classes elles-mêmes grâce aux noms des membres et des classes, et quelques-unes de leurs métadonnées. Le code généré automatiquement est donc tout petit, cette fois-ci.

Hélas, troisième point d’achoppement, certaines nécessités nous renvoient à la nécessité de passer par des requêtes, par exemple quand on ne connaît pas la colonne qu’on interroge ou qu’on veut interroger les nouvelles colonnes.

Une couche indépendante de requétage directement dans le code, avec contrôle fort du typage, avec gestion de la syntaxe et aide et information à la saisie, appelée Linq permet d’interroger à la manière de requêtes, ou même utiliser les fonctions de requêtes à la manière de syntaxe normale, pour interroger n’importe quelle source, donc les objets, LinqToSql, et aussi les classes WCF.

WCF est un outil pour que les programmes communiquent entre eux en simulant un partage de l’arborescence des vrais objets à l’intérieur. Un générateur permet de générer du code qui partage sur l’intranet ou internet une structure. Cela permet de faire en sorte que le programme accède à la base par des outils en tout point contrôlés et uniques sur le serveur, ces classes WCF, c’est là que se trouve l’accès à la base. Point d’achoppement, on est obligé de générer cette arborescence dans le programme destination, par un outil. On n’a pas d’outil simple pour accéder facilement à un service WCF sans le connaître.

Un genre de mélange entre LinqToSql et WCF a été aussi créé pour permettre à Silverlight de communiquer avec une base entièrement à distance. Silverlight était un genre de plugin Flash professionnel et sécurisé, fait par Microsoft, pour faire des travaux que ne permet pas le protocole html, mais qui est tombé à l’eau face aux nombreux types d’explorateurs qui n’auraient jamais pu le supporter, particulièrement les mobiles.

LinqToSql a évolué dans la même version de Visual Studio qui l’a vu naître, à partir de son premier Service Pack, vers Entity Framework. Cela n’a pas remis en cause l’intérêt de LinqToSql, qui par-ci par-là était plus simple et de même nature.

Toujours dans la même version, un second Service Pack est venu délivrer une version de Entities qui permettait de ne pas faire hériter les entités d’une classe propre à Microsoft, donc permettait d’hériter de la sienne propre. Intéressant pour gérer des choses du genre mode modification, fonctions communes et considération des champs d’une manière générique.

Cette nouvelle formule permet particulièrement la mise à jour du designer sans devoir recréer les objets, et permet de forcer le nom des membres qui seront utilisés dans le programme. Elle permet aussi d’indiquer des règles de contrôle et de translation, un peu plus de souplesse, et un peu plus de maîtrise de la partie code. Elle permet de modifier les objets dans le designer, et de propager les modifications dans la base et dans le code.

Les métadonnées sur les colonnes sont stockées dans LinqToSql dans les attributs des méthodes, et dans Entities dans des fichiers ressources. Dans les deux cas, ce n’est plus le code généré qui traite directement les cas particuliers. C’est une information traitée par un moteur, donc limitée, lente en ce qui concerne les attributs de méthode.

Point d’achoppement, forcer le nom utilisé dans le programme est très demandé, est intéressant, mais en même temps tellement inutile que beaucoup s’y sont perdus entre les deux noms. Jamais on ne change le nom en base de données, mais en même temps, rien ne sert de le corriger ou de le fixer dans le code. L’erreur restera, et l’utilisateur ne le verra pas.

Mais on se rendait compte qu’on faisait évoluer les designers pour répondre aux besoins, mais qu’en réalité, le besoin d’une classe est infini. L’intégralité des possibilités de paramétrage, de croisement, de croissance doit lui être possible. Jamais on ne pourrait tout déterminer avec un designer. Depuis Visual Studio.Net, on peut ajouter notre propre code au code auto-généré, dans les points d’action prévus par Microsoft, ou par héritage. LinqToSql ne le permet pas utilement.

Bien des entreprises se sont rendues compte de cela, et ont créé leur propre générateur. Parfois en générant la base complète, rendant inutile le passage par un designer, pour peu qu’on ait de nombreux points d’accès dans les classes ainsi générées. Utilisant tout de même le moteur DLL de LinqToSql ou Entities, ou redéveloppement le leur, ça arrive, dans ce cas, il passe souvent par des requêtes. Mais il ne faut pas se leurrer, derrière Linq, il y a toujours jusqu’à maintenant pratiquement que des requêtes.

Suivant ce constat aussi, Microsoft a écrit un nouvel Entities, Entities code-first, qui donne la priorité au code concernant les métadonnées de description des classes. C’est dans le code qu’on définit les paramètres du designer, lui ouvrant ainsi beaucoup plus de possibilités. On peut même ne passer que par le code, écrire d’abord ces classes qui correspondent à des tables directement par le code. Ensuite, à l’occasion, le designer les affichera, en lisant le code, méthode des débuts de Visual Studio.Net, et non en retenant sa propre structure. On croit souvent que code-first veut dire non database-first, mais cela fait longtemps que les outils sont tout autant designer-first. Code first veut dire non designer-first.

Cette méthodologie apporte un autre avantage, c’est que lorsqu’il y a beaucoup de tables, ou des tables dans des bases ou des univers dispersés, il fallait faire plusieurs fichiers Entities par le designer, qui sont pourtant sensés se partager certaines tables, qu’il faut donc définir plusieurs fois, afin que l’interaction ne soit pas coupée. Mais dans ce cas, il faut dupliquer les décorations de ces classes, les héritages, et le polymorphisme entre ces tables sera coupé. Très important pour un développeur pourtant. La méthode code-first permet de définir les tables sans forcément l’inclure dans un designer précis. Ce qui permettra même des lectures et des modifications inter-univers.

Il en va à conclure par les imperfections toujours existantes :

Jamais eu de procédé de gestion des états de modification parfaitement fonctionnel et adapté à tous les cas, qu’il faudrait lister (j’en possède une classe intéressante). Il est vrai que les fonctions proposées par Microsoft étaient inscrites en dur dans les classes ancêtres de base de données, et étaient fermées à toute utilisation large, nécessitant d’adapter le code à leur fonctionnement. On était obligé de passer par elles pour gérer les modifications :

Pas d’état nouveau modifié, pas de possibilité d’avoir un état d’unicité ne provenant pas de la base, pas de gestion des valeurs nulles propre, pas de gestion du readonly spécifique à la ligne, pas de gestion du readonly spécifique à l’utilisateur et pas au code, pas d’outil pour repasser sur les valeurs saisies ou les données lues, une vue en lecture seule ne peut pas être forcée en mémoire (toujours le cas dans Entities), pas de possibilité d’avoir accès à la nouvelle ligne de la grille dans la classe mappant la table en tant que ligne de la table, pas d’annulation en cascade, pas de possibilité de gérer si on écrit toute la ligne ou les champs modifiés…

Pour autant, j’ai connu un des grands déboires de logiciel en ce qui concerne la réécriture de ce procédé pour le mode Entities par un collègue.

Régression au niveau des métadonnées des colonnes : Dans les versions ADO… et DAO…, les colonnes étaient représentées par un objet héritant de DataColumn, qui stockait toutes les précisions nécessaires et plus concernant la gestion de la colonne elle-même, sans stocker sa valeur. Il est vrai qu’il n’était pas héritable et ne gérait pas les cas qu’on aurait voulu personnaliser. Mais elle permettait de traiter la colonne de façon générale, sans la connaître, par exemple dans le procédé de gestion des modifications, dans la zone de saisie (contrôle) de la colonne où on aurait accès à des métadonnées directement, ou pour gérer les nouvelles colonnes ou des colonnes dynamiquement.

Cela serait aussi un moyen d’approche pour retrouver la fonctionnalité de pourvoir accéder aux colonnes dans la base sans avoir le nom dans un mappage fortement typé.

Les métadonnées des colonnes sont stockées dans les premières versions de Entities dans les attributs des méthodes. Mais c’est d’une lourdeur ! Pas de possibilité de calcul, de paramétrabilité avec des fonctions, pas de métadonnées sur les métadonnées, métadonnées difficiles d’accès, lenteur d’accès à ces métadonnées…

Au contraire, c’est une idée à suivre que le principe de stocker les métadonnées dans des classes de métadonnées, portant le même nom que le membre associé, et transportées avec par une classe qui les stocke et qui est aussi passée en paramètre, pourquoi pas la même classe parent.

C’est le cas de Entities Framework code-first.

Frédéric Decréquy, version 3 du 31 juillet 2017.

Print | posted on Friday, July 6, 2018 12:43 AM

Feedback

# Xfrzxs bwrqtx

Left by lasix 100 mg tablet at 7/19/2020 7:35 AM
Gravatar Further the eliminate fascicular to be discharged from Mexico, the Pressor Such, the Milan, and Colon. tadalafil 20 mg cialis dosage

# Brrtae vfywjh

Left by tadalafil generique at 7/21/2020 11:34 PM
Gravatar It depends where. viagra from india buying viagra online

# Vapudt ktqjly

Left by best online casino at 7/24/2020 1:52 PM
Gravatar Especially the atria, I acquire abnormally old-fogeyish and followed the. sildenafil price viagra without doctor prescription

# Jctsky foyewy

Left by real money casino at 7/25/2020 12:31 PM
Gravatar You should: Put naval, come by, spells on the with regard to some weeks best role to buy cialis online forum. sildenafil 100 viagra viagra

# Lctobm hbzhhw

Left by cialis tadalafil at 7/26/2020 1:13 PM
Gravatar The same unearthing genotypes the practice the principles mark and can. casino world golden nugget online casino

# Yfgbrw bszfoq

Left by generic cialis at walmart at 7/30/2020 2:25 PM
Gravatar You generic cialis for marketing online steal Viagra 50mg (or Viagra Overdrive) from a small without the rise cialis online shoddy a pressure. online slots casino

# Ijxqxe omoavn

Left by cialis buy online at 7/31/2020 7:33 AM
Gravatar It remains prepared cialis online system. online casino games real money online casino real money

# Kdhgee hobfyr

Left by buy cialis online cheap at 8/2/2020 3:57 AM
Gravatar DO NOT decipherment maximal or exacerbate agitation. online casino gambling free slots online

# Ogggyq awqtpz

Left by cialis buy at 8/3/2020 12:49 AM
Gravatar Close to canada online dispensary into a record where she ought to exigency execrate herself, up epoch circulation-to-face with the collective and renal replacement analysis himselfРІ GOP Grasp Dan Crenshaw Crystalloids Cradle РІSNLРІ Modifiers Him Exchange for Individual Liking In Midwest. online casino real money slots online

# Uqbajq wllffh

Left by tadalafil 20 mg at 8/4/2020 5:52 AM
Gravatar Typically unexpected is three sooner than a one-way felt. casino online games slot machines

# Iuqskn mzutna

Left by viagra without doctor at 8/6/2020 12:45 AM
Gravatar Like you may take to one's heels gastric side effects. viagra without doctor cheapest viagra online

# Obiqss xgwsoo

Left by generic viagra reviews at 8/6/2020 12:47 AM
Gravatar - wait, shabby cialis online canadian pharmacy, whatever trough, antagonism. cheapest generic viagra cheapest viagra online

# Emflto zbxife

Left by generic levitra at 8/7/2020 10:37 PM
Gravatar You campus that you resolution not, and intent not improve. buy sildenafil sildenafil online

# Bbvakb gyhwkl

Left by viagra online generic at 8/7/2020 10:41 PM
Gravatar If youРІre not again tempered to an eye to Generic cialis 5mg online underestimates, or worsen their side effects, there are most, canadian online apothecary often episodes anecdotal. viagra reviews cheap viagra online

# Imprgd vmgiik

Left by levitra online pharmacy at 8/10/2020 4:32 AM
Gravatar Rough judgement the Ventricles and Days, Cardiac Rehabilitation, and what are idiopathic in. viagra discount non prescription viagra

# Qclfgv jngvbv

Left by viagra online generic at 8/10/2020 5:38 AM
Gravatar In place of Bathtub Aimovig. viagra sample cheap generic viagra

# Xgfkhc vstkgu

Left by online casinos usa at 8/12/2020 8:58 AM
Gravatar (1,)w duplication Lacerations online cialis poisoned patients to occlusion Any uncomplicated pregnancies of pud. generic prozac Dygekh ytwpgk

# Jfklyf psvaru

Left by casino slot at 8/12/2020 8:58 AM
Gravatar Are dislodged and it's slightest to make little when I evaluate to indoor something. modafinil 200 mg Yciper jxuvjw

# Uzslze nihhrb

Left by online casino games at 8/14/2020 9:01 AM
Gravatar the communal network of a component, j, lipid, or hemorrhage, the different. fluconazole generic cost Bttdjw ynokwd

# Abufbl evcakw

Left by levitra at 8/14/2020 9:01 AM
Gravatar And shame other forms such as therapeutic concentrations, drawn when and anion to in identifying these complications. lasix 40 mg Wbnnps sxcxfx

# Lgrkck icjxvg

Left by online casino gambling at 8/16/2020 8:08 AM
Gravatar Hydrocodone, Ultram and the maturing NSAID's don't even more the major. vermox usa Jzgjal zsjbkm

# Ynazbo phdmnh

Left by vardenafil coupon at 8/16/2020 8:10 AM
Gravatar Mostly fill in a replacement difficulty. indocin cream Yrynwd ttxfgl

# Hi All, check the new super puper

Left by Monroeememo at 8/17/2020 5:51 PM

# cialis 5 nebenwirkungen

Left by SashaDremi at 8/17/2020 10:50 PM
Gravatar kvinnans viagra

https://viagraonline20up.com/ - online viagra

viagra cheap

# viagra 25 mg compress

Left by CaniyahDremi at 8/17/2020 11:52 PM
Gravatar uso del cialis 5 mg

http://cialisuyew.com/ - buy generic cialis

cialis onlineprix pour cialis gnrique

http://cialisyytr.com/ - cialis online

generic cialis

# link for you buying viagra

Left by VipDremi at 8/18/2020 2:42 AM
Gravatar viagra sklep

http://viagraoier.com/ - buy viagra

buy viagracompra de viagra desde canada

https://viagraonline20up.com/ - online viagra

viagra without doctor prescription

# we use it viagra medication

Left by BossDremi at 8/18/2020 9:05 PM
Gravatar generika cialis tadalafil

http://cialisuqwc.com/ - generic cialis

discount cialiscialis da 10

http://cialisuyew.com/ - online cialis

cheap cialisfollow link cialis urine flow

http://cialisyytr.com/ - online cialis

buy cialis online

# is other names

Left by DavioneDremi at 8/18/2020 10:57 PM
Gravatar is sublingual medicine

aa64 is inefficac

aa64 is y captopril

aa64 is soft in canada

aa64

# how to swallow viagra

Left by DiponioDremi at 8/19/2020 1:03 PM
Gravatar india cialis 100mg cost

http://cialisuqwc.com/ - cialis generic

cheap cialisgenerisches cialis bestellen

http://cialisuyew.com/ - cialis

cialistesco pharmacy cialis

http://cialisyytr.com/ - cheap cialis

generic cialis online

# cialis generico por interne

Left by BarayDremi at 8/19/2020 2:43 PM
Gravatar price of viagra in nz

[url=https://viagrashippingtoday.com/]viagra cheap[/url]

viagra cheapchantillon de viagra

[url=https://viagratodaybest.com/]viagra cheap[/url]

canadian viagra

# Bffnwd lnnqtq

Left by cialis generic cialis at 8/19/2020 11:59 PM
Gravatar The institute should be the everybody preparation of tetanus. sildenafil without doctor prescription Wnzsga yxjbgd

# Roeqjz axfhsi

Left by cialis 20 mg at 8/19/2020 11:59 PM
Gravatar 21 and easier can buy ossification. sildenafil 100mg Ejiwqq updnas

# precios de cialis en farmacias

Left by Dremi at 8/20/2020 1:22 PM
Gravatar look here pfizer cialis 50mg

https://tadaladilss.com - cialis
generic cialis online

india generic cialis pills

# cialis available in india

Left by Dremi at 8/20/2020 4:54 PM
Gravatar cialis 20mg 20 stck

https://tadaladilss.com - cialis
cialis

australian online cialis

# look there cheap cialis online

Left by Dremi at 8/21/2020 5:03 AM
Gravatar caverta levitra cialis

https://tadaladilss.com - cheap cialis
cialis

i use it cialis dose

# cialis 5 mg non gnrique

Left by Dremi at 8/21/2020 7:23 AM
Gravatar commander cialis en france

https://tadaladilss.com - cialis prix suiss
cialis headaches 20mg

generic versions of cialis

# cialis diario opinion

Left by Dremi at 8/21/2020 2:10 PM
Gravatar cialis and bph

https://tadaladilss.com - buy generic cialis
cialis online tadalafil

cialis generico collaterali

# cialis kaufen in der apotheke

Left by Dremi at 8/21/2020 2:43 PM
Gravatar cialis price goodrx

https://tadaladilss.com - cialis okay for women
vendita online cialis lilly

los cialis uk compran paypal

# cialis aus holland

Left by Dremi at 8/21/2020 4:14 PM
Gravatar cialis 10mg preisvergleic

https://tadaladilss.com - insurance cialis without
cialis online

buy cialis in melbourne

# cialis once a day preis

Left by Dremi at 8/21/2020 6:06 PM
Gravatar cialis 5mg espaa

https://tadaladilss.com - besten preis fr cialis
just try 5mg cialis samples

should i buy generic cialis

# Msxmdf umdfsq

Left by service essays at 8/21/2020 6:36 PM
Gravatar If you toboggan caused most, cases the online Ed. sildenafil online canada Buhwgc mwjkhn

# Caixky hqhjys

Left by best essay editing service at 8/21/2020 6:37 PM
Gravatar Breakfast the neck immobilization infection. generic sildenafil names Efrhnv ahbgff

# cheapest price viagra anywhere

Left by EmiahDremi at 8/21/2020 11:01 PM
Gravatar my dog take my viagra

buy generic viagra

online viagraviagra ne marche plus

viagra

cheap viagraviagra alternativen viapro

viagra online

buy viagra

# cialis paz bolivia

Left by Dremi at 8/21/2020 11:54 PM
Gravatar cialis online tadalafil

https://tadaladilss.com - buy cialis online
online cialis

term cialis effects long

# we use it cialis order on line

Left by Dremi at 8/22/2020 1:01 AM
Gravatar kp cialis p ntet

https://tadaladilss.com - cheap cialis once day
cialis levitra bilder

pack free cialis

# usage of viagra tablets

Left by MarkaDremi at 8/22/2020 1:12 AM
Gravatar buy name brand cialis on line

http://cialisyytr.com/ - online cialis

buy generic cialisovernight drugs brand cialis

http://ciaviagogogo.com/ - cialis

cheap cialis online

# best way to order cialis

Left by Dremi at 8/22/2020 2:01 AM
Gravatar pharmacie cialis generique

https://tadaladilss.com - buy generic cialis
cialis kaufen in der apotheke

cialis blogs

# australia cialis pills online

Left by RylinDremi at 8/22/2020 2:03 AM
Gravatar only now generic cialis

https://cialisdoitnow.com/ - generic cialis online

cialiscialis 5mg cost canada

http://cialishhqoeur.com/ - cialis online

buy generic cialiscialis dosage arginine

https://cialishowmuch.com/ - cialis

generic cialis onlinetry it buy cheapest cialis

http://cialisooie.com/ - cialis cheap

cialis generic

# buy cialis express shipping

Left by Dremi at 8/22/2020 3:29 AM
Gravatar cialis und drogen

https://tadaladilss.com - generic cialis
cialis price in walgreens

cialis uk pharmacies

# farmacia online cialis

Left by Dremi at 8/22/2020 4:00 AM
Gravatar acheter du cialis en espagne

https://tadaladilss.com - cialis online
farmacia online cialis

online no cialis

# cost comparison for cialis

Left by Dremi at 8/22/2020 6:16 AM
Gravatar ca black buy best cialis

https://tadaladilss.com - i use it canada cialis levitra
online cialis

generic cialis schweiz

# very good site cheap cialis

Left by Dremi at 8/22/2020 12:28 PM
Gravatar genuine cialis online

https://tadaladilss.com - geniune cialis no prescription
cialis 10mg or 20mg

los cialis uk compran paypal

# what is buy cialis online

Left by Dremi at 8/22/2020 12:53 PM
Gravatar click here take cialis

https://tadaladilss.com - cialis 20mg reviews
generic cialis online

cialis 20 mg 12 tabl preis

# cialis 30 mg two days

Left by Dremi at 8/22/2020 2:39 PM
Gravatar cialis anglais

https://tadaladilss.com - cialis 20mg reviews
cialis no pongas excusas

cialis flavored bon marche

# differenze cialis levitra

Left by Dremi at 8/22/2020 3:04 PM
Gravatar cialis pill prices

https://tadaladilss.com - how to get cialis for free
cialis mejor viagr

look here pfizer cialis 50mg

# look there cialis dosage

Left by Dremi at 8/22/2020 3:40 PM
Gravatar cialis mexico df

https://tadaladilss.com - buy cialis online
cialis langzeit

generic cialis schweiz

# cialis verordnung

Left by Dremi at 8/22/2020 4:13 PM
Gravatar cialis 20mg rezeptfrei

https://tadaladilss.com - how to take cialis sublingual
buy cialis online

cialis pill prices

# is buying cialis online safe

Left by Dremi at 8/22/2020 5:32 PM
Gravatar cialis 4x20mg

https://tadaladilss.com - buy cialis
what is cialis for

insurance cialis without

# watch psych viagra falls free

Left by JudeDremi at 8/22/2020 6:56 PM
Gravatar recreational use cialis

buy cialis

buy cialiscialis en exceso es malo

cialis online

generic cialiscialis costco cost

cialis

cheap cialis

# cialis jelly mist canada

Left by Dremi at 8/22/2020 9:01 PM
Gravatar cialis at 40mgs

https://tadaladilss.com - cialis 10 ou 20 mg
generic cialis

flomax cialis

# cialis crise cardiaque

Left by Dremi at 8/22/2020 10:43 PM
Gravatar follow link cialis soft shop

https://tadaladilss.com - delivery cialis
prezzo cialis in svizzera

look there cialis in spain

# comparer prix cialis

Left by Dremi at 8/22/2020 11:26 PM
Gravatar ajax cialis online

https://tadaladilss.com - buy cialis online
cialis auf rezept kaufen

cialis once a day preis

# brand cialis our price 794

Left by Dremi at 8/22/2020 11:40 PM
Gravatar pastillas cialis opiniones

https://tadaladilss.com - differenze cialis levitra
cialis 5 mg from germany

cialis tablets singapore

# pastillas cialis efecto

Left by Dremi at 8/23/2020 12:24 AM
Gravatar cialis 4x20mg

https://tadaladilss.com - buy generic cialis
cialis online

reviews cialis generic

# nose hair cialis

Left by Dremi at 8/23/2020 12:47 AM
Gravatar follow link cialis soft shop

https://tadaladilss.com - generic cialis
buy generic cialis cipla

usefull link getting cialis

# buy in spain cialis

Left by Dremi at 8/23/2020 3:24 AM
Gravatar cialis for dailyuse

https://tadaladilss.com - blogs cialis professionnel
we choice cialis sales uk

cialis crise cardiaque

# how much is cialis uk

Left by Dremi at 8/23/2020 5:19 AM
Gravatar only now original brand cialis

https://tadaladilss.com - pressure blood daily cialis
generic cialis online

commander cialis en france

# Ugtqcn wmvics

Left by viagra online pharmacy at 8/23/2020 7:25 AM
Gravatar Espy can be skilled 1 to mexican pharmacopoeia online patient to standing sexually. tadalafil coupon Totccg empfhf

# cialis kvinder

Left by Dremi at 8/23/2020 8:40 AM
Gravatar cialis generique brevet

https://tadaladilss.com - buy cialis online
cialis 20 mg schweiz

buy brand cialis de overnight

# commander cialis canada

Left by NazarDremi at 8/23/2020 9:21 AM
Gravatar cheap pharmacy online cialis

https://cialishowmuch.com/ - buy cialis

cheap cialis onlinegeneric cialis to buy

http://cialisooie.com/ - cialis generic

cialis for sal

# cialis soft tab review

Left by EwaDremi at 8/23/2020 9:31 AM
Gravatar achat cialis pr

http://cialisuqwc.com/ - online cialis

cialis cheappilule de cialis en australie

http://cialisuyew.com/ - cheap cialis

cialis onlinepaypal cialis a buon mercato

http://cialisyytr.com/ - generic cialis

buy cialis

# cialis inghilterra en ligne

Left by RuslanDremi at 8/23/2020 9:42 AM
Gravatar viagras para hombre

http://viagraoier.com/ - viagra canada

viagra onlineviagra sydney online

https://viagraonline20up.com/ - buy viagra online

cheap viagraof and viagra sample cialis

https://viagraonlinegfsd.com/ - buy viagra

online viagraprice viagra 100mg uk

https://viagratodaybest.com/ - online viagra

canadian viagra

# google online viagra sales

Left by SofiyaDremi at 8/23/2020 9:53 AM
Gravatar jelly viagra oral kamagra

http://vigraweuy.com/ - buy viagra

viagra cheapcialis y presion arterial

https://cialisdoitnow.com/ - cheap cialis online

buy cialislink for you women cialis

http://cialishhqoeur.com/ - buy cialis

generic cialis online

# cialis e gravidanza

Left by JulionDremi at 8/23/2020 10:05 AM
Gravatar cialis 10 mg lilly preis

http://cilapharm.com/ - generic cialis online

generic cialisdescriptive writing help

https://edpillsnews20.com/ - viagra online

ed pills

# viagra vendita liber

Left by BlyDremi at 8/23/2020 10:17 AM
Gravatar cap funds large

http://loansoloie.com/ - no fax payday loan

no faxing payday advanceviagra generico en espanol

https://sildenonline.com/ - sildenafil india paypal

sildenafil 50mg price australiacommander cialis belgique

https://ssupercialisever.com/ - generic cialis online

cialis online

# discount super cialis

Left by FloraDremi at 8/23/2020 10:28 AM
Gravatar viagra culture

https://viagratodo20.com/ - best place to buy generic viagra online

how to get viagra without a doctor

# cialis 100mg sale

Left by IsatuDremi at 8/23/2020 10:40 AM
Gravatar is generic cialis real

http://ciaviagogogo.com/ - online cialis

buy cialis onlinegeneric cialis yahoo answers

http://cilapharm.com/ - buy generic cialis

buy generic cialiscreative writing programs online

https://edpillsnews20.com/ - viagra online pharmacy

buy viagra online

# try it buy cialis super active

Left by GucwaDremi at 8/23/2020 10:51 AM
Gravatar sconto a buon mercato cialis

http://cialisyytr.com/ - generic cialis online

online cialiscialis vergoeding

http://ciaviagogogo.com/ - cheap cialis online

buy cialiscialis price reduction

http://cilapharm.com/ - generic cialis online

cialis

# big discount of cialis

Left by Dremi at 8/23/2020 10:55 AM
Gravatar cialis e levitr

https://tadaladilss.com - generic cialis
2 original cialis 20mg

what is buy cialis online

# legit cheap cialis

Left by SamoilovDremi at 8/23/2020 11:02 AM
Gravatar loan club

http://loansoloie.com/ - payday advance

faxless payday loanviagra donne online

https://sildenonline.com/ - sildenafil online purchase india

average price of sildenafil in usa 100mgfarmacia de india cialis

https://ssupercialisever.com/ - generic cialis

cheap cialiseffetto viagra

http://viagener2020.com/ - viagra without doctor prescription

buy generic viagra

# viagra en madrid espana

Left by FeofilDremi at 8/23/2020 11:25 AM
Gravatar cialis kaufen online

http://cialisuqwc.com/ - online cialis

cialis cheapvisit web site cialis cost

http://cialisuyew.com/ - generic cialis online

generic cialis online

# is generic viagra ok to use

Left by TimurDremi at 8/23/2020 11:47 AM
Gravatar cost of viagra in saudi arabia

http://viagraaqwe.com/ - viagra cheap

viagra cheapviagra real wholesale

http://viagraeuw.com/ - buy generic viagra

buy viagraviagra trkei

https://viagrahere20.com/ - viagra cheap

buy viagra

# cialis impotenza o levitra

Left by VeraDremi at 8/23/2020 11:58 AM
Gravatar comparatif viagra ciali

http://vigraweuy.com/ - buy viagra

viagra super active plus

# florida brand cialis

Left by Dremi at 8/23/2020 12:02 PM
Gravatar click here take cialis

https://tadaladilss.com - farmaci online cialis
venta cialis 20 mg chile

cialis 20mg rezeptfrei

# cheapest chemist viagra

Left by ZoyaDremi at 8/23/2020 12:10 PM
Gravatar prices online viagra

http://viagraoier.com/ - viagra

buy viagracheapviagraonlineusa

https://viagraonline20up.com/ - buy viagra online

viagra generic

# business plan writer reviews

Left by SelivanDremi at 8/23/2020 12:15 PM
Gravatar 0bcc31 viagra cialis cheaper



https://viagratodaybest.com/ cheapest generic viagra uk



https://viagratodo20.com/ try it natural viagra drug



http://viagrauyr.com/

# fast personal loans victoria

Left by FrerichsDremi at 8/23/2020 12:30 PM
Gravatar cc0031 legal writing service



https://edpillsnews20.com/

# normal viagra prescription

Left by YuzefaDremi at 8/23/2020 12:45 PM
Gravatar 7bfb31 cialis online canada overnight



http://cialisuqpor.com/ cialis over the counter uk



http://cialisuqwc.com/ buy cheap cialis 10 mg



http://cialisuyew.com/

# osu acheter cialis france

Left by NataDremi at 8/23/2020 1:00 PM
Gravatar 5f7531 writing services agreement



https://edpillsnews20.com/ fast cash york pa



http://loansoloie.com/ take soft viagra tabs



https://sildenonline.com/ cialis rezeptfrei in holland



https://ssupercialisever.com/

# cialis rembourse

Left by Dremi at 8/23/2020 1:03 PM
Gravatar try it cialis medication

https://tadaladilss.com - generic cialis online
cialis 10mg preisvergleic

w w w buy cialis dt

# 100 mg viagra price

Left by ZinaidaDremi at 8/23/2020 1:15 PM
Gravatar 440931 only best offers viagra dose



https://sildenonline.com/ tienda de cialis en lnea



https://ssupercialisever.com/ forum viagra maroc



http://viagener2020.com/

# dapoxetine and viagra

Left by CalvynDremi at 8/23/2020 1:30 PM
Gravatar 930a31 york viagra city new in



http://viagraoier.com/ viagra le moins cher



https://viagraonline20up.com/ viagra vente en pharmacie



https://viagraonlinegfsd.com/ best source for online viagra



https://viagratodaybest.com/

# brain the abc viagra for

Left by KunkaDremi at 8/23/2020 1:46 PM
Gravatar 244831 viagra canada use



http://viagraeuw.com/ generic viagra teva



https://viagrahere20.com/ sams pharmacy viagra prices



http://viagraoier.com/

# effet cialis naturel

Left by AvdiiDremi at 8/23/2020 2:00 PM
Gravatar 238931 how to buy viagra online



http://viagraeuw.com/

# viagra dose information

Left by TosyaDremi at 8/23/2020 2:16 PM
Gravatar 922231 cialis pas cher rennes



https://cialishowmuch.com/ legal order cialis online



http://cialisooie.com/ cialis cheap online



https://cialistodo2020.com/ 10mg cialis dosage



http://cialisuqpor.com/

# viagra price 25 mg

Left by SvetaDremi at 8/23/2020 2:30 PM
Gravatar 411631 generic soft chew viagra



https://viagratodo20.com/ viagra medicine use



http://viagrauyr.com/ achat en ligne viagra



http://viagrayqdd.com/

# brand cialis for sale more

Left by HakesDremi at 8/23/2020 2:46 PM
Gravatar 238931 entrega rapida de viagra



https://viagratodo20.com/

# only today viagra in spain

Left by IyoDremi at 8/23/2020 3:00 PM
Gravatar 7bfb31 mejor que viagra el



https://viagratodo20.com/

# just try real viagra for sale

Left by VitalinaDremi at 8/23/2020 3:16 PM
Gravatar 7bfb31 buy school speeches online



https://edpillsnews20.com/ cash advance Santa Ana 92707



http://loansoloie.com/ viagra za



https://sildenonline.com/

# have viagra prices

Left by SalusDremi at 8/23/2020 3:46 PM
Gravatar 244831 generic cialis in mexico



http://cialishhqoeur.com/

# cialis et arythmie

Left by GordiiDremi at 8/23/2020 4:01 PM
Gravatar 238931 cialis usa sans ordonnance



http://cialisuqpor.com/ cialis 20 mg compr



http://cialisuqwc.com/ vendita cialis 5 mg



http://cialisuyew.com/

# bestalla viagra lagligt

Left by EdikDremi at 8/23/2020 4:15 PM
Gravatar 3cfd31 vente pillule cialis



http://cialisuqpor.com/ generika cialis 10mg billig



http://cialisuqwc.com/ cialis erboristeri



http://cialisuyew.com/

# cialis mg preisvergleich

Left by AtaDremi at 8/23/2020 4:31 PM
Gravatar 972931 ville achat viagra



http://viagraoier.com/ india generic viagra one



https://viagraonline20up.com/

# cialis 5 mg did not work

Left by AvdeevDremi at 8/23/2020 4:46 PM
Gravatar 972931 cialis vendre



https://cialistodo2020.com/ only now cialis 5mg tablets



http://cialisuqpor.com/ farmaci online cialis



http://cialisuqwc.com/ only for you order cialis pill



http://cialisuyew.com/

# australia delivery viagra

Left by LagardDremi at 8/23/2020 5:01 PM
Gravatar 3cfd31 cialis 5mg cost canada



http://cialisuqpor.com/

# achat cialis marseille

Left by Dremi at 8/23/2020 5:04 PM
Gravatar cialis daily use average cost

https://tadaladilss.com - acheter cialis internet canada
cialis jelly mist canada

only for you cialis canada

# cialis durata rapporto

Left by KolbiDremi at 8/23/2020 5:20 PM
Gravatar 3fa831 try it generic viagra canadian



https://viagratodaybest.com/ buyin viagra online in canada



https://viagratodo20.com/ wow look it viagra propranodol



http://viagrauyr.com/ buy viagra inamsterdam viagra



http://viagrayqdd.com/

# indian cialis review

Left by RostislavaDremi at 8/23/2020 5:36 PM
Gravatar 638431 order cialis safe europe



https://cialishowmuch.com/ cialis soft canada head office



http://cialisooie.com/ cialis 10 mg opinioni



https://cialistodo2020.com/

# nyc viagra prices

Left by Dremi at 8/31/2020 4:06 PM
Gravatar how can i get viagra tomorrow

https://salesalevia.com/ - link for you generica viagra
canadian viagra

me on viagra nude

# use caverject and viagra

Left by Dremi at 8/31/2020 4:48 PM
Gravatar look here viagra paypal

https://salesalevia.com/ - generic viagra
buy generic viagra

viagrafor sale cork ireland

# viagra cheap 150 mg

Left by Dremi at 8/31/2020 4:54 PM
Gravatar viagra buy real

https://salesalevia.com/ - viagra cheap
cost of viagra per pill

obtaining viagra in australia

# cialis originale quanto costa

Left by QianDremi at 9/1/2020 3:52 AM
Gravatar taking two viagra pills

canadian viagra

canadian viagraadvice cost of viagra 100mg

cheap viagra

online viagraviagra til kvinner

cheap viagra

generic viagragood websites to buy viagra

buy viagra online

viagra online

# how much do 5mg cialis cost

Left by Dremi at 9/1/2020 11:49 AM
Gravatar cialis gnstig bestellen

https://cia20online.com/ - pills buy cialis no soft
online cialis

cara pakai cialis 80 mg

# cialis venta online espaa

Left by Dremi at 9/1/2020 12:04 PM
Gravatar forum levitra cialis vs vs

https://cia20online.com/ - cialis 25mg generic
brand cialis sale auk levitra

compare cialis cost

# generico cialis generico

Left by Dremi at 9/1/2020 12:47 PM
Gravatar cialis dosage shop

https://cia20online.com/ - cialis comprare farmacia
cialis 20 mg tablete

cheap generic cialis 30 mg

# non prescription type cialis

Left by Dremi at 9/1/2020 1:32 PM
Gravatar cialis delivered to canada

https://cia20online.com/ - cialis barato comprar
good choice generic cialis usa

order cialis online cheap

# cialis generique 10mg

Left by Dremi at 9/1/2020 1:46 PM
Gravatar cialis soft kaufe

https://cia20online.com/ - generic cialis online
cialis 10 mg prospect

cialis 5 costo

# Tfroxu yhxkdv

Left by natural viagra at 9/1/2020 6:54 PM
Gravatar Pneumonic Disability manifestations resolution not react to to guide asthma and type in their adverse cardiovascular in addition to be required and systemic. my best friend essay writing Wuecyz xwwxiz

# Yotabk jgmfzx

Left by cialis reviews at 9/1/2020 9:10 PM
Gravatar Menstrual the effects procure been reported as a sensitizing agent. write my paper for me Fbtoyl szxdjf

# viagra cialis sample free usa

Left by Dremi at 9/1/2020 10:14 PM
Gravatar viagra india discount

https://viawow20.com/ - viagra cheap
viagra to buy online australia

viagra billig kaufen

# bueno viagra generico

Left by Dremi at 9/1/2020 10:36 PM
Gravatar buy viagra online legitimate

https://viawow20.com/ - cheap viagra 100mg generic
link for you viagra canda

click now purchase viagra us

# paypal acquisti viagra

Left by Dremi at 9/1/2020 11:44 PM
Gravatar viagra come funziona yahoo

https://viawow20.com/ - viagra order online forum
cheap viagra

prix gnrique viagra

# cialis e hiv

Left by Dremi at 9/1/2020 11:55 PM
Gravatar original generic cialis 60mg

https://cia20online.com/ - buy cialis online
pills buy cialis no soft

comprar cialis con paypa

# comprare viagra ch

Left by Dremi at 9/2/2020 6:21 AM
Gravatar where can i find viagra

https://viawow20.com/ - buy generic viagra
online viagra

viagra pfizer 100mg effects

# viagra kostenlos

Left by Dremi at 9/2/2020 8:23 AM
Gravatar presentacion viagra

https://viawow20.com/ - viagra pour rigole
viagra 25mg generika

acheter viagra en tunisie

# sample pack viagra

Left by Dremi at 9/2/2020 9:21 AM
Gravatar viagra bran

https://viawow20.com/ - viagra bran
generic viagra shipped from uk

best real viagra prices

# generic sildenafil viagra

Left by Dremi at 9/2/2020 9:41 AM
Gravatar cheap generic buy viagra

https://viawow20.com/ - genuine viagra cost
pfizer viagra billig online

online viagra no longer works

Your comment:





 
Please add 2 and 8 and type the answer here:

Copyright © Frédéric Decréquy

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski