Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Struttura sito ASP .NET

    ciao a tutti
    sto iniziando a sviluppare in asp .NET. la domanda è forse un po banale:
    secondo voi qual'è il modo migliore di strutturare un sito web in fase di sviluppo in modo da avere il lavoro facilitato quando va messo in produzione?
    ad esempio creo una cartella che chiamo "servizio" dentro c:\inetpub\wwwroot\. All'interno di "servizio" dove mettere i file .html, gli .aspx, i .cs, le immagini, eventuali files di log, ecc...?
    ad esempio quando sviluppo in php su unix/apache metto all'incirca
    .html e .php in /root/htdocs/
    log, librerie e inclusi in /root/htdocs/inc/
    immagini in /root/htdocs/img/
    .cgi e .pl in /root/cgi-bin/
    template in /root/dati/tmpl/ (non navigabile)
    è possibile seguire un approcio simile in asp .NET?
    grazie

  2. #2
    Se usi visualstudio fa più o meno tutto da solo.
    comunque in linea di massima i file li puoi organizzare come preferisci, quando pubblichi però non pubblicare i .cs e .resx.

    I file .cs contengono il codice sorgenti delle tue classi, quando compili, viene generata una dll che si trova dentro la cartella bin, la quale deve essere pubblicata.

    Attenzione alla cartelle del db che deve avere ermessi particolari impostati (il db non deve poter essere scaricato, ma la cartella deve avere permessi di scrittura), e alle cartelle a cui pensi di dare i permessi di scrittura (per l'upload dei file per esempio)
    http://www.easymemo.it - vCard ed agenda

  3. #3
    ma tutte le mie classi confluiscono nella dll nella cartella bin? se si, immagino mi basti importare il namespace nel file aspx, o sbaglio?
    grazie

  4. #4
    Se lavori con Visual Studio funziona così: ad ogni pagina aspx corrisponde un file cs, il quale contiene la o le classi relative alla pagina, quindi se tu hai una pagina che si chiama default.aspx, vi sarà un file default.cs, il quale contiene una classe che si chiama default. La classe default è derivata dalla classe page, page è un oggetto che rappresenta una pagina generica, default, è un'oggetto specifico per la tua pagina, quindi fa tutto quello che fa page, ed in più avrà dei metodi, proprietà, atrributi ecc. che definisci tu.

    La pagina .aspx per poter funzionare, a sua volta deve ereditare l'oggetto default, nel caso lo spazio dei nomi entro cui stai lavorando è sito, dovrai utilizzare questo codice come prima riga della pagina aspx:

    <%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="sito.default" %>

    Codebehind="default.aspx.cs" serve a visual studio per capire qual è il file associato.
    http://www.easymemo.it - vCard ed agenda

  5. #5
    è tutto chiaro, ora guardo un po la documentazione del VS a proposito
    grazie 1000...!

  6. #6
    ciao
    seguendo i tuoi consigli e anche la documentazione ho creato una pagina con VS.net ele_cd.aspx. ho anche fatto un DB MSDE di prova. vs.net ha creato il file ele_cd.aspx.cs, e qui nell'evento Page_Load faccio connessione e query, utilizzo un repeater come da documentazione:

    string query = "select * from cd";
    SqlConnection conn = new SqlConnection("data source=URANO-PM1RKPHPZ;initial catalog=fz_db;password=mypass;user id=sa");
    SqlDataAdapter myCommand = new SqlDataAdapter(query, conn);
    DataSet ds = new DataSet();
    myCommand.Fill(ds, "cd");

    Repeater myRepeater = new Repeater();

    myRepeater.DataSource = ds.Tables["cd"].DefaultView;
    myRepeater.DataBind();

    poi nella pagina ele_cd.aspx utilizzo il repeater

    <asp:Repeater ID="myRepeater" Runat=server>
    <HeaderTemplate>
    <h1>aaaaa</h1>
    </HeaderTemplate>
    </asp:Repeater>

    non appare niente :-(

    il problema è che nel tutorial che sto seguendo codice e tags sono tutti nella stessa pagina. a me interessa anzitutto separare le due cose... sai dirmi dove sbaglio?
    spero di avere esposto il problema abbastanza chiaramente

    grazie

  7. #7
    Ciao.

    Non ti appare niente perchè non hai passato al controllo
    <asp:repeater> alcun dato da ripetere.

    codice:
    <asp:Repeater ID="myRepeater" Runat=server> 
    <HeaderTemplate> 
    <h1>aaaaa</h1> 
    </HeaderTemplate> 
    </asp:Repeater>
    Praticamente gli hai detto di ripetere 1 sola volta all'intestazione la scritta aaaaa e niente altro.

    Per ripetere dati devi inserire il codice all'interno di tag
    <ItemTemplate></ItemTemplate>

    praticamente in questo modo

    codice:
    a well formatted repeater
    <asp:repeater id="rep1" runat="server">
    <ItemTemplate>
    <%# Container.DataItem("nomecolonna")%>
    </ItemTemplate>
    </asp:repeater>
    <%# Container.DataItem("nomecolonna")%>

    contiene i dati che verrano caricati dinamicanete.
    praticamente scrivendo così, stai chiedendo ad aspnet di ripetere
    tutti i dati che appartengono alla colonna "nomecolonna"

    Ciao e buona fortuna

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    oppure se vuoi vedere tutti i dati fatti un datagrid normalissimo

  9. #9
    ciao
    hai ragione ho sbagliato durante la trascrizione del codice ma in effetti avevo scritto come da te suggerito, ma senza risultati:

    <ItemTemplate>
    <h1><%# DataBinder.Eval(Container.DataItem, "titolo") %></h1>
    </ItemTemplate>
    non appare niente. se guardo il codice tra <body> e </body> non c'è nulla...!

    quello che davvero non capisco è perche se codice C# e tags stanno nella stessa pagina aspx tutto funziona perfettamente...

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    gli hai detto ke esiste il codebehind???
    cioè in VS nella pagina ASPX visualizza l'html
    ti viene 1 cosa del genere?

    <%@ Page Language="c#" Codebehind="Qualcosa" Inherits="qualcosa"%>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.