Cita:
Empezado por kapcomx
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(request, LoginForm, lambda 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.