¿Puedo construir un sitio web de red social atractivo y funcional usando solo ASP.NET, C # y SQL para back-end y HTML y CSS para front-end?

¿Es técnicamente posible? Sí.

Sin embargo, cada decisión tecnológica viene con un inconveniente. Pregunte a FB si tomarían las mismas decisiones tecnológicas hoy en día. Lo dudo mucho. Invertieron mucho en HipHop para PHP para no tener que volver a implementar su código base. ¿Puedes escalar MySQL? Por supuesto, pero de nuevo, estoy bastante seguro de que no lo volverían a elegir. ¿Otras bases de datos SQL escalan mejor? Claro, pero la mayoría de las bases de datos escalables no son exactamente gratis. Algunas de las tecnologías de base de datos más nuevas seguramente valen la pena. Para un sitio de red social, las bases de datos de gráficos son interesantes, por ejemplo.

En general, usar una tecnología solo porque es conveniente o si está familiarizado con ella podría generar deudas técnicas. Algunos proyectos simplemente no sobreviven pagándolos, porque tiende a mantenerlos durante mucho tiempo y aumentan sus costos, reduciendo sus ingresos. Por lo tanto, debe elegir las partes de su pila con mucho, mucho cuidado para evitar deudas técnicas por las que pagará caro.

No solo debe tener en cuenta los inconvenientes de las tecnologías que utiliza, sino también cómo superarlos. Esto requiere un amplio conocimiento de toda la pila, como Eric Wise presentó con bastante elocuencia. Asegúrese de adquirirlo para las partes más básicas de su aplicación antes de tomar una decisión.

Por supuesto que puede. Ahora, hay un poco de fanboy-ismo en cualquier pila de idiomas, pero cualquiera que diga que un backend de C # / ASP.NET no escalará no sabe de qué está hablando. Pregunte a StackOverflow si .NET puede escalar. Es el sitio número 54 para el tráfico en el mundo, 560 millones de páginas vistas al mes, miles de solicitudes por segundo, y solo usan como 25 servidores o algo así.

Al escalar una aplicación web, se trata de crear un diseño eficiente que maneje sus colas de espera mejor que el rendimiento bruto real. Por ejemplo, puede escribir el código más optimizado jamás visto, pero si solo tiene un único punto final de servidor web, no experimentará una mejora en un cierto volumen. También debe pensar en la red, E / S en su base de datos, almacenamiento en caché, distribución geográfica de servidores, etc.

En el lado de los datos, eventualmente podría terminar mirando una arquitectura CQRS u otras soluciones de tipo de consistencia eventual. Naturalmente, estas soluciones son mucho más complejas y el escalado requiere mucha reflexión, planificación y pruebas cuidadosas.

La buena noticia es que si su sitio se vuelve lo suficientemente popular donde esto se convierte en una necesidad, debe tener los ingresos para contratar a las personas adecuadas para implementarlo.

Por supuesto, Facebook se ejecuta en una gran cantidad de instancias de MySQL y un motor PHP optimizado. SQL y ASP .NET es una plataforma enormemente superior en muchos sentidos. (Y sí, sé que hay muchas otras tecnologías en juego en FB).

Dejando a un lado StackOverflow, no conozco un sitio comparable a FB construido en la pila MSFT.

Para ser honesto, esta pregunta no tiene sentido: la elección de las dos tecnologías anteriores no es lo que hace la diferencia. Son las habilidades de ingeniería involucradas. Además, a medida que escala, necesitará desarrollar una gran cantidad de tecnología interna, así como incorporar una gran cantidad de tecnología de código abierto, desde sistemas de colas masivamente escalables hasta motores de procesamiento distribuido y mucho más. Los sistemas de renderizado front-end también necesitarían muchas chispas mágicas; desde un CDN hasta varias tecnologías de almacenamiento en caché en diferentes niveles. Los sistemas de fondo también terminarían obteniendo muchos niveles de cachés y optimizaciones de consultas en memoria.

HTML y CSS cubren la apariencia de un sitio web en su totalidad. Si desea muchas campanas y silbatos, puede agregar JavaScript pero es completamente opcional. La funcionalidad puede ser cubierta por cualquier DB y cualquier lenguaje de back-end que es donde entran SQL y el sitio oficial de Microsoft ASP.NET. C # es solo un lenguaje que puede usarse para crear un back-end ASP. Aún debe elegir qué base de datos específica va a utilizar, pero SQL es casi universal. Cada base de datos usa SQL y los conceptos básicos son casi siempre los mismos, especialmente si su aplicación es de tipo CRUD, como un sitio de redes sociales. Hay algunas diferencias entre la implementación de SQL de cada DB específico, pero si eres excelente para escribir consultas en cualquier SQL, te contrataría para trabajar en la mayoría de los proyectos, independientemente de qué DB estuviéramos usando, ya que la experiencia en la optimización de consultas es mucho más difícil de aprender que sintaxis menor y diferencias semánticas. Algunos DB tampoco son compatibles con todo el soporte de otros db como transacciones y procedimientos almacenados.

¿Guapo? Sí. Look & feel es doby usando html / css y todos los sitios web de redes sociales usan html / css.
¿Funcional? Sí. La única especialidad es el rendimiento. La arquitectura técnica de la solución tiene un efecto mucho mayor en el rendimiento final que la plataforma misma. Si su red social no tendrá una gran cantidad de usuarios, tampoco el rendimiento juega un papel importante.
Cuando se trata de arquitectura técnica específica para grandes redes sociales, realmente no puede beneficiarse de lo que ofrece SQL. Claro, es posible usarlo como tecnología de almacenamiento, algunas de las bases de datos NoSQL parecen ser más adecuadas.

Respuesta corta: sí.

Respuesta más larga: es posible que necesite usar JavaScript en el front-end si desea usar notificaciones push (como casi todas las demás redes sociales).

stackoverflow.com parece funcionar bastante bien con la pila que has descrito.

Sí por supuesto que puedes. La desventaja aquí sería la escalabilidad en el backend de la aplicación, una vez que obtenga suficientes usuarios.

More Interesting

¿Qué tan difícil es pasar de ser un desarrollador front-end a back end?

¿Las fases malas de la vida finalmente terminan como las buenas siempre terminan o pierden la emoción?

¿Deberíamos usar Java para nuestro back-end de inicio?

¿Es obligatorio aprender ES6 para ReactJS? ¿ReactJS es bueno para el desarrollo tanto back-end como front-end? ¿Cuál debería ser el proceso paso a paso de aprenderlo para alguien que acaba de usar JavaScript para DOM?

Cómo encontrar diseñadores web experimentados para una colaboración a largo plazo

¿Qué debo aprender después de HTML, CSS y JavaScript para ser un diseñador de interfaz de usuario?

¿Cuáles son algunos ejemplos de API RESTful bien diseñadas?

Las empresas necesitan desarrolladores con habilidades de back-end, front-end y móviles al mismo tiempo. Entonces, ¿cómo puedo aprender todas estas habilidades al mismo tiempo?

¿Qué más puedo hacer con mi experiencia en desarrollo web back-end?

¿Qué significa "back end" en el desarrollo de software?

¿Cómo aprendería un desarrollador web autodidacta a construir un sistema back-end distribuido?

¿Qué editores de código se usan ampliamente en la industria del desarrollo web para la programación de back-end como PHP y MySQL?

Alguien dijo que un desarrollador de software profesional puede cambiar de backend a frontend, de móvil a desarrollo web en 1 o 2 días, ¿es cierto?

¿Qué deben saber los arquitectos empresariales sobre el desarrollo web front-end?

¿Debo usar un marco MVC de back-end o front-end para desarrollar una aplicación web?