GestaltJavaScript è senza dubbio il linguaggio di programmazione più comune per lo sviluppo client-side di siti web. Grazie a Gestalt, una libreria open source, sarà ora possibile utilizzare anche linguaggi dinamici come Ruby e Python (e persino XAML). Dietro le quinte Gestalt sfrutta il Dynamic Language Runtime (DLR) di Silverlight, IronRuby e IronPython (le implementazioni .NET di Ruby e Python).

E l’innovazione apportata dai MIX Online Labs non è limitata a Windows. La libreria può essere infatti usata anche su sistemi Linux/Mac OS X, grazie all’implementazione open source di Silverlight, chiamata Moonlight.

Per i più curiosi, questo è l’Hello, World! in Ruby:

<html>
<head>
  <script src="js/jquery.js" type="text/javascript"></script>
  <script src="js/gestalt.js" type="text/javascript"></script>
</head>
<body>

<input id="say_hello" type="button" value="Say, Hello!" />

<script language="ruby">
document.say_hello.onclick do |s,e|
  window.alert "Hello, World!"
end
</script>
</body>
</html>

E in Python:

<html>
<head>
  <script src="js/jquery.js" type="text/javascript"></script>
  <script src="js/gestalt.js" type="text/javascript"></script>
</head>
<body>

<button id="say_hello">Say, Hello!</button>

<script language="python">
def OnClick(s,e):
  document.say_hello.innerHTML = "Hello, World!"

document.say_hello.AttachEvent("onclick",
                   EventHandler[HtmlEventArgs](OnClick))
</script>
</body>
</html>

Non perdetevi anche la lista di esempi per vedere di cosa è capace questa libreria. Personalmente dubito che sostituirà JavaScript per la magigor parte degli sviluppatori, anche solo nel mondo .NET, ma apre certamente delle prospettive interessanti. Voi cosa ne pensate?


If you enjoyed this post, then make sure you subscribe to our RSS Feed.

Silverlight 3Dopo due anni dal primo rilascio, Microsoft ha finalmente rilasciato la versione finale di Silverlight 3. Questa edizione include una serie di miglioramenti e novità, sufficienti a far preoccupare Adobe. In particolare spiccano il migliorato supporto per codec audio e video, risoluzioni HD, il 3D e l’accelerazione hardware, e l’abilità di far girare le applicazioni in modo offline, al di fuori del browser, in maniera analoga all’accopiata Adobe Flex/Air.

Per iniziare a studiare l’argomento, ecco alcuni link utili:


If you enjoyed this post, then make sure you subscribe to our RSS Feed.

Chi programma con linguaggi tipici del mondo Open Source, come Perl, Python, Ruby o Lisp, è abituato da anni ad utilizzare una shell interattiva per provare espressioni ed istruzioni al volo prima di inserirle all’interno di programmi più corposi. Nel caso di Python, il comando è python, mentre nel caso della versione ufficiale di Ruby è irb. Ad esempio, questa potrebbe essere una sessione in Ruby da parte di un principiante:

C:\>irb
>> my_string = "visualcsharp.it"
=> "visualcsharp.it"
>> my_string[0,12]
=> "visualcsharp"
>>

Questo tipo di shell non fa altro che leggere, valutare le espressioni, stamparne il risultato e poi cominciare da capo. Gli anglofoni direbbero che si tratta del cosiddetto read-eval-print loop (REPL).

C# è sempre stato un linguaggio più statico e rigido rispetto ai linguaggi sopracitati, e la mancanza di una funzione eval vera e propria ha fatto sì che per anni i programmatori C# non potessero avvalersi di uno strumento così utile come la shell interattiva. Gli sviluppatori del progetto Mono, port cross-platform del .NET framework, hanno deciso di cambiare lo status quo nella comunità C# introducendo CsharpRepl, un tool che mancava davvero dalla cassetta degli attrezzi dei dotnettari. Il tutto è possibile grazie ad un’opportuna modifica al compilatore, per fargli eseguire il codice generato invece di salvarlo in un file. Con CsharpRepl, sarà ora possibile eseguire snippet di codice senza dover compilare ed eseguire l’intero progetto:

csharp> using System.IO;
csharp> from f in Directory.GetFiles ("/etc")
      >   let fi = new FileInfo (f)
      >   where fi.LastWriteTime > DateTime.Now-TimeSpan.FromDays(7) select f;
{ "/etc/adjtime", "/etc/asound.state", "/etc/mtab", "/etc/printcap", "/etc/resolv.conf" }
csharp>

La pagina del tool ha maggiori informazioni su come installare e usare il comando csharp (che richiede Mono 2.2).


If you enjoyed this post, then make sure you subscribe to our RSS Feed.

Spesso quando si sceglie di usare il controllo DataGridView è perchè non si vuole solo una rappresentazione tabellare dei dati, ma soprattutto perchè si voglione sfruttare funzioni che l’utente medio ritiene tipiche delle tabelle.

Una di queste funzioni è sicuramente il copia/incolla di interi record, funzione che non è presente nella classe DataGridView.

Ma questo non vuol dire che non si possa implementare!
Read more


If you enjoyed this post, then make sure you subscribe to our RSS Feed.

IronRuby è un’implementazione, ancora incompleta, di Ruby 1.8 per la piattaforma .NET. Il progetto si basa sul cosiddetto Dynamic Language Runtime (DLR), creato appositamente per agevolare lo sviluppo di linguaggi dinamici come Ruby e Python, nel contesto di .NET.

Durante l’evento ALT.NET Open Spaces in Seattle, John Lam, leader del team di sviluppo di IronRuby, ha aggiornato la comunità circa lo stato del progetto e aggiunto molti dettagli tecnici riguardanti l’architettura del DLR.

Per gli interessati che non hanno avuto modo di partecipare, è finalmente online il video della presentazione (in inglese).


If you enjoyed this post, then make sure you subscribe to our RSS Feed.

LINQ, particolarmente LINQ to Objects, segna la svolta funzionale di C# 3.0 e del framework .NET 3.5. L’utilizzo di LINQ non è obbligatorio per il programmatore .NET, ma il guadagno in termini di espressività la rendono decisamente una scelta raccomandata.

Per coloro che non lo hanno ancora visto, Microsoft ha da tempo pubblicato 101 esempi pratici per l’utilizzo di LINQ. Il sito è quello internazionale, per cui in inglese, ma gli esempi sono sostanzialmente snippet di codice, per cui del tutto comprensibili anche per i lettori meno angolofoni.


If you enjoyed this post, then make sure you subscribe to our RSS Feed.

Gli Extension Methods permettono di aggiungere metodi a tipi già definiti, senza creare un nuovo tipo derivato. Questo vale sia per le classi del Framework sia ovviamente per le classi da noi create e sono una forma molto speciale di metodi statici, che vengono però chiamati come se fossero a tutti gli effetti dei metodi di istanza.
Read more


If you enjoyed this post, then make sure you subscribe to our RSS Feed.

Una delle nuove funzionalità di C# 3.0 sono le Implicitly typed local variables, dove il tipo della variabile viene dedotto dal compilatore in fase di compilazione del codice in IL.
Per usare le variabili implicite si deve usare la parola chiave var:
Read more


If you enjoyed this post, then make sure you subscribe to our RSS Feed.

Gli object initializers permettono di impostare le proprietà pubbliche di una classe con una sintassi molto semplice e veloce.
Supponiamo di avere una classa Cliente con queste proprietà pubbliche(ho utilizzato le automatic properties):

public string Nome  { get; set; }
public string Cognome{ get; set;}
public string CodiceFiscale{ get; set;}

Read more


If you enjoyed this post, then make sure you subscribe to our RSS Feed.

Questo è il primo di una serie di articoli dedicati al nuovo C# 3.0.

Iniziamo da un argomento leggero e facile, ma utile in certi contesti.
Il nuovo compilatore di C#, presente in Visual Studio 2008, introduce le Automatic Properties, ovvero una forma abbreviata delle proprietà.
Read more


If you enjoyed this post, then make sure you subscribe to our RSS Feed.

← Previous PageNext Page →