webForumDet fria alternativet

Trubbel med klass biblotek.

.NET

18 svar · 501 visningar · startad av Nson

Medlem sedan juni 2001145 inlägg
Frågan#1

Har fått ett massivt problem. Vill skapa en DLL fil som innehåller all kompilerad kod som jag skall använda på mina websidor. Men så klart vill det sig inte så jag vänder mig till er.

Här följer en massa kod:

--> DLL KOD <---
Namespace Test.Components
Public Class HelloVB

    Public Function SayHello() As String

        Return "Hello!"

    End Function

End Class

End Namespace
--> END DLL KOD <--

-->WEB.CONFIG <---
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation defaultLanguage="vb" debug="false" strict="false" explicit="true" batch="true" batchTimeout="15" maxBatchSize="1000" maxBatchGeneratedFileSize="3000" numRecompilesBeforeAppRestart="15">
<assemblies>
<add assembly="Engine" />
</assemblies>
</compilation>
</system.web>
</configuration>
--> END WEB.CONFIG <--

--> START.ASPX <---
<%@ Register TagPrefix="Test" Namespace="Test.Components" assembly="Engine" %>
<html>
<head>
<title>Calling a Button Event from a compiled DLL</title>
</head>
<body>
<test:HelloVB id="Test" runat="server" />
</body>
</html>
--> END START.ASPX <--

Okej nu innan alla tappar intresset till frågan.
Hur kickar jag i gång SayHello() från start.aspx ni ser att jag har testat med <test:HelloVB id="Test" runat="server" /> men det funkar inte alls.

Tanken är alltså att all kod skall ligga i dll filen och aspx sidorna endast refererar till den funktion som man behöver ha utfört.

Vad jag har förstått och fått att fungera är kod typ denna:

Dim Component As New HelloVB()
label1.text=Component.SayHello()

Men det är ju inte riktigt vad jag letar efter heller.

Hilfe ;)

Medlem sedan maj 2001329 inlägg
#2

Jag vet inte om du är medveten om att all kod man skriver till Asp.Net går att göra som kod-behind (ursäkta skall göras). Då sparas ens kod direkt till en dll-fil.

Fast i ärlighetens namn så är det ju bara GUI-funktionalitet som ligger i kodbehinden (enligt den härliga layer paragigmen). Så vi brukar göra en assembly med vår buisnesslogik som vi länkar in till GUI:t, helt enkelt genom att lägga denna i bin-katalogen och sen kallar vi på klasserna så som du skrev i andra exemplet.

För kod-behind tror jag denna sida kan vara till hjälp (orkade inte läsa igenom den själv)

http://www.dotnetjunkies.com/tutorials.aspx?tutorialid=54

Medlem sedan juni 2001145 inlägg
#3

Hmmm. dotnetjunies skrev mest om att skriva kod i codebehind i vb. Och det är inte riktigt vad jag vill göra heller. Alltså jag vill inte skapa ett flertal olika .vb filer med kod i.

Jag vill skriva en "motor" som innehåller alla funktioner för webplatsen, denna komilerad och sedan ropar man på de funktioner som man behöver genom sidan.

Hilfe igen. Men tack i alla fall ,)

Medlem sedan juni 20011 732 inlägg
#4

Hmmm. dotnetjunies skrev mest om att skriva kod i codebehind i vb. Och det är inte riktigt vad jag vill göra heller. Alltså jag vill inte skapa ett flertal olika .vb filer med kod i.

Codebehind använder du oavsett programmeringsspråk och varför du INTE skulle vilja nyttja en av de riktigt fina fördelarna i .nets struktur förstår jag inte? Självklart ska du ha vb-filer med kod i (koden kompilerar du dessutom till en .dll så dina programfiler behöver du inte lägga upp på servern).

Jag vill skriva en "motor" som innehåller alla funktioner för webplatsen, denna komilerad och sedan ropar man på de funktioner som man behöver genom sidan.

Precis, och det är just därför du SKA använda codebehind. Genom att skilja logiken (motorn) från presentationslagret får du en oerhört mycket bättre struktur (utöver alla andra fördelar med cb) på din applikation. TRO MIG, jag har provat ditt sätt en gång för länge sedan när jag inte ens visste vad cb var för något... och det är ungefär lika smidigt som att simma runt i gammal asp-goja. :) Vill du arbeta seriöst och effektivt på .net-plattformen använder du cb.

Medlem sedan juni 2001145 inlägg
#5

Okej jag känner mig övertalad ;)

Medlem sedan mars 20002 836 inlägg
#6

Vill du arbeta seriöst och effektivt på .net-plattformen använder du cb

För att jobba effektivt i code-behind KRÄVS det att du har VS.NET Studio (fr. 10 000 - ca 25 000 beroende på version).

Går ändå att skilja på presentation/logik, UTAN att använda code-behind, effektivt :e

<redigerat>
Ett exempel är IBuySpy Portal/Shop
</redigerat>

cya,
PatrikB

Medlem sedan juni 20011 732 inlägg
#7

För att jobba effektivt i code-behind KRÄVS det att du har VS.NET Studio (fr. 10 000 - ca 25 000 beroende på version).

Japp, det är sant. En av de stora pengageneratorerna när det gäller .net-strategin kommer ju att vara vs.net-licenser och då måste det naturligtvis finnas ett mervärde i produkten... för det är väl ingen lögn att påstå att en väldigt stor del av effektiviteten i .net sitter i vs.net.

Det finns dock en studentlicens för den som uppfyller det kriteriet!

Går ändå att skilja på presentation/logik, UTAN att använda code-behind, effektivt

Näh. ;) Och det där IBuySpy är ju rätt trist. Nejdå, bygger du en hemsida så är det naturligtvis inte ett krav varken med cb eller vs.net och det finns absolut en mängd fördelar i .net även för den som inte vill bygga storskaliga affärssystem!

Medlem sedan mars 20002 836 inlägg
#8

Kan hålla med om att IBuySpy är rätt trist .... men ett hyffsat bra exempel på att det GÅR att skilja på presentation/logik UTAN code-behind.

Det finns dock en studentlicens för den som uppfyller det kriteriet!

He, he ...... det önskar chefen att man gjorde :P

cya,
PatrikB

Medlem sedan juni 2001145 inlägg
#9

Sen har jag ju VS.NET, men skall i ärlighetens namn mest packat upp och installerat det.

Är man främst van vid att skriva .asp applikationer i notepad och dreamweaver så känns det rätt tufft att komma i gång med VS.NET även om jag förstår att allt blir guld och gröna skogar med det.

Vad jag egentligen ville är alltså att min webplats skulle innehålla en .dll i bin/ som innehöll all kod för sidorna och sen att alla "websidor" refererade till de funktioner som just de sidorna behövde.

Främst för enkelhetens skull. Tänk vad grymt lätt det skulle vara o ändra funktionalitet. Gillade tanken på det.

Vad jag har försått så tycker dock alla att man skall köra codebehind, vilket jag förstått främst inte är just det jag var ute efter (om jag nu inte blandar päron med äpplen).

Medlem sedan juni 20011 732 inlägg
#10

Är man främst van vid att skriva .asp applikationer i notepad och dreamweaver så känns det rätt tufft att komma i gång med VS.NET även om jag förstår att allt blir guld och gröna skogar med det.

Ja, det ÄR en rejäl tröskel att komma igång. I början ville jag nästan krypa tillbaka till trygga homesite och köra .net som på den gamla goda asp-tiden... så du är absolut inte ensam om att känna så, tvärtom! Men jag LOVAR dig att när du väl tagit dig över den första tröskeln (det tar ett tag, tålamod) så kommer du att få lön för mödan. TRO MIG! Du kommer att avancera snabbt när du väl fått till grunderna... och det finns så många hjälpmedel och smarta lösningar i vs.net som (på gott och ont) blir ett "måste" i utvecklingsarbetet.

Vad jag egentligen ville är alltså att min webplats skulle innehålla en .dll i bin/ som innehöll all kod för sidorna och sen att alla "websidor" refererade till de funktioner som just de sidorna behövde.

Code behind kompileras till assemblys, alltså .dll-filer. All kod du skriver på plattformen kompileras visserligen oavsett du använder code-behind eller inte. Men om du lägger logiken i dina aspx-filer så kompileras koden första gången någon kliver in på sidan, sedan ligger detta i serverns minne, du får alltså inte en fysisk dll-fil om du gör på det sättet.

Främst för enkelhetens skull. Tänk vad grymt lätt det skulle vara o ändra funktionalitet. Gillade tanken på det.

Det är här du tänker fel. Det är inte grymt enkelt att bygga upp en applikation på det sättet, enda anledningen till att det känns "enkelt" för dig är att det är det sätt du har arbetat på tidigare, det sätt du känner till. Einstein skulle alldeles säkert tycka det var enklare att göra en given beräkning med papper och penna än att använda miniräknare. Men det innebär ju inte att miniräknaren är ett dåligt alternativ/komplement utan det beror på att han inte har räknat med miniräknaren förut...

Än en gång, ta dig tid att tänka om, tänka nytt! För nu ska du bli en framgångsrik OO-programmerare som kan och vill dra nytta av den nya tekniken, inte en avancerad asp-scriptare... eller hur? ;) Det är ju det som är poängen med att lämna en ny teknik för något gammalt! Vill du känna dig hemma så stannar du hemma...

Vad jag har försått så tycker dock alla att man skall köra codebehind, vilket jag förstått främst inte är just det jag var ute efter (om jag nu inte blandar päron med äpplen).

Du ska använda code behind för att det är den bästa aproachen för dig som har vs.net, det är så du ska utveckla på plattformen. Lär dig rätt från början, det tjänar du på i längden för förr eller senare så kommer du till en punkt när du ändå måste använda dig av den tekniken.

Dessutom, med vs.net är det svårare att INTE använda code behind.

Medlem sedan juni 2001145 inlägg
#11

Då lämnar jag trygga dreamweaver nu och ger mig in i VS.NET.
Skall väl helt ärligt sägas att när jag startat VS.NET och lekt runt lite så känns det lite som "nej. jag tar o gör det här i dw i stället".

Även om jag nu förstår kraften i VS.NET och ser det som att det förmodligen är den rätta vägen, (det måste det vara för slantarna som företaget fick pröjsa för vs.nte :P ).

Nu till frågan var börjar jag för att komma igång med vs.net, har spanat på www.learnvisualstudio.com, mer tips på siter som är bra o spana på ?

Medlem sedan maj 2001329 inlägg
#12

Du kanske redan sett länken till quickstarten, finns ju på relaterat på får första sidan, annars är den här.

http://samples.gotdotnet.com/quickstart/aspplus/

Annat bra ställe att hitta infon i detta fallet om hela klass strukturen är i din startmeny under .Net Framework SDK kolla där in Documentation den är suverän. Lite svår att fatta ibörjan kanske men när man börja få haj på OO tänkandet har man stor nytta av den.

www.asp.net , har flera roliga länkar

happy .neting

Om jag missuppfattade din fråga och du bara vill ha visual studio info så kan jag inte hjälpa dig med länkar, men väntar spänt på andras inlägg :)

Medlem sedan mars 20002 836 inlägg
#13

För nu ska du bli en framgångsrik OO-programmerare som kan och vill dra nytta av den nya tekniken

Fast, det kan man bli ändå, utan code-behind.
Bara för att du inte använder code-behind så säger ju inte det att du lägger logiken på en .aspx sida, eller?

Finns ju en hel del som använder sig av WebMatrix för att utveckla i dotNET utan code-behind.

Har man VS.NET så kodar man ju i det och blir "tvingad" till att använda code-behind. Men, jag tror inte att det finns speciellt många privatpersoner som är villiga att punga ut med minst 10 000+ när man kan använda sig av andra verktyg som DreamWeaver MX (1/3 av kostnaden eller mindre), WebMatrix (gratis) m.m

Så alla de som alltså inte har råd med VS.NET kan alltså inte utveckla effektivt med OO?

Kika in på https://www.asp.net de som ligger bakom WebMatrix.
Många, skulle vilja säga de flesta på det forumet, är användare av WebMatrix.

cya,
PatrikB

Medlem sedan juni 20011 732 inlägg
#14

Hm, jag trodde att WebMatrix använde sig av cb. Där ser man...

Medlem sedan maj 2001329 inlägg
#15

Finns väl en gratis variant av VS till Asp.Net?

Medlem sedan mars 20002 836 inlägg
#16

Har då inte jag sett, gratis versionen. Finns en 60-dagars trial .... men, det e ju inte gratis.

Nopez, webmatrix använder inte cb.
Ett hyffsat verktyg för att koda asp.net, det är ju ändå gratis :e, och det smakar alltid bra

cya,
PatrikB

Medlem sedan juni 2000350 inlägg
#17

Håller inte på med ASP.Net men sidan nedan ger en ganska bra bild av hur det fungerar utan att blanda in olika utvecklingsmiljöer.

Creating your first Code Behind Page
"New to ASP.NET? Confused about what's code behind? Don't have Visual Studio.NET?"
http://www.mastercsharp.com/article.aspx?ArticleID=60&&TopicID=2

Medlem sedan mars 20002 836 inlägg
#18

kanon artikel!

borde ligga som en faq-länk :e

cya,
PatrikB

Medlem sedan mars 20002 836 inlägg
#19

bara en liten sak. Denna dll blir jäkligt hårt knuten till just denna aspx sida :( .....

cya,
PatrikB

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)