Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


FormulärFabrik

Postades av 2007-09-05 20:46:50 - Marcus Johansson, i forum arkitektur, Tråden har 11 Kommentarer och lästs av 1699 personer

Vill skapa en FormulärFabrik som ska hantera att skapa upp både WinForm och WebForms.
Tanken är att denna läser upp kontroller och dess egenskaper enligt vad som är specat i db och placerar ut dem på formuläret. Sedan retuneras instansen.

Ser inga problem med att göra denna för WinForms med går det att göra för WebForms?


Svara

Sv: FormulärFabrik

Postades av 2007-09-10 18:28:09 - Marcus Johansson

Som sagt fungerar för WinForms med ej för Web.

Skapar en WinForm instans med användarens rättigheter.
I db har jag mina formulär och dess inställningar.


WinForm = Factory.Create("winformName",userId);
Skapar formulär med assembly.CreateInstance(...)
kontrollerar formulärets kontroller mot användaren rättigheter.


WebForm = Factory.Create("webForm.aspx",userId);
Det fungerar inte lika bra för webForms då formulärets controll collection alltid är 0 trots att det finns flera kontroller på formuläret.

Tips någon.


Svara

Sv:FormulärFabrik

Postades av 2007-09-10 20:15:58 - Oskar Johansson

Vad är factory för något..?


Svara

Sv: FormulärFabrik

Postades av 2007-09-10 22:04:54 - Marcus Johansson

det är en klass som skapar en wepForm eller winForm instans och sätter rättighter på dess kontroller.

rättigheter kan i detta fall vara om kontrollen skall vara synlig, readonly osv.


Svara

Sv: FormulärFabrik

Postades av 2007-09-11 11:01:43 - Andreas Thorarins


factory är ett design pattern , finns en förklaring till vad det är här http://en.wikipedia.org/wiki/Factory_method_pattern


Svara

Sv:FormulärFabrik

Postades av 2007-09-11 17:43:00 - Oskar Johansson

Tänkte mer på vad factory _är_ för någon rent konkret i just det här specifika fallet. Att den fungerar i scenario a men inte scenario b säger inte så där jättemycket om vad som är felet när det enda vi vet om factory är att det är en svart låda som spottar ut objekt ;)


Svara

Sv: FormulärFabrik

Postades av 2007-09-11 18:20:16 - Marcus Johansson

Nej det är inte lätt att veta, håller med.

Det jag ville göra var att ha en central plats där jag skapade upp både windows och web forms.
Formulärens kontroller ställs in efter db konfigurationen, t e x TexBox.Visible, Språk osv.

Det som fungerarde för WinForms var att jag använde en klass som jag kallade Factory. Denna plockade in formNamn och användare objekt. Med form namn kunde jag via db utröna om det var web/win form och även info för att via reflection skapa upp detta formulär. Alltså info om varje form finns i db. Därefter hämtar jag rättigheter mha användar objektet, kontrollerar dessa inställningar mot formulärets kontroller och skickar sedan tillbaka denna instans.

Ville alltså göra liknande för WebForms. Skapa då upp två klasser till, WebFormFactory och WinFormFactory som ärver from FormFactory (döpte om Factory till detta).

WebFormFactory hanterar nu endast WebFormulär. Men då jag skapar upp min WebForm via reflection så är alltid ControlCollection tom. Kontrollerna har inte skapat än.

Har testat att invoka Page.Init med det hjälpte inte.



Svara

Sv:FormulärFabrik

Postades av 2007-09-12 10:38:35 - Oskar Johansson

Funderar lite på om du gör allting som "måste göras", jag har ett förslag: Släng ihop en enkel aspx-sida, ta sedan och kör den sidan. Titta sedan temp-mappen för asp.net och leta reda på rätt dll, öppna den med reflector och titta exakt vad asp.net sätter för egenskaper och anropar för saker. Jag undrar om du inte missat någonting någonstans i den vevan?


Svara

Sv: FormulärFabrik

Postades av 2007-09-20 12:06:58 - Marcus Johansson

Mycket bra idé. Har testat, hittar kontrollerna men de är null.


Svara

Sv:FormulärFabrik

Postades av 2007-09-20 12:22:17 - Oskar Johansson

Är inga funktioner/egenskaper som anropas eller liknande?


Svara

Sv: FormulärFabrik

Postades av 2007-09-20 12:51:51 - Marcus Johansson

Lyckades köra denna FrameworkInitialize men det krävs även något mer verkar det som .

Försökte hitta __BuildControlTree(default_aspx __ctrl) men den fanns ej. Det låter som att denna skulle kunna lösa mitt problem.



så här ser det ut då jag kör reflector.
<code>
public class default_aspx : _Default, IHttpHandler

{

// Fields

private static object __fileDependencies;

private static bool __initialized;



// Methods

public default_aspx();

private HtmlHead __BuildControl__control2();

private HtmlTitle __BuildControl__control3();

private HtmlForm __BuildControlform1();

private void __BuildControlTree(default_aspx __ctrl);

protected override void FrameworkInitialize();

public override int GetTypeHashCode();

public override void ProcessRequest(HttpContext context);

}

</code>


Svara

Sv:FormulärFabrik

Postades av 2007-09-21 16:48:08 - Göran Roseen

Hej!

Det är inte lika lätt att dynamiskt skapa kontroller i webforms som i winforms, men det går!

Läs t.ex. den här:

HOW TO: Dynamically Create Controls in ASP.NET by Using Visual C# .NET
http://support.microsoft.com/kb/317794

Annars googla på "dynamic create control winform" eller nåt...


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 764
27 959
271 761
424
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies