Question

J'ai appris C # depuis quelques jours pour une utilisation avec ASP.NET pour créer des sites Web.

Je suis très nouveau pour C # mais j'ai pensé à ce que je devrais aller à écrire mon code pour le rendre aussi réutilisable que possible.

Par exemple rapide, permet de dire que je voulais créer un morceau de code pour vérifier un utilisateur Identifiants que je pouvais déposer dans un autre site à tout moment, et le faire fonctionner avec les données qu'il se donne.

Se souvenant que je ne sais pas comment je mise en page mon code pour ce faire, c'est l'idée que je suis venu avec (je vais le garder court avec une sorte de code pseudo):

D'abord, je crée une classe:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Module {
    public class Login {
        public static bool check_login(string usernameCheck = "", string passwordCheck = "") {
            if(usernameCheck == "user" && passwordCheck == "password") {
                return true;
            }

            return false;
        }
    }
}

Alors j'aurais une page ASPX où le formulaire de connexion irait, par exemple:

<asp:Content ContentPlaceHolderID="column1" runat="server">
    <asp:TextBox ID="usernameInput" runat="server"></asp:TextBox>
    <asp:TextBox ID="passwordInput" runat="server"></asp:TextBox>
    <asp:Button OnClick="check_login" Text="Login" runat="server" />
</asp:Content>

Et le code derrière le fichier ressemblerait à ceci:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Module {
    public partial class _default : System.Web.UI.Page {
        protected void Page_Load(object sender, EventArgs e) {

        }

        protected void check_login(object sender, EventArgs e) {
            if(Login.check_login(usernameInput.Text, passwordInput.Text)) {
                Response.Redirect("some other place");
            }
        }
    }
}

Cela fonctionne comme prévu, mais ce que je veux savoir est:

  • Y at-il une meilleure façon de créer un code réutilisable?
  • Comment concevez-vous votre code réutilisable?

Je suis sûr qu'il doit y avoir une meilleure façon pour moi de faire cela, mais je ne peux pas penser à moi-même.

Était-ce utile?

La solution

En ce qui concerne ASP.NET WebForms et réutilisabilité, il faut dire que la question la plus commune est de mettre trop logique dans les fichiers de code-behind. Les programmeurs, en particulier ceux qui sont nouveaux à ASP.NET WebForms, ont tendance à y mettre des parties de la logique métier et même code d'accès de base de données. Après un certain temps, il se leur application en un géant difficile à maintenir Blurb.

Extrait loin votre logique métier dans une couche séparée. Accéder à partir du code-behind. Juste accès, ne pas appliquer directement. Restez à l'écart de la base de données. Seule la couche d'affaires devrait être autorisé à lui parler.

Vous pouvez même mettre votre logique métier et les entités du modèle de domaine dans une bibliothèque de classes séparées. Ensuite, il est comment il devient réutilisable.

C'est d'abord de simples considérations avant de vous salir les mains avec un certain codage sérieux.

techniques de réutilisabilité .NET tournent principalement autour des étagères code commun dans les bibliothèques de classes à utiliser par une variété d'applications.

Réutilisation telle qu'elle est appliquée à des applications Web (ASP.NET) est habituellement obtenue avec UserControls (* .ascx) pour la partie de présentation et d'exposer des parties de l'application par l'intermédiaire de services Web.

On peut citer également déplacer la logique métier dans la couche de base de données (mise en procédures stockées) mais celui-ci est généralement perçue comme controversée ces jours-ci.

Autres conseils

Peut-être est un identifiant mauvais exemple, parce qu'il ya ASP.NET intégré façons de le faire , mais, en général, vous êtes sur la bonne voie: ne pas mettre la logique métier que vous pouvez réutiliser dans la page elle-même, mais dans certaines classes - ce qui a le plus avantage de structurer votre code d'une manière plus logique: Articles liés par l'utilisateur interface est dans la page ASPX (et il est codebehind), la logique du programme réside dans des classes séparées. Finalement, vous aurez envie de déplacer certaines de ces classes dans un projet de bibliothèque séparée, qui peut être liée par de nombreuses applications Web.

Si vous souhaitez réutiliser des éléments d'interface utilisateur ASP.NET, vous avez la possibilité d'écrire

Il existe une solution simple à la réutilisation de code dans ASP.NET.

Après des recherches, j'ai trouvé deux solutions:

  • travailler avec des répertoires virtuels, ou
  • déplacer le contenu dans le répertoire racine.

Vérification des deux solutions, identifié ce qui doit réellement être fait. Il suffit de mettre tout le dossier BIN de notre projet pour cibler le répertoire racine (C:\inetpub\wwwroot\bin)

Voici un exemple simple dans le fichier ci-joint: LibExemplo.zip .

Actuellement, j'utiliser SharpDevelop qui n'a pas besoin de longues installations ou configurations.

Cordialement,

Reinaldo Fernando

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top