Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Migrating an application from VFP ( sob! )
Message
De
06/02/2015 07:57:56
 
 
À
04/02/2015 08:18:00
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01614670
Message ID:
01614960
Vues:
58
Hi Craig,

as of 4 years ago, CSS selectors were declared safe for normal use: http://calendar.perfplanet.com/2011/css-selector-performance-has-changed-for-the-better/ , although sanity must prevail https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficient_CSS .

Hank



>Both are horrible solutions
>
>Multiple screens means no DRY. You have to change things all over the place, greatly increasing costs and time.
>CSS Selectors are pretty bad. They have horrible performance in the browser.
>
>Again, rewrite is a better solution. And also again... most developer teams go about rewrite the wrong way which increases costs.
>
>>Hi Thomas,
>>
>>I hope I understand what your mean, not very sure though ... [I understand DRY as "Don't Repeat Yourself"]
>>
>>>That was our take as well. While the introduced changes in the code were easy to understand, they were numerous ***and*** un-DRY, which ***is*** expected from a machine generated process.
>>
>>do you mean that the same adaptation may occur at different places in the application? yes of course
>>
>>>At latest at the point where some of the forms would have to be redesigned for small screened devices, additional code would follow - and then following the trails of machine assisted code droppings would lead to more maintainance due to introduced non-DRY-ness ;-))
>>
>>redesigned for small screened devices: not necessarily - you have several options:
>>
>>1/ you can save a .scx as a class from which you can derive several *.scx for each resolution; as each FiC request comes with browser's viewPortWidth and viewPortHeight as form properties, you can decide which form you'll send to your user:
>>
>>thisForm.wForm(iCase(;
>>  between(thisForm.wViewPortWidth, w1, w2) and between(thisForm.wViewPortHeight, h1, h2),;
>>    'form1.scx',;
>>  between(thisForm.wViewPortWidth, w3, w4) and between(thisForm.wViewPortHeight, h3, h4),;
>>    'form2.scx',;
>>    'form3.scx';
>>), other parameters)
>>
>>
>>Notes:
>>- this solution will work exactly the same in desktop and web mode.
>>- all your code is in the parent form class - NO DRY
>>
>>2/ you can keep a single source form and take advantage of CSS3 @display directive to adapt the layout to the client display (sample CSS distributed with FoxInCloud Application Server):
>>
>>  @media screen  and (orientation: landscape) and (min-width:569px){ /* desktop = iPhone < 5 + 300 */
>>    
>>    #ecran_3_scx {width:780px; }
>>
>>    #ecran_3_scx-myavatar_  {left:665px!important}
>>    #ecran_3_scx-democntbas {left:665px; }
>>    #ecran_3_scx-logoff {left:740px; }
>>
>>    #ecran_3_scx-mycntgrdpage {width:770px; }
>>    #ecran_3_scx-mycntgrdpage-demolbllinespage {left:653px; }
>>    #ecran_3_scx-mycntgrdpage-mycbolinespage {left:704px; }
>>    #ecran_3_scx-mycntgrdpage-mynavq {left:645px; }
>>    #ecran_3_scx-mycntgrdpage .aw-grid-control {width:630px!important; }
>>  }
>>
>>  @media screen  and (orientation: landscape) and (max-width:568px){ /* iPhone 5+ = iPhone < 5 + 88  */
>>    #ecran_3_scx {width:568px; }
>>
>>    #ecran_3_scx-myavatar_  {left:453px!important}
>>    #ecran_3_scx-democntbas {left:453px; }
>>    #ecran_3_scx-logoff {left:518px; }
>>
>>    #ecran_3_scx-mycntgrdpage {width:558px; }
>>    #ecran_3_scx-mycntgrdpage-demolbllinespage {left:441px; }
>>    #ecran_3_scx-mycntgrdpage-mycbolinespage {left:492px; }
>>    #ecran_3_scx-mycntgrdpage-mynavq {left:433px; }
>>    #ecran_3_scx-mycntgrdpage .aw-grid-control {width:420px!important; }
>>  }
>>
>>  @media screen  and (orientation: landscape) and (max-width:480px){ /* iPhone < 5 */
>>    #ecran_3_scx {width:480px; }
>>
>>    #ecran_3_scx-logoff {left:430px; }
>>    #ecran_3_scx-myavatar_  {left:365px!important}
>>    #ecran_3_scx-democntbas {left:365px; }
>>
>>    #ecran_3_scx-mycntgrdpage {width:470px; }
>>    #ecran_3_scx-mycntgrdpage-demolbllinespage {left:353px; }
>>    #ecran_3_scx-mycntgrdpage-mycbolinespage {left:404px; }
>>    #ecran_3_scx-mycntgrdpage-mynavq {left:345px; }
>>    #ecran_3_scx-mycntgrdpage .aw-grid-control {width:333px!important; }
>>  }
>>
>>
>>Notes:
>>- you get the CSS selectors (eg '#ecran_3_scx-logoff {left:518px; }') by a simple copy-paste from the FiC-generated CSS - you just need to adjust the value (eg '518px;') to whatever you need
>>- You can even edit these values in the browser dev tools connected to your handheld device (eg Safari connected to an iPhone/iPad), visually adjust, copy and paste into your CSS file, reload the source CSS, etc.
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform