c# - tarea - Soy nuevo en.NET: ¿en qué debería concentrarme y qué debería ignorar?
ejercicios para concentrarse (8)
- Estudie C # primero
- Elija un enfoque orientado a objetos CRUD: las opciones son Entity Framework (opción sugerida por Microsoft), Linq2SQL, Nhibernate (mi sugerencia personal).
- Objetos ASP.Net MVC + Nunit + JQuery + JSon.
También miraría a WCF ya que cada vez es más importante.
Dos buenos puntos de partida para la arquitectura general para aplicaciones web y un proyecto inicial son:
Por lo tanto, he tenido bastante experiencia en la programación de aplicaciones web basadas en bases de datos usando php y coldfusion (no juntas, en diferentes momentos) y estoy empezando a buscar en el mundo asp.net (tengo un proyecto en el trabajo) eso es todo asp.net/c#.)
Mi pregunta es: parece que hay un montón de cosas en las que meterme y si solo estoy haciendo aplicaciones basadas en web (sobre todo cosas de tipo CRUD, sin lógica alucinante) ¿cuáles son los temas en los que debería centrarme? Simplemente no quiero seguir el camino del conejo de algo para saber más tarde que la comunidad de desarrollo no lo usa demasiado. Al leer algunos libros (ASP.net 3.5 paso a paso y ASP.net 3.5 desatado) estoy encontrando un área donde se explicará un tema pero al final del capítulo dirá "esto es genial pero no para usar en aplicaciones de varios niveles ... "
Los temas que he analizado hasta ahora (que parecen diferir mucho de las aplicaciones que estoy acostumbrado a desarrollar) son:
- Páginas maestras
- El enlace de datos
- Linq a SQL
- ASP.NET MVC
- Plantillas y expresiones de enlace de datos
- controles de asp.net
Sé que esta puede ser una pregunta amplia, pero este parece ser un tema amplio.
Bueno, para ser sincero, una cosa que es realmente importante es comprender qué significa el uso estático y cómo afecta a las cosas que lo rodean. Si no comprende la simultaneidad, la seguridad del hilo y las condiciones de carrera, no use estática. Solo menciono esto porque me he quedado atrapado arreglando bastantes errores en los últimos meses, todos relacionados con recursos estáticos que no se usan correctamente. Esto puede considerarse un tema avanzado, pero es muy importante entenderlo.
Comenzaría por lo básico primero. Hay muchos y potentes controles y ''widgets'' en ASP.NET 2.0 y 3.5, especialmente con los controles AJAX, pero me pareció confuso tratar de resolverlos todos sin antes haber entendido, como dijiste '' páginas web básicas de CRUD en ASP.NET, que es de lo que se tratarán la mayoría de los proyectos reales.
La mayoría de los problemas y errores difíciles de rastrear que he tenido que manejar en la programación web de .NET me han llegado a mí, sin comprender completamente los principios básicos de ASP.NET, como PostBack, ViewState, Refresh y ASP.NET databinding (el código básico). método, no el material de grilla sin código de lujo en 2.0) - una vez que entiendes eso, las páginas maestras, temas y cosas de AJAX son bastante fáciles.
Recomendaría Wrox Press ASP.NET 2.0 o Professional C # 2008
Diría que su lista es un buen comienzo. Además, si en su mayoría construye aplicaciones directas de tabla, entonces vería las aplicaciones de muestra de "Datos dinámicos" en VS2008 SP1 que usa REST. Tiendo a alejarme del modelo de WebForms y usar ASP.Net MVC. Es mejor para las pruebas y separa limpiamente la lógica empresarial de la IU. Además, Linq-to-Sql es una herramienta muy poderosa cuando conoces sus límites.
Comenzaría construyendo una muestra usando ASP.Net MVC y linq-to-sql para mojarse los pies. Es bastante fácil comenzar, y no debería tardar en aprender lo básico para hacerlo útil.
La mejor forma de aprender es hacer.
En cuanto a "¿Qué debería ignorar?": .Net Remoting y servicios web. Esto ha sido reemplazado por un marco mucho más poderoso llamado WCF.
Una de las cosas que no debe olvidar revisar, principalmente si va a desarrollar una aplicación web, es que debe conocer el ciclo de vida de un formulario web, también debe estar familiarizado con el funcionamiento del lado del servidor, cómo funciona el el lado del cliente funciona Luego puede revisar las páginas maestras, para tener una apariencia y comportamiento común entre su sitio, controles asp .net, controles de usuario, etc. Genéricos, métodos anónimos, uff hay mucho más por aprender, en realidad estoy tratando de aprender algo nuevo sobre C # cada tiempo libre que tengo ... hay mucho más ... :)
¡¡Buena suerte!!
¡Buena pregunta! Supongo que puedes elegir la sintaxis de C # sobre la marcha, así que me centraré en la idea general.
Para comenzar con una aplicación de WebForms, debe comprender el ciclo de vida de la página y el ciclo de vida de la aplicación. Esta es tu primera prioridad. El modelo utilizado por ASP.NET se basa en la programación basada en formularios de Windows y esto tiene implicaciones sobre cómo piensas sobre todo el proceso de producción de software. Ahora, supongo que creará una aplicación WebForms porque la tecnología WebForms (en ASP.NET) es más madura, tiene mejor soporte de terceros y tiene mucha más documentación. Si está interesado en MVC, simplemente tenga en cuenta que un buen diseño será uno u otro: MVC no es parte de WebForms, es una alternativa.
Luego, tienes algunas decisiones. ¿Utilizará herramientas estándar de acceso a datos (por ejemplo, SQLClient), rodará su propia capa de acceso a datos (o usará DAL) o usará linq para SQL? Digo "decisiones" porque todos en el equipo tendrán que estar juntos en esta. Sinceramente, recomiendo construir un DAL ya que puede optimizarlo para sus necesidades. Linq también está bien, pero hay algunas nubes ominosas en el horizonte . Coordinar, decidir y permanecer con eso.
Si bien no es obligatorio, debe considerar seriamente construir su lógica de negocios en una biblioteca de clases (DLL) por separado. Visual Studio / ASP.NET hace que sea trivialmente fácil crear su propia Biblioteca de clases y doblarla en su solución. Aprenda cómo hacer esto y será un mejor desarrollador durante años. La gente generalmente argumenta a favor de esto sobre la base de que aislará su UI de su acceso a datos. Si bien es cierto, esa no es realmente la ventaja: la ventaja viene en el futuro cuando estás listo para aprender y hacer pruebas unitarias. Solo comience con la suposición de que dividirá UI de la lógica y me lo agradecerá en el futuro.
En este punto, puede (A) crear páginas web y (B) mostrar contenido dinámico basado en bases de datos en ellas. Asegúrese de dominar los objetos GridView y ObjectDataSource utilizados para llenarlos. Nota: ObjectDataSource es lo que envía datos desde su Business Class Library a su UI. Si no usa Business Layer, entonces usará los objetos SQLDataSource o LinqDataSource para acceder a sus datos directamente desde la interfaz de usuario.
¡No te conformes con tu arquitectura todavía!
Ahora debe decidir si desea usar los componentes WebParts, Inicio de sesión y Navegación de Microsoft. Esto lo conecta con un enfoque específico de navegación del sitio, interfaz de usuario, etc., pero puede ahorrarle mucho tiempo, si corresponde.
Una vez que sepa si va a utilizar estos y ha tenido la oportunidad de acostumbrarse a ellos, le recomiendo que se familiarice con las páginas maestras. Los uso extensivamente y son geniales para estandarizar el aspecto general del sitio.
Finalmente, cada desarrollador profesional de ASP.NET debe derivar su propia clase de página (por ejemplo, "MyPageClass") para que puedan encapsular acciones comunes en el nivel de página. Por ejemplo, he creado un objeto de gestión de sesiones para que pueda acceder a todas mis variables de sesión comúnmente utilizadas de forma segura. La clase de página derivada es responsable de proporcionar la instancia de sessionObj para que cada página pueda acceder a ella sin ningún trabajo adicional.
¡Ahora está listo para comenzar a construir una aplicación web de clase empresarial!
Si sus sitios web serán muy pesados, eche un vistazo a los datos dinámicos .
Si ya tienes suficiente conocimiento de otras plataformas, también echaré un vistazo a cosas como viewstate / control state y cómo funcionan.
Puede reutilizar la mayoría de sus conocimientos desde otras plataformas html / javascript. Las páginas maestras son lo que debe saber y lo que sucede con el ciclo de vida de la página al usarlas.
El filtrado de entrada / inyección de ORM / SQL es algo que también debería saberse de memoria.
Si ha utilizado frameworks MVC en el pasado y luego usa MS MVC de no ser así, es posible que desee esperar hasta que se sienta cómodo con ellos antes de indagar.
Diseña una aplicación. Lo que necesita saber debe llegar a la cima con bastante rapidez.