blog content

ASP.Net MVC 3 auf Mono/Linux

November 18, 2011 by Marc Dürst | Categories: Programmieren | C#/.Net

(Crossposting from Encodo.com blog)

Mono-Versionen und -Kompatibilität:In letzter Zeit hatten wir von der Encodo vermehrt Berührungen mit Mono, da eines der Projekte heterogen mit Windows- und Linux-Hardware (ARM Prozessorarchitektur) operiert. Wir nehmen dies zum Anlass um den aktuellen Stand von Mono zu “protokollieren”.

In dem Projekt hat es sowohl C#-Services (Konsolen- und Service-Apps) wie auch Webanwendungen. Eine dieser Webanwendung muss sowohl auf Windows (.Net 4) wie auch auf Open-Embedded-Linux (Mono) laufen.

Da wir für die .Net-Webentwicklung von Microsoft ASP.Net MVC Framework begeistert sind, wollten wir dieses moderne Framework auch auf allen Zielplattformen verwenden können. Am liebsten natürlich die neuste MVC Version 3 (basiert auf .Net 4 und ASP.Net 4) welche auch die neue View-Engine namens “Razor” mit sich bringt. Kurz: das Neuste und coolste was Microsoft in Sachen Webframeworks zu bieten hat.

More...


Mit dem anrollenden Testen von ersten Munjari-Versionen ist mal wieder das Thema „Testen von Software“ bzw. − damit verbunden – das „Melden von Problemen“ aufgekommen. Eigentlich ist das früher oder später bei jedem Software-Projekt ein Thema. Irgendwann gibt es immer Software-Probleme zu melden.

Weiter ...


Wir von der Encodo arbeiten aktuell an Produkteunterlagen und dabei ist Frage nach Screenshots aufgekommen. Wir IT-Fritzen waren der Meinung, das ein Screenshoot unbedingt in die Unterlagen gehört. Auf die Frage hin, warum wir denn unbedingt einen Screenshot relativ prominent in den Produkte- bzw. Verkaufsunterlagen wollten, antwortet wir: “Wir verwenden Screenshots als ein sehr gewichtiges Auswahlkriterium bei der Evaluation neuer Software”.

Weiter geht's hier im Encodo-Blog ...


Arbeiten mit Newsfeeds (C#)

October 3, 2009 by Marc Dürst | Categories: C#/.Net | Programmieren

Für meine neue Frontseite von marcduerst.com habe ich etwas mit den .Net System Libraries für Syndication gearbeitet. Dabei habe ich einerseits gesehen, wie einfach das Syndicytion-API sowie der XML-API sein kann. In diesem Artikel sind einige Beispiele zu finden.

More...

Ich stand einmal mehr vor der Frage, welche der vordefinierten Systemfarben von .Net ich wohl wählen soll. Anstatt a) die Namen auswendig zu lernen oder b) in einem Property-Inspector diese nachzuschlagen, habe ich in Google folgende Seite gefunden. Netterweise zeigt die Seite sowohl Hinter- wie auch Vordergrund-Previews aller vordefinierten Farben gruppiert nach Bereich an:
http://www.blizzardskies.com/bz/colorchart.html


After some time away from InnoSetup I'm back on that tool again to build some fairly complex Installers. Most of them need to check if .Net Version 3.5 is installed on the workstation the Software is installed. If .Net 3.5 is not yet installed the Installer should show a message box to the user right at the beginning and asking if he wants to download .Net 3.5 right now. If the user clicks "Yes" the Microsoft Download-Page will be shown otherwise the Installed will be canceled.

More...

In Webapps I often ran into the problem that users clicked a submit button more then once. This was because the user did not get immediately feedback like he does in fat-client applications. To reduce these situations I was looking for some code to disable a ASP.Net button right after the user clicked on it. I found some snippets on the web built a little helper-class to reuse this code and simplify its usage.

More...

How to use the TServiceManager Frederik and myself wrote? That's what I got asked a couple of time so post here kind of a how-to.

More...


Wait-Cursor

October 26, 2006 by Marc Dürst | Categories: Programmieren | C#/.Net

Wer kennt es in der UI-Programmierung nicht: immer wieder den selben Programmcode für die Sanduhr! Hier soll eine handliche Lösung aufgezeigt werden wie man die Sanduhr mit wenigen Zeilen in eigenen Programme einbinden kann.

More...

Conditional defines

August 8, 2006 by Marc Dürst | Categories: C#/.Net | Programmieren

Habe "rausgefunden" wie man in C# die ganzen Compiler-Anweisungen im eigenen Code verwenden kann. Wichtig dabei ist, das die Anweisungen mit dem Kreuz "#" prefixt werden.

More...

Komponenten in C#

May 22, 2006 by Marc Dürst | Categories: C#/.Net | Programmieren

Um Komponenten und Properties in Visual Studio im Designer nutzen zu können, muss man diese mit entsprechenden Attributen versehen. Im folgenden einige Attribute für design-time Komponenten unter C#:

More...

Sometimes it can happen that Delphi executes the initialization block in a "wrong" order. This means that they are not executed in the order as expected from the uses clause.

This happen if no full build is done. If Delphi doesn't need to compile a unit (.dcu) it will not update the order of initialization execution.

To get around this you should do the following:

  1. Try to make initialization blocks not dependant on others.
  2. Do a full build ("Build all") to make sure the order gets linked correctly.

Btw: This problem does not only happen in Delphi but in C/C++ as well and has to do with compiler optimizations to get faster turn around time when compiling.


Was sind Collections?

Nun, alle von Euch haben schon Collections verwendet - vermutlich ohne es zu wissen :) Jedes Property im Object Inspector, welches bei einem Doppelklick darauf eine Liste ffnet, in welcher man Elemente editieren kann, ist eine Ableitung von TCollection. z.B. Spalendefintion der Gride, Felderdefinitionen von TTable, Listview-Columns etc.

Collections kann man am ehesten mit TList bzw. TObjectList vergleichen. Es handelt sich um eine Liste, welche als Eintrge weitere Klassen verwendet. Ein Collection-Item kann auch wieder beliebig viele Subcollections haben, was das ganze definitiv unübersichtlich macht ;-)

"Für was brauch ich Collections, wenn ich doch schon Listen habe?", fragt Ihr Euch vielleicht. Nun, der Gag an den Collections ist, dass sie Component-Streaming unterstützen, was heisst, dass Ihr vollen Designtime-Support darin habt. Die Collection kümmert sich entsprechend um das Speichern und Laden der Collection-Items ohne, das Ihr nur eine Zeile Load-/Save-Code schreiben müsst. Ist doch noch ganz handlich, nicht? :) Am meisten werden Collections entsprechend fr Komponenten gebraucht.

More...


Singletons sind Objekte die nur genau einmal erzeugt werden und nicht von aussen instanziert werden knnen.

Ein Logger könnte zum Beispiel so ein Singleton werden, da man z.B. aus allen Thread s immer auf denselben Logger gehen möchte und nicht pro Thread einen eigenen Logger benötigt.

Auch Borland verwendet in der VCL Singeltons. Beispiele hierfür sind die Objekte Application, Printer oder auch Clipboard. Hier soll allerdings ein etwas anderer Weg für Singelton's aufgezeigt werden, als wie die Borland macht. Der Vorteil dieser Variante ist, dass es hier unmöglich ist, mehr als eine Instanz der Singelton-Klasse zu erzeugen, was beim Borland-Weg nicht der Fall ist.

More...


Dieses Pattern soll einen Weg aufzeigen, wie man auch mit Delphi eine Art Garbage Collection bzw. Managed Objects implementieren kann. Was bedeutet das? Gaaaanz einfach: das Ziel ist es, dass eine Instanziertes Objekt automatisch freigegeben (destroyed) wird, sobald es "out of Scope" (ausserhalb des Gültikkeitsbereiches) ist.

More...

In diesem Artikel geht es darum, dem ausliefern von Bugs mittels Assertions vorzubeugen. Ich denke mal, die meissten von Euch wissen, das es Assertions gibt und für was die sind, hier trotzdem ein kleiner Crashkurs.

More...

Exceptions

July 15, 2003 by Marc Dürst | Categories: Delphi | Programmieren

Mit Exceptions werden Ausnahmesituation in einem Programmablauf gekennzeichnet. D.h. es handelt sich nicht zwangsläufig um einen Fehler bzw. um etwas "Schlechtes". Je nach Programmierstil gibt es auch mehr oder weniger der "guten Exceptions". Der Umgang mit Exceptions (= Exception handling) ist für die Stabilität und Zuverlässigkeit von Programmen entscheidend. Ein sauberes und konsequentes Exceptions-Handling ist also kein nice-to-have sondern PFLICHT!

In diesem Artikel sollen die Grundlagen von Exceptions in Delphi/Pascal sowie erweiterte Möglichkeiten aufgezeigt werden.

More...


Methodenaufrufe absichern

March 15, 2003 by Marc Dürst | Categories: Programmieren | Delphi

Mal wieder etwas zum Thema stabiler Code. Ihr kennt das Problem, wenn eine Objekt nicht sauber instanziert wurde, weil z.B. der Konstruktor (Create()) mal wieder vergessen wurde. Nun wollen wir versuchen, unsere Klasse etwas abzusichern, dass sie nicht mehr einfach mit den üblichen Access-Violations crasht. Denn wenn dies passiert, kommt häufig auch der Delphi-Debuger etwas aus dem Tritt. Das Ziel soll also sein, eine saubere Assertion zu generieren, wenn das Objekt nicht sauber angelegt haben.

More...

Blog Navigation