Tjo!
Jag sitter på jobbet och skall försöka sätta mig in lite i ASP 3, har mest sysslat med PHP så jag e inte haj på detta.
Just nu tittar jag på ett system som vi använder på jobbet och har fastnat på lite kod. Det rör sig antagligen om klasser.
Vanligtvis när man använder klasser så initierar man ju klassen sedan anropar man funktionen, t.ex. classNamn.metod().
Men jag tittar på en kod som har en jädra massa punkter, ex. Site.Util.IsGuid(). Hur funkar detta?
Finns det kanske någon länk som kan sparka mig i rätt riktining?
kan ju vara klasser som är skrivna i asp (det går ju utmärkt, men är jobbigt), isåfall finns säkert de klasserna inkluderade i sidan via en inkludefil och där kan du då finna de olika funktionerna.
Annars är det säkert en dll som har instansierats på sidan och hur den funkar är svårt att veta, du får se om du kan hitta källkoden till dll:en.
Till systemet jag kollar på finns det en form av dokumentation över dess klasser.
Om man tar koden:
NameSite.SiteConfiguration.DataRootFolder
Så finns det en klass som heter NameSite, den har en egenskap (Public Instance Properties) som heter SiteConfiguration. Denna egenskap har värdetypen (Value type) NameSiteConfiguration.
Det finns oxå en klass som heter NameSiteConfiguration som har egenskapen (Public Instance Properties) DataRootFolder som innehåller värdet som jag vill åt.
Finns det någon som kan förklara detta närmare hur det fungerar?
Varför gör man på detta sättet?
mrblonde skrev:
kan ju vara klasser som är skrivna i asp (det går ju utmärkt, men är jobbigt), isåfall finns säkert de klasserna inkluderade i sidan via en inkludefil och där kan du då finna de olika funktionerna.
Annars är det säkert en dll som har instansierats på sidan och hur den funkar är svårt att veta, du får se om du kan hitta källkoden till dll:en.
Vissa klasser ligger definitivt i aspfiler, men jag har inte hittat alla där så det är möjligt att de då ligger i dll:er.
Sico skrev:
Tänk på att rubriken skall vara relaterat till innehållet
Ja detvar ju inte den smartaste rubriken man satt, sry.
Vi kan helt enkelt inte hjälpa dig med detta eftersom detta inte är specefika logik eller syntax problem, det är ju klasser skrivna av någon för något och du får nog helt enkelt själv lista ut hur de fungerar.
För att lära sig ASP är det nog bäst att som tidigare talare sagt, börja emd typ bli vän med response.write och jobba sig uppåt...
Ok.
Tackar ändå. Det e ju inte så att jag inte kan läsa den mer elementära ASP-koden. Det e inget problem.
Dock blev jag satt på pottan när jag såg hur de hänvisade till egenskaper och metoder genom en sorts pekare från en annan klass.
Tydligen e detta inte så vanligt eftersom ingen här verkar ha erfarenhet av någon liknande lösning.
Jag pular vidare.
Tack till alla som försökte iallafall.
OK. Om det är ASP 3 så skulle jag tippa att det är nån form av back-officegrej, typ Site Server, Business Server eller E-Commerce Server ni kör. De brukar ha ett stort antal inbyggda COM-klasser. Men isåf är det väl rimligtvis nån som kan tala om för dig exakt vad det är så att du kan kolla i dokumentation.
Beträffande din fråga om punktnotationen:
NameSite.SiteConfiguration.DataRootFolder
.. så är det inget konstigt. COM-objekt kan ha punktnotation i hur många steg som helst. Klassen (objektet) NameSite har en (statisk) Property: SiteConfiguration. SiteConfiguration i sin tur är en klass/objekt som har en (statisk) Property: DataRootFolder som också kanske är en instans av ett objekt osv ...
.. så är det inget konstigt. COM-objekt kan ha punktnotation i hur många steg som helst. Klassen (objektet) NameSite har en (statisk) Property: SiteConfiguration. SiteConfiguration i sin tur är en klass/objekt som har en (statisk) Property: DataRootFolder som också kanske är en instans av ett objekt osv ...
Jamen det låter ju najs och det som jag verkar var ute efter. Finns det kanske ngn länk eller bok (helst länk om man får välja ) om de här punknotationerna (med flera steg)?
[r.] Fattar alltså inte hur man via en Property hänvisar/pekar till en annan klass. Och vad e det för mening (men det e kanske e mer av en filosofisak ).
Och nope, det e ingen back-officegrej. Den körs på en vanlig server 2000 med IIS.
Nickemannen skrev:
Jag tycker att om man funderar på att lära sig ASP. Är det lika bra att skippa den tanken och fundera på ASP.NET istället.
Håller med dig men nu får jag tyvärr inte välja utan det e befintliga system som väljer åt mig. :/
Finns det kanske ngn länk eller bok (helst länk om man får välja ) om de här punknotationerna (med flera steg)?
Nej, det tror jag inte eftersom det inte är nåt nytt i sig. Är du intresserad av metoder/properties för objektet SiteConfiguration så får du titta i dokumentationen för den klass som SiteConfiguration tillhör (NameSiteConfiguration?). Att SiteConfiguration, i detta fallet, råkar vara en property i NameSite förändrar liksom inget. (Du skriver ju i andra inlägget att du har tillgång till dokumentationen.)
Och nope, det e ingen back-officegrej. Den körs på en vanlig server 2000 med IIS.
Jo, fast back-officegrejer brukar köra på vanliga servrar 2000 med IIS. De är bara program. (Nånstans kommer ju COM-klasserna du använder ifrån? Om de inte är egentillverkade.)
Nej, det tror jag inte eftersom det inte är nåt nytt i sig. Är du intresserad av metoder/properties för objektet SiteConfiguration så får du titta i dokumentationen för den klass som SiteConfiguration tillhör (NameSiteConfiguration?). Att SiteConfiguration, i detta fallet, råkar vara en property i NameSite förändrar liksom inget. (Du skriver ju i andra inlägget att du har tillgång till dokumentationen.)
Jo alla metoder och egenskaper har jag till de olika klasserna. Det jag med min bristande förklaringsförmåga försökte få fram e:
Jag har bara varit med om att man får fram en klass's egenskap eller metod genom
klassNamn.Metod()
inte genom
klassNamn1.klassNamn2.MetodIKlassnamn2()
På något sätt visar man väl i första klassen att den har en egenskap som hänvisar till en annan klass. Nu hittar jag inte klassbiblioteken ifråga själv så jag kan inte titta hur de har gjort där. Men själva funktionen att anropa en annan klass genom en egenskap en klass borde väl finnas beskriven någon stans? I den allmänna Asp-, VB-script- eller COM-dokumentationen (vet inte var den tillhör)? Eller det kanske finns någon tutorial om detta?
Känner mig tjatig o trög just nu, ledsen om jag verkligen e det oxå.
Med denna koden ser du vilken version av Script Engine du har. Det bör vara 5.0.
Du nämner ASP 3.0 men jag vet inte vad det är! Det är inget som nämns i någon tråd och det är förmodligen bara ett samlingsnamn där Script Enginge 5.0 är det viktigaste under IIS 3.0.... Eller är det 4.0!? Jag minns inte!
Fråga inte efter ASP 3.0 för det är ingen som fattar det! Fråga efter ScriptEngine 5.0! :-)
OT: ASP 3.0 är den version av asp-motorn som ingår i IIS 5.0. Utöver den nya scriptmotorn (som man KAN uppdatera), finns även en del nytt, exempelvis Server.Transfer och Server.Execute. Dessa metoder finns inte i IIS4 eller PWS, och dessa webbservrar kan inte uppgraderas till att klara av de metoderna. IIS 5.0, 5.1 (Win xp) eller 6.0 (Windows 2003 Server) är det som gäller då.
Men själva funktionen att anropa en annan klass genom en egenskap en klass borde väl finnas beskriven någon stans?
Bara för att ta ett exempel från ren ASP (jag vet inte om man kan skriva så här i verkligheten).
<%
Class MinKlass
Public Static Property Get MinAnslutning()
MinAnslutning=Server.CreateObject("ADODB.Connection")
End Property
End Class
sConnectionString=" whatever .."
'Punktnotation i två steg eftersom ADODB.Connection har en metod Open.
MinKlass.MinAnslutning.Open(sConnectionString)
%>
Om vi nu går vidare och bakar in MinKlass i en ny klass:
<%
Class MinNyaKlass
Public Static Property Get MinGamlaKlass()
MinGamlaKlass=new MinKlass()
End Property
End Class
sConnectionString=" whatever .."
'Nu får vi punknotation i tre steg.
MinNyaKlass.MinGamlaKlass.MinAnslutning.Open(sConnectionString)
%>
OBS: Man kan antagligen inte skriva exakt så här i rena ASP-klasser men i ett COM-object som är skrivet i C++ kan man garanterat åstadkomma det.
Eclipse skrev:
Fråga inte efter ASP 3.0 för det är ingen som fattar det!
Det finns 1,660,000 på google som verkar veta vad det är ..