A ver, tengo una duda existencial que deseo compartir con ustedes.
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:
<%
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" -->
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.
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

, ademàs el mètodo _parseJpeg no he podido aún hacerle una prueba de escritorio
Código:
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;
}
}
}
}
Por eso les hago la pregunta nuevamente, ¿qué es lo más complejo que han visto en ASP 3.0?
Saludos!