c#
daniele_dll's picture
Tagged:  •    •    •    •  

Hola a todos,

di certo non si può dire che sia un bel giorno, dato il mio attuale stato: febbre, raffreddore forte, sangue dal naso e qualche altra poco piacevole situazione!

E' da stamani che mi frulla per la testa un'idea, ovvero quello di rilasciare, su base mensile, sotto licenza BSD, il codice sorgente dei miei applicativi mai finiti per un motivo o per un altro!

Almeno chi ha pazienza o qualche dubbio potrà farne uno per semplificarsi la vita :)

So che non è poi moltissimo, anche perché la documentazione non sarà il massimo, ma sono tutti pargoletti miei che non hanno mai visto la luce e che ci terrei se qualcuno, per un motivo o per un altro, li potesse usare per semplificarsi la vita :)

daniele_dll's picture
Tagged:  •    •    •    •  

Ogni tanto è giusto dare un aggiornamento :)

Beh, sono sicuro che tanti di voi che lavorano con il pc avranno usato almeno una volta nella loro vita uno dei tanti server/client basati sul protocollo Remote Frame Buffer (RFB), o più comunemente chiamati Virtual Network Computing (VNC).

Anch'io il mese scorto sono andato a sbattere contro problematiche dovute alla poca flessibilità offerta da questi software quando si tratta di integrazione e performace!

Cosi ho iniziato a giocherellare un po con il protocllo RFB e dopo qualche giorno sono riuscito a scrivere un mini server, anche se ancora è estremamente incompleto, che faccia da ponte tra il pc da assistere ed il pc di chi assiste usando un sistema di codici di autorizzazioni. La cosa bella di questa struttura che stavo mettendo in piedi era l'utilizzo di un normale client vnc, come ultravnc o tightvnc, incanalato all'interno di una connessione già esistente, ovvero quella gestita dal mio software.

In questo modo, senza modificare in alcun modo il client o il server, è possibile aggiungere parecchie funzionalità, molte anche utili!

Anche se comunque la strada può sembrare quella giusta, in realtà non lo è per niente: il protocollo RFB è un insieme di tecnologie aggiunte col tempo ma basate su concetti e strutture ormai vecchie ed obsolete!
Se solo si considera che:
- Nativamente non prevede il ridimensionamento dello schermo
- Nativamente non prevede la gestione remota del cursore
- I codici della tastiera sono in un formato utilizzato da X11 (keysym)
- Le codifiche non sono universalmente supportate
- altri problemi anche se di minore importanza

il risultato finale è un vecchio vestito pieno di toppe nuove!

Cosi mi son messo a lavoro ed ho iniziato a sviluppare un client/manager/server per poter gestire a pieno le assistenze remote da/a uffici con comodità estrema, ovvero il gestore accede al sistema con il client tramite login e password ed una volta dentro gli viene presentato l'elenco dei propri clienti connessi, clienti che vanno registrati nel sistema con un relativo codice di autorizzazione che vanno ad inserire una volta avviato la controparte del software

Non c'è nulla di speciale dietro, se non l'utilizzo di un mirror driver per ridurre il consumo del processore praticamente a zero: un mirror driver oltre a permettere di accedere direttemente alla memoria video per leggerne il contenuto notifica anche l'elenco di aree aggiornate e gli spostamenti del cursore evitando di fare continue richieste al sistema per ricevere notifiche che altrimenti peserebberò molto di più su tutto il sistema!

Anche questo progettino, come potete immagginare, è in pausa perché ho l'urgenza di lavorare su CMSoft per hostingtalk.it però spero di poter rimetterci mano in un secondo momento, anche perché questa stessa base di codice va bene per gestire le aule di informatica a scuola o in altre situazioni simili!

daniele_dll's picture
Tagged:  •    •  

The next week i'll start to write a minimalized smartclient version for a website. If all goes well the smarclient will support loading of assemblies written in C# from local disk to work with remote webservices.

It's not so hard, really, but i wanna to check how it's work and what is necessary to do it simple to use!

daniele_dll's picture
Tagged:  •    •    •    •  

In these days, after meal pause, i worked on the smartclient ui layout!

If you haven't seen the previous layout you can take a look at Phalanger: PHP for .NET 2.0 | CMSoft2 Smartclient UI Preview. As you can see, the newest layout is a lot better and flexsible!

Actually i'm looking for another font, and a way to better integrate breadcrumb and search box in the header.

A fast explanation:
- back (indietro) and next (avanti) will work exactly as in a browser
- reload (ricarica) will reload the current page, passing necessaries datas if is required
- favorites button will show/hide the favorites toolbar, the one after the header
- Breadcrumb box will work as it works in Vista
- Search box (cerca ...) will execute a search using the current module
- The clock in the footer will show server date/time
- The left box in the footer will show status messages
- The box near the clock on the footer, on the right side of the bar, will contains some icons, added by smartclient modules, that will jump up and down when a notification is requeted ... them will behaves like windows/linux trayicons

Look at attachment for the layout image!

Any suggestion or comment is well accepted!!!

Note: i've noticed only now that i've wrote "Dashboard" instead of "Preferiti" (favorites)

daniele_dll's picture
Tagged:  •    •    •    •    •    •  

Looking around for the web, some time ago, i discovered Phalanger: a php compiler written in C# to output dot net assemblies!

A couple of days ago i rescued it because the smartclient for CMSoft2 will use it for administration modules!

After a lot of experiments, i succeded in php code compilation, assemblies loading and, for the end, in classes instanciation and execution: using windows forms, from php, i shown a form with a label!

I hope that in a couple of days to post a screenshot of smartclient user interface, however, at the moment, there is a shot of a test layout, look at attached files (the clock will be replaced by other stuff).

Ah, before i forgot it, phalanger is twice faster than php and if it will pass to use DLR instead of a lot of code to emulate typeless structure it will be more faster!

daniele_dll's picture
Tagged:  •    •    •  
Download: SharpDevices-0.0.2721.27550-dev.zip
Size: 33.44 KB
md5_file hash: 9127f5680c7cc94c907467901e514f4a
First released: Thu, 14/06/2007 - 15:23

This release contains development code with incomplete features and without a stable api interface! Do not use this code in production because it can crash your applications!

This is a binary release only, no source code included!

daniele_dll's picture
Tagged:  •    •    •    •  

After a lot of work this afternoon, i implemented support for starting and stopping devices, however the code is the same to enable and disable devices, and to eject devices.

daniele_dll's picture
Tagged:  •    •    •  

After a long refactoring of the code, done during the week end, today i started to write code to enable or disable peripherals and to manage device specific icons - them are supported only by vista.
I struggled with msdn for four hours before to write some working code.

Actually my application doesn't know if a device is enabled or not but i hope today to do this.