|
6881
|
Programación / .NET (C#, VB.NET, ASP) / Re: Ayuda con un proyecto de c#
|
en: 9 Agosto 2014, 00:44 am
|
Muchas gracias, cuando dijiste que si podía hacer ping a la página web no dude en buscar en Internet como se hacia en c# ya he conseguido lo que quería muchas gracias No hay de que, no me merezco las gracias (ese código no es nada) pero te lo agradezco yo también. Lo siento si soy muy malo pero como ya dije soy nuevo y no entiendo mucho de C#. Pero seguramente si no es este año sera el próximo le domine espero que me ayudes Gracias Solo quiero comentar para dejar claro que: Considero que no importa si una persona es buena o mala en lo que haga, lo que importa es el empeño que le ponga a lo que hace (y también el interés que demuestra a los demás), eso es lo que intenté decirte, por supuesto eres bien recibido por mi parte y mis (humildes) conocimientos están para que sirva de ayuda a los demás, pero no está bien visto (ni por mi, ni por la mayoría) que por muy experto o novato que sea alguien, éste pida cualquier tipo de ayuda relacionada con la programación sin haberlo intentado por si mismo, porque muchas personas se aprovechan de esto y lo piden todo echo sin querer aprender nada ...eso para mi es hacerle perder el tiempo a los demás, pero ya se que no es el caso contigo, solo lo estaba comentando y te sugiero que la próxima vez intentes mostrar un código, o urls en las que hayas investigado el problema, eso siempre ayuda. Saludos!
|
|
|
6882
|
Programación / .NET (C#, VB.NET, ASP) / Re: Un par de consultas sobre teoría VB.net? son preguntas rápidas
|
en: 9 Agosto 2014, 00:19 am
|
Que tiene de diferente crear una Aplicación WPF? WPF (WindowsPresentationFoundation) usa un modelo muy distinto y más actual que un WF (WindowsForms), es el sucesor de WinForms (y desde hace mucho tiempo ya), el desarrollo de este tipo de aplicación WPF es completamente distinto, es más dificil, dando entrada a conceptos muy distintos que la mayoria de programadores de WinForms desconocen y/o les podría costar entender (como por ejemplo separar los Datos de la UI) dando entrada al uso de un lenguaje llamado XAML. · Introduction to WPF· Getting Started with WPF
Que es la Biblioteca de Clases? (Doy por echo que entiendes lo que es una Class) Un set/colección de Classes, no es más que eso, la librería de Classes de .NET Framework contiene todo tipo de miembros, Namespaces, Interfaces, Estructuras, Eventos, Excepciones, Enumeraciones, Delegados, etc...), se podría decir que practicamente contiene toda la funcionalidad del lenguaje. Tienes un claro ejemplo en el propio Framework de Microsoft. · Class Library (definición)· .NET Framework Class Library
Que diferencia hay entre: En mi opinión la pregunta debería ser " ¿Que diferencia hay entre la Class "Form1" y el resto de Classes?" Agregar Windows forms Un Form (Formulario) es una representación visual de la interfaz gráfica, la class " Form1" (y el Form2 que agregarías desde el menú) se genera automaticamente por el Designer de VS, y dicha Class automaticamente hereda la Class Form, de otra manera no sería un Form. y no podría compilar <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class Form1 Inherits System.Windows.Forms.Form ...
Esa es la simple razón por la cual la Class Form1 te parece distinta al resto de Classes que puedes añadir a un proyecto, y porque puedes acceder a métodos como " Form1.Show()", " Form1.ShowDialog()", etc. Agregar Clase Una Class corriente vacía es una plantilla para la creación de Objetos, es decir, la creación de un conjunto de miembros entre los cuales suele haber métodos, variables, propiedades, etc... Ejemplo:La estructura inicial de una Class agregada es así: Public Class Class1 End Class
Para que una Class pueda ser un Form, deberíamos herederar los miembros de la Class Form: Public Class Class1 : Inherits Form End Class
...Y entonces podrías utilizar la class Class1 como un Form, sería algo parecido a añadir un Form desde el menú contextual, pero sin haber creado la parte del Designer. Agregar Nuevo elemento Un 'nuevo elemento' es... es algo que no se puede globalizar, no soy capaz de hallar una respuesta apropiada que englobe esta pregunta, ya que cada elemento existente es muy distinto del otro.
|
|
|
6883
|
Programación / .NET (C#, VB.NET, ASP) / Re: Ayuda con un proyecto de c#
|
en: 8 Agosto 2014, 23:28 pm
|
¿Cual es la duda exactamente, y donde está el código que demuestra tu progreso en ello?, debes saber que aquí no le hacemos el trabajo a nadie, ayudamos a hacerlo. Por ese motivo quiero que sepas que no apruebo NADA ayudar y/o proporcionar este tipo de material a alguien que no muestra esfuerzo alguno, pero por otro lado este código ya lo tenía echo y no me cuesta nada compartirlo, eso sí, dado el caso no lo voy a traducir a C#, si tienes dificultades puedes proporcionar los datos necesarios que ya expliqué, o puedes usar convertidores online (ej: Telerik): EDITO: Código eliminado, el código era muy extenso.Podrías hacer un Ping a la dirección Web: Try My.Computer.Network.Ping("www.google.com") TextBox1.Text = "Conexión Satisfactoria" Catch ex As Net.NetworkInformation.PingException TextBox1.Text = "Conexión Fallida" End Tryf
Imagino que con eso sería suficiente, aunque si tu conexión se encontrase demasiado saturada podría dar un falso positivo (porque no podría conectar con el server aunque estuviese online). Saludos
|
|
|
6884
|
Foros Generales / Foro Libre / Re: Contrato de servicios de Microsoft
|
en: 8 Agosto 2014, 23:22 pm
|
¿Que sentido tiene este mensaje?, digo yo que podrías haber echo una pequeña introducción a la informacion que pretendías mostrar... De todas formas también creo que habia sido suficiente con mostrar el enlace ofial sin copiar su contenido, para tener una referencia oficial la cual como bien se especifica podría estar en constante actualización, y también para no perder los HyperLinks: · Contrato de servicios de MicrosoftSaludos!
|
|
|
6885
|
Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Compartan aquí sus snippets)
|
en: 8 Agosto 2014, 21:13 pm
|
como vi que funciono la primera vez pues no le presté mucha atención... Funciona a la primera según se mire, ya que el que escribió ese snippet definió el uso de la codificación UTF-16 (Encoding.Unicode) para todos los casos. Ahora como verás me he pasado poniendo usings, pero bueno No te has pasado, has echo lo correcto (me refiero a corregir los fallos del código, aparte de tener que escuchar mi típico sermón xD) Saludos
|
|
|
6886
|
Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Compartan aquí sus snippets)
|
en: 8 Agosto 2014, 20:59 pm
|
Ejemplo de como implementar la interface ISerializable e IXMLSerializable: #Region " Imports " Imports System.Runtime.Serialization Imports System.Security.Permissions Imports System.Xml.Serialization Imports System.Xml #End Region ''' <summary> ''' SerializableClassTest. ''' This class can be serialized. ''' </summary> <Serializable> <XmlRoot("SerializableClassTest")> Public Class SerializableClassTest : Implements ISerializable : Implements IXmlSerializable #Region "Properties" Public Property StrValue As String Public Property Int32Value As Integer #End Region #Region "Constructors" ''' <summary> ''' Prevents a default instance of the <see cref="SerializableClassTest"/> class from being created. ''' </summary> Private Sub New() End Sub ''' <summary> ''' Initializes a new instance of the <see cref="SerializableClassTest"/> class. ''' </summary> Public Sub New(ByVal StrValue As String, ByVal Int32Value As Integer) Me.StrValue = StrValue Me.Int32Value = Int32Value End Sub #End Region #Region "ISerializable implementation" ' For Binary serialization. ''' <summary> ''' Populates a <see cref="T:SerializationInfo"/> with the data needed to serialize the target object. ''' </summary> ''' <param name="info">The <see cref="T:SerializationInfo"/> to populate with data.</param> ''' <param name="context">The destination (see <see cref="T:StreamingContext"/>) for this serialization.</param> <SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags:=SecurityPermissionFlag.SerializationFormatter)> Protected Overridable Sub GetObjectData(ByVal info As SerializationInfo, ByVal context As StreamingContext) Implements ISerializable.GetObjectData If info Is Nothing Then Throw New ArgumentNullException("info") End If With info .AddValue("PropertyName1", Me.StrValue, Me.StrValue.GetType) .AddValue("PropertyName2", Me.Int32Value, Me.Int32Value.GetType) End With End Sub ''' <summary> ''' Initializes a new instance of the <see cref="SerializableClassTest"/> class. ''' This constructor is used to deserialize values. ''' </summary> ''' <param name="info">The information.</param> ''' <param name="context">The context.</param> Protected Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext) If info Is Nothing Then Throw New ArgumentNullException("info") End If Me.StrValue = info.GetString("PropertyName1") Me.Int32Value = info.GetInt32("PropertyName2") End Sub #End Region #Region "IXMLSerializable implementation" ' For XML serialization. ''' <summary> ''' This method is reserved and should not be used. ''' When implementing the IXmlSerializable interface, you should return null (Nothing in Visual Basic) from this method, ''' and instead, if specifying a custom schema is required, apply the <see cref="T:XmlSchemaProviderAttribute"/> to the class. ''' </summary> ''' <returns> ''' An <see cref="T:Xml.Schema.XmlSchema"/> that describes the XML representation of the object ''' that is produced by the <see cref="M:IXmlSerializable.WriteXml(Xml.XmlWriter)"/> method ''' and consumed by the <see cref="M:IXmlSerializable.ReadXml(Xml.XmlReader)"/> method. ''' </returns> Public Function GetSchema() As Schema.XmlSchema Implements IXmlSerializable.GetSchema Return Nothing End Function ''' <summary> ''' Converts an object into its XML representation. ''' </summary> ''' <param name="writer">The <see cref="T:Xml.XmlWriter"/> stream to which the object is serialized.</param> Public Sub WriteXml(ByVal writer As XmlWriter) Implements IXmlSerializable.WriteXml writer.WriteElementString("PropertyName1", Me.StrValue) writer.WriteElementString("PropertyName2", CStr(Me.Int32Value)) End Sub ''' <summary> ''' Generates an object from its XML representation. ''' </summary> ''' <param name="reader">The <see cref="T:Xml.XmlReader"/> stream from which the object is deserialized.</param> Public Sub ReadXml(ByVal reader As XmlReader) Implements IXmlSerializable.ReadXml With reader .ReadStartElement(MyBase.GetType.Name) Me.StrValue = .ReadElementContentAsString Me.Int32Value = .ReadElementContentAsInt End With End Sub #End Region End Class
Ejemplo de como usar la Class DeviceWatcher en un WinForms, sirve para detectar los eventos de inserción/extracción de los dispositivos, quizás se pueda utilizar como reemplazamiento del típico código de WMI para monitorizar USB's, pero todavía no le he podido sacar todo el jugo al asunto, poca documentación... #Region " Instructions " ' 1. Create a new WinForms project targeting .NET Framework 4.5. ' 2. Close VisualStudio, open the 'YourProjectName.vbproj' file in a text-editor and add this property: ' ***************************************************************************************************** '<PropertyGroup> ' ... ' <TargetPlatformVersion>8.0</TargetPlatformVersion> ' ... '</PropertyGroup> ' 3. Load the project in VisualStudio, open the 'References' menu and add these references: ' ***************************************************************************************** ' C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll ' C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.InteropServices.WindowsRuntime.dll ' 4. In the 'References' menu, go to 'Windows > Core' tab and add these references: ' ********************************************************************************* ' Windows.Devices ' Windows.Foundation #End Region #Region " Imports " Imports Windows.Devices.Enumeration Imports Windows.Foundation #End Region Public Class DeviceWatcher_Test Friend WithEvents dw As DeviceWatcher = DeviceInformation.CreateWatcher Private Sub Test() Handles MyBase.Load dw.Start() End Sub ''' <summary> ''' Event that is raised when a device is added to the collection enumerated by the DeviceWatcher. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.enumeration.devicewatcher.added.aspx ''' </summary> ''' <param name="sender">The source of the event.</param> ''' <param name="e">The <see cref="DeviceInformation"/> instance containing the event data.</param> Private Sub dw_Added(ByVal sender As DeviceWatcher, ByVal e As DeviceInformation) _ Handles dw.Added Dim sb As New System.Text.StringBuilder With sb .AppendLine("dw_added") .AppendLine("********") .AppendLine(String.Format("Interface ID.: {0}", e.Id)) .AppendLine(String.Format("Friendly Name: {0}", e.Name)) .AppendLine(String.Format("Is Enabled?..: {0}", e.IsEnabled)) If e.Properties IsNot Nothing Then For Each item As KeyValuePair(Of String, Object) In e.Properties If item.Value IsNot Nothing Then .AppendLine(String.Format("TKey:{0}, TVal:{1} (TVal Type:{2})", item.Key, item.Value.ToString, item.Value.GetType.Name)) End If Next End If End With Debug. WriteLine(sb. ToString) End Sub ''' <summary> ''' Event that is raised when a device is removed from the collection of enumerated devices. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.enumeration.devicewatcher.removed.aspx ''' </summary> ''' <param name="sender">The source of the event.</param> ''' <param name="e">The <see cref="DeviceInformationUpdate"/> instance containing the event data.</param> Private Sub dw_Removed(ByVal sender As DeviceWatcher, ByVal e As DeviceInformationUpdate) _ Handles dw.Removed Dim sb As New System.Text.StringBuilder With sb .AppendLine("dw_Removed") .AppendLine("**********") .AppendLine(String.Format("Interface ID:{0}", e.Id)) For Each item As KeyValuePair(Of String, Object) In e.Properties .AppendLine(String.Format("TKey:{0}, TVal:{1} (TVal Type:{2})", item.Key, item.Value.ToString, item.Value.GetType.Name)) Next End With Debug. WriteLine(sb. ToString) End Sub ''' <summary> ''' Event that is raised when a device is updated in the collection of enumerated devices. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.enumeration.devicewatcher.updated.aspx ''' </summary> ''' <param name="sender">The source of the event.</param> ''' <param name="e">The <see cref="DeviceInformationUpdate"/> instance containing the event data.</param> Private Sub dw_Updated(ByVal sender As DeviceWatcher, ByVal e As DeviceInformationUpdate) _ Handles dw.Updated Dim sb As New System.Text.StringBuilder With sb .AppendLine("dw_Updated") .AppendLine("**********") .AppendLine(String.Format("Interface ID: {0}", e.Id)) For Each item As KeyValuePair(Of String, Object) In e.Properties If item.Key.EndsWith("InterfaceEnabled", StringComparison.OrdinalIgnoreCase) Then Dim Result As Boolean = CBool(item.Value) .AppendLine(String.Format("The device is accessible?:{0}", CStr(Result))) Else .AppendLine(String.Format("TKwy:{0}, TVal:{1} (TVal Type:{2})", item.Key, item.Value.ToString, item.Value.GetType.Name)) End If Next End With Debug. WriteLine(sb. ToString) End Sub ''' <summary> ''' Event that is raised when the enumeration operation has been stopped. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.enumeration.devicewatcher.stopped.aspx ''' </summary> ''' <param name="sender">The source of the event.</param> ''' <param name="e">The object containing the event data.</param> Private Sub dw_Stopped(ByVal sender As DeviceWatcher, ByVal e As Object) _ Handles dw.Stopped Dim sb As New System.Text.StringBuilder With sb .AppendLine("dw_Stopped") .AppendLine("**********") .AppendLine(String.Format("e:{1} (e Type:{2})", e.ToString, e.GetType.Name)) End With Debug. WriteLine(sb. ToString) End Sub ''' <summary> ''' Event that is raised when the enumeration of devices completes. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.enumeration.devicewatcher.enumerationcompleted.aspx ''' </summary> ''' <param name="sender">The source of the event.</param> ''' <param name="e">The object containing the event data.</param> Private Sub dw_EnumerationCompleted(ByVal sender As DeviceWatcher, ByVal e As Object) _ Handles dw.EnumerationCompleted If e IsNot Nothing Then Dim sb As New System.Text.StringBuilder With sb .AppendLine("EnumerationCompleted") .AppendLine("********************") .AppendLine(String.Format("e:{1} (e Type:{2})", e.ToString, e.GetType.Name)) End With Debug. WriteLine(sb. ToString) End If End Sub End Class
|
|
|
6887
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problema con formatos VB.NET 2010, Access 2007[SOLUCIONADO]
|
en: 8 Agosto 2014, 18:31 pm
|
Aun queda la duda de como es posible que los permisos de usuario de "X" App influyan en el código hasta el punto de lanzar una excepción de Casteo? xD, ¿es posible que el objeto "cmd" sea un proceso que ejecutes vía CMD y al no tener permisos suficientes éste en lugar de devoler un valor numérico devolviese un mensaje de error (String) sobre los permisos o algo? ...esa podría ser una causa, bueno sea como sea me alegro de que lo hayas solucionado.
Saludos
|
|
|
6888
|
Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Compartan aquí sus snippets)
|
en: 8 Agosto 2014, 18:11 pm
|
Creo que algunas de estas utilidades están ya presentes dentro de lo que es la super colección de Elektro, pero bueno supongo que un indentador XML nunca se ha visto por aquí así que aquí va: precisamente estoy harto de que cierta utilidad de Microsoft me genere los archivos de manifiesto sin ningún tipo de indentación, esto me sirve . EDITO: en un principio iba a ahorrarme comentarios sobre posibles mejoras de código o etc, pero hay un fallo importante que se debe corregir, no estás liberando el memorystream: Dim w As New MemoryStream()
Ni tampoco el Writer ni el Reader xD Por cierto la Class XMLTextWriter está obsoleta, en su defecto Microsoft recomienda el uso de XMLWriter. EDITO 2: Me he tomado la libertad de editar el código original enfocándolo de otra manera (aunque tampoco es tan distinto): Ejemplo de uso: Dim TextEncoding As System.Text.Encoding = System.Text.Encoding.Default Dim UnformattedXMLDocument As String = IO. File. ReadAllText("C:\Unformatted Document.xml", TextEncoding ) Dim FormattedXMLDocument As String = XMLBeautify(XMLText:=UnformattedXMLDocument, IndentChars:=New String(" "c, 2), IndentOnAttributes:=False, TextEncoding:=TextEncoding) IO. File. WriteAllText("C:\Formatted Document.xml", FormattedXMLDocument, TextEncoding )
Snippet: ''' <summary> ''' Beautifies the contents of an unindented XML document. ''' </summary> ''' <param name="XMLText"> ''' The XML text content. ''' It can be an entire document or a fragment. ''' </param> ''' <param name="IndentChars"> ''' The string that is used to indent the XML. ''' Default value is: <see cref="ControlChars.Tab"/> ''' </param> ''' <param name="IndentOnAttributes"> ''' If set to <c>true</c>, attributes will be separated by newlines. ''' Default value is: <c>false</c> ''' </param> ''' <param name="TextEncoding"> ''' The XML text encoding to use. ''' Default value is: <see cref="System.Text.Encoding.Default"/>. ''' </param> ''' <returns>The beautified XML text.</returns> ''' <exception cref="System.ArgumentNullException"></exception> Public Shared Function XMLBeautify(ByVal XMLText As String, Optional ByVal IndentChars As String = Nothing, Optional ByVal IndentOnAttributes As Boolean = False, Optional ByVal TextEncoding As System.Text.Encoding = Nothing) As String If String.IsNullOrEmpty(XMLText) Then Throw New ArgumentNullException(XMLText) End If Dim sb As New System.Text.StringBuilder Dim doc As New Xml.XmlDocument() Dim settings As New Xml.XmlWriterSettings With settings .Indent = True .CheckCharacters = True .OmitXmlDeclaration = False .ConformanceLevel = Xml.ConformanceLevel.Auto .NamespaceHandling = Xml.NamespaceHandling.Default .NewLineHandling = Xml.NewLineHandling.Replace .NewLineChars = ControlChars.NewLine .NewLineOnAttributes = IndentOnAttributes .IndentChars = If(IndentChars IsNot Nothing, IndentChars, ControlChars.Tab) .Encoding = If(TextEncoding IsNot Nothing, TextEncoding, System.Text.Encoding.Default) End With Using writer As Xml.XmlWriter = Xml.XmlWriter.Create(sb, settings) doc.LoadXml(XMLText) doc.WriteContentTo(writer) writer.Flush() Return sb.ToString End Using End Function ''' <summary> ''' Beautifies the contents of an unindented XML document. ''' </summary> ''' <param name="XMLFile"> ''' An <see cref="T:IO.FileInfo"/> that contains the XML info. ''' It can be an entire document or a fragment. ''' </param> ''' <param name="IndentChars"> ''' The string that is used to indent the XML. ''' Default value is: <see cref="ControlChars.Tab"/> ''' </param> ''' <param name="IndentOnAttributes"> ''' If set to <c>true</c>, attributes will be separated by newlines. ''' Default value is: <c>false</c> ''' </param> ''' <param name="TextEncoding"> ''' The XML text encoding to use. ''' Default value is: <see cref="System.Text.Encoding.Default"/>. ''' </param> ''' <returns>The beautified XML text.</returns> ''' <exception cref="System.ArgumentNullException"></exception> Public Shared Function XMLBeautify(XMLFile As IO.FileInfo, Optional ByVal IndentChars As String = Nothing, Optional ByVal IndentOnAttributes As Boolean = False, Optional ByVal TextEncoding As System.Text.Encoding = Nothing) As String Return XMLBeautify (IO. File. ReadAllText(XMLFile. FullName, TextEncoding ), IndentChars, IndentOnAttributes, TextEncoding ) End Function
Posibles outputs: 1º: <savedata> <SoftwareType>Freeware</SoftwareType> <SoftwareID>Moo0 FileMonitor</SoftwareID> <Version>1.11</Version> <MainWindow> <SoftwareType>Freeware</SoftwareType> <SoftwareID>Moo0 FileMonitor</SoftwareID> <Version>1.11</Version> <View F="0" E="0" D="0" RefreshFrequency="500" LogUpTo="20000" EasyDrag="1" Maximized="0" X="958" Y="453" Width="962" Height="585" KeepOnTop="0"></View> <ChangesColumnOrder length="6" _0="0" _1="1" _2="2" _3="3" _4="4" _5="5"></ChangesColumnOrder> </MainWindow> <Skin>Classic LG</Skin> </savedata>
2º: <savedata> <SoftwareType>Freeware</SoftwareType> <SoftwareID>Moo0 FileMonitor</SoftwareID> <Version>1.11</Version> <MainWindow> <SoftwareType>Freeware</SoftwareType> <SoftwareID>Moo0 FileMonitor</SoftwareID> <Version>1.11</Version> <View F="0" E="0" D="0" RefreshFrequency="500" LogUpTo="20000" EasyDrag="1" Maximized="0" X="958" Y="453" Width="962" Height="585" KeepOnTop="0"></View> <ChangesColumnOrder length="6" _0="0" _1="1" _2="2" _3="3" _4="4" _5="5"></ChangesColumnOrder> </MainWindow> <Skin>Classic LG</Skin> </savedata>
Saludos
|
|
|
6889
|
Foros Generales / Foro Libre / Re: Ofrezco mis servicios de programación. ¿necesitas algo?, ¡pues hablemos de ello!
|
en: 8 Agosto 2014, 17:50 pm
|
Es que verás, yo estoy con un proyecto, y no me vendria mal algo de ayuda, pero al igual que nunca programo en lenguajes interpretados, nunca pagaria a nadie por una linea en un lenguaje interpretado. No te molestes en intentar corregirme y decirme que esos lenguajes que usas no son interpretados, por que .NET, es una maquina virtual. Ruby, usa una maquina virtual, y Batch... bueno, batch son scripts... los scripts ya de por si, son interpretados. Buenas No me ofendes, pero ya he explicado los lenguajes que manejo, no te puedo ayudar a solucionar el problema que tienes, ¡lo siento!. Sobre lo de los intérpretes, hace poco tuvimos un debate sobre " lenguajes de código nativo" en el que ya quedaron claras nuestras posturas para ambas partes, no hay motivo para seguir discutiendo tecnicismos.
5€ por un proyecto pequeño? Espero que con proyecto pequeño te refieras a una ventana de "hola mundo" porque de ser otra cosa más complicada lo único que consigues es hacer el trabajo a precio de nada, cosa que a los demás nos obliga a hacer lo mismo, o más barato.
Pf... pues yo por 5€ haría proyectos pequeños, y con pequeños hablo de menos de 500 lineas de código. Por 10€ subiría a 750 lineas max, y así hasta cansarme. @ccrunch siento no haberte respondido a ese comentario pero la verdad me pareció muy fuera de lugar, y no quería convertir esto en un flamewar, ahora creo que no tengo más remedio que dar mi opinión al respecto. @CharlyM35 Se que ese mensaje no va dirigido a mi, lo siento por meterme donde no me llaman, la verdad es que me parece genial que estés dispuesto a ayudar a los demás sin abusar del dinero (lo mismo que intento hacer yo), pero creo que nadie debería cobrar en función de cuantas lineas de código vaya a escribir... eso me parece realmente absurdo. Por ponerte un ejemplo, hay formas en las que te podría escribir un proyecto de +3.000 lineas de código en menos de 10 minutos echando mano de los cientos de Snippets que como programador me he ido guardo para aprovecharlos en futuros proyectos (Classes y métodos rehusables de los cuales muchas superan las 1.000 lineas de código), ¿en ese caso se debería cobrar al cliente por lineas, o por esos 10 minutos de trabajo?, obviamente no sería nada ético cobrar por las lineas, ya que no me habría costado ningún esfuerzo añadirlas (quizás si adaptar el código, pero añadirlo no). ...Pues a eso es a lo que me referí por " proyectos simples", proyectos donde haya que invertir muy poco tiempo, las lineas de código que haya que invertir me es indiferente porque pueden ser tanto muchísimas instrucciones como muy pocas, depende del proyecto claro está.
Muy honesto lo que haces, aunque si vas a tomar el freelance de forma seria entones pasate por sitios dedicados a esto, tendrás mas suerte y seguro valoraran tu trabajo. Eso ya lo hago aunque la verdad es dificil hacerse un hueco entre ese tipo de servicios donde la mayoria de usuarios registrados supuestos "programadores" no son más que Bots esfadores, pero gracias por el consejo ...le puede venir bien a otros.
posiblemente de la manera en que te expresas y aunque elektro no haya puesto c++, él sepa más que tú. Creo que está mal hacer comparaciones, pero personalmente considero que una persona que esté tan cerca del low-level ha debido adquirir una gran cantidad de conocimientos que a mi me gustaría adquirir, pero que al final nunca los aprendo porque sinceramente lo estaría haciendo simplemente por curiosidad y no porque vaya a necesitar usar esos conocimientos, y esa es además una de las tantas razones por las que decidí no aprender C/C++. Saber cosas que posiblemente nunca vayas a utilizar, por interesantes que sean, eso no te ayudará en nada, y yo a lo largo de mi vida he visto como muchísimas personas deciden aprender C++ como su Main Language solamente porque leyeron que, o alguien les dijo que, o un amigo le recomendó a otro amigo que, en fín: Blah Blah Blah " C++ es el mejor, en C++ puedes hacer de todo", sin tener en cuenta realmente que si necesitarán usar todo el potencial que ofrece este lenguaje para lo que uno realmente pretende desarrollar y si realmente las características de ese lenguaje se adaptan a tus gustos, hay que elegir con cabeza, hay cientos de lenguajes ahí fuera ...una persona no se tiene porque adaptar a un lenguaje si ya existe otro lenguaje que se adapte a sus necesidades.
Hay quien hace programas no interpretados en interfaz grafica, pero a mi las interfaces me sobran. No es que no sepa hacerlas, si no que... para que? Te recuerdo que el manejo por consola también es una interfaz, porque tal y como lo dices puedes dar a pensar conceptos equivocados a gente que se esté iniciando en la programación. A diferencia de ti, yo opino lo mismo pero con la interfaz command-line, no es que no sepa hacerlo, pero a menos que me lo exigan ...yo no voy a desarrollar una App CLI para mi mismo ...¿para que?, sentiria que estoy perdiendo el tiempo ya que una GUI siempre va a aportar futuras ideas para incrementar las funcionalidades y un manejo mucho más sencillo para el enduser, eso por no hablar de que de todas formas siempre se puede implementar una especie de hibridez para que la app se pueda manejar también por command-line, así que todo me parecen ventajas. mis programas, son para mi y ya... antes los compartia en un foro, pero en ese foro ya apenas hay usuarios activos, así que no los comparto con nadie, por lo que no hago interfaces gráficas, pero claro.. hoy dia, la gente no ve mas allá de cuatro eventos.. De nuevo me parece genial que te guste la programación CLI y no voy a meterme con ello (aunque yo lo considero muy útil en ciertos casos, y primitivo en otros tantos), pero eso no me parece razón suficiente para generalizar de que las personas que programen con interfaces gráficas lo hagan por "vagos" o "malas costumbres" o algo parecido a lo que has insinuado, ya que hay demasiadas cosas que nunca se podrían desarrollar en una aplicación CLI por razones obvias de incompatibilidad ( Ej: reproducir un video o renderizar un documento PDF/multimedia ), por lo tanto la única salida es una GUI, la interfaz gráfica fue un gran avance en la programación y no puedes tachar a este tipo de programadores de lo que lo estés tachando, de echo yo he desarrollado decenas de proyectos personales command-line pero pero sin lugar a dudas prefiero una interfaz gráfica, sin lugar a dudas (eso sí, cuando se precisa, con soporte para parámetros por la consola), y eso no me convierte en peor programador, ni en vago, sino en todo lo contrario, simplemente es una puerta que abre más posibilidades a tu forma de programar, y esto va por todos.
Gracias por vuestros comentarios, Saludos!
|
|
|
|
|
|
|