Post con tag ‘SQLite’

  • Online il mio Primo Articolo su HTML.it

    29 novembre 2007 | Sviluppo Web | Nessun Commento.

    E’ online su HTML.it un mio articolo dedicato a ASP.Net & SQLite che, oltre all’interazione fra le due tecnologie, offre una sostanziosa introduzione al motore di database e alle sue particolarità, soprattutto in confronto ai database tradizionali.

    Penso che verrà presto pubblicato anche un altro articolo che ho scritto sempre per HTML.it, dedicato ancora una volta a SQLite e in particolare alla creazione, spiegata molto dettagliatamente, di un MembershipProvider personalizzato.

  • Un Blog con ASP.Net e SQLite, Terza Parte

    27 settembre 2007 | Sviluppo Web | Nessun Commento.
    Questo tutorial è diviso in tre parti distinte:

    Negli interventi precedenti sono stati trattati, dopo una rapida introduzione a SQLite, la creazione del database e della pagina di amministrazione.

    In questo ultimo intervento vedremo, invece, come creare l’ultimo componente del mini-blog: una semplice pagina per visualizzare gli interventi e navigarli per categorie.
    La struttura sarà molto simile a quella della pagina di amministrazione: tramite una MultiView, infatti, caricheremo o una lista degli ultimi dieci interventi, oppure una lista degli interventi appartenenti ad una determinata categoria.

    Scarica il progetto completo!

    Organizziamo la pagina: la colonna di sinistra

    Il layout sarà costituito da due colonne, quella di sinistra conterrà il menu di navigazione e l’altra gli interventi:

    <div style="width:75%;">
         <div style="float: left; width: 25%;"></div>
         <div style="float: right; width: 69%;"></div>
    </div>
    

    Per mostrare la lista delle categorie, sarà sufficiente un controllo Repeater associato ad un SqlDataSource (per la quanto riguarda la creazione della stringa di connessione al database si veda la seconda parte del tutorial):

    <div style="float: left; width: 25%;">
        <span style="font-weight: bold;">Categorie</span>
        <asp:Repeater ID="Categorie" runat="server" DataSourceID="Categorie_Source">
            <HeaderTemplate>
                <ul>
            </HeaderTemplate>
            <ItemTemplate>
                <li>
                    <a href="default.aspx?categoria=<%# (string)Eval("NomeCategoria") %>"
                            title="<%# (string)Eval("NomeCategoria") %>">
                          <%# (string)Eval("NomeCategoria") %></a>
                </li>
            </ItemTemplate>
            <FooterTemplate>
                </ul>
            </FooterTemplate>
        </asp:Repeater>
    </div>
    <asp:SqlDataSource ID="Categorie_Source" runat="server" ProviderName="System.Data.SQLite"
        ConnectionString="<%$ ConnectionStrings:ExampleBlogConnString %>"
        SelectCommand="SELECT * FROM Categorie">
    </asp:SqlDataSource>
    

    Come potete vedere il Repeater crea una lista non ordinata di elementi che nel nostro caso saranno i nomi delle categorie, con un link che passa come parametro nella query string il nome della categoria. Questo viene recuperato nell’evento onLoad della pagina e la vista attiva all’interno del MultiView (che creeremo fra poche righe) modificata di conseguenza:

    protected void Page_Load(object sender, EventArgs e)
    {
       if (!this.IsPostBack)
          if (!string.IsNullOrEmpty(Request.QueryString["categoria"]))
          {
             MultiView1.ActiveViewIndex = 1;
             NomeCategoria.Text = Request.QueryString["categoria"];
          }
          else
             MultiView1.ActiveViewIndex = 0;
    }
    

    La colonna di destra: mostriamo gli interventi

    Ecco qui, per concludere il controllo MultiView incaricato di mostrare gli interventi. Il codice mi sembra abbastanza semplice da non richiedere ulteriore analisi, per ogni dubbio lasciate un commento!

    <asp:MultiView id="MultiView1" runat="server" activeviewindex="0">
        <asp:View ID="ListaInterventi" runat="server">
            <h1>Ultimi Interventi</h1>
            <asp:Repeater ID="Interventi" runat="server" DataSourceID="Interventi_Source">
                <ItemTemplate>
                    <div>
                        <h2><%# (string)Eval("Titolo") %></h2>
                        <div style="font-weight: bold;">
                              <%# ((DateTime)Eval("Data")).ToString("dd/MM/yyyy hh:mm") %>,
                              <%# (string)Eval("NomeCategoria") %>
                        </div>
                        <div>
                            <%# (string)Eval("Testo") %>
                        </div>
                    </div>
                </ItemTemplate>
            </asp:Repeater>
    
            <asp:SqlDataSource ID="Interventi_Source" runat="server" ProviderName="System.Data.SQLite"
                ConnectionString="<%$ ConnectionStrings:ExampleBlogConnString %>"
                SelectCommand="SELECT * FROM Interventi INNER JOIN Categorie ON Interventi.Categoria = Categorie.IDCategoria ORDER BY Data DESC LIMIT 10">
            </asp:SqlDataSource>
        </asp:View>
    
        <asp:View ID="InterventiPerCategoria" runat="server">
            <h1>
                Categoria:
                <asp:Literal ID="NomeCategoria" runat="server" />
            </h1>
            <asp:Repeater ID="InterventiCat" runat="server" DataSourceID="InterventiCat_Source">
                <ItemTemplate>
                    <div>
                        <h2><%# (string)Eval("Titolo") %></h2>
                        <div style="font-weight: bold;">
                            <%# ((DateTime)Eval("Data")).ToString() %>
                            ,
                            <%# (string)Eval("NomeCategoria") %>
                        </div>
                        <div>
                            <%# (string)Eval("Testo") %></div>
                        </div>
                </ItemTemplate>
            </asp:Repeater>
    
            <asp:SqlDataSource ID="InterventiCat_Source" runat="server" ProviderName="System.Data.SQLite"
                ConnectionString="<%$ ConnectionStrings:ExampleBlogConnString %>"
                SelectCommand="SELECT * FROM Interventi INNER JOIN Categorie ON Interventi.Categoria = Categorie.IDCategoria WHERE NomeCategoria = @NomeCategoria">
                <SelectParameters>
                    <asp:QueryStringParameter Name="@NomeCategoria" Type="string"
                            QueryStringField="categoria" />
                </SelectParameters>
            </asp:SqlDataSource>
        </asp:View>
    </asp:MultiView>
    

    Si conclude così questo piccolo tutorial realizzato principalmente per mostrare le potenzialità di SQLite e del provider per ADO.Net System.Data.Sqlite.

    Scarica il progetto completo!

  • Un Blog con ASP.Net e SQLite, Prima Parte

    22 agosto 2007 | Sviluppo Web | Nessun Commento.

    Questo tutorial è diviso in tre parti distinte:

    SQLite (http://www.sqlite.org) è un motore di database open source che, sebbene poco conosciuto e spesso sottovalutato, vanta alcune caratteristiche uniche:

    • il database è interamente contenuto in un singolo file e non richiede quindi alcuna installazione, oltre ad essere indipendente dal sistema operativo utilizzato. Per chi ha il proprio sito in hosting è una scelta economica e di immediata realizzazione;
    • è più veloce di altri database (ad es. MySql);
    • sono disponibili implementazioni per diversi linguaggi tra cui C, PHP e ASP.Net.

    In particolare per ASP.Net mi sono trovato molto bene con la libreria System.Data.SQLite (open source anch’essa e reperibile qui: http://sqlite.phxsoftware.com). Questa libreria implementa completamente il modello dati di ADO.Net e fornisce supporto anche all’interno di Visual Studio (o Visual Web Developer Express, che utilizzerò in questi interventi) in fase di Design.

    Il progetto di esempio che realizzeremo è molto semplice e si compone di due pagine: default.aspx, che mostra gli interventi, e admin.aspx, che ne permette invece l’inserimento.
    Continua a leggere »