Ver Mensaje Individual
  #12  
Antiguo 12-06-2015
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.918
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por kapcomx Ver Mensaje
por ultimo mamcx el sistema esta en web, me mencionaron que estan usando asp.
Si estan usando ASP.NET "clasico" o sea webforms sera TODO UN LIO. Yo hice un ERp (asp.net) relativamente complejo y es de los pocos desarrollos que me han sacado canas.

Ahora lo que se usa es

http://www.asp.net/mvc/mvc5 & http://signalr.net/ para realtime

Que es todo un cambio, para bien.

Con respecto al acceso a datos, lo mejor es usar LINQ. O usar un ORM como este (el mejor en .NET, no pierdas tiempo con otra cosa):

https://github.com/StackExchange/dapper-dot-net

O opcionalmente, si pueden con la licencia, este es el mejor stack para .NET:

https://servicestack.net/


Con .NET ya se puede desarrollar para osx/linux, usar un editor de texto como sublime:

http://www.omnisharp.net/

Lo que te hace programar mas al estilo de python/ruby/php.


----

La programación web, del lado del servidor, es *realmente* sencilla, y lo que han hecho muchos framework es enruedar el tema. Es el lado del cliente lo que saca canas.

Lo que debes entender es como funciona el modelo REST. Ayuda leer un poco sobre MVC, tan solo para entender que es bueno separar le procesamiento del HTML, de la logica y de los datos.

Te pongo un ejemplo con Flask (python), porque fue el primer framework que desmitifico el tema para mi (y en general python tiene muy buenos ejemplos de como hacer desarrollo claro), porque es brutalmente facil de entender y seguir, y porque asi es como se esta haciendo desarrollo web en MVC.5 (solo que C# es mucho mas verbosed que python y oscurece un poco el tema):

http://flask.pocoo.org/docs/0.10/quickstart/


----

Es una lastima tener que hacerlo con C#, porque con F# es mucha la reduccion de codigo y es mas claro, pero dudo que te dejen hacer el brinco a esto. Por lo demas, presta atencion a lo nuevo en C# 5 en adelante, al uso
de POCOS (Plain Old .NET Objects):

https://es.wikipedia.org/wiki/Plain_Old_CLR_Object

Lo que en general da asi:

- Usa poco las clases, pasa "datos" en vez de "objetos"
- Los view deben solo procesar html/forms y serializar/deserializar (ej: JSON)
- Si tu API esta bien hecha, puedes testear todo desligado de los views (osea: No necesitas la parte html para hacer los test del lado servidor)

Un ejemplo del estilo es asi:

Código PHP:

//Nota que es un POCO
class Usuario:
  
UserId:String
  Pwd
:String


function Login(who:Usuario):Boolean
//Tu logica pa saber si logeo o NO

//En tu vista:

function LoginView(request):Response

if request.method GET:
  
//Retorna forma de login

if request.method POS:
  
//Valida forma
  
if models.Login(usuario):
    
//Carga el usuario en la sesion y todo eso
    
return Redirect(home)
  else  
   return 
Form(errores
Ya que mucho es asi por el estilo, puede abstraer bastante en la parte http, al grado que la mayoria de mi codigo es masomenos asi:

Código PHP:

function LoginView(request):Response

  
return ProcessForm(requestLoginFormlambda models.Login(...) ) 
* Lambda es una funcion anonima, mira como se hace eso en C#.

Asi que los views tienden a volverse unas muy pocas lineas.

---

Todo lo que te quiero decir es que la simplicidad es el mejor camino. No es necesario que te enruedes con frameworks y metodologias rara, a menos que tengas una necesidad especializada. Usando funciones, pasar datos, validar, usar un ORM o LINQ, eso cubre casi todo el trabajo en una app web. De ahi, modelar bien la BD tiene un mayor impacto.

.NET es una bestia veloz y potente si la usas bien. Hacerlo simple hara que sea veloz y potente. Aprende la forma correcta de programar, lee mucho y en este caso: Ignora los ejemplos de codigo que sean "viejos" en .NET. Usa todo lo que viene de .NET 4 para aca, MVC 5, etc.
__________________
El malabarista.
Responder Con Cita