.NET

ASP.NET vs Mono

Fórumok

Besegítek egy hobbiprojektbe, amin egy-két haver dolgozik. Felmerült egy olyan kérdés, hogy lehet-e ASP.NET webformokat futtatni Monoval.

Nekem elsőre a "hülye vagy?" kezdetű szöveg jutott eszembe a problémakörről, de aztán utánanéztem, hogy van-e ilyen. Állítólag van. Gyakorlatilag viszont amikor utoljára C#-ot oktattam (<1 éve), a legutolsó gagyi WinForms beadandó sem működött Monóval.

Most hogy van ez?

C# saját párbeszédablak

Fórumok

Sziasztok!

Adott egy főprogramban egy if utasítás, aminek a hasában a fájlkiválasztó párbeszédablak eredménye van:


OpenFileDialog fileSelector = new OpenFileDialog;
...
If(fileSelector.ShowDialog()==DialogResult.OK)
{
Do Something
}

Itt az a lényeg, hogy a ShowDialog metódus feldob egy ablakot egy "Ok" meg egy "Cancel" gombbal (hogy ez most éppen fájlkiválasztó, az mindegy), de visszatérési értéke csak akkor lesz a ShowDialog()-nak, és az if kiértékelése csak akkor történik meg, ha megnyomtam az OK vagy a Cancel gombot.

Én szeretnék egy saját hasonló párbeszédablakot írni, de a saját ShowDialog metódusomat nem tudom rávenni a fenti viselkedésre.

Úgy néz ki, hogy


public class myDialog : Form
{
...
public bool resultOK;
public myDialog() {
this.resultOK=false;
}

public bool ShowDialog() {
this.Show();
OKButton.Clicked+=new EventHandler(OKButton_Clicked);
return this.resultOK;
}
private void OKButton_Clicked(object sender,EventArgs e) {
this.resultOK=true;
}
}

Szóval a resultot, amivel a ShowDialog() metódusom visszatér, a konstruktorban falsra állítom, az OK gomb megnyomása esemény állítja truera. Ezzel csak az a baj, hogy példányosításkor fals lesz, és amikor a főprogramban az ifnek a hasában meghívom a ShowDialogot, már tér is vissza falssal, és ugorja át az ifemet. Ha a konstruktorban nem állítom be, akkor meg hiszti van, hogy nem inicializált értékkel akarok visszatérni. Hogy oldom meg, hogy a ShowDialog metódus addig ne akarjon visszatérni, amíg valami esemény (OK gomb megnyomása) be nem következik?

Köszi!

Tudtok jobb ASP.NET tárhelyet, vagy közepes windows-os VPS-t?

Fórumok

Na szóval. Adott egy pár (nagyon nonprofit) projekt. Főleg hobbi cuccok, amit pár ember használ. Ezekhez keresek új tárhelyet, viszonylag kevés feltétellel. A dologról azt kell tudni, hogy egyik alkalmazás sem kritikus, de azért jobb, ha működnek, mintha nem.

- Vagy egy normális ASP.NET tárhelyre lenne szükség, vagy windowsos VPS-re (... szerverbérletre, akármi)
- de inkább VPS, mert az egyik projekthez pl. van p/invoke-olt natív DLL, amit a legtöbb shared hoszting nem annyira kedvel :)
- Mivel licenc van mindenhez, ezért egy bring your own license konstrukció nem jönne rosszul VPS, ne adj' Isten dedikált szerver esetén, mert nincs kedvem ahhoz, hogy rám terheljenek havi +25 eurót olyan dologért, ami már van
- mint mondtam, főleg hobbiprojektek, tehát nem kell ötkilences SLA, de szeretném megúszni havi max egy tízesből
- Most az "okos" megoldások sem játszanak, mert ezek között van olyan projekt, aminek (egyelőre) nem tolnám ki a forrását a vakvilágba. Jó, ha van mögötte legalább valami ismertebb cég. (False sense of security, de legalább nem izgulok annyira ;) )

Az Azure-t ismerem, nagyon jó ár-érték arányú dolog, de (nekem) túl "jó", ezért drágának találom (_ehhez_ a projekthez, amúgy vannak Azure-os cuccaim). Illetve ha egy mód van rá, ne magyar szolgáltató -- igen, előítéletes vagyok, tudom, de eddig hoszting témában csak a baj volt velük (a pontosság kedvéért a 20+ ezres kategóriával már semmi baj nincs, de lásd az Azure-os megjegyzést)

Ha valakinek van ötlete tapasztalata valamivel, legyen oly kedves, és ossza meg! :) Google-ből már összevadásztam egy csomó alternatívát, de jobban hinnék a személyes tapasztalatoknak.

Köszi!

szerk: Menet közben az OVH lowend hülyeségét nézegettem, illetve (újra) megtaláltam a TransIP nevű csodát, ahol ugyan van licencdíj, de így is kb 10k-ra jön ki, és egész korrektek voltak, addig a rövid ideig, amíg náluk voltam.

C# soap auth Cookie-val

Fórumok

Sziasztok!

Segítséget szeretnék kérni. Nincs nagy tapasztalatom c#-ban, de Delphi-vel ezt a gondomat valószínű nem tudnám megoldani. Van egy web service (.asmx), ami authentikáció után visszaad egy sütit, amelyet más ugyanitt futó web service-ekhez fel lehet használni (remélem érthető). Visual Studio ban hozzáadtam a két service referece-et. Meghívom az authentikációs service login funkcióját, ami láthatólag bejelentkezik (eddig Delphiben is ment). Ha meghívom a másik service adatlekérő funkcióját, akkor visszadob, hogy nincs bejelentkezve. Tudnátok esetleg konstruktív ötletet adni? Csupán egy egyszerű adatlekérő programot kellene készítenem, amivel az adatokat átadom pl. egy datasetnek, vagy megjelenítem egy gridben.

asp.net külön appdomain minden pluginhoz

Fórumok

Hello!

Egy olyan feladatot kellene végrehajtanom, hogy ASP.NET alatt be kellene töltenem különböző plugineket. Ez eddig még meg is van, de nekem ezeket a plugineket menet közben el is kell tudnom engedni, mivel frissíteni is kell őket. Na itt jön a feketeleves. Ugyebár, ha a fő appdomainba töltöm be, akkor nem tudom elengedni, csak ha újraindul az alkalmazás, ha a fájlt felülírom, akkor újraindul a webapp (webdevben biztosan).
Utánaolvastam a dolgoknak, és jó lenne külön appdomaint készíteni és abba betölteni (mindegyiket egy újba, mert ha belehívtam a dll-be, nem megengedhető, hogy leálljon az egész alkalmazás, vagy maga a dllben futó kód!) Viszont már az elsőt sem tudom betölteni. Ezzel próbálkozok:


AppDomainSetup domaininfo = new AppDomainSetup();
domaininfo.ApplicationBase = Server.MapPath("~") + "bin\\MeasurementDLLs";
AppDomain newDomain = AppDomain.CreateDomain(dll,null, domaininfo);
//newDomain.TypeResolve += ((s, a) =>
//    {
//        return System.Reflection.Assembly.LoadFrom(a.Name);
//    });
newDomain.Load(File.ReadAllBytes(dll));
//System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom(dll);

Ha megpróbálom betölteni, akkor File Not Found exception-t dob. Ha az eseményre feliratkozok, akkor a feliratkozáskor dob egy kivételt, pedig odáig már nem jutok el, hogy meg is próbáljam, hogy betöltsem a dll-t.
Jelenleg úgy épül fel a programom, hogy

  • van egy dll, amiben benne van a webalkalmazásom. (betölti az IIS)
  • van egy dll, amit a plugin íroi felé bocsájtok ki, hogy megfelelő interfészeket használják, melyek alapján a megfelelő osztályokat hasznlájam a plugin dllekből. Ez referálva van a webalkalmazásos dllben, ezért az IIS betölti a default appdomainbe.
  • illetve van a harmadik, maga a plugin, amit szeretnék betölteni, de nem sikerül.

Ebben kérnék segítséget, hogy mit csinálok rosszul? Esetleg mit nem vettem észre.
Kerestem Google-n de pont ilyesmit nem találtam, a példakódok meg vagy nem fordultak le vagy ugyanúgy nem működött mint a sajátom.

C# n. sor kiolvasása

Fórumok

Sziasztok!

Egy olyan problémával állok szemben, hogy egy txt állományból kellene az n. sort kiolvasnom és nem szeretném az elejéről ciklussal végig pörgetni, mivel igencsak hosszú a sor és egy többmilliószor futó szimulációnál nem előnyös folyamatosan arra várni, hogy a megfelelő sort éppen megtaláljam az adatbázisban.

Tud valaki olyan megoldást, amivel a StremaReader-em n. sorára tudom a ReadLine-t ráengedn?

Köszi

MS Visual Studio 2010 Expressel készített, el nem adott szoftver jogtisztasága

Fórumok

Talán ebben a témakörben megállja a helyét ...

Ha van egy dolgozó például "Nagy József", aki saját munkáltatója
számára ír egy programot Microsoft Visual Studio 2010 Expressben,
jogtiszta-e ha a következők teljesülnek:

- Ami szükséges program például Windows azt megvette a cég
- De a Microsoft Visual Studio 2010 Expresst, nem vette meg
hiszen az letölthető ingyen.
A kérdésem tulajdonképpen ez utóbbira vonatkozik: Microsoft Visual Studio 2010 Express
A cég a szoftvert nem adja el, viszont munkájuk során használják
a gyártásban.

Ui:
Korábban én kérdeztem ehhez hasonlót, de akkor arról volt szó, hogy a
szoftvert elakarja a cég adni. Most viszont csak használja.

Ami az én első gondolatom, hogy ez így jogtiszta. Jól gondolom?

saját validation excelben

Fórumok

Hali,

mivel VisualBasic fórum nincs, ide írom:

keresek arra lehetöséget, hogy saját "validation" (=érvényesítési ?) legördülö mezöt gyártsak.
A cél: van egy óriási tömböm termékekkel, leírásokkal és árakkal. Ezeket szeretném egy legördülö menüben egy cellában ábrázolni, persze attól függöen legyen szürve, hogy a felhasználó mit írt már be kezdöbetü(k)nek az akuális cellába. (remélem érhetöen írtam)

lehetséges ilyesmi?

elöre is köszi!

dinamikus dll betöltés C#-ban és C-ben.

Fórumok

Sziasztok!

Adott egy léptetőmotor vezérlőkártya, driver (ADVMOT.dll), annak az sdk-ja C#-ra és C-re egyaránt.
C-ben dinamikusan töltöm be a dll-t, mert nincs az sdk-ban link library(illetve majd kártya nélkül is működnie kell a programnak), a C# programok is egy köztes dll-en(AdvMotAPI.dll) keresztül dinamikusan töltik be az ADVMOT.dll-t.
.NET reflectorral bele is néztem, pl.:


[DllImport("ADVMOT.dll", EntryPoint="Acm_DevOpen", CallingConvention=CallingConvention.StdCall)]
public static extern uint mAcm_DevOpen(uint DeviceNumber, ref IntPtr DeviceHandle);

[DllImport("ADVMOT.dll", EntryPoint="Acm_AxOpen", CallingConvention=CallingConvention.StdCall)]
public static extern uint mAcm_AxOpen(IntPtr DeviceHandle, ushort PhyAxis, ref IntPtr AxisHandle);

[DllImport("ADVMOT.dll", EntryPoint="Acm_AxHome", CallingConvention=CallingConvention.StdCall)]
public static extern uint mAcm_AxHome(IntPtr AxisHandle, uint homeMode, uint DirMode);

A fenti függvényeket C-ben így töltöm be:


typedef U32 (_stdcall * Acm_DevOpen_t)(U32 DeviceNumber, PHAND DeviceHandle);
typedef U32 (_stdcall * Acm_AxOpen_t)(HAND DeviceHandle, U16 PhyAxis, PHAND AxisHandle);
typedef U32 (_stdcall * Acm_AxHome_t)(HAND AxisHandle, U32 HomeMode, U32 DirMode);

Acm_DevOpen_t Acm_DevOpen;
Acm_AxOpen_t Acm_AxOpen;
Acm_AxHome_t Acm_AxHome;

Acm_DevOpen = (Acm_DevOpen_t)GetProcAddress(hInstLibrary, "Acm_DevOpen");
Acm_AxOpen = (Acm_AxOpen_t)GetProcAddress(hInstLibrary, "Acm_AxOpen");
Acm_AxHome = (Acm_AxHome_t)GetProcAddress(hInstLibrary,"Acm_AxHome");

A problémám a következő:
A fenti eljárással a hívások működnek C-ben is: relatív motor vezérlés, general purpose IO, stb.
Ami nem akar működni, csak C#-ból, az Acm_AxHome függvény.
Alábbi teljesen egyező C# és C móricka programok közül csak a C# hajlandó működni:


C#:
uint Result;
Result = Motion.mAcm_DevOpen(0x20000000, ref DeviceHandle);
Result = Motion.mAcm_AxOpen(DeviceHandle, (UInt16)0, ref AxisHandle);
Result = Motion.mAcm_AxHome(AxisHandle, 3, 0);

C:
U32 iResult;
iResult = Acm_DevOpen(0x20000000,&devHandle);
iResult = Acm_AxOpen(devHandle,0,&axHandle);
iResult = Acm_AxHome(axHandle,3,0);

Konstansok, visszatérési értékek, minden egyezik. Az Acm_AxHome nem ad hibakódot. Látszólag ugyanaz a két program, mégsem működik, csak C#-ból. Más hívásokkal nincs gond, csak ez az egy hívás rakoncátlankodik.

A C# köztes dll-ben a .NET reflector szerint nincs semmi extra inicializálás (constructor, statikus adattag), csak a függvényeket wrappeli.

Gondoltam arra, hogy a dinamikusan betöltött dll az aktuálisan futó szálról nem értesül a DllMain-ben és esetleg ezért valami inicializáció kimarad, emiatt próbáltam úgy is hogy a betöltés után új szálat indítok, de ez sem segített.

Vajon mire nem gondoltam még? Kifogytam az ötletekből. Adjatok még tippeket. Köszi.

XP vagy .NET beépített auth form létezik-e? [C#]

Fórumok

Hi!

Tud bárki akármit arról, hogy .NET 3.5-ben van-e beépített autentikációs form?
Van egy app, ami kiosk jelleggel fut és azon a userek belépnek domain-es userrel, amit Active Directoryban ellenőriz.
Viszont az állandó élcelődés alapját szeretném elhárítani azzal, hogy az azonosítást nem én csinálom saját kódban, hanem aszondom hogy BuiltinAuth.Show(), ami eldönti, hogy az user jó jelszót adott-e meg vagy nem és visszaad egy true/false-t (nekem ennyi elég). Ilyenről tudtok-e, hogy létezik? Aki tud, kommentelje ide. (De ne csak azt, hogy tud :-)
unmanaged is jó, elbírok egy PInvoke-kal.Kösz!

Update:
valami olyan kéne mint a linugzok alatt a gui-s sudo megoldások. Nem akarom, hogy a password eljusson hozzám, a júzerek lássanak natív windows jelszó popupot, ne nekem kelljen autentikálnom. (Mert most ez megy)
Microsoft, olyan nagy kérés ez?