.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv April 2011

Facebook mit Silverlight und die Welt der Facebook-APIs

28.04.2011 19:25:37 | Kay Giza

Referent Jonathan Best von der MSDN Hotline hat einen aktuellen Webcast auf MSDN Online veröffentlicht: Wie liest man Facebook-Daten aus? Was macht man damit? Wie bringt man die Daten in Silverlight unter? Auf solche grundlegenden Fragen der Facebook-Entwicklung geht MSDN Hotline-Experte Jonathan Best in seinen rund halbstündigen Webcast ein. Gezeigt wird anhand eines Beispiels, wie man eine Facebook-App erstellt, welche Daten man wo einträgt und wie man schließlich das Gewünschte aus dem großen Netz herauszieht... [... mehr in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  Giza-Blog.de Facebook-Page | Follow Kay Giza on Twitter
Daily News on MSDN:  MSDN Aktuell
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Microsoft ist offener als Sie denken: Open Source, Standards und Interoperabilitaet

28.04.2011 10:41:10 | Kay Giza

Stimmt das? Also - die Begriffe Standards, Open Source oder Interoperabilität können sehr abstrakte Begriffe sein. Microsoft hat eine fast unüberschaubare Anzahl an Aktivitäten in dem Bereich, daher eingehen auch entsprechend viele Quellen bzw. Webseiten, wo man zu diesen Schlagwörtern Informationen findet. In diesem Blogeintrag finden Sie zahlreiche Informations-Quellen sowie weiterführende Informationen... [... mehr in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  Giza-Blog.de Facebook-Page | Follow Kay Giza on Twitter
Daily News on MSDN:  MSDN Aktuell
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Silverlight 5 Beta Is Available For Download

28.04.2011 08:07:00 | Ozgur Aytekin

Silverlight 5 continues the pace of rapid innovation, building on Silverlight 4's capabilities in the areas of rich applications and premium media experiences. With over 40 new features, the Silverlight 5 beta highlights dramatic video quality and performance improvements, as well as new capabilities that improve developer productivity.

Top Beta Features

XAML Debugging with breakpoints for binding debugging
Implicit data templates for easy UI reuse
Double (and multi) click support
GPU-accelerated XNA-compatible 3D and immediate-mode 2D API
Low-latency sound effects and WAV support
Real operating system windows and multi-display support
Significant performance improvements, fixes and much more


Silverlight 5 Top Downloads

Recommended Downloads
Visual Studio 2010 SP1 (required)
Silverlight 5 Beta Tools for Visual Studio SP1 (required)
Expression Blend Preview for Silverlight 5 (optional)
Silverlight 5 Features Document (optional)

Additional Downloads

Silverlight 5 Beta Developer Runtime for Windows
Silverlight 5 Beta Developer Runtime for Mac
Silverlight 5 Beta SDK
WCF RIA Services for Silverlight 5 Beta


http://www.silverlight.net/getstarted/silverlight-5-beta/

MSDN TV - Ausgabe 26.04.2011: Thema: Mango

27.04.2011 09:57:56 | Kay Giza

Nein - nicht April April, sondern endlich ist April und eine neue Folge von MSDN TV - Nachrichten für Entwickler - ist live. Gast in der April-Ausgabe von "MSDN TV" ist mein Kollege Frank Prengel (Technical Evangelist). Vor einigen Tagen gerade zurück von der Microsoft Web-Konferenz "MIX11" in Las Vegas berichtet er über die nächste Generation von "Windows Phone 7", Codename Mango, die ab... [... mehr in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  Giza-Blog.de Facebook-Page | Follow Kay Giza on Twitter
Daily News on MSDN:  MSDN Aktuell
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

15 Tickets für die dotnet Cologne 20011 wieder verfügbar

27.04.2011 00:08:01 | Albert Weinert

Die dotnet Cologne ist seit über 3 Wochen ausgebucht, das Interesse war größer wie das Angebot. Dies ist natürlich schön und schlecht zugleich. Jedoch hat sich in der Zwischenzeit einiges getan, denn einige Teilnehmer haben abgesagt,  und die Sponsoren haben ihre Kontigente nicht komplett ausgeschöpft.

Wir hätten alles lassen können wie es ist, dies wäre  für uns am bequemsten gewesen. Doch dies nicht unser Naturell, wir wollen der Community ja was gutes tun. Also haben wir uns entschlossen die wieder verfügbaren Tickets in den Umlauf zu bringen, auch wenn es für uns wieder mehr Arbeit bedeutet!

Somit kann sich ab dem 27. April 2011 um 16 Uhr wieder jeder anmelden, die ersten 15 erhalten ein Ticket. Wer auf der Warteliste landet braucht sich keine Hoffnungen zu machen. Bezahlt werden muss der Betrag von 55€ sofort nach der Anmeldebestätigung. Das Geld muss bis zum 3. Mai auf unserem Konto sein, danach ist es einfach zu spät. Eine Bezahlung vor Ort ist nicht möglich!

Zur Anmeldeseite der dotnet Cologne 2011: http://dotnet-cologne.de/Anmeldung.ashx

What about correlation tokens and SharePoint workflow?

26.04.2011 20:10:00 | Ozgur Aytekin

Correlation tokens are something very important in SharePoint

A correlation token is a means of uniquely identifying each instance of a workflow, modification or task. When SharePoint initiates a workflow, it does not spawn a unique set of objects. Instead, if one instance of the workflow is already running when the second initiates, the second will reuse objects from the first. Correlation token properties ensure that the single activity object is operating on the correct workflow instance and accessing the correct details about the workflow.

http://jopx.blogspot.com/2007/08/what-about-correlation-tokens-and.html

Set Site Collection Search Settings by PowerShell

26.04.2011 19:59:00 | Ozgur Aytekin

Setting your Site Collection Search Settings by Powershell, what a tongue twister, try saying that six times fast. Setting your search settings via PowerShell is not something that is immediately obvious and requires a bit of digging.

First – how do we see what settings we’ve currently got? First lets get our web and throw it into a variable to make it a bit easier to handle.
$web = get-spweb http://address

By digging down through the properties of the $web object we can see two areas that might house this : allProperties and Properties. I do not know why there are two property areas, seems a little confusing.

http://mrhodes.net/2010/09/14/set-site-collection-search-settings-by-powershell/

See# Party 2011 am Bodensee

26.04.2011 19:42:00 | Peter Bucher

Die vom .NET-Stammtisch Konstanz-Kreuzlingen (DE / CH) veranstaltete .NET Community Konferenz mit dem Namen See# Party geht in die zweite Runde. 

 

Die Rückmeldungen und Stimmen aus der ganzen .NET Community von Deutschland und der Schweiz von der ersten Veranstaltung im letzten Jahr waren so positiv, das die Usergroup gestützt durch einen Schweizer-Verein (Usergroup), eine zweite Konferenz geplant hat, die dieses Jahr am 20. August stattfindet.

- Rückblick in Form von Bildern und Blogpost-Feedback zur See# Party 2010 um einen Eindruck zu bekommen

Für ganz frühe Frühbucher gehts hier lang!

Die Agenda mitsamt ihren Sprechern und Themen sollte für jeden von euch etwas beinhalten. (Der Inhalt kann sich noch ändern, dies ist eine Kopie. (Hier gehts zum Original).
Ich habe die aus meiner Sicht herausstechenden Themen hervorgehoben.


Zeit Track 1
Web
Track 2
Mobile
Track 3
Desktop
Track 4
Cloud
08:30 Einlass
09:00 Begrüßung:
(Jürgen Gutsch, Tilo Schinke, Golo Roden)
09:15 Keynote: Eine Branche im Wandel?
(Laurin Stoll)
10:00 Pause
10:15 Sponsor Session
ASP.NET MVC 3
(Microsoft Schweiz)
Phone 7 - Did they save us from our phones?
(David Tielke)
XAML Deep Dive
(Mathias Raacke)
Cloud, On-Premise & Co – was für wen?
(Golo Roden)
11:15 Pause
11:45 SharePoint
(Thorsten Hans)
Sponsor Session
Caché
(InterSystems)
WCF 4.0 - Die Neuerungen
(David Tielke)
Die Microsoft Cloud - wolkig mit Sonnenschein
(Robert Eichenseer)
12:45 Mittagspause
13:45 Agil 2.0 - Das Agile Developement Framework
(Golo Roden)
The Pragmatic Entrepreneur
(Laurin Stoll)
Accessibility - Digitale Barrieren und wen wir damit aussperren
(Jürgen Gutsch)
SOS: Optimizing the Wire
(Hannes Preishuber)
14:45 Pause
15:15 User Interface Patterns in Silverlight
(Roland Weigelt)
WP7 Jumpstart - von 0 auf App!
(Karsten Samaschke)
Sponsor Session
PostSharp
(SharpCrafters)
Wer bin ich? - Von Active Directory zu einer Windows Azure Application
(Robert Eichenseer)
16:15 Pause
16:45 ASP.NET Dynamic Data
(Mathias Raacke)
Windows Phone 7 - Developer Tools & Toolkits
(Patrick Getzmann)
Workflow Foundation 4 - Getting Started
(Boas Enkler)
Sponsor Session
List&Label
(combit GmbH)
17:45 Pause
18:00 Große Verlosung und Abschlussveranstaltung
(Jürgen Gutsch, Tilo Schinke, Golo Roden)


Weitere, nähere Infos gibt es unter dem Blogpost von Jürgen Gutsch zur See# Party 2011 oder auf der offiziellen Seite.

Wir sehen uns dort, zur vorzeitigen Anmeldung mit Frühbucherrabatt gehts hier lang.

Lesbare Bytes

26.04.2011 18:24:00 | Martin Hey

Das Problem ist einfach umrissen: Man hat die Größe einer Datei oder (auch gern genommen) eine Größenbeschränkung in Bytes vorliegen und möchte diese dem Benutzer anzeigen. Aber nur die wenigsten Benutzer können mit der Größenangabe 1.048.576 Bytes etwas anfangen. Also möchte man die Größe dem Benutzer in ihm bekannten Größenangaben anzeigen - so wie man es von Windows kennt. Das .NET Framework selbst kennt meines Wissens eine solche Funktion nicht und daher ist es jedem Entwickler selbst überlassen, wie er diese Umrechnung vornimmt.

Auf meiner Suche nach einer Lösung für genau dieses Problem bin ich über einige Lösungsvorschläge bei stackoverflow gestolpert und einen davon fand ich extrem gut, so dass ich dem Problem und möglichen Lösungen diesen Blogpost widmen möchte.

1. Lösung: While-Loop
Dieser Ansatz wird gern genommen und liegt ja in der prozeduralen Denke auch auf der Hand: Man dividiert so lange durch 1024, bis eine Zahl übrig bleibt, die kleiner als 1024 ist. Hat man sich nun noch gemerkt, wie häufig man dies angewandt hat, so weiß man auch was man als Einheit dahinter schreiben muss.

var unit = new[] { "B", "KB", "MB", "GB", "TB", "PB" };
var index = 0;
var value = bytes;

while (value >= 1024)
{
index++;
value /= 1024;
}

var readable = string.Format("{0} {1}", value, unit[index]);

2. Lösung: Windows bemühen
Wie ich schon einleitend beschrieben habe, kann Windows diese Berechnung ja. Warum also nicht mit unmanaged Code auf die passende Windows-Funktion zugreifen? Die Shlwapi.dll stellt eine entsprechende Funktion bereit, mit der diese Formatierung vorgenommen werden kann.

[DllImport("Shlwapi.dll", CharSet = CharSet.Auto)]
public static extern long StrFormatByteSize(
long fileSize,
[MarshalAs(UnmanagedType.LPTStr)] StringBuilder buffer,
int bufferSize);


var sb = new StringBuilder(11);
StrFormatByteSize(bytes, sb, sb.Capacity);
var readable = sb.ToString();

OK, es ist eine Möglichkeit, aber keine die ich präferieren würde.

3. Lösung: Mathematisch
Und nun zu der Lösung, auf die ich zugegebenermaßen nicht gekommen bin, die ich aber sehr charmant finde. Mit Hilfe nur weniger mathematischer Funktionen lässt sich die Schleife aus der Lösung 1 ersetzen. Durch eine geschickte Kombination von Logarithmus-, Potenz- und Rundungsfunktionen lässt sich sowohl der gerundete Wert als auch die anzuzeigende Einheit ermitteln.

var unit = new[] { "B", "KB", "MB", "GB", "TB", "PB" };
var index = Convert.ToInt32(Math.Floor(Math.Log(Math.Abs(bytes), 1024)));
var value = Math.Round(bytes / Math.Pow(1024, index), 2);
var readable = string.Format("{0} {1}", value, unit[index]);

Einziger Wert für den diese Variante nicht funktioniert ist 0 Byte.

Wie ganz häufig, so gibt es auch hier viele Wege, die zum Ziel führen und es bleibt jedem selbst überlassen, welchen Weg er wählt.

Lesbare Bytes

26.04.2011 18:24:00 | Martin Hey

Das Problem ist einfach umrissen: Man hat die Größe einer Datei oder (auch gern genommen) eine Größenbeschränkung in Bytes vorliegen und möchte diese dem Benutzer anzeigen. Aber nur die wenigsten Benutzer können mit der Größenangabe 1.048.576 Bytes etwas anfangen. Also möchte man die Größe dem Benutzer in ihm bekannten Größenangaben anzeigen - so wie man es von Windows kennt. Das .NET Framework selbst kennt meines Wissens eine solche Funktion nicht und daher ist es jedem Entwickler selbst überlassen, wie er diese Umrechnung vornimmt.

Auf meiner Suche nach einer Lösung für genau dieses Problem bin ich über einige Lösungsvorschläge bei stackoverflow gestolpert und einen davon fand ich extrem gut, so dass ich dem Problem und möglichen Lösungen diesen Blogpost widmen möchte.

1. Lösung: While-Loop

Dieser Ansatz wird gern genommen und liegt ja in der prozeduralen Denke auch auf der Hand: Man dividiert so lange durch 1024, bis eine Zahl übrig bleibt, die kleiner als 1024 ist. Hat man sich nun noch gemerkt, wie häufig man dies angewandt hat, so weiß man auch was man als Einheit dahinter schreiben muss.

var unit = new[] { "B", "KB", "MB", "GB", "TB", "PB" };
var index = 0;
var value = bytes;

while (value >= 1024)
{
 index++;
 value /= 1024;
}

var readable = string.Format("{0} {1}", value, unit[index]);

 

2. Lösung: Windows bemühen

Wie ich schon einleitend beschrieben habe, kann Windows diese Berechnung ja. Warum also nicht mit unmanaged Code auf die passende Windows-Funktion zugreifen? Die Shlwapi.dll stellt eine entsprechende Funktion bereit, mit der diese Formatierung vorgenommen werden kann.

[DllImport("Shlwapi.dll", CharSet = CharSet.Auto)]
public static extern long StrFormatByteSize(
 long fileSize,
 [MarshalAs(UnmanagedType.LPTStr)] StringBuilder buffer,
 int bufferSize);


var sb = new StringBuilder(11);
StrFormatByteSize(bytes, sb, sb.Capacity);
var readable = sb.ToString();

OK, es ist eine Möglichkeit, aber keine die ich präferieren würde.

 

3. Lösung: Mathematisch

Und nun zu der Lösung, auf die ich zugegebenermaßen nicht gekommen bin, die ich aber sehr charmant finde. Mit Hilfe nur weniger mathematischer Funktionen lässt sich die Schleife aus der Lösung 1 ersetzen. Durch eine geschickte Kombination von Logarithmus-, Potenz- und Rundungsfunktionen lässt sich sowohl der gerundete Wert als auch die anzuzeigende Einheit ermitteln.

var unit = new[] { "B", "KB", "MB", "GB", "TB", "PB" };
var index = Convert.ToInt32(
    Math.Floor(Math.Log(Math.Abs(bytes), 1024)));
var value = Math.Round(bytes / Math.Pow(1024, index), 2);
var readable = string.Format("{0} {1}", value,  unit[index]);

Einziger Wert für den diese Variante nicht funktioniert ist 0 Byte.

Wie ganz häufig, so gibt es auch hier viele Wege, die zum Ziel führen und es bleibt jedem selbst überlassen, welchen Weg er wählt.

Internet Explorer 9 (IE9): Download, Fakten und Infos

23.04.2011 18:44:35 | Kay Giza

Am 15. März 2011 hat Microsoft die finale Version des Internet Explorer 9 (IE9) veröffentlicht. Ich bin lange Zeit schon Nutzer des Internet Explorers, habe auch viele Themen hier im Blog zu Microsoft Browsers behandelt. Daher starte ich hier eine kleine Blogserie rund um den Internet Explorer 9. Denn Entwicklern öffnen sich mit der neuen Browser-Version neue Welten: unter anderem bietet IE9 Unterstützung für Webtechnologien wie HTML5 und CSS3 und die Möglichkeit für Webanwendungen, die von Desktop-Anwendungen kaum noch zu unterscheiden sind. Der IE9 wurde auf... [... mehr in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  Giza-Blog.de Facebook-Page | Follow Kay Giza on Twitter
Daily News on MSDN:  MSDN Aktuell
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Species Büste (Sil) in Originalgröße selbst gebaut - DIY

22.04.2011 00:05:00 | Daniel Springwald

Letzte Woche bin ich beim Kramen im Keller auf Fotos eines älteren Projektes gestoßen, zu welchem ich bisher noch nichts im Internet veröffentlicht habe:

Eine Büste der Hauptfigur aus dem Film "Species" in Originalgröße.

Hier also die Schritt-fü-Schritt "Anleitung" zum Bau einer solchen Büste. Sowohl die Fotos als auch die zur Verfügung stehenden Werkzeuge sind von 1996 - bitte daher die schlechte Qualität der eingecannten Fotos ignorieren ;-)

 
Basis und für die Stabilität der Büste ist eine Holzplatte. Auf dieser ist ein in Maßen bewegliches Gerüst aus Holz montiert. An das Gerüst werden später nach und nach die verschiedenen Teile der Büste montiert.

 
Die Zähne bestehen aus im Backofen gehärtetem Fimo in zwei Reihen (hier nur die innere zu sehen).
Ein Großteil der Kopf-Oberflächen entsteht aus Pappmaché und wird mit PU-Schaum unterfüttert, um dem ganzen mehr Stabilität zu verleihen.

 
Hier sind die Holz-Augen und inneren Fimo-Zähne bereits eingesetzt. Die ersten Formen sind per Pappmaché modelliert (beige Bereiche).

 
PU-Schaum ist die Basis für den Unterkiefer. Großflächig aufschäumen und anschließend mit dem Cuttermesser in Form schneiden.


Die Feinmodellierung des Unterkiefers geschieht wieder mit Pappmaché. Hier sieht man auch bereits die äußeren Zahnreihen.


Holzleisten für die Stabilität des Hinterkopfes sind am Gerüst angebracht.

 
Weitere Partien des Kopfes sind ausgearbeitet. Die "Haare" am Hinterkopf bestehen aus Elektro-Leerrohren

 
"Ohr-Hörner" sind aus Draht und Pappmaché gefertigt. Die "Haare" sind fertig modelliert. Schultern bestehen (wie der Unterkiefer) aus PU-Schaum und darüber Pappmaché.


Fertig modelliert - fehlt nur noch Farbe!

Nicht täuschen lassen: Pappmaché hört sich möglicherweise instabil an, ist aber ab einer Dicke von 1-2 Millimeteren hart wie Holz.
Und so ist die Büste auch bearbeitet: Die glatten Flächen wie z.B. Stirn werden nach dem Trocknen per Schmiergelpapier bearbeitet bis sie glatt sind.

 
Die Büste hat die erste Farbgrundierung erhalten. Die Augen sind bemalt und mit einer transparenten Silikonschicht überzogen, damit sie nicht mehr hölzern wirken.


Und fertig! Leider habe ich damals noch kein Air-Brush beherrscht - die Schatten und Konturen sind daher mit dem Pinsel gemalt und wirken daher etwas unnatürlich und zu hart.


Noch einmal das ganze von der Seite.

Kostenlose MSDN Hotline erweitert den Service: Hotline-Wochen zu speziellen Produkten

20.04.2011 14:46:47 | Kay Giza

Wir haben uns eine Neuerung rund um die MSDN Hotline überlegt, der kostenlosen Telefonauskunft für Microsoft-Entwickler: ab sofort bietet unser Experten-Team zusätzlich zu seiner "normalen" Beratung auch einen speziellen Auskunftsservice zu einem jeweils wöchentlich wechselnden Fachthema oder zu einem bestimmten Microsoft-Produkt für Developer an. Diese Woche ist Visual Studio LightSwitch Thema der Hotline-Woche, nächste Woche... [... mehr Informationen in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  Giza-Blog.de Facebook-Page | Follow Kay Giza on Twitter
Daily News on MSDN:  MSDN Aktuell
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

MSDN Webcasts: Jetzt ohne Registrierung, Anmeldung, ohne Windows Live-ID, ohne Kennwort...

19.04.2011 19:09:48 | Kay Giza

Ein vielfaches Feedback der letzten Monate war es, warum man sich für einen Download unserer Webcasts - die kostenfreien Online-Referate für Entwickler, erst bei MSDN anmelden muss. Es sind ja bekanntlich die kleinen Dinge, die das Leben angenehmer machen. Also haben wir die Registrierungspflicht beim Download jedes einzelnen der zahlreichen Webcasts jetzt abgeschafft. Jetzt gibt... [... mehr auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  Giza-Blog.de Facebook-Page | Follow Kay Giza on Twitter
Daily News on MSDN:  MSDN Aktuell
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Wir gehen erneut auf Tour! MSDN On Tour - Sommer Edition: Juni 2011

18.04.2011 14:16:19 | Kay Giza

Lange Zeit war es ist still hier im Blog, ein wenig inspirierende Pause könnte man dies nennen. Natürlich hatte ich auch viel um die Ohren und war sehr auf andere fokussiert. Da ich aber schlichtweg nicht ohne meinen Blog auskomme :-) - geht's ab heute wieder weiter! Und zwar wie ich finde, mit einer guten News! Von Januar bis März 2011 waren wir in mehr als 30 Städten auf Tour und waren zu Gast bei über 40 Organisationen. Sie haben uns vor Ort wie auch Online gesagt und gezeigt – wie zufrieden Sie waren! Vielen Dank(!) für Ihr überwältigendes Interesse - damit haben wir wirklich nicht gerechnet! Daher haben wir uns entschlossen – wir gehen in die Verlängerung! Wir touren erneut durch Deutschland im Juni 2011 (01.06. bis 07.07.2011). Alle Details und wichtige News finden Sie in diesem Blogartikel auf Giza-Blog.de... [... mehr]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  Giza-Blog.de Facebook-Page | Follow Kay Giza on Twitter
Daily News on MSDN:  MSDN Aktuell
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Artikel in der aktuellen dotnetpro

18.04.2011 12:58:00 | Jörg Neumann

In der aktuellen Ausgabe der dotnetpro (5/2011) ist mein Artikel “Die Qual der Wahl: UI-Technologien im Vergleich” erschienen.

Aus dem Abstract:

Für UI-Entwickler wird die Lage zunehmend verwirrender: Da gibt es das gute alte Windows Forms, die Windows Presentation Foundation und Silverlight, und seit Neuestem entbrennt eine Diskussion über das kommende HTML5. Die spannende Frage ist nun: „Auf welche Technologie setze ich als Entwickler in Zukunft?“

dnp_052011

Best of dotnet-kicks.de in der Visual Studio 1

15.04.2011 22:27:00 | dotnet-kicks.de Blog

P1030135In der seit kurzem verfügbaren Ausgabe 02/11 der Visual Studio 1 aus dem ppedv-Verlag ist, inzwischen zum dritten Mal, eine neue Kolumne zu finden: Best of .NET-Kicks!

Hier stellen wir alle zwei Monate die besten bei uns eingestellten Artikel kurz vor. Da es sich hier um eine redaktionelle Auswahl von uns handelt, sind wir natürlich auch immer wieder für Artikel-Vorschläge offen: Schreibt uns einfach mit Link zum DNK-Eintrag, warum ein bestimmter Beitrag es verdient hätte von uns im “Best of” vorgestellt zu werden. Vielleicht könnt ihr schon in der kommenden Ausgabe euren Beitrag mit einem kurzen Abstrakt lesen – schreibt uns einfach eine E-Mail an artikel (dot) vorschlag (at) live (dot) de

AllowHtml in ASP.NET MVC3

14.04.2011 22:13:00 | Martin Hey

Meist ist es ja bei Eingabeformularen im Web gewünscht, dass eingegebene Werte beim späteren Rendern keinen Schaden anrichten. Genau dafür gibt es Request Validation. Dieses Feature sorgt dafür, dass keine Script-Tags eingegeben werden können, die später dann für Cross-Site-Scripting verwendet werden.
 
Nun gibt es aber doch auch Momente, in denen man doch möchte, dass HTML-Code in ein Textfeld eingegeben werden kann - z.B. dann wenn vom Benutzer Content für Webseiten generiert werden soll. Ein solches Anwendungsszenario ist häufig damit verbunden, dass ein Richtext-Editor zum Einsatz kommt, der dann eine normale Textarea mit entsprechenden Funktionen versieht. Typische Vertreter dafür sind TinyMCE oder auch der CKEditor. Wenn man die hier eingegebenen Daten dann versucht, an die Action zu übergeben, so wird das Ganze von der Request Validation bemerkt und eine entsprechende Fehlermeldung ausgegeben.
 

 
In der Fehlermeldung gibt es auch gleich einen Hinweis, was man ändern muss, damit man den Post trotzdem durchführen kann: Die Request-Validation für sämtliche Posts in der web.config zu deaktivieren. Diese Lösung ist nicht ganz so schlau.
 
Lösung 2, und bis MVC 2 auch die einzig andere Möglichkeit, ist es, die Request Validation für die komplette Action zu deaktivieren. Dazu setzt man einfach das ValidateInput-Attribut auf false.
 
[HttpPost, ValidateAntiForgeryToken]
[ValidateInput(false)]
public ActionResult Create(Article article)
{
// do some database logic here
return View();
}
 
Ok, diese Lösung ist schon besser, da man eine bessere Kontrolle darüber hat, für welche Aktionen es gelten soll. Aber auch das ist noch nicht ganz optimal. Hier kommt nun das AllowHtml-Attribut von ASP.NET MVC 3 zur Geltung. Damit kann man auf einzelnen Properties des Models definieren, dass für diese die Request Validation nicht durchgeführt wird, da hier HTML-Code beinhaltet sein kann.
 
public class Article
{
 public int Id { get; set; }

 [AllowHtml]
 public string Content { get; set; }
}
 
Man muss nun nicht mehr sämtliche Properties von der Request Validation ausschließen, sondern kann hier dediziert definieren, wo HTML-Code enthalten sein darf und wo nicht.

AllowHtml in ASP.NET MVC3

14.04.2011 22:13:00 | Martin Hey

Meist ist es ja bei Eingabeformularen im Web gewünscht, dass eingegebene Werte beim späteren Rendern keinen Schaden anrichten. Genau dafür gibt es Request Validation. Dieses Feature sorgt dafür, dass keine Script-Tags eingegeben werden können, die später dann für Cross-Site-Scripting verwendet werden.

Nun gibt es aber doch auch Momente, in denen man doch möchte, dass HTML-Code in ein Textfeld eingegeben werden kann - z.B. dann wenn vom Benutzer Content für Webseiten generiert werden soll. Ein solches Anwendungsszenario ist häufig damit verbunden, dass ein Richtext-Editor zum Einsatz kommt, der dann eine normale Textarea mit entsprechenden Funktionen versieht. Typische Vertreter dafür sind TinyMCE oder auch der CKEditor.

Wenn man die hier eingegebenen Daten dann versucht, an die Action zu übergeben, so wird das Ganze von der Request Validation bemerkt und eine entsprechende Fehlermeldung ausgegeben.


In der Fehlermeldung gibt es auch gleich einen Hinweis, was man ändern muss, damit man den Post trotzdem durchführen kann: Die Request-Validation für sämtliche Posts in der web.config zu deaktivieren. Diese Lösung ist nicht ganz so schlau.

Lösung 2, und bis MVC 2 auch die einzig andere Möglichkeit, ist es, die Request Validation für die komplette Action zu deaktivieren. Dazu setzt man einfach das ValidateInput-Attribut auf false.
[HttpPost, ValidateAntiForgeryToken]
[ValidateInput(false)]
public ActionResult Create(Article article)
{
// do some database logic here
return View();
}

Ok, diese Lösung ist schon besser, da man eine bessere Kontrolle darüber hat, für welche Aktionen es gelten soll. Aber auch das ist noch nicht ganz optimal.

Hier kommt nun das AllowHtml-Attribut von ASP.NET MVC 3 zur Geltung. Damit kann man auf einzelnen Properties des Models definieren, dass für diese die Request Validation nicht durchgeführt wird, da hier HTML-Code beinhaltet sein kann.

public class Article
{
public int Id { get; set; }

[AllowHtml]
public string Content { get; set; }
}

Man muss nun nicht mehr sämtliche Properties von der Request Validation ausschließen, sondern kann hier dediziert definieren, wo HTML-Code enthalten sein darf und wo nicht.

SharePoint 2010 – neue Trainings in Köln & Unterschleißheim

14.04.2011 17:25:17 | Peter Kirchner

Es ist wieder soweit! Wir haben für Sie noch einmal neue Trainingstermine zum Thema SharePoint 2010 geplant. Dieses Mal in umgekehrter Folge, das Briefing in Köln und das Camp in Unterschleißheim und hoffen, dass Sie es dadurch in Ihrem vollen Kalender unterbringen können.

Microsoft SharePoint 2010 ist die Business Plattform für Zusammenarbeit im Unternehmen und im Web. SharePoint 2010 ermöglicht es Ihnen einfach in Teams zusammen zu arbeiten. Kollegen, Partner und Kunden können auf neue und effektive Weise Informationen einfach austauschen. Zudem können sie durch die einheitliche Infrastruktur von SharePoint 2010 erheblich Kosten senken und schnell auf Business Anforderungen reagieren. Bei der Verwendung von SharePoint 2010 helfen Ihnen viele neue Funktionen und die verstärkte Integration in die neuen Office 2010-Anwendungen. Neu in SharePoint 2010 integrierte Suchtechnologien machen das Auffinden von Informationen und Personen leichter und das steigert die Produktivität der Anwender.

Briefing zu neuen Geschäftspotentialen für Entscheider am 20.06.2011 25.05.2011 in Köln

  • Potenziale für Partner durch SharePoint 2010 und Office 365
  • Integration von SharePoint in Partnerlösungen
    • Grundlagen, Vertrieb und Integration mit Visio
  • Integrationsszenarien SharePoint inhouse und Office 365 – Vorteile für Kunden
  • Technische Abgrenzung: wo macht SharePoint in Partnerlösungen Sinn?
  • SharePoint 2010 – eine durchgehende Entwicklerstory für Partner
    • Welches Know-How Ihre Entwickler aufbauen sollten
    • VS 2010, Sandboxed Solutions, Developer Dashboard, Office Integration/Entwicklung

Zum Briefing anmelden...

Entwickler-Camp für technischen Einstieg am 16.06.2011 23.05.2011 in Unterschleißheim

  • Ein technischer Überblick über SharePoint 2010
  • Die Neuerungen in SharePoint 2010 für Entwickler
    • Ribbons, Client Object Model, Silverlight, Workflows
  • SharePoint 2010 in der Cloud mit Office 365
    • Die neue Plattform für SharePoint-Lösungen
  • SharePoint 2010 – eine durchgehende Entwicklerstory für Partner
    • VS 2010, Sandboxed Solutions, Developer Dashboard, Office Integration/Entwicklung, Visio
  • 1-2-3: SharePoint beim Partner
    • Ein Fahrplan für den Wissensaufbau: was sollte man wissen und wo informieren?

Zum Camp anmelden...

Update 27.04.2011: Termine wurden geändert.

19.04.2011–Treffen der DNUG Braunschweig - SOA und die Globalisierung der IT

13.04.2011 15:31:00 | Lars Keller

Die DNUG Braunschweig trifft sich am 19.04.2011 um 19:00 im Restaurant Zucker (Tagungsraum). Uns kommt Nicolai Josuttis mit einem Vortrag über SOA besuchen.

Das 21. Jahrhundert ist das Jahrhundert der Globalisierung.
Dies gilt auch für die IT.
Systementwicklung wird immer öfter nur zu einem Teil eines sehr viel umfassenderen Ansatzes, nämlich der Wartung und Pflege von Systemlandschaften.

Für Systemlandschaften (also große Systeme, die wiederum aus kleineren Systemen mit unterschiedlichen Eigentümern bestehen) gelten aber andere Regeln als für Einzelsysteme.Und genau hier kommt SOA ins Spiel.
SOA bietet Konzepte wie lose Kopplung, hohe Interoperabilität und Service-Orientierung, die uns in die Lage versetzen, fachliche Anforderungen, die über mehrere Systeme verteilt sind, nachhaltig zu verwalten.Dabei wird zum Beispiel Heterogenität akzeptiert anstatt dieses "Problem" mit Harmonisierung zu bekämpfen (ein Kampf, den man nie gewinnen kann).

SOA ist also gar nicht tot, wie es Anfang 2009 durch die Presse geisterte. Es handelt sich vielmehr um eine Strategie, die ihre Zukunft noch vor sich hat. Allerdings ist diese Strategie weder einfach noch billig, weshalb man SOA nur dort einsetzen sollte, wo man es nicht vermeiden kann.

Aufgrund seiner Erfahrung bei der operativen Umsetzung von SOA in internationalen Firmen wird Nicolai Josuttis, Autor von "SOA in der Praxis", diese Sichtweise von SOA erläutern und anhand vieler konkreter Beispiele aus der Praxis untermauern.

Bio:
Nicolai Josuttis (http://www.josuttis.de) ist seit vielen Jahren als unabhängiger technischer Projektleiter, Systemarchitekt, Berater und Autor international tätig. Er gilt als einer der weltweit führenden Experten für die operative Umsetzung von großen strategischen Projekten in unterschiedlichen Domänen (Finanzwesen, Telekommunikation, Verkehrstechnik, Automobilbau und Maschinenbau). Er ist ein bekannter Sprecher und Autor verschiedener Bücher zur praktischen Softwareentwicklung, darunter die Standardwerke "SOA in Practice" und "The C++ Standard Library", die in viele Sprachen übersetzt wurden.

Wie immer ist dieses Event kostenlos und jeder .NET Interessierte ist herzlich willkommen!

Weitere Informationen zur DNUG Braunschweig findest du hier.

Aktion : Migration von Visual SourceSafe, Subversion oder Perforce zu Team Foundation Server

12.04.2011 10:26:56 | Christian Binder

Sie verwenden Visual SourceSafe oder eine andere Versionsverwaltung und wollen zu Team Foundation Server wechseln?

Wir unterstützen mit dem kostenlosen SourceSafe-zu-TFS-Migrationspaket plus kostenlosem Profi-Support am Telefon.

Mit dem kostenlosen VSS-zu-TFS-Migrationspaket erhalten Sie das komplette Rüstzeug, das Sie benötigen, um ihre bestehende Versionsverwaltung erfolgreich zu Team Foundation Server zu migrieren, inklusive Schritt-für-Schritt-Videoanleitung und kostenlosem Telefonsupport von den Team Foundation Server-Experten von AIT.

So geht's:

  • Downloaden Sie das kostenlose VSS-zu-TFS-Migrationspaket
  • Führen Sie die Schritt-für-Schritt-Anleitung durch, oder folgen Sie der Videoanleitung und migrieren Sie eigenständig
  • Wenn Sie stecken bleiben oder mehr wissen wollen: Holen Sie sich Hilfe! Der kostenlose Telefonsupport der Team Foundation Server-Experten von AIT hilft Ihnen gerne weiter

Einladung zum Treffen der .NET Usergroup Dresden am 27.04.2011

12.04.2011 08:52:00 | Martin Hey

Das kommende Treffen der .NET Usergroup Dresden findet am 27.04. um 18:00 Uhr statt. Wir treffen uns dieses Mal wieder in den Räumen der Communardo Software GmbH.

Thematisch widmen wir uns dieses Mal wieder den Web-Technologien etwas mehr. Diskussionsgrundlage und Beispiel soll die Anwendung BizzBingo sein. Diese verwendet unter anderem die folgenden Technologien und Frameworks:
  • ASP.NET MVC 3 mit Razor View Engine
  • Team City
  • Windows Azure
  • CQRS Architektur
  • BDD Unit Tests
  • Azure Deployment via PowerShell
  • jQuery
  • MSBuild
  • NuGet
Robert wird das Projekt vorstellen, das ursprünglich beim WebCamp im Juni 2010 in München seinen Anfang fand. Er wird auf die Technologie eingehen und auch den ein oder anderen Stolperstein. Ich denke bei dieser Themenvielfalt wird es sicher auch im Anschluss noch Bedarf und Gelegenheit für eine offene Diskussion geben.

Alle Bälle in der Luft halten

09.04.2011 13:00:00 | Jan Christian Selke

Die magischen Buchstaben, wenn es darum geht Anwendungen mit Benutzeroberflächen zu entwickeln, kennt wohl jeder: MVP.  Und wer sie nicht kennt, sollte sich schnellstmöglich damit vertraut machen! Es gibt viele schöne Beispiele hierzu, eines ist sicherlich auch das von Stefan Kölle. Woran es, meiner Meinung nach, aber wie die meisten Beispiele auch krankt, ist die Steuerung zwischen den einzelnen Views/Presenters.

Besonders deutlich wurde mir dieser Mangel, als ich vor Kurzem folgenden Quellcodeauszug sah:

public class MyClass
{
...
public void ShowOtherForm()
{
using(MyPresenter presenter = new MyPresenter())
{
presenter.Initialize();
}
}
}

public class MyPresenter()
{
public void Initialize()
{
...
this.View.Show();
}
}

Don’t do this at home, kids!

Den Presenter direkt im Code zu erzeugen bereitet mir schon ein Gefühl von Unbehagen, aber den View dann auch noch im Initialize anzuzeigen – das bereitet mir Magenschmerzen. Auf der Suche nach eleganteren Lösungen ist mir aufgefallen, dass viele Beispiele gerade in diesem Kontext Ihre Schwächen haben. Aber wie kann eine Lösung hierzu sehen?

Meine Antwort lautet: ApplicationController. Martin Fowler hats und Microsoft hat es auch.

Der ApplicationController enthält die Logik, welche View anzuzeigen ist, die vorher über die verschiedenen Presenter verteilt war. Zum Einen wird so die Logik zentralisiert zum Anderen werden damit aber auch etwaige Quellcode Dopplungen aufgehoben.

Wenn nun zwei Presenter die gleiche View anzeigen sollen, erhalten diese Presenter nur noch eine Abhängigkeit zum ApplicationController und rufen darauf eine gemeinsame Methode auf. So wird der anwendungsweite Ablauf nur noch über eine zentrale Komponente kontrolliert.

Ich habe eine Weile darüber nachgedacht, wie ich das Kind am besten beim Namen nennen kann. Dabei entstand u.a. die Idee ViewNavigator, aber letztlich trifft es der Name ViewConductor am besten. Und so sieht mein erster Versuch eines ViewConductors aus.

public class ViewConductor : IViewConductor
{
private readonly IMainView _mainView;
private readonly IMainViewService _mainViewService;
private readonly IPresenterFactory _presenterFactory;

public ViewConductor(IMainView mainView, IMainViewService mainViewService, IPresenterFactory presenterFactory)
{
_mainView = mainView;
_mainViewService = mainViewService;
_presenterFactory = presenterFactory;
}

public void OpenView<TPresenterType>() where TPresenterType : IPresenter
{
var presenter = this._presenterFactory.CreatePresenter<TPresenterType>();
presenter.Activate();
}

public void ShowPersonDetails()
{
this.OpenView<IPersonDetailPresenter>();
}
}

public class PersonDetailPresenter : IPersonDetailPresenter
{
private IPersonService _personService;

public PersonDetailPresenter(IPersonDetailView personDetailView, IPersonService personService)
{
this._personService = personService;
this.View = personDetailView;
}

public IPersonDetailView View { get; private set; }

public void Activate()
{
this.View.Presenter = this;
this.View.Show();
}
}

Ja, es ist die Anwendung eines MVP Patterns, aber müssen deshalb die Komponenten auch danach benannt werden? Ich nenne meinen Hund auch nicht Hund (oder Mr. Hund Zwinkerndes Smiley). Ist es vielleicht nicht sinnvoller die einzelnen Komponenten nach ihrer Verwendung zu benennen? Aus meiner Sicht unterstützt das zudem ein Presenter-First Vorgehen, weil der Ablauf dadurch offensichtlicher wird.

Hier werde ich mit meinem nächsten Beitrag wieder ansetzen.

Endlich kein Ladekabel Wirrwarr mehr

09.04.2011 10:52:00 | Daniel Springwald

Kleingeräte bringen meist ihr eigenes, individuelles Ladegerät mit. Wer Handy, Nintendo, Netbook etc. aufladen möchte, hat schnell überall Kabel herumliegen. Mich hat das irgendwie genervt und sah auch nicht schön aus.

Die Lösung: Ein Podest, auf welches man die zu ladenden Geräte ablegen kann. Ladegeräte und Kabel können unsichtbar aber dennoch leicht zugänglich verstaut  werden.

Das Ganze ist mit relativ wenig Aufwand zusammen gebaut. Die Materialkosten betragen ca. 15-30 Euro.

Los gehts!


Hier das Rohmaterial: Eine Holzkiste aus dem Baumarkt und 1-2 Steckdosenleisten. Nicht im Bild: Eine Holzplatte und etwas schwarze Samt-Klebefolie.


Zuerst in den Boden der Kiste ein Loch für den 240 Volt Stecker der Mehrfachsteckdose und Lüftungsschlitze schneiden - entweder per Laubsäge, Dremel oder Lasercutter.


Ungefähr so sollte es dann ausgeschnitten aussehen.


In die Kiste werden nun die Steckdosenleisten geschraubt oder geklebt

 


Jetzt noch eine Anzahl Abstandshalter zurechtschneiden. Diese sollten so lang sein, dass sie (zuzüglich der Dicke der Holzplatte) etwa 1-2cm niedriger sind, als die obere Kante der Holzkiste (gemessen von innen).


Die Abstandshalter zusammenbauen...


...und in in die Kiste montieren.


Nun die Holzplatte mit der Samt-Klebefolie bekleben...


...und so ausschneiden, dass sie genau in die Holzkiste passt. An den Rändern vorher Aussparungen für die Kabel bohren.

Fertig!

 Zusammengebaut und im Einsatz sieht das dann so aus:


Die fertige Ladekiste mit Handy, Netbook und Tablet


Alternativ ohne Netbook und dafür mit Nintendo

 

Gedankengang zur IoC Container Registrierung

07.04.2011 16:03:00 | Jan Christian Selke

Das folgenden Beispiel hat vermutlich (fast) jeder schon mal gesehen – so, oder so ähnlich zumindest, sieht eine landläufige Registrierung von Typen in einem IoC Container aus…

public TestRegistry()
{
Scan(x =>
{
x.AssembliesFromApplicationBaseDirectory();
x.TheCallingAssembly();
});

ForSingletonOf<HttpContextBase>().Use(() => new HttpContextWrapper(HttpContext.Current));
For<IMyView>().Use<MyDRYView>();
For<IService>().Use<SuperService>();
For<IRepository>().Use<WhatSoEverRepository>();
}

Es werden mehr oder viele Projekte angelegt, um eine saubere Trennung zwischen Schichten und Verantwortlichkeiten zu gewährleisten. Es dürfen alle Schichten nur über Kontrakte miteinander kommunizieren. Eine der typischen Abbildungen, die in diesem Zusammenhang häufig zu sehen ist, ist die schematische DIP Darstellung von Uncle Bob, die dem folgenden entspricht.

ClassDiagram1

Jede Schicht kommuniziert mit der unterliegenden über Kontrakte, die Abhängigkeiten werden wasserfallartig nach unten durchgereicht. Was passiert aber durch eine solche Registrierung? Die Isolation der einzelnen Schichten wird dahin gehend konterkariert, dass wir eine Über-Topschicht haben, die ALLE unterliegenden kennt.

ClassDiagram1 - Copy

Die erste Frage, die sich mir stellt: Warum trenne ich dann überhaupt in verschiedene Projektdateien? Diese Trennung ist doch schließlich ohnehin nur eine logische, die durch die Aufteilung in verscheidene Projektdateien nur unterstützt werden soll. Interessant wird eine solche Trennung erst dann, wenn das Entwicklerteam groß genug ist, dass isoliert an verschiedenen Komponenten gearbeitet wird oder aber verteilt gearbeitet wird.

Ich aber habe diese Struktur nun schließlich gewählt, also warum dann nicht die Registrierung zumindest auf die Komponenten aufteilen. Jede Komponente registriert Typen der ihr untergeordneten Komponente. Es gilt ohnehin als best-practice die Registrierung inhaltlich auf verschiedene Teilregistrierungen aufzuteilen – warum dann nicht auch auf die Komponenten?

Die Mechanism-Schicht wird also sie Registrierung für die Utility-Schicht beinhalten, die Policy-Schicht enthält die Informationen über die Mechanism-Schicht. Aufgrund der auto-discovery Mechanismen der verschiedenen Container sollte dies damit keine großes Problem darstellen.

In Zukunft werden die Registrierungen dann anders aussehen - oder aber die Anzahl der Projekte einfach eingedampft.

public WebRegistry()
{
Scan(x =>
{
x.AssembliesFromApplicationBaseDirectory();
x.TheCallingAssembly();
x.LookForRegistries();
});

ForSingletonOf<HttpContextBase>().Use(() => new HttpContextWrapper(HttpContext.Current));
For<IMyView>().Use<MyDRYView>();
}

public ServiceRegistry()
{
Scan(x =>
{
x.AssembliesFromApplicationBaseDirectory();
x.TheCallingAssembly();
});

For<IService>().Use<SuperService>();
}

public DataRegistry()
{
Scan(x =>
{
x.AssembliesFromApplicationBaseDirectory();
x.TheCallingAssembly();
});

For<IRepository>().Use<WhatSoEverRepository>();
}

Die schöne neue Welt

07.04.2011 11:47:26 | Damir Tomicic

Eigentlich recht unüblich und daher überraschend veröffentlichte Microsoft eine Woche vor der MIX-Konferenz in Las Vegas eine Stellungsname in Sachen Silverlight und HTML5 auf dem Silverlight Team Blog und bestätigte eine dagegen weniger überraschende als vielmehr erwartete Ankündigung - die Silverlight 5 Beta wird auf der MIX veröffentlicht.

[1] http://team.silverlight.net/announcement/standards-based-web-plug-ins-and-silverlight/

Die Ausführung ist insofern zusätzlich lesenswert, da die Autoren Walid Abu-Hadba, Scott Guthrie und Soma Somasegar die führenden Köpfe hinter der Strategie von Microsoft in Sachen Evangelismus und die Entwicklung von Entwicklerwerkzeugen und -Technologien sind. Strategisch ist dieser Schritt nachvollziehbar - eine klare Kommunikation im Vorfeld einer öffentlich wirksamer Konferenz wie MIX ist die Lektion, die Microsoft schmerzlich mit der PDC-Konferenz im letzten Jahr gelernt hat. Eine nicht ausreichend erläuterte Aussage und schon hat man mit einer Masse an Deutungen im Netz und in der Presse zu kämpfen.

Aktueller Trend in der Software-Entwicklung erinnert mich an die alten Cross Media Publishing Zeiten am Anfang des Jahrhunderts, als die Fokussierung auf medienneutrale Speicherung und die Verteilung auf diversen Ausgabekanälen die Blütezeit der ECM/WCM Systeme ankündigte.

[2] http://de.wikipedia.org/wiki/Cross_Media_Publishing

Damals waren die Ausgabekanäle etwas anders definiert - hauptsächlich ging es um die Vereinheitlichung der Web- und Print-Ausgaben. Auch wir haben mit AxCMS.net schon immer die Strategie verfolgt im Frontend (Kundenprojekt) vollkommen unabhängig zu bleiben - ob Microsoft ASP.NET mit MVC oder Silverlight bereichert, oder nun die Kunden HTML5 wollen - die WCM-Engine soll es verwalten und ausgeben können. Dies ist die einzig sinnvolle Strategie ..

[3] http://de.AxCMS.net

Heute sind wir sowohl in der Technik- als auch in der Geschäftswelt einen ganz großen Schritt weiter und haben mit dem aktuellen Cross-Platform Trend eine neue Dimension der Komplexität erreicht. Einfacher wurde es nicht ..

Um die Vielzahl der heutigen Geräte in Desktop-, Mobil- und Embedded-Bereichen mit unterschiedlichen Betriebssystemen und Applikationen zu bedienen geht kein Weg an HTML in der Version 5 kombiniert mit JavaScript vorbei. Es ist insofern nur konsequent, dass Microsoft die verbesserte Unterstützung für die Entwicklung mit HTML5 ankündigt. Auch deshalb weil HTML5 entgegen oft in der Presse verlautbaren Aussagen noch weit von einem Standard entfernt ist. So dynamisch die Entwicklung der HTML5-Spezifikation und so unterschiedlich die Implementierungen in diversen Browsern sind, werden wir die déjà vu Gefühle aus den 90en Jahren nicht schnell loswerden können.

[4] http://de.wikipedia.org/wiki/HTML5

Nicht destotrotz ist es ein sehr wichtiger Trend, der inzwischen auch halbfertige HTML5-Spezifikation zu einem de facto Standard konsequent etabliert. Insbesondere auf mobilen Geräten, speziell auf den Smartphones setzt sich der Trend zu den sog. hybriden Applikationen fort. Hinter diesem Namen verbirgt sich die Strategie eine native mobile Applikation als Shell um einen HTML5-fähigen embedded/mobilen Browser (meistens basierend auf der WebKit-Engine) zu bauen. Die native Applikation übersetzt und übernimmt die Kommunikation mit dem Gerät, da Browser bekanntlich diese Rolle nicht ausführen kann.

Die initiale Erstellung einer solchen hybriden Applikation bietet auf der Kostenseite wenige Vorteile gegenüber der Entwicklung einer nativen Applikation. Unter dem Strich ist es sogar meistens aufwendiger und umständlicher, da vieles nur über einen Workaround möglich ist. Beispielsweise wenn die Applikation im Stand-By Modus beim ausgeschalteten Bildschirm im Hintergrund laufen und mit der Hardware kommunizieren muss. Allerdings wird hier die "Wiederverwendbarkeit" angepriesen, einmal entwickelte Applikation lässt sich auf diverse Plattformen mit sehr wenig Aufwand übertragen und noch einfacher Pflegen.

Grundsätzlich stimmt die Aussage schon. Natürlich erzählt man hier aber auch viele Märchen und gibt Versprechen, die nie eingehalten werden können. Jeder Entwickler, der mit JavaScript etwas umfangreicher gearbeitet hat, kann sicherlich ein paar Geschichten erzählen. Aber der Trend setzt sich unaufhaltsam fort. Eines bleibt den nativen Applikationen auch in diesem Fall vorbehalten - die derzeit viel gefragte User Experience. Eine hybride Applikation ist und bleibt eine Web Seite, mit allen Vor- und Nachteilen. Sowohl die Geschwindigkeit, die Unterstützung der Hardware (bspw. Multi-Touch) sowie die nahtlosen Übergänge zwischen den Zuständen zerstören die Begeisterung der Nutzer.

Was auf den mobilen Geräten gilt, gilt natürlich auch im Web. Eine Web-Seite mit HTML5 und Ajax, sogar hardware-beschleunigt bleibt eine Web-Seite mit allen Vor- und Nachteilen. Sie mögen auf einem Desktop PC weniger ausgeprägt sein, als auf einem Tablet PC, aber sie sind da – die Seite ist nie automatisch auf allen Browsern und allen Geräten lauffähig, noch ist die Entwicklung mit nur einem Werkzeug und Framework möglich. Von einer Offline-Fähigkeit gar nicht zu sprechen. Man kann nicht magisch mit den Fingern schnipseln ..

Die Videos können mit HTML5 abgespielt werden. Neue Entwicklungen wie Smooth / Adaptive Streaming und Mehrkanalton bleiben außen vor. So ist es mit fast allen Funktionen – die Cross-Platform Fähigkeit kauft man sich mit den Abstrichen im Funktionsumfang und einer fragmentierten Entwicklung.

Die HTML5-Spezifikation steht für viele für das standardisierte offene Web, in dem die Hürden überwunden und sowohl die Themen rund um User Experience als auch die fehlende Funktionalität gelöst werden. Eine Traumvorstellung. Leider aber auch nicht viel mehr als Wunschdenken im echten Leben, vor allem in den nächsten Jahren.

Es existiert keine goldene, immer richtige Vorgehensweise. Am Ende bleibt immer die Wahl der besten Vorgehensweise für das eigene Benutzerszenario. In manchen ist die Entwicklung mit Flash und Silverlight sinnvoll, in manchen reicht HTML5 in jedem Fall. Es ist aber in beiden Fällen wichtig, dass die Entwicklung mit vernünftigen Werkzeugen und Frameworks durchgeführt werden kann. Und das ist die spannendste Fragestellung im Moment.

Insofern: Silverlight ist nicht tot, Flash ist nicht tot, HTML4 ist nicht tot, HTML5 ist nicht die ultimative Lösung. Wir sind noch nicht fertig ..


PS: und auch nicht allein mit der Problematik :-)

Premiere des TechTalk Online am 19. April! Seien Sie dabei!

05.04.2011 13:53:33 | Oliver Scheer

Die kostenlosen TechTalk-Veranstaltungen sind seit vielen Jahren bekannt als ein lebendiges Forum zum Wissensaustausch unter Entwicklern und bieten Gelegenheit, "Microsoft zum Anfassen" zu erleben. Microsoft-Experten vermitteln dabei in Vorträgen ihr Wissen und stehen für Diskussionen zur Verfügung. Dieses Format bringen wir nun erstmals in die virtuelle Welt und laden Sie hiermit ein, bei der Premiere des TechTalk Online dabei zu sein ! Dieses Format bietet für Sie die Vorteile, die Veranstaltung von zu Hause oder vom Arbeitsplatz zu verfolgen und trotzdem live mit den Experten über die Themen im Live Chat zu diskutieren . Natürlich bietet dies für Sie auch die Gelegenheit, mit anderen Technologie-Enthusiasten zu den Themen wie Windows 7, SQL Server 2008 R2 und Windows Azure zu fachsimpeln. An den folgenden Terminen werden wir den TechTalk Online ausstrahlen und der Live Chat wird Ihnen zur Verfügung stehen: 19. April, 28. April und 4. Mai – jeweils 14:00 bis 18:30 Uhr . Sie können sich den TechTalk Online kostenfrei und ohne Registrierung anschauen. Sie können sich allerdings vorab registrieren, sich einen Platz sichern und erhalten zusätzlich folgende Vorteile : Sie können an unseren Live Chats teilnehmen und mit unseren Experten live diskutieren . Zugang zu einem Vortrag als " Sneak-Preview " ab dem 14. April Sie erhalten innerhalb des TechTalk Online Zugriff auf unsere virtuelle Konferenztasche , die einige Präsente für Sie bereithält. Was Sie in der virtuellen Konferenztasche finden: Ein Azure Pass für satte 90 Tage ! Normalerweise ist der Azure Pass auf 30 Tage begrenzt. Buchdownload für " Windows 7 für Entwickler – Crashkurs " Buchdownload für " Microsoft SQL Server 2008 - Überblick über Konfiguration, Administration, Programmierung " Wir würden uns freuen, Sie bei dieser Premiere des TechTalk Online begrüßen zu dürfen und erwarten spannende Fragen und Diskussionen mit Ihnen! Hier gelangen Sie zu allen Infos, Vorträgen und zur Registrierung....(read more)

Premiere des TechTalk Online am 19. April! Seien Sie dabei!

05.04.2011 09:47:17 | Peter Kirchner

Die kostenlosen TechTalk-Veranstaltungen sind seit vielen Jahren bekannt als ein lebendiges Forum zum Wissensaustausch unter Entwicklern und bieten Gelegenheit, "Microsoft zum Anfassen" zu erleben. Microsoft-Experten vermitteln dabei in Vorträgen ihr Wissen und stehen für Diskussionen zur Verfügung.

Dieses Format bringen wir nun erstmals in die virtuelle Welt und laden Sie hiermit ein, bei der Premiere des TechTalk Online dabei zu sein!

205x160_TechTalkOnline_DEDieses Format bietet für Sie die Vorteile, die Veranstaltung von zu Hause oder vom Arbeitsplatz zu verfolgen und trotzdem live mit den Experten über die Themen im Live Chat zu diskutieren. Natürlich bietet dies für Sie auch die Gelegenheit, mit anderen Technologie-Enthusiasten zu den Themen wie Windows 7, SQL Server 2008 R2 und Windows Azure zu fachsimpeln.

An den folgenden Terminen werden wir den TechTalk Online ausstrahlen und der Live Chat wird Ihnen zur Verfügung stehen: 19. April, 28. April und 4. Mai – jeweils 14:00 bis 18:30 Uhr.

Sie können sich den TechTalk Online kostenfrei und ohne Registrierung anschauen. Sie können sich allerdings vorab registrieren, sich einen Platz sichern und erhalten zusätzlich folgende Vorteile:

  • Sie können an unseren Live Chats teilnehmen und mit unseren Experten live diskutieren.
  • Zugang zu einem Vortrag als "Sneak-Preview" ab dem 14. April
  • Sie erhalten innerhalb des TechTalk Online Zugriff auf unsere virtuelle Konferenztasche, die einige Präsente für Sie bereithält.

Was Sie in der virtuellen Konferenztasche finden:

  • Ein Azure Pass für satte 90 Tage! Normalerweise ist der Azure Pass auf 30 Tage begrenzt.
  • Buchdownload für "Windows 7 für Entwickler – Crashkurs"
  • Buchdownload für "Microsoft SQL Server 2008 - Überblick über Konfiguration, Administration, Programmierung"

Wir würden uns freuen, Sie bei dieser Premiere des TechTalk Online begrüßen zu dürfen und erwarten spannende Fragen und Diskussionen mit Ihnen!

Hier gelangen Sie zu allen Infos, Vorträgen und zur Registrierung.

Die Maschinenbeherrscher-Gewinner

04.04.2011 10:54:10 | Oliver Scheer

Der Wettkampf ist beendet. Die Entscheidungsschlacht ist vorbei. Die Beherrscher der Maschine haben hart gekämpft und gezeigt, was es heißt die Maschine zu beherrschen. Die Entscheidungsschlacht wurde von den besten 30 Windows 7-Anwendungen bestritten. Die Jury hat es sich nicht leicht gemacht und hart für ihre Lieblingsanwendungen gekämpft. Inzwischen haben wir die Gewinner benachrichtigt und die Hauptgewinner packen bereits ihre Koffer für die Reise nach Las Vegas zur Mix 2011-Konferenz. Die Gewinner-Anwendungen können auf http://win7maschine.codeplex.com/ heruntergeladen werden. Herzlichen Glückwunsch und vielen Dank fürs mitmachen. Platz 7: Notepad7 Notepad7 ist der Notepad-Clone, den man schon immer haben wollte. Mithilfe der zusätzlichen Ribbon- sowie Drag-and-Drop-Funktionen lassen sich Texte viel einfacher bearbeiten. Download Platz 6: Just Tweets Die Anwendung Just Tweets zeigt dem Benutzer auf sehr ansprechende Art und Weise seine Lieblings-Tweets oder -suchen an. Die Oberfläche kann je nach Wunsch mit oder ohne Glass-Effekt angezeigt werden. Download Platz 5: Speech Maps Diese Demo-Anwendung ermöglicht das Steuern von Landkarten mit Sprachbefehlen. Durch das Sprechen vordefinierter Kommandos kann der Benutzer durch Bing Maps navigieren und sich Routen berechnen lassen. Download Platz 4: Competition Stopwatch Competition Stopwatch ist eine sehr ansprechende Anwendung zur Verwaltung von Wettkämpfen zwischen verschiedenen Mannschaften. Wer also gerne Wettkämpfe im Unternehmen oder im Sportverein durchführt, wird damit viel Spaß haben. Download Platz 3: JumpEnvironment Diese Anwendung benutzt die Windows-Spracheingabe, um gespeicherte Arbeitsumgebungen auf „Kommando“ bereitzustellen. Benutzer können sich verschiedene Arbeitsumgebungen einrichten, indem sie Gruppen geöffneter Programme in Profilen speichern, zwischen denen sie anschließend per Sprachbefehl hin und her wechseln können. Download Platz 2: TwitterClient Dieser unauffällige Twitter-Reader zeigt dem Benutzer auf sehr ansprechende Art und Weise Tweets zu der jeweils betrachteten Webseite im Browser an. Dadurch kann der Benutzer sehen, wer zu den Themen der Webseite etwas getwittert hat. Download Platz 1: Double Explorer Der Windows 7 Double Explorer verwendet Explorer- und Ribbon-Steuerelemente. Er bietet einen sehr guten und schnellen Weg, um gleichzeitig verschiedene Verzeichnisse zu bearbeiten. Vergleichs- und Kopieroperationen werden dadurch zu einem Kinderspiel. Download...(read more)

Javascript aus WebParts für Sharepoint und Web Projekte registrieren

03.04.2011 18:58:00 | Jan Christian Selke

Javascript, wie etwa JQuery,  aus WebParts heraus zu rendern ist eine häufige Anforderung. Wie so etwas, beispielsweise mit Hilfe eines DelegateControls, gelöst werden kann, zeigt ein Artikel von Thorsten Hans.

Nun stand ich aber vor der Anforderung den WebPart in Sharepoint sowie eine WebForms Seite einzubinden. Grundsätzlich ist dies auch mit dem DelegateControl zu realisieren. Mein Vorgehen ist aber etwas Quellcode-zentrischer und ich möchte alles Renderverhalten in einem WebPart aus dem Quellcode heraus steuern.

Für Sharepoint gibt es hierfür die Klasse ScriptLink, in Web Projekten hingegen wird aber der ScriptManager verwendet. Um dennoch beide bedienen zu können habe ich einen Kontrakt IScriptRegistrar erstellt, der nur eine Methode RegisterScript beinhaltet.

public interface IScriptRegistrar
{
void RegisterScript(IScriptRegistrationParameters registrationParameters);
}

Als Parameter wird eine Klasse erwartet, die die zur Registrierung des Skripts notwendigen Informationen beinhaltet. Der Kontrakt dazu sieht wie folgt aus.

public interface IScriptRegistrationParameters
{
Page Page { get; set; }
Type Type { get; set; }
string Key { get; set; }
string Url { get; set; }
bool Localizable { get; set; }
}

In dem Sharepoint Projekt wird nun die konkrete Implementierung SharepointScriptRegistrar mit der Klasse ScriptLink hinzugefügt.

public class SharepointScriptRegistrar : IScriptRegistrar
{
public void RegisterScript(IScriptRegistrationParameters registrationParameters)
{
ScriptLink.Register(
registrationParameters.Page,
registrationParameters.Url,
registrationParameters.Localizable);
}
}

Das Webprojekt dagegen erhält eine weitere Klasse WebScriptRegistrar, die das Skript mit Hilfe des ScriptManagers registriert.

public class WebScriptRegistrar : IScriptRegistrar
{
public void RegisterScript(IScriptRegistrationParameters registrationParameters)
{
var scriptManager = registrationParameters.Page.ClientScript;
scriptManager.RegisterClientScriptInclude(
registrationParameters.Type,
registrationParameters.Key,
registrationParameters.Url);
}
}

Der Aufruf des jeweiligen Registrars erfolgt kontextabhängig durch einen IoC Container. So halte ich das Wissen über die Implementierung aus dem WebPart raus und die Registrierung erfolgt nur in der Konfiguration des Containers. Als IoC Tool nutze ich in diesem Fall StructureMap.

So beschreibt der folgende Ein-Zeiler die Konfiguration innerhalb des Sharepoint Projekts.

For<IScriptRegistrar>().Use<SharepointScriptRegistrar>();

Die Registrierung für das Web Projekt sieht dem entsprechend angepaßt aus.

For<IScriptRegistrar>().Use<WebScriptRegistrar>();

Mit Hilfe eines ServiceLocators wird dann der registrierte IScriptRegistrar aus dem Container geholt und die Skriptregistrierung mit dem Aufruf RegisterScript ausgeführt.

var scriptRegistrar = ServiceLocator.Get<IScriptRegistrar>();
IScriptRegistrationParameters scriptRegistrationParameters = new ScriptRegistrationParameters
{
Page = this.Page,
Type = this.GetType(),
Key = "javascript",
Url = "necrtt/jsgantt.js",
Localizable = false
};
scriptRegistrar.RegisterScript(scriptRegistrationParameters);

Falls es noch andere Ideen gibt, wie dieses Szenario auch umgesetzt werden könnte, bin ich immer daran interessiert…

Herzlichen Glückwunsch zum Microsoft MVP 2011

02.04.2011 16:04:00 | Lars Keller

“Herzlichen Glückwunsch! Wir freuen uns, Ihnen den Microsoft® MVP Award 2011 verleihen zu können! Diese Auszeichnung wird an herausragende, führende Mitglieder der technischen Communities verliehen, die ihre wertvollen praktischen Erfahrungen mit anderen Menschen teilen. Wir schätzen Ihren außerordentlich bedeutenden Beitrag in den technischen Communities zum Thema VSTO im vergangenen Jahr hoch ein.”

Gestern erreicht mich diese E-Mail mit der Mitteilung, dass ich erneut zum dritten Mal infolge zum Microsoft MVP für VSTO ausgezeichnet wurde. Da bleibt mir nur Danke(!!!) zu sagen. :-)

Es macht großen Spaß ein Teil der Community zu sein und ich freue mich schon auf die vielen Dinge, die dieses Jahr anstehen. Man sieht sich auf einen der nächsten Events!

See# Party 2011

01.04.2011 02:03:00 | Jürgen Gutsch

Zum zweiten Mal veranstaltet der .NET-Stammtisch Konstanz-Kreuzlingen (dieses mal als Verein) die .NET-Community Konferenz See# Party

Unter dem Namen See# Party 2011 und mit dem Motto “3 Screens and a Cloud” werden auch dieses Jahr wieder super Vorträge von vielen bekannten Sprechern präsentiert. Die Agenda ist im Gegensatz zu letztem Jahr etwas anders aufgeteilt. So werden dieses Jahr 20 Sessions angeboten, statt 16 wie letztes Jahr.

Wieder gibt es letztes Jahr eine große Verlosung mit vielen Fachbüchern und einer ganzen Menge Software.

Dieses Jahr gibt es Ansporn für die ersten 25 Anmeldungen einen Rabatt um 15 CHF, bzw. 10 EUR. Es loht sich also schon die schnelle Anmeldung :-)

Anmeldung zur See# Party 2011

Kennenlernparty

Wer möchte kann sich gerne für die Kannenlernparty am Abend vorher in Konstanz registrieren, die wieder in der Hafenhalle stattfinden soll (Änderungen des Veranstaltungsortes werden per Twitter und auf der Website bekannt gegeben)

Die Registrierung hierfür benötigen wir um die Reservierung vornehmen zu können.

Abendveranstaltung

Eine Abendveranstaltung wie letztes Jahr ist vorerst nicht in der Agenda. Allerdings ist geplant, das wir je nach Sponsor-Situation kurzfristig eine Abendveranstaltung mit einem .NET-Coding-Dojo ins Leben rufen. Die Rahmenbedingungen dafür sind gesteckt, wir bekommen also auch eine Woche vor der See# Party eine Abendveranstaltung organisiert. :)

Wenn es soweit kommt, werden wir einen Rundmail an alle registrierten Teilnehmer schicken.

Vielen Dank

Das wir auch dieses Jahr wieder eine so große Veranstaltung auf die Beine stellen können, verdanken wir in erster Linie der .NET-Community selber, die uns beim letztes Jahr tatkräftig unterstützt hat und uns geradezu angespornt hat weiter zu machen.

Ein großes Dankeschön natürlich auch an die vielen Sponsoren die wir bisher gewonnen haben und natürlich an das restliche Team (Golo Roden, Tilo Schinke, Markus [Wilhelm] Schmid und Stefan Zybarth)

 InterSystems Platinsponsor
DotNetKicks-DE Image

Regeln | Impressum