Creo que Clipper es el único lenguaje de programación que puedo decir que lo dominé al 100%, digo cualquier libro de la versión que fuere (llegó hasta la 5.2 creo antes de ser fivewin) ya no tenía secretos. Pero ese es el único caso. Programé por años en Cobol y cuando creí que lo dominaba llegó a mis manos un libro de Cobol Avanzado que me puso en el suelo y redujo mi ponderación del 90% al 40% más o menos; lo mismo con Delphi y C que a mi parecer son lenguajes que mientras màs los aprendess más te das cuenta que te falta mucho por aprender . Pero ahora me intriga ASP 3.0.
A ver, pregunta para vosotros, ¿qué es lo más complejo que han visto en ASP?, por ejemplo el fpdf, el xelupload y los archivos de CR son interesantes por varios aspectos.
Los de CR usan mucho objetos dentro de sesiones, lo cual es algo "poco convencional" así como el uso del ActiveX
Código:
El xelupload no tiene mucho salvo el uso de las funciones AscB, InStrB, MidB, etc. Y bueno, es bastante didáctico en ese sentido, aahh, y tambien usa clases como el fpdf.<% ReportName = "Pedido.rpt" If Not IsObject (session("oApp")) Then Set session("oApp") = Server.CreateObject("CrystalRuntime.Application") End If Path = Request.ServerVariables("PATH_TRANSLATED") While (Right(Path, 1) <> "\" And Len(Path) <> 0) iLen = Len(Path) - 1 Path = Left(Path, iLen) Wend If IsObject(session("oRpt")) then Set session("oRpt") = nothing End if Set session("oRpt") = session("oApp").OpenReport(path & reportname, 1) session("oRpt").MorePrintEngineErrorMessages = False session("oRpt").EnableParameterPrompting = False userid = "xxxx" password = "yyyy" session("oRpt").MorePrintEngineErrorMessages = False session("oRpt").EnableParameterPrompting = False Set mainReportTableCollection = Session("oRpt").Database.Tables For Each Table in mainReportTableCollection Table.SetLogonInfo "xxx.xxx.xxx.xxx", "yyyy", CStr(Userid), CStr(Password) Next Set FormulaFieldCollection = Session("oRpt").formulafields set session("oFFC") = FormulaFieldCollection session("oFFC").Item(0).text = "'"&request.form("numreporte")&"'" On Error Resume Next session("oRpt").ReadRecords If Err.Number <> 0 Then Response.Write "An Error has occured on the server in attempting to access the data source" Else If IsObject(session("oPageEngine")) Then set session("oPageEngine") = nothing End If set session("oPageEngine") = session("oRpt").PageEngine End If %> <!-- #include file="SmartViewerActiveX.asp" -->
Est último aparte de su sintaxis JSSS en lugar del clásico VBS hace la implementación de una extensa clase y uso de castings que aún me tiene frustado en mi intento de agregarle fuentes


Código:
Por eso les hago la pregunta nuevamente, ¿qué es lo más complejo que han visto en ASP 3.0?this._parseJpeg = function _parseJpeg(){ var TEM = 0x01; var SOF = 0xc0; var DHT = 0xc4; var JPGA= 0xc8 var DAC = 0xcc; var RST = 0xd0; var SOI = 0xd8; var EOI = 0xd9 var SOS = 0xda; var DQT = 0xdb; var DNL = 0xdc; var DRI = 0xdd var DHP = 0xde; var EXP = 0xdf;var APP = 0xe0; var JPG = 0xf0 var COM = 0xfe; var marker=0;var length; this.id=2; if (this.Read(1,10)==0xff){ while(!this.Buffer.EOS){ marker = this.Read(1,10) while (marker==0xff){marker = this.Read(1,10)} switch(marker){ case DHP:case SOF+0:case SOF+1:case SOF+2:case SOF+3:case SOF+5: case SOF+6:case SOF+7:case SOF+9:case SOF+10:case SOF+11:case SOF+13:case SOF+14:case SOF+15: length = this.Read(2,10) this.bits = this.Read(1,10) this.height = this.Read(2,10) this.width = this.Read(2,10) this.channels = this.Read(1,10) return; case APP+0: case APP+1: case APP+2: case APP+3:case APP+4: case APP+5: case APP+6: case APP+7: case APP+8: case APP+9: case APP+10:case APP+11:case APP+12:case APP+13:case APP+14:case APP+15: case DRI:case SOS: case DHT:case DAC:case DNL:case EXP: h=this.Read(2,10)-2 this.Buffer.Position += h; break; } } } }
Saludos!