Laden...

Forenbeiträge von M@TUK Ingesamt 402 Beiträge

21.09.2017 - 13:57 Uhr

Hi,

Vielen Dank...

Das würde dann bedeuten, dass man (ohne Search oder Data Lake) alle für eine Abfrage notwendigen Werte redundant speichern und gegebenenfalls über Messaging/Events synchronisieren muss um eine performante Abfrage zu ermöglichen.

Schön langsam wird ein Schuh draus... 😃

lg

21.09.2017 - 10:45 Uhr

Hi...

Ich beschäftige mich gerade ein bisschen mit Microservices.

Wen man die Services komplett entkoppelt, dann gibt es für jedes Service eine eigene Datenbank (eventuell sogar eigene Server).

Nehmen wir mal an es gibt Services für:

CustomerManagement
OrderManagement
ProductManagement

Normale einfache CRUD-Operationen sind kein Problem.
Wo ich gerade häng sind komplexere Abfragen. In den Beispielen im Web wird sowas leider nicht behandelt.

Vom Datenbank-Schema her wäre das dann ungefähr so:

Customer hat Orders
Order hat OrderItems
OrderItem hat Product

Wie behandle ich in entkoppelten Microservices nun Abragen die "JOINS" über mehrer Tabellen benötigen würden.

z.B.
alle Kunden die in den letzten 4 Wochen Artikel der Marke "XY" gekauft haben

Wie löst man sowas wenn man die Tabellen eben nicht in einer Datenbank haben möchte.

lg
M@TUK

04.04.2017 - 16:39 Uhr

Vielen Dank für eure ausführlichen Antworten.

Ich denke ich muss mich was asp.net core bzw. das client-seitige Development betrifft noch detaillierter einlesen.

Hab zwar große Web-Applikationen mit Asp.net MVC / Knockout / Typescript entwickelt aber das ist jetzt doch ein größerer Schritt.

Bower ist nahezu tot.

Da frag ich mich aber dann warum das asp.net - Team gerade Bower als quasi Standard für das Client-Package-Management hernimmt.

lg

04.04.2017 - 13:04 Uhr

Hi...

ich wollte heute für einen Prototypen ein asp.net core 1.1 Projekt einrichten.

Technologien bzw. Libs die ich verwenden wollte:
asp.net core
typescript
jquery
knockout

Schön langsam bin ich am verzweifeln.

nuget nur noch für csharp-libs
bower für die client-libs (da muss man dann aber vorerst mal "git für windows" installieren damit überhaupt was funktioniert)

Typescript alleine geht ja noch einigermaßen (per tsconfig.json).
Aber das Handling der Definitions-Files für externe Libs (knockout, jquery) ist Wahnsinn. In asp.net-Projekten war es so, dass per Nuget alle Libs und auch die Definitionsfiles reingeholt wurden. TS-File erstellt und los geht's.

Jetzt braucht man erst mal NPM darüber muss man "Typings" installieren und darüber kann man sich dann die Definitions-Files holen (per CMD).

Kommt es nur mir so vor oder wurde hier mit VS2017/asp.net core bzw. dem Tooling hier alles verschlimmbessert?

lg

24.10.2016 - 14:41 Uhr

Hi...

Schau dir mal Quarz.net an http://www.quartz-scheduler.net

Ist ein Task/Job - Scheduler der eigentlich genau das kann was du versuchst selber zu programmieren.

lg

13.10.2016 - 15:22 Uhr

Hi...

dazu gibt es im Web viele Beispiele.
Such einfach mal nach "Linq2sql left join".

lg

14.08.2016 - 11:50 Uhr

Hi...

Rendering sollte jetzt funktionieren (Settings waren noch auf local gedreht...).

Den Reportviewer der SSRS gibt's ja momentan nur für Winforms und Webform. Es gibt von MS nicht mal eine richtige MVC-Version. Bedeutet, man braucht immer eine Infrastruktur und Technologie die diesen Reportviewer unterstütz. Und genau das hat mich gestört.

Ob man dieses Service dann von einer ASP.net MVC-App, UWP, WPF oder einer nativen IOS oder Andriod-App aus aufruft ist eigentlich egal. Also auch ob der Aufruf von einem Server oder Client kommt. Das Service erhält nur die Report-Definition, die Daten und liefert das Ergebnis zurück. Auch was man damit dann macht ist egal (per Mail versenden, im FS speichern, Anzeigen, Downloaden,...)

Server-Reports über MSSQL wäre natürlich eine Option aber was ist wenn man mit MongoDB oder DocumentDB arbeitet und keinen SQL-Server mit Reporting-Services zur Verfügung hat oder haben kann. Dann wird's schon schwieriger...

14.08.2016 - 10:36 Uhr

Hi...

Ich möchte hier ein kleines Side-Projekt vorstellen.
Da es sich um eine interne Entwicklung handelt kann ich (noch) nicht fix sagen ob is es public machen darf, deswegen erstmal im Entwicklungs-Forum und nicht in Projekte.

Wir verwenden den Reportviewer und RDLC-Berichte für unsere PDF, Druck und Export-Aufgaben. Da wir gerne mit Asp.net core und Azure App Services arbeiten möchten und z.B. bei Azure App Services der Reportviewer nicht funktioniert (PDF-Erstellung) hab ich etwas experimentiert und ein RDLC-Rendering Service ist dabei rausgekommen.

Im Groben ein Reportviewer hinter einer API. Die API bekommt das RDLC-XML, Daten, Parameter, Settings und man erhält als Ergebnis den fertig generierten Report (PDF, Excel, Word, Tiff). Es ist damit egal ob wir in Azure hosten oder welche Technologie wir verwenden. Unsere PHP-Devs habens auch schon per PHP angesprochen. Es ist somit auch die Plattform egal (.net, PHP, Python, Javascript, Java,...) man muss "lediglich" ein RDLC-Dokument erstellen können.

Ich hab mal einen kleinen Test-Client online gestellt.
http://rdlcservice.azurewebsites.net/
Damit könnt ihr ein wenig rumprobieren.

Auch wens derzeit noch keinen Source-Code gibt würd ich mich über allgemeines Feedback zu diesem Service freuen.

lg

24.03.2016 - 21:24 Uhr

Hi...

nach weiteren 1,5 Stunden bin ich der Lösung bzw. dem Problem auf der Spur.

Das Problem liegt so wie es aussieht NICHT am XmlSerializer.
Ich habe in einen MemoryStream serealisiert und diesen dann gleich an ein Webservice gesendet.

Wenn ich das XML mit einem FileStream auf die Platte schreiben lasse passt das XML und es hat keine Fehler. Es drüfte also nur am MemoryStream liegen.

lg

24.03.2016 - 20:06 Uhr

Hi...

ich hab aktuell ein Problem mit dem XmlSerializer und ich komm einfach nicht dahinter woran das liegt.

Ich verwende den XmlSerializer um aus einem Objekt mit Unterobjekten ein XML zu generieren.

Das hat bis vor kurzem problemlos funktioniert.

Seit 2 Tagen ist es aber so, dass das generierte XML korrupt ist.
Es wurde aber nichts geändert.

Ab einer gewissen Größe/Länge des XML-Dokuments zerschießt es das XML, es fehlt mitten drin einfach ein großer Teil.

Das wäre ein Bestandteil des XML:

 <Message>
    <MessageID>123</MessageID>
    <OperationType>Update</OperationType>
    <Product>
      <SKU>4711</SKU>
      <StandardProductID>
        <Type>EAN</Type>
        <Value>22345124</Value>
      </StandardProductID>
      <Condition>
        <ConditionType>New</ConditionType>
      </Condition>
      <DescriptionData>
        <Title>Artikel</Title>
        <Brand>marke</Brand>
        <Description>Beschreibungstext</Description>
        <Manufacturer>sembella</Manufacturer>
        <MfrPartNumber>23423434</MfrPartNumber>
      </DescriptionData>
      <ProductData>
        <Home>
          <ProductType>
            <FurnitureAndDecor />
          </ProductType>
        </Home>
      </ProductData>
    </Product>
  </Message>

Hier der fehlerhafte Teil:

  <Message>
    <MessageID>14</MessageID>
    <OperationType>PartialUpdate</OperationType>
    <Product>
      <SKU>2424234</SKU>
      <StandardProductID>
        <Type>EAN</Type>
        <Value>234214</Value>
      </StandardProductID>
      <Condition>
        <ConditionType>New</ConditionType>
      </Condition>
      <DescriptionData>
        <Title>artikel</Title>
        <Brand>marke</Brand>
        <Description>beschreibung
 </Description>
        <BulletPoint>bulletpint</BulletPoint>
       ...d.
Beschreibung vom einem weiteren Artikel</Description>
        <Manufacturer>marke</Manufacturer>
        <MfrPartNumber>21342341</MfrPartNumber>
      </DescriptionData>
      <ProductData>
        <Home>
          <ProductType>
            <FurnitureAndDecor />
          </ProductType>
        </Home>
      </ProductData>
    </Product>
  </Message>

Beim Bulletpoint Element sollten eigentlich noch weitere kommen und "Beschreibung von einem weiteren Artikel" kommt von einem Element dass duzende Elemente später kommt. Der Rest dazwischen ist einfach weg.

Ich hab schon probiert das XML ohne Daten, also mit "leeren" Objekten zu generieren mit dem selben Ergebnis. Es kann also nicht an irgendwelchen Sonderzeichen liegen.

Ich suche und probiere seit Stunden und komm auf keinen grünen Zweig.
Hatte das schon mal wer? Woran könnte das liegen?

THX,lg

01.02.2016 - 08:40 Uhr

json2csharp biete so eine Funktionalität an.

Visual Studio kann sowas auch.
JSON kopieren und dann Bearbeiten => Inhalte einfügen => JSON als Klassen einfügen

lg

28.10.2015 - 08:45 Uhr

Hi...

Wie ist euer Arbeitsplatz eingerichtet?
Arbeitet ihr im Sitzen (normaler Schreibtisch mit Sessel) oder im Stehen (Standing Desk) oder beides?

Da ich immer wieder Probleme mit Verspannungen im Rücken habe, bin ich am Überlegen ob nicht ein Standing Desk etwas Abhilfe schaffen würde.

lg

27.10.2015 - 13:48 Uhr

Hi...

bei mir tuts auch das Dev-Notebook als Dev-SQL-Server. Läuft ein SQL Express drauf. Der muss aber nicht von Außen erreichbar sein.

Produktive Projekte würd ich nie selber (aus dem "Wohnzimmer") hosten.
Für ein paar Euros pro Monat gibst bei Hostern schon brauchbare Virtual-Server die alles bieten was man braucht.

Hier aber worauf ich noch achten würde:

  • Internet-Provider haben gerne (zumindest in der Vergangenheit) in den AGB Klauseln drinnen die den Betrieb eines Servers verbieten.

  • fixe IP vorhanden oder dynamische IP?

  • Bandbreite für Down/Upload? Meistens ist die Bandbreite für den Upload um einiges niedriger. Was bedeuten würde dass der Server fürs Rausschicken der Daten auch um einiges länger braucht (Performance...)

21.10.2015 - 12:00 Uhr

H..

Soviel ich weiß kriegt der Subreport die Daten über einen Callback bzw. Event.

http://blogs.msdn.com/b/sqlforum/archive/2011/01/03/walkthrough-add-a-subreport-in-local-report-in-reportviewer.aspx

Bzw. google mal nach reportviewer subreport da gibt's sicherlich einiges an Anleitungen.

07.10.2015 - 12:56 Uhr

oder ein SignalR Popup usw.

genau das meinte ich mit WebSocket-Verbindung.

Danke für das Feedback.

lg

07.10.2015 - 11:48 Uhr

Hi...

ich verstehe den Ablauf so (vielleicht ist da ja schon der Hund begraben).

Formular (Name, Strasse, Ort)
=> POST an APIController-Action
=> APIController-Action erstellt AddCommand und sendet ihn an CommandQueue
=> Service empfängt Message
=> Handler führt Command aus
=> Event wird an den EventQueue übergeben
=> usw... (event speichern, ReadModel aktualisieren, sagas....)

Validierung im Formular ist kein Problem, Validierung in der APIController-Action ist auch kein Problem, bei beiden kann ich ja sofort eine Response zurückliefern.

Wenn aber im Command die Validierung oder BL fehlschlägt, wie informiere ich dann den Client? Es gibt ja kein "return" bzw. keine direkte Verbindung zwischen Command und Client weil die Kommunikation über Messagebus läuft.

lg

07.10.2015 - 11:05 Uhr

Hi...

hat sich schon mal jemand eingehender mit CQRS und event sourcing bei asp.net mvc beschäftig?

Hab mir schon einiges an Posts und Videos dazu angesehen.

Ein paar Punkte sind mir aber noch unklar bzw. steig ich nicht dahinter wenn z.B. die "Kommunikation" über einen Service-Bus erfolgt.

  • Validierung im Client, im API-Controller, im Command/BL?
  • Wie kämen z.B. Validierungs oder BL-Exceptions zurück an den Client? Eine "Response" im herkömmlichen Sinn gibt's ja dann nicht mehr wenn das im Command/BL auftritt?
  • Selbes Response-Problem bei "Erfolg" wenn z.B. der Client bei Erfolg noch etwas tun soll (Grid reloaden, Info-Message "erfolgreich..." ausgeben...). Muss man hier auf Websockets zurückgreifen?

lg

03.10.2015 - 19:44 Uhr

Hi...

ich spiel mich grade mit (Micro)services und Message-Queues (im speziellen Azure Service Bus) und hätte eine Architekturfrage weil ich mir nicht ganz sicher bin was die "sauberste" Lösung ist.

Beispiel:

Ticket-Service (zuständig für CRUD-Operationen bei Tickets)
Notification-Service (zuständig für Senden von Email-Benachrichtigungen)

Über Ticket-Service wird nun eine neues Ticket erstellt und einem Benutzer zugewiesen. Das Ticket-Service sendet eine "neues-Ticket"-Message in den Notification-Queue.

Notification-Service empfängt die Message und soll an den Benutzer eine Email senden.

Nun gibt es meiner Meinung nach 2 Möglichkeiten:

  • Alle für das Senden der Nachricht notwendigen Daten (Benutzer und Ticket-Infos) werden direkt in der Message übergeben.

  • In der Message wird nur die Ticket-Id übergeben und das Notification-Service holt sich die notwendigen Daten vor dem Senden über z.B. eine Web-API die das Ticket-Service zur Verfügung stellt.

Welche Variante wäre die bessere?

lg

03.08.2015 - 10:33 Uhr

Hi....

schau dir mal Swagger bzw. Swashbuckle an.

https://github.com/domaindrivendev/Swashbuckle

lg

25.07.2015 - 20:47 Uhr

Hi...

hat von euch schon mal wer versucht rauszufinden wie das neue Azure Portal funktioniert?

Also weniger wie das Layout ( Blades, Parts,...) gemacht wurde sondern die Shell darunter. Im Speziellen dass man eine Shell hat und die einzelnen Module aber sandboxed in einem Iframe laufen und per "postMessage" mit der Shell kommunizieren.

Es gibt zwar ein paar Blogs wo man rauslesen kann welche Technologien verwendet wurden (Knockout, Typescript,...) und wie es im ganz Groben läuft (z.B. postMessage) aber detaillierte Infos gibt's nicht.

lg

24.07.2015 - 19:26 Uhr

Hallo Broob,

und zu deiner zweiten Meldung, ja um eine IOS-App mit Xamarin zu erstellen benötigt man zwingend einen Mac der als Build-Host irgendwo unterm Schreibtisch rumrödelt.

Auf diesem läuft afaik auch der IOS-Emulator bzw. ist an diesem das IOS-Gerät angehängt um es auf der Hardware zu testen/debuggen.

lg

03.06.2015 - 12:12 Uhr

Hi...

Meiner Meinung nach kauft/bezahlt man nicht die Keys sondern den Zugang zu diesen. Und wenn dieser Zugang abgelaufen ist hat man dementsprechend auch keinen Zugang mehr zu den Keys, egal ob angefordert/verwendet oder nicht.

Lg

02.06.2015 - 19:24 Uhr

Hi MrSparkle...

das ist so nicht richtig, es wurde und wird im Team darüber diskutiert.

Das Forum nutze ich um andere Meinungen dazu (zur Vorgehensweise nicht den Kollegen) zu bekommen.

lg

02.06.2015 - 06:54 Uhr

Hi...

vielleicht hab ich die Situation am Anfang etwas zu drastisch beschrieben und zu viele persönliche Emotionen reingebracht.

Dass es eine passende Architektur benötigt und eine gewisse Komplexität sicher notwendig ist, ist mir klar und das wird auch so gemacht.

Dass man sich wie Coder007 schreibt in einem kleinen Projekt oder Prototypen wenn Zeit ist mal "austobt" ist auch kein Thema.

Aber ich finde eben dass "so einfach wie möglich und/aber auch (nur) so komplex wie notwendig" zu entwickeln besser ist als permanent so komplex wie möglich zu arbeiten.

lg

01.06.2015 - 21:05 Uhr

Hi MrSparkle,

ich wollte keine Beurteilung meines Kollegen. Ich nur mal kurz dargestellt wie die Situation bei uns ist.

Die Frage war welche Arbeitsweise generell in anderen Firmen bevorzugt wird.

lg

01.06.2015 - 18:35 Uhr

Hi...

bei uns ist grade eine "gut/schlecht" Diskussion im Gange bezüglich der Arbeitsweise der Entwickler.

Es gibt bei uns Entwickler die ihre Entwicklungen vom Aufbau und der Komplexität her relativ simple halten aber qualitativen, wartbaren und lesbaren Code liefern und die Entwicklungen tun genau das was sie sollen. Aufgaben werden daher relativ schnell erledigt und sie haben eine gute Produktivität.

Bei einem neuen Mitarbeiter ist es nun aber so, dass jedes noch so kleine Feature zu einer Masterarbeit mutiert. Es gibt im Web teilweise so "Spielchen" wo es darum geht z.B. "Hello World" auf die höhst aufwändigste Weise zu programmieren. Genauso arbeitet er im beruflichen Umfeld. Da entsteht statt einer einfachen Klasse gleich mal ein eigenes Assembly mit duzenden Klassen und dem Einsatz von jedem erdenklichen Entwurfsmuster. Die Produktivität im Vergleich zu den anderen Mitarbeitern ist daher kaum vergleichbar weil Aufgaben teilweise ein vielfaches der normalen Zeit benötigen.

Nur wird natürlich deswegen vor allem auch in der "Führung" diskutiert. Manche halten diese Arbeitsweise für gar nicht so schlecht andere wiederum sehen dies aber als verschwendete Zeit.

Wie läuft das bei euch so? Legt ihr oder eure Firma Wert auf eine einfache, schnelle aber dennoch qualitative Arbeitsweise oder wird der "akademische" Weg mit (teilweise gar nicht notwendigen) hochkomplexen Architekturen bevorzugt?

lg

26.05.2015 - 07:29 Uhr

Hi...

entweder der Client holt sich diese Info im Hintergrund periodisch vom Server ab => Ajax

oder der Server informiert den Client bei einer Statusänderung => Websockets

lg

07.05.2015 - 17:06 Uhr

Hi...

imgur.com hat auch eine API...

https://api.imgur.com/

05.05.2015 - 08:43 Uhr

Hi,

http://www.kraken.io/ ist hier auch noch zu empfehlen.

Gibt zwar kein Photoshop-Plugin wie bei TinyPNG dafür aber ein Web-Service das man sich mieten bzw. ein freies Webinterface mit dem man einzelne Files optimieren kann.

So viel ich weiß verwenden TinyPNG und Kraken.IO zum Teil die selben Libraries für die Optimierung (z.B.: https://pngquant.org/)

02.04.2015 - 11:18 Uhr

@Abt:

gibt aber auch Situationen wo das automatische/fixe laden von Navigation-Properties (eagerloading) kontraproduktiv ist.

Ich verwende daher virtual und hole mir die Daten über "include" dazu wen ich sie wirklich brauche.

lg

02.04.2015 - 10:54 Uhr

Hi...

das liegt mit Sicherheit am automatisch generierten Code oder an der bereits bestehenden Datenbank...

Was du gerne hättest sollte eigentlich so aussehen:

public partial class User
     {
         public User()
         {
             this.Roles = new List<Role>();
         }

         public System.Guid ID { get; set; }
         public string UserAccount { get; set; }
         public virtual ICollection<Role> Roles { get; set; }
     }

public partial class Role
     {
         public Role()
         {
             this.Users = new List<User>();
         }

         public System.Guid ID { get; set; }
         public string Name { get; set; }
         public virtual ICollection<User> Users { get; set; }
     }
 
02.04.2015 - 09:57 Uhr

Hi..

_unitOfWork.Context.Users.Include("Users_Roles").Where(s => s.UserAccount == username).FirstOrDefault<User>();

Du holst dir hier nur die User mit den User_Roles aus der Datenbank.
Es wurde aber nicht angegeben, dass zu den User_Roles auch noch die Role geladen werden soll.

Du musst hier also dein "include" erweitern.

_unitOfWork.Context.Users.Include("Users_Roles.Role").Where(s => s.UserAccount == username).FirstOrDefault<User>();

Dann ist auch User.User_Roles[0].Role nicht mehr null.

lg

26.02.2015 - 16:36 Uhr

Hi Abt,

ist natürlich eine sehr interessante Info.

Würd mich interessieren ob es auch Seiten (produktiv) gibt die nach diesem Konzept arbeiten und ordentlich indiziert sind.

lg

26.02.2015 - 13:38 Uhr

Hi...

@Abt, so wie ich das interpretiere würdest du beide Teile Backend und Frontend(Storefront) mit "statischem" HTML, Javascript(Angular) und WebApi aufbauen?

Das passt vermutlich aus Sicht eines Entwicklers weil das dann eben die aktuellsten Technologien sind.

Beim Backend bin ich voll bei dir.

Nur ist es aber auch so, dass ein Webshop nur verkauft wenn die Artikel bei Suchmaschinen gut gefunden werden und da kommt es auf die Indexierbarkeit einer Webseite an. Ich bin mir nicht 100% sicher aber Google kann mit "Full-Ajax" Webseiten bzw. SPAs nicht wirklich viel anfangen.

Ich würd mich niemals trauen einen Webshop online zu stellen den Google nicht 100%ig indexen kann. Hier geht meiner Meinung nach (noch) kein Weg an serverseitig generierten Artikelseiten vorbei.

23.01.2015 - 08:00 Uhr

heute Abend 18 Uhr deutscher Zeit startet der Ticketverkauf

Hast ein Ticket bekommen?
Waren ja leider in weniger als einer Stunde ausverkauft... 😦

lg

24.11.2014 - 09:26 Uhr

Hi...

if (System.Diagnostics.Debugger.IsAttached)
{
   //...
}
else
{
   //...
}

LG

13.11.2014 - 14:06 Uhr

Hi...

ich versteh grad nicht worauf du hinaus möchtest.

Zeig mal Code-Schnippsel zur Verdeutlichung.

lg

30.10.2014 - 06:57 Uhr

Hi...

das kann auch nicht funktionieren....


$('.hideshowbutton').click(function () {
             $(this).find('.innerContent').each(function () {

             }
}

Das "this" bezieht sich auf den Button... und "find()" sucht in den Subelementen von "this" also vom Button und da gibt's aber nur noch den span.
Du musst aber im übergeordneten "tbody" suchen.

Wie du jetzt von deinem Button-Element das 3 Ebenen darüber liegende Elternelement anwählst ist aber Javascript-Grundlagen, eigentlich auch this und find()...

lg

25.10.2014 - 21:10 Uhr

Hi...

ist in dem String eine Url drinnen die zum Download führt oder soll der String "downgeloadet" also gespeichert werden?

lg

09.10.2014 - 16:41 Uhr

Hi...

das ist dann ein RDL bzw. RDLC - Format nehm ich an...

Ich hab sowas ähnliches, nämlich 2 unterschiedliche Positions-Typen im Dokument. (Artikel / Freitext).

Ich hab die Zeile für jeden Typ erstellt und dann jede Zeile über die Sichtbarkeit ein bzw. ausgeblendet je nach Positionstyp.

Für die Freitext-Zeile wurden einfach alle Spalten zu einer zusammengeführt.

lg

26.09.2014 - 14:59 Uhr

Hi...

Deshalb habe ich das hier mal als "speziellen Fall" formuliert.

Dass eine Applikation übers Netzwerk/Internet mit einem Webservice kommuniziert ist bei Weitem kein Spezial-Fall. Egal ob das Service einen Licence-Key abgleicht oder das Wetter für morgen liefert, ist das eher eine Standard-Aufgabe.

PHP/Mysql-Hoster gibt es wie Sand am Meer. Kostenlos? Keine Ahnung aber für ein paar Euro pro Monat sollte was brauchbares dabei sein. Wir werden hier für dich sicher nicht einen geeigneten Hoster suchen. Ausserdem passt "kostenlos" für den Webspace mit "Lizenz-Key" für die Applikation gefühlsmäßig nicht 😉

Ob du SOAP, REST oder was anderes für die Kommunikation verwendest musst du selber entscheiden. Ausserdem solltest du auch daran denken, dass Webservices abgesichert gehören.

Die Sache mit Lizenz-Systemen hat ja inflames2k bereits angesprochen.

Warum möchtest du für die Serverseite PHP verwenden und nicht gleich auch .net/C#?

LG

04.09.2014 - 11:34 Uhr

Hallo...

Warum findet er keine passende Methode?

Weils eben keine gibt die überschrieben werden könnte.

Weißt du überhaupt was "override" in der DelegateCommand-Klasse macht bzw. machen soll?

lg

01.09.2014 - 15:34 Uhr

Hi...

bing mal nach "c# parse csv with text qualifier".

Du musst nämlich auch bedenken dass in Text-Spalten eventuell auch noch zusätzliche Anführungszeichen (wenn auch escaped) enthalten sein können.

Und die wären mit einem "Replace()" auch alle weg.

lg

09.06.2014 - 14:52 Uhr

Hi...

es gibt bei "Extras" => "Optionen" => "Webessentials" => "Typescript" einen Schalter mit dem man die Preview an bzw. abdrehen kann...

lg

03.06.2014 - 12:59 Uhr

Hi...

das HtmlAgilityPack ist nur ein DOM-Parser und führt daher keine Scripte aus.
Deshalb kann man damit auch keine Javascript-Funktionen aufrufen.

Dafür benötigst du einen (Headless)-Browser.

lg

03.06.2014 - 07:50 Uhr

Hi...

naja, hab mir fast gedacht dass es in der Praxis dann etwas komplizierter ist als es die Theorie den Anschein macht.

Orchard-Sourcecode hab ich mir schon geholt.

02.06.2014 - 15:01 Uhr

Hi...

im Internet findet man ein paar Ansätze wie man eine MVC-Anwendung mit Hilfe von Nuget pluginfähig machen könnte. Mir würde dieser Ansatz extrem gut gefallen da man vieles "Out of the box" bekommt (Veröffentlichung, Hosting, Versionierung, Abhängigkeiten, Updaten von Packages,....).

Nur was man nirgends findet sind Infos wie dann solche Plugins entwickelt werden.

Bei Packages die nur dlls enthalten ist das jetzt nicht so das Problem (eigenes Projekt).
Was aber wenn Plugins aufwändiger sind bzw. mehr enthalten als nur dlls die in den bin-Ordner kopiert werden müssen.

Beispiel:

Theme für eine Webseite
Hier gibt's Views (cshtml), Images, Css-Dateien.
Die müssen beim Installieren des Packages ja in die Application kopiert werden.

oder
Modul für das Backend
Hier gibt's neben Controllern ebenfalls Views, JS-Files,... die in die Application kopiert werden müssen.

Wie könnte hier die Entwicklungs-Seite aussehen?
Entwickeln eines Plugins, testen/debuggen, veröffentlichen des Packages, Quellcode-Verwaltung...

Hat das schonmal wer ausprobiert?

lg

05.04.2014 - 10:54 Uhr

Hi...

lies die Fehlermeldung...

du willst der StringCollection am Index n etwas zuweisen.
Nur gibt's den Index n nicht und deswegen kommt die Fehlermeldung.

14.03.2014 - 11:18 Uhr

Hi maltek,

ich gehe mal davon aus dass du dich beim Einfügen der Source-Schnippsel vertippt hast. Das würde nämlich nicht funktionieren bzw. nicht mal kompilieren. Die ICollection nennst du "comments", aber beim Include bzw. dem Zugriff darauf verwendest du "commentList".

Und dann gibst du bei

context.Entry(_post).State = System.Data.Entity.EntityState.Modified

lediglich dem _post-Objekt einen modified-Status.
Dass auch der Comment "modified" ist kriegt das EF nicht mit...

Ich würde hier generell eher mit "UnitOfWork" arbeiten.

static void Main(string[] args)
 {
     using (var context = new Context())
     {

            PostLogic postlogic = new PostLogic(context);
            Post post = postlogic.GetPost(1);

             post.text = "Hello World";
             post.commentList.First<Comment>().text = "ich bin aktualisiert";

             postlogic.UpdatePost(post);
     }
 } 

Dann sparst du dir


context.Entry(_post).State = System.Data.Entity.EntityState.Modified;

weil der Context hier sowieso alle Änderungen tracked.

lg