Passaggio a BlogEngine. Addio WordPress

by Andrea 30 May 2008 02:23

Era da tempo che avevo iniziato la cosa, ma per un motivo o per un'altro avevo sempre posticipato. Ecco che ora il mio blog gira su BlogEngine e non più su WordPress.

Perchè questo?
Semplice perchè BlogEngine è sviluppato in .NET e questo mi permette di personalizzarlo e aggiungergli funzionalità a mio piacimento, senza dipendere da plugin di terze parti.
WordPress è una piattaforma di blog davvero stupenda, e credo proprio di poter dire che è la migliore che conosca, e la consiglierei a tutti....ma purtroppo è in PHP e non ho la voglia (e il tempo) di approfondirlo come argomento (dite pure che è pigrizia). Ecco il motivo di questo cambiamento.
In questo modo avrò anche la possibilità di testare le ultime tecnologie riguardanti il mondo del .NET Framework direttamente nel mio blog, e non è una cosa da poco.

Cambia il blog e cambia anche il dominio.
Il nuovo dominio ora è http://blog.dottor.net perchè il target del mio blog è un pò cambiato da quando ho iniziato, e "il silenzio di un urlo" ha poco a che vedere con i post relativi alle tecnologie Microsoft .NET.
Ma non ho intenzione di far morire quel dominio perchè ci sono proprio affezionato...lo terrò quindi per qualche idea/progetto futuro (che non si sa mai).

Dal vecchio blog è attivo un redirect (redirect 301) che ridirige i vecchi url verso quelli nuovi (e per questo rigrazio Roberto che mi ha dato una mano a riguardo), e spero di esser riuscito a redirigerli tutti. Spero poi che google mi dia una mano, a riposizionare il mio nuovo blog allo stesso livello di quello vecchio, per permettervi di trovare velocemente i miei vecchi post.

Il feed invece rimane invariato, e per chi non lo ha ancora sottoscritto, ecco qui: http://feeds.dottor.net/ilsilenziodiunurlo

Inoltre, se riscontrate qualche problema, non esitate a contattarmi.

Technorati Tags: ,

Tags: , ,

.NET | Sito

ASP.NET Dynamic Data - Custom Page

by Andrea 22 May 2008 13:05

Come abbiamo vsito nel precedente post (Dynamic Data - Per iniziare), le pagine renderizzate sono basate su dei template che sono contenuti all'interno della cartella /DynamicData/PageTemplate/.
I template che abbiamo a disposizione sono:

  • Details.aspx
  • Edit.aspx
  • Insert.aspx
  • List.aspx
  • ListDetails.aspx

queste pagine utilizzano i classici controlli di ASP.NET (e ulterioli controlli contenuti nei Dynamic Data) che permettono di renderizzare in modo dinamico le informazioni presenti nel DataContext.

Ma nel caso volessimo personalizzare queste pagine per una determinata classe?

WebSiteFolder 1- All'interno della cartella /DynamicData/CustomPage/ creiamo una cartella con il nome della tabella di cui vogliamo personalizzare la visualizzazione, per esempio per Products dovremo creare la cartella
/DynamicData/CustomPage/Products/.

2- Copiare il template che si desidera modificare all'interno della cartella appena creata. Per esempio, per modificare la pagina di visualizzazione prodotti si dovrà copiare la pagina List.aspx in /DynamicData/CustomPage/Products/List.aspx.

3- Ora si può modificare a piacimento la pagina List.aspx appena creata. Si potrà sostituire il controllo GridView con un DataList, oppure modificare la GridView visualizzando solamente determinate colonne.
Per visualizzare in modo automatico i controlli di edit e visualizzazione i modo dinamico a seconda del tipo di DataField che andremo a bindare, i Dynamic Data introducono dei nuovi controlli, che sono per esempio i DynamicControl e il DynamicField. Questi controlli hanno la capacità di renderizzare il controllo apposito a seconda del tipo di dato che dovranno visualizzare, e creeranno anche tutti i validatori necessari.
Andremo in dettaglio su questi controlli in uno dei prossimi post.

<asp:GridView ID="GridView1" runat="server" 
    DataSourceID="GridDataSource"
    AllowPaging="True" 
    AllowSorting="True"
    CssClass="gridview" 
    AlternatingRowStyle-CssClass="even" 
    AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:HyperLink 
                    ID="EditHyperLink" 
                    runat="server"
                    NavigateUrl='<%# table.GetActionPath(PageAction.Edit, GetDataItem()) %>'
                    Text="Edit" />&nbsp;
                <asp:LinkButton 
                    ID="DeleteLinkButton" 
                    runat="server" 
                    CommandName="Delete"
                    CausesValidation="false" Text="Delete"
                    OnClientClick='return confirm("Are you sure you want to delete this item?");'/>&nbsp;
                <asp:HyperLink 
                    ID="DetailsHyperLink" 
                    runat="server"
                    NavigateUrl='<%# table.GetActionPath(PageAction.Details, GetDataItem()) %>'
                    Text="Details" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:DynamicField DataField="ProductName" HeaderText="Nome Prodotto" />
        <asp:DynamicField DataField="UnitsInStock" HeaderText="Unità"  />
        <asp:DynamicField DataField="Discontinued" HeaderText="Produzione"  />
    </Columns>
 
    <PagerStyle CssClass="Footer"/>        
    <PagerTemplate>
        <asp:GridViewPager runat="server" />
    </PagerTemplate>
    <EmptyDataTemplate>
        There are currently no items in this table.
    </EmptyDataTemplate>
</asp:GridView>

Ecco come in semplici passi siamo riusciti a personalizzare una precisa pagina, potendola modificare in ogni suo particolare, da quello grafico, fino ad arrivare ai controlli inseriti. Utilizzando i template già esistenti, ci si trova di fronte un buon punto di partenza, dove saranno necessarie poche modifiche per adattare il tutto e arrivare al risultato voluto.

Tags:

ASP .NET

RockScroll - scrollbar sostitutiva per Visual Studio

by Andrea 20 May 2008 11:05

Vi avevo promesso che lo avrei postato, ed eccomi qui. 

All'ultimo meeting alcuni mi voi mi hanno chiesto cosa fosse la scrollbar che utilizzavo in Visual Studio.

RockScroll_5Altro non è che un tool che va a rimpiazzare la normare scroolbar e al suo posto ci mette una miniatura del testo presente nel file, evidenziando la parte di testo correntemente visualizzata.

Una dele caratteristiche che mi piace, è la possibilità di fare doppio click su di una parola, e vedere evidenziate tutte le occorenze di quel testo all'interno del file.

RockScrollOltre a questo, ci sono altre funzionalità davvero carine come la possibilità di riconoscere direttamente dalla barra le parti di testo commentate, e anche le righe di codice che sono state modificate.

 

 

Per scaricarlo e per maggiori info, vi riporto al post dell'autore Scott Hanselman: Introducing RockScroll

Technorati Tags: ,,

Tags:

.NET | Microsoft

ASP.NET Dynamic Data - Per iniziare

by Andrea 19 May 2008 13:05

Il miglior modo per capire cosa siano i Dynamic Data è quello di provare a realizzare una semplice applicazione che ne faccia uso.

1- Creazione Dynamic Data WebSite

Creiamo da Visual Studio 2008 un nuovo WebSite, e tra i template disponibili selezioniamo Dynamic Data WebSite. Ricordo che questo template è disponibile solo installando il SP1 del Framework 3.5, o per chi abbia scaricato in precedenza il codice da questo link.

DynData_CreateWebsite

DynData_StructureIl WebSite appena creato avrà al suo interno una struttura di cartelle e file che permetteranno ai Dynamic Data di funzionare, e che permetteranno allo sviluppatore di poter personalizzare l'applicazione per adattarla alle proprie esigenze.

 

 

 2- Creazione Classe Linq To SQL

Dovremo poi creare una classe Linq To SQL (oppure Linq to Entity) da utilizzare come fonte dati per i Dynamic Data. Le classi che verranno inserite in Linq To SQL saranno poi quelle visualizzate (in automatico) nell'applicazione, e in qui sarà possibile leggere, modificare, inserire e cancellare i dati.
DynData_LinqToSqlSelezioniamo il progetto e procediamo a creare un oggetto di tipo LINQ to SQL Classes e rinominiamolo a seconda del db che andremo a interrogare (nel mio caso Northwind.dbml). Una volta creato l'oggetto, trasciniamo all'interno le tabelle che vogliamo utilizzare la LINQ to SQL.
(Nel codice da me realizzato faccio uso del database Northwind presente tra i samples di SQL Server)

3 - Configurazione - Modifica Global.asax

Per associare il datacontext di LINQ to SQL ai Dynamic Data dovremo intervenire nel file Global.asax.
Si dovrà togliere il commento e modifcare la riga di codice dove viene eseguito la registrazione del datacontext, come segue (specificando il datacontext creato da LINQ to SQL nel passo precedente):

model.RegisterContext(
    typeof(NorthwindDataContext), 
    new ContextConfiguration() { ScaffoldAllTables = true });

Impostanto a ScaffoldAllTables a True, permetterete ai Dynamic Data di interfacciare tutte le tabelle presenti nel datacontext associato. (Nei prossimi post vedremo come modificare questa parte di configurazione per interfacciare solo determinate classi).

4 - Avvio del progetto - Il gioco è fatto

Ora non rimane altro che premere F5 ed eseguire il progetto.
Il WebSite che ci si trova davanti permetterà sarà completamente navigabile, e conterrà tutte le pagine necessarie per visualizzare e modificare i dati presenti nel db (interfacciati da LINQ to SQL).
Da notare che le pagine di modifica e inserimento dei dati comprendono anche tutta la validazione necessaria.

DynData_WebSiteDynData_ProductsDynData_Product

I Dynamic Data permettono allo sviluppatore di ridurre in modo notevole i tempi di sviluppo, in quanto ci si dovrà occupare della grafica del portale, di eventuali permessi/ruoli di visibilità e di accesso, e di configurare l'applicazione in modo da permettere la visualizzazione o la modifica solo di alcuni campi presenti (e questo argomento verrà approfondito in uno dei prossimi post).

Codice Sorgente di questo esempio - Download

ASP.NET 3.5 Dynamic Data su MSDN Code Gallery

Technorati Tags: ,

Tags:

ASP .NET

ASP.NET Dynamic Data... cosa sono?

by Andrea 17 May 2008 13:05

Lo devo proprio ammettere, questi Dynamic Data sono proprio stupendi!
In questo periodo ho avuto modo di approfondirli per bene, e rilascio dopo rilascio si può dire che Microsoft stà facendo proprio un bel lavoro, e i progressi si vedono.

Cosa sono i Dynamic Data?
I Dynamic Data permettono di creare una Web Application per l'accesso e la gestione dati utilizzando un meccanismo chiamato scaffolding. Questo meccanismo, unito ai Dynamic Data Control, permette di creare dinamicamente tutte le pagine per la visualizzazione, inserimento e modifica di dati recuperandoli da un DataContext (per esempio LINQ to SQL o LINQ to Entity). Le pagine create sono facilmente customizzabili e hanno al loro interno già tutte le regole e la logica di validazione.

Questa ovviamente è una definizione grossolana dei Dynamic Data, ma con i prossimi post vedrò di andare in dettaglio nelle varie parti che compongono questo nuovo mondo.

Se volete rimanere aggiornati sull'argomento, vi consiglio di seguire i blog di:

e ovviamente il mio. :D

Per chi volesse provare i Dynamic Data, al momento l'unica possibilità è solamente quella di installarsi il Microsoft .NET Framework 3.5 Service pack 1 Beta che ricordo è in BETA e li racchiude al suo interno.

E buon divertimento!!

Technorati Tags: ,

Tags:

ASP .NET

Remainder per i ritardatari - ASP.NET 3.5 Community Meeting

by Andrea 16 May 2008 08:05

Siamo al 16 Maggio 2008 ed è giunta la giornata in cui terrò il Community Meeting su ASP.NET 3.5 al NOVOTEL a Mestre.

Cosa vi spetterà questa sera?
Le novità introdotte in Visual Studio 2008 per gli sviluppatori Web, i nuovi Data Control (ListView, LinqDataSource, DataPager), ASP.NET AJAX e per quanto riguarderà il futuro, vedrete all'opera i Dynamic Data. E vedrete degli esempi che dimostreranno il come realizzare un'applicazione completa sia ora ancora più facile.

Non vi siete ancora registrati?
Ecco qui il link: http://www.xedotnet.org/48/section.aspx/295

Tags:

ASP .NET | XeDotNet