Pergunta

Aprendi C# nos últimos dias para uso com o ASP.NET para criar sites.

Sou muito novo no C#, mas tenho pensado em como devo escrever meu código para torná -lo o mais reutilizável possível.

Como um exemplo rápido, digamos que eu queria criar um código para verificar os detalhes de login dos usuários que eu poderia entrar em outro site a qualquer momento e fazer com que ele funcione com os dados que recebem.

Lembrando que não tenho idéia de como devo fazer o meu código para fazer isso, essa é a ideia que tive (vou mantê -lo curto com algum tipo de código pseudo):

Primeiro eu crio uma aula:

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;
        }
    }
}

Então eu teria uma página ASPX onde o formulário de login iria, por exemplo:

<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>

E o código por trás do arquivo ficaria assim:

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");
            }
        }
    }
}

Isso funciona como esperado, mas o que eu quero saber é:

  • Existe uma maneira melhor de criar código reutilizável?
  • Como você cria seu código reutilizável?

Tenho certeza de que deve haver uma maneira melhor para eu fazer isso, mas simplesmente não consigo pensar nisso por conta própria.

Foi útil?

Solução

No que diz respeito ao ASP.NET WebForms e à reutilização, é preciso dizer que o problema mais comum reside em colocar muita lógica nos arquivos de código-behind. Os programadores, especialmente os novos no ASP.NET WebForms, tendem a colocar partes da lógica de negócios e até do código de acesso ao banco de dados. Depois de um tempo, transforma sua aplicação em uma sinopse gigante difícil de manutenção.

Extraia sua lógica de negócios para uma camada separada. Acesse-o a partir do código-behind. Basta acessar, não implementá -lo diretamente. Fique longe do banco de dados. Somente a camada de negócios deve poder falar com isso.

Você pode até colocar a lógica de negócios e as entidades modelo de domínio em uma biblioteca de classes separada. Então é assim que se torna reutilizável.

Essa é a primeira consideração simples antes de você sujar as mãos com uma codificação séria.

As técnicas de reutilização no .NET giram principalmente em torno das prateleiras de código comum em bibliotecas de classes a serem usadas por uma variedade de aplicações.

A reutilização aplicada aos aplicativos da Web (ASP.NET) é geralmente alcançada com o UserControls (*.ascx) para a parte da apresentação e expondo partes do aplicativo por meio de serviços da Web.

Também se pode mencionar mover a lógica de negócios para a camada de banco de dados (colocando -a em procedimentos armazenados), mas essa é comumente percebida como controversa nos dias de hoje.

Outras dicas

Talvez o login seja um mau exemplo, porque existem asp.net maneiras embutidas de fazer isso, mas, em geral, você está no caminho certo: não coloque a lógica de negócios que você pode querer reutilizar na própria página, mas em algumas classes - isso tem a vantagem adicional de estruturar seu código em um mais maneira lógica: material relacionado à interface do usuário está na página ASPX (e é o código de código), a lógica do programa reside em classes separadas. Eventualmente, você deseja transferir algumas dessas classes para um projeto de biblioteca separado, que pode ser vinculado por muitos aplicativos da Web diferentes.

Se você deseja reutilizar os elementos da interface do usuário do ASP.NET, você tem a possibilidade de escrever Controles do servidor ASP.NET, que você coloca em sua biblioteca e usa em suas páginas do ASP.NET como esta:

<asp:Content ContentPlaceHolderID="column1" runat="server">
    <custom:MyCustomLoginControl runat="server" 
                                 OnSuccessRedirectTo="myStartPage.aspx" />
</asp:Content>

A melhor maneira que encontrei para reutilizar as páginas e o código da WebForms é usar o padrão MVP. Implementamos o MVP para algumas de nossas páginas em nosso site antigo como descrito aqui, e quando nos mudamos para o ASP.NET MVC, achamos o processo realmente simples.

Existe uma solução simples para codificar a reutilização no ASP.NET.

Depois de pesquisar, encontrei duas soluções:

  • trabalhando com diretórios virtuais, ou
  • Mova todo o conteúdo para o diretório raiz.

Verificando as duas soluções, identificou o que realmente precisa ser feito: basta apenas definir o BIN Pasta do nosso projeto para direcionar o diretório raiz (C:\inetpub\wwwroot\bin).

Aqui está um exemplo simples no arquivo anexado: Libexemplo.zip.

Atualmente eu uso SharpDevelop que não precisa de instalações ou configurações longas.

Cumprimentos,

Reinaldo Fernando

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top