Wie Craig Shoemaker bereits in seinem Blog geschrieben hat, werden die Infragistics NetAdvantage Controls für Silverlight und WPF ab der Version 10.2 auch mit Deutschen Oberflächentexten ausgeliefert. In diesem Beitrag möchte ich die Notwendigen Schritte noch einmal im Schnelldurchlauf in deutscher Sprache am Beispiel von Silverlight erläutern.

Initiales Setup

Mein Silverlightprojekt besteht aus einer einzigen Seite, in der ein XamGrid definiert wurde:

<UserControl x:Class="NAGermanLocalization1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400" xmlns:ig="http://schemas.infragistics.com/xaml">

    <Grid x:Name="LayoutRoot" Background="White">
        <ig:XamGrid HorizontalAlignment="Left" Name="xamGrid1" VerticalAlignment="Top"  AutoGenerateColumns="false"  >
            <ig:XamGrid.FilteringSettings>
                <ig:FilteringSettings AllowFiltering="FilterMenu" />
            </ig:XamGrid.FilteringSettings>
            <ig:XamGrid.GroupBySettings>
                <ig:GroupBySettings AllowGroupByArea="Top" />
            </ig:XamGrid.GroupBySettings>
            <ig:XamGrid.Columns>
                <ig:TextColumn Key="Id" />
                <ig:TextColumn Key="Name"/>
                <ig:TextColumn Key="Vorname"/>
                <ig:TextColumn Key="Land" />
            </ig:XamGrid.Columns>
        </ig:XamGrid>
    </Grid>
</UserControl>

Für das Grid habe ich wie der vorherige Codeausschnitt zeigt Filtern und Gruppieren aktiviert.

Meine Codebehind Datei sieht ähnlich schmal aus:

using System.Collections.Generic;
using System.Windows.Controls;

namespace NAGermanLocalization1
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            InitGrid();
        }

        private void InitGrid()
        {
 	        List<Kunde> kunden = new List<Kunde>();
            for (int i = 0; i<10; i++)
            {
                Kunde kunde = new Kunde{Id = i, Name = string.Format("Name {0}", i), Vorname = string.Format("Vorname {0}", i), Land = "DE"};
                kunden.Add(kunde);
            }
            xamGrid1.ItemsSource = kunden;
        }
    }

    public class Kunde
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Vorname { get; set; }
        public string Land { get; set; }
    }
}

An der Oberfläche schaut das ganze nun wie folgt aus:

GridVorher

DialogVorher

Und einmal auf Deutsch bitte ...

Um das ganze nun zu lokalisieren, sind lediglich zwei Schritte erforderlich.

Zunächst muss das Silverlight Projekt entladen und anschließend im Textmodus editiert werden:

unloadproject editproject

Der vorhandene leere Tag SupportedCultures muss mit dem Wert de versehen werden.

supportedcultures

Anschließend muss die Projektdatei gespeichert und erneut geladen werden. Als letzter Schritt muss dann innerhalb der Webseite, die das Silverlight Control hostet noch die Zeile <param name="uiculture" value="de" /> innerhalb des Object Tags eingefügt werden:

uiculture

Wenn nun nichts schief gegangen ist, sollten die Oberflächentexte nun auf Deutsch erscheinen:

GridNachher

DialogNachher

Fazit

Lokalisierte Oberflächen werden mit Infragistics NetAdvantage 10.2 zum Kinderspiel, da das umständliche Setzen der Oberflächentexte über die runtime resource-string customization in Zukunft entfällt.


Kick it on dotnet-kicks.de
 
6/30/2010 - 11:53 PM | Comments [1] | Categories: .NET | DotNetGerman Bloggers | Infragistics | Silverlight
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Habe ich für meine Blog Beiträge gefunden. Zumindest die englischen, die einen Bezug zu den Infragistics NetAdvantage Controls haben.

Seit kurzem gibt auf der Infragistics Homepage nämlich einen MVP Blog, für das ich einer der Autoren bin.

Selbstverständlich gibt es auch schon einen ersten Blog Post von mir. Dieser beinhaltet neben einer kurzen (OK, langen ;-)) Vorstellung ein kleines jQuery Script, welches hilfreich beim Einsatz des Infragistics ASP.NET Aikido WebDropdown Controls ist.

igmvpblog


Kick it on dotnet-kicks.de
 
5/23/2010 - 04:24 PM | Comments [0] | Categories: .NET | ASP.NET | DotNetGerman Bloggers | Infragistics | jQuery
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Moderne Webseiten beinhalten in der heutigen Zeit einen hohen Anteil clientseitiger Quellcodes in Form von JavaScript. Für diesen Anwender führt dies im Idealfall zu einer verbesserten Benutzbarkeit der Applikation, da diese neben netten UI Effekten nun meist durch Ajax auch weitaus flüssiger bedienbar ist.

Bei vielen Entwicklern solcher dynamischer Webseiten führt der vermehrte JavaScript Anteil allerdings häufig zu Wein- und/oder Schreikrämpfen, denn nur die wenigsten mögen JavaScript wirklich. Die Ursachen für diese Antipathie liegen jedoch selten an JavaScript als Sprache selbst, sondern in den meisten Fällen eher an der unterschiedlichen Implementation des DOMs / BOMs durch die verschiedenen Browserhersteller. Diese Inkonsistenz führt nämlich dazu, dass JavaScript Code, der in einem Browser bzw. einer Version eines Browsers problemlos läuft im nächsten Browser Fehler verursacht und schlichtweg nicht läuft.

Weiter wird häufig bemängelt, das Selektionen fernab von einem einfachen document.getElementById(IdMeinesElements) relativ kompliziert sind. Als Beispiel wären hier zu nennen: alle Elemente mit einer bestimmten Klasse, ungerade Zeilen einer Tabelle, das aktivierte Element einer RadioButtonGroup usw.

Und nun?

Nun gibt es folgende Strategien mit diesen Problemen umzugehen:

  1. Man drückt sich immer davor JavaScript zu schreiben und wälzt dies auf einen Kollegen ab
  2. Man kopiert sich irgendwoher JavaScript Codeschnippsel, die angeben browserunabhängig zu sein und hofft, das dem auch so ist
  3. Man investiert Unmengen Zeit in die eigene browserübergreifende Implementierung diverser Funktionalitäten
  4. Man bedient sich eines der am Markt verfügbaren JavaScript Frameworks

Strategie Nr. 1 mag eine Weile ganz gut funktionieren, früher oder später wird aber der Zeitpunkt kommen, an dem man sich nicht mehr drücken kann (ich spreche da aus eigener Erfahrung ;-)).

Strategie Nr. 2 funktioniert immer dann, wenn der Umfang des benötigten JavaScript Codes überschaubar ist. Gemeinsam mit der Applikation wird aber auch irgendwann der zusammenkopierte Code wachsen und die Wartbarkeit entsprechend sinken.

Strategie Nr. 3 ist sicherlich eine prima Idee für alle die außerdem auch ein eigenes Logging Framework, einen eigenen OR Mapper usw implementiert haben, oder kurz gesagt für alle die gerne das Rad neu erfinden ;-)

Gangbar scheint also nur Strategie Nr. 4 zu sein. Schaut man sich nun am Markt um, stößt man unweigerlich auf jQuery. Die freie JavaScript Library adressiert unter anderem genau die zuvor genannten Probleme und hat in letzter Zeit einen wahren Hype verursacht. Dieser Rummel wurde sicherlich auch dadurch verstärkt, dass Microsoft jQuery offiziell supportet, mit Visual Studio ausliefert und die Arbeiten an der hauseigenen JavaScript Bibliothek ASP.NET Ajax Library zugunsten von jQuery eingestellt hat.

Wie legen wir nun aber mit jQuery los? Genau diese Frage möchte ich in diesem und den folgenden Blog Posts beantworten. Da jQuery in einem neuen ASP.NET MVC Projekt automatisch hinzugefügt wird und ASP.NET MVC Entwickler somit sowieso jQuery gewöhnt sind, soll als Beispiel zunächst eine Webforms Anwendung dienen.

Auf die Plätze, fertig, los!

Wenn man jQuery benutzen möchte, besteht der erste Schritt darin, die freie JavaScript Library in seine Seite einzubinden. Dazu lädt man unter http://www.jQuery.com einfach die aktuelle Version der Bibliothek herunter und kopiert diese anschließend zum Beispiel in einen Unterordner Scripts seiner Webanwendung. jQuery ist übrigens in einer für Menschen lesbaren (z. B. jQuery-1.4.2.js) und in einer verkleinerten Version (z, B. jQuery-1.4.2.min.js) verfügbar. In der verkleinerten Version sind unnötige Leerzeichen, Zeilenumbrüche und Kommentare entfernt. Außerdem wurden die Namen der Variablen und nicht öffentlichen Funktionen auf ein oder zwei Buchstaben verkürzt. Sinn dieser Maßnahme ist es die zum Client übertragene Datenmenge zu reduzieren. So ist die verkleinerte Version knappe 100 kb kleiner als die lesbare Variante. Für Produktivszenarien sollte demnach also in jedem Fall die .min Version genutzt werden, wohingegen während der Entwicklungszeit eher die lesbare Variante eingebunden werden sollte. So kann man den Scriptcode im Fall der Fälle nämlich noch debuggen.

So, genug der Vorrede und zurück zur Praxis. Tatsächlich einbinden können wir jQuery nun über folgende Zeile:

<script src="Scripts/jquery-1.4.2.js" type="text/javascript"></script>

Platzieren sollte man diese Zeile übrigens innerhalb des Kopfbereichs der Seite:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.4.2.js" type="text/javascript"></script>
</head>

Prima, aber was mache ich nun damit?

Gute Frage! Jetzt haben wir jQuery zwar eingebunden, aber wie geht es jetzt weiter. Dazu sollten wir zunächst kurz einen Blick darauf werfen, was wir normalerweise mit JavaScript machen. In den meißten Fällen reduziert sich dies auf:

  • Elemente aus dem DOM zu selektieren
  • Selektierte Elemente zu manipulieren (ein- / ausblenden, Styledefinitionen zu verändern...)
  • Code bei bestimmten Ereignissen ausführen (z. B. click event)
  • Neue Elemente dem DOM hinzuzufügen
  • Elemente aus dem DOM zu löschen
  • AJAX Aufrufe zum Server zu machen und die Antwort zu Verarbeiten

Als kleinen Einstieg picken wir uns exemplarisch die ersten drei Punkte heraus. Wir werden also DOM Elemente selektieren und diese manipulieren. Geschehen wird dies bei dem Klick auf einen Button.

Dazu werden wir eine Meldungszeile, ähnlich wie man sie von Stackoverflow kennt nachbauen.

01_so_message

Der erste Schritt besteht in der Erstellung eines HTML und CSS Grundgerüsts:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>jQuery Demo</title>

    <style type="text/css">
        body
        {
            margin: 0px;
        }
        #message
        {
            background-color: #FFFF88;
            border-bottom: solid 1px #000000;
            font-weight: bold;
            text-align: center;
            padding: 8px;
            margin: 0px;
            display:none;
            font-family: Arial, Verdana, Sans-Serif;
        }
        #message a
        {
            float: right;
            border: solid 3px black;
            font-family: Arial, Verdana, Sans-Serif;
            font-weight: bold;
            text-decoration: none;
            color: Black;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="message"><span>Dummy Nachricht</span><a href="Default.aspx">X</a>
    </div>
    <div id="content">
        <p>
            Dies ist eine jQuery Demowebsite</p>
        <button id="showMessage">
            Klick mich</button>
    </div>
    </form>
</body>
</html>

Wie man sieht, wird ein DIV Element  mit dem Namen "message" erstellt, dass als Unterlemente ein SPAN Element und einen Link enthält. Über CSS wird dieses DIV Element noch ein wenig gestyled und initial ausgeblendet. Außerdem ist auf der Seite noch ein Button definiert. Ein Klick auf diesen Button soll der Auslöser sein, um die Meldung anzuzeigen.

Wie aber genau sieht nun der Code aus, um die Nachricht - mit verändertem Text - anzuzeigen?

Mit der Hilfe von jQuery ist dies garnicht so schwer:

$("#showMessage").click(function(evt) {
    evt.preventDefault();
    $("#message span").text("Du hast den Button geklickt. Klicke nun auf das X, um die Nachricht auszublenden.");
    $("#message").fadeIn(2000);
});
Auf den ersten Blick mag der Code etwas verwirrend aussehen. Vor allem durch die vielen $-Zeichen. Daher ein paar erklärende Worte:

In Zeile 1 selektieren wir mit dem Befehl: $("#showMessage") zunächst das DOM Element mit der ID showMessage, also unseren Button. Das $-Zeichen ist übrigens ein Alias für die jQuery Funktion. Statt $("message") hätte ich also auch jQuery("$message") schreiben können. Die Rückgabe des Aufrufs - unabhängig ob via jQuery(...) oder $(...) ist ein Objekt vom Typ jQuery. Dieses Objekt beinhaltet die selektieren DOM Elemente bzw. das selektierte DOM Element sowie einige weitere Funktionen.

In unserem Fall bekommen wir also ein Objekt vom Typ jQuery zurück, dass das DOM Element showMessage beinhaltet. Für dieses DOM Element wird nun eine anonyme Funktion als Handler für das Ereignis Click registriert.

In Zeile 2 wird mit dem Befehl evt.preventDefault(); nun die Standardaktion die der Browser bei diesem Ereignis, also z. B. das posten des Formulars nach Klick auf den Button, verhindert.

In Zeile 3 werden anschließend alle span Elemente innerhalb des DOM Elements mit der Id message selektiert. In unserem Fall ist dies also genau eins. Für dieses span Element wird mit der Funktion text jetzt ein neuer Text vergeben. Außerdem wird das Element mit der Id message in Zeile 4 langsam (über einen Zeitraum von zwei Sekunden) eingeblendet.

Der Quellcode zum Ausblenden der Nachricht sieht ähnlich aus:

$("#message a").click( function(evt) {
     evt.preventDefault();
     $("#message").fadeOut("slow");
 });

In Zeile 1 wird an alle A-Elemente innerhalb des DOM Elements mit der Id message ein Eventhandler für das Ereignis Click angehangen. Dieser verhindert in Zeile 2 die Standardaktion des Links und blendet in Zeile 3 unsere Nachrichtenzeile wieder aus. Dieses mal wird statt einer Angabe in Millisekunden der String "slow" als Argument übergeben. Dieser ist in den jQuery Quellcodes mit einem Wert von 600 ms hinterlegt.

Perfekt, aber wo schreibe ich den Code nun rein?

So, jetzt wo wir eigentlich den ganzen Quellcode fertig haben stellt sich natürlich die Frage, wie wir ihn in unsere Seite einbinden. Eine naive Implementierung sähe wie folgt aus:

<head>
<!-- ... -->
<script type="text/javascript">
    $("#showMessage").click(function(evt) {
        evt.preventDefault();
        $("#message span").text("Du hast den Button geklickt. Klicke nun auf das X, um die Nachricht auszublenden.");
        $("#message").fadeIn(2000);
    });
    $("#message a").click( function(evt) {
        evt.preventDefault();
        $("#message").fadeOut("slow");
    });
</script>
<!-- ... -->
</head>

Der Code würde also einfach in ein Scripttag innerhalb des Head Tags kopiert werden. Dies läuft so nicht! Der Grund ist, dass mit diesem Code versucht wird, ein Eventhandler an ein DOM Element zu binden, das es zu diesem Zeitpunkt noch garnicht gibt.

Wie sieht aber die Lösung für das Problem aus?

Alles zu seiner Zeit

Wie wir zuvor gesehen haben, ist unser Code wirkungslos, wenn wir ihn ausführen ehe es ein entsprechendes DOM Element gibt. Daher sollten wir ihn erst auslösen, sobald das DOM vollständig initialisiert ist.

Ein weg dies zu erreichen wäre es, den Code aufzurufen wenn das Ereignis window.onload eintritt:

window.onload = function() {
  $("#showMessage").click(function(evt) {
     evt.preventDefault();
     // Restlicher Code hier
  });
}

Diese Variante würde bereits fehlerfrei funktionieren. Allerdings wird das Ereignis onload erst ausgelöst, wenn das DOM vollständig initialisiert wurde und alle externen Ressourcen, wie zum Beispiel Bilder oder Stylesheets geladen wurden. Dies kann von Fall zu Fall recht lange dauern, so dass der Anwender den Button bereits anklicken könnte, ohne dass unser Script ausgeführt wird. Zum Glück bietet jQuery einen besseren Ansatz, nämlich $(document).ready. In dieser Variante wird das Ereignis ready ausgelöst, sobald das DOM vollständig initialisiert wurde, aber bevor externe Ressourcen geladen wurden.

Das vollständige Beispiel mit $(document).ready sieht dann wie folgt aus:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>jQuery Demo</title>

    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>

    <style type="text/css">
        body
        {
            margin: 0px;
        }
        #message
        {
            background-color: #FFFF88;
            border-bottom: solid 1px #000000;
            font-weight: bold;
            text-align: center;
            padding: 8px;
            margin: 0px;
            display:none;
            font-family: Arial, Verdana, Sans-Serif;
        }
        #message a
        {
            float: right;
            border: solid 3px black;
            font-family: Arial, Verdana, Sans-Serif;
            font-weight: bold;
            text-decoration: none;
            color: Black;
        }
    </style>

    <script type="text/javascript">
        $(document).ready(function() {
            $("#showMessage").click(function(evt) {
                evt.preventDefault();
                $("#message span").text("Du hast den Button geklickt. Klicke nun auf das X, um die Nachricht auszublenden.");
                $("#message").fadeIn(2000);
            });
            $("#message a").click(function(evt) {
                evt.preventDefault();
                $("#message").fadeOut("slow");
            }
        }
      });
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div id="message"><span>Dummy Nachricht</span><a href="Default.aspx">X</a>
    </div>
    <div id="content">
        <p>
            Dies ist eine jQuery Demowebsite</p>
        <button id="showMessage">
            Klick mich</button>
    </div>
    </form>
</body>
</html>

Ausblick und Fazit

Wie dieser Blog Eintrag gezeigt hat, ist jQuery eine recht komfortabel zu bediene JavaScript Library, mit der sich mit wenigen Zeilen Script Code interessante Effekte erzielen lassen. Neben der intuitiven und Browser unabhängigen API besticht die Bibliothek vor allem durch die Fülle an Funktionen und erhältlichen Plug-Ins. Selbstverständlich konnte ich hier nur einen kurzen (ersten) Einblick verschaffen. Da ich das Thema Clientseitige Entwicklung in (ASP.NET) Webanwendungen jedoch für sehr interessant halte, habe ich vor in der nächsten Zeit weitere Einträge zum Thema jQuery mit folgenden Schwerpunkten zu schreiben:

  • Nutzen von Content Delivery Networks (CDNs)
  • jQuery Selektoren
  • Möglichkeiten der DOM Manipulation
  • jQuery und Firebug
  • jQuery Plugins selber entwickeln
  • jQuery UI
  • jQuery Utility Funktionen
  • jQuery und Ajax für Webforms und ASP.NET MVC

Eventuell werde ich im Anschluss an die Artikel auch kurze Video Tutorials bereitstellen.

Bevor ich allerdings loslege würde mich natürlich interessieren, ob das Thema für euch überhaupt von Interesse ist. Am liebsten in Form eines kurzen Kommentars.

Sollte jemand von euch übrigens das Verlangen haben, das Thema jQuery, oder auch generell ASP.NET mit mir persönlich in lockerer Atmosphäre zu diskutieren: Am 28. Mai werde ich einen Einsteigervortrag zu jQuery auf der dotnet Cologne 2010 halten. Über zahlreiche Besucher des Vortrags und natürlich auch spannende Diskussionen danach würde ich mich sehr freuen.

In den Pausen findet man ihr mich übrigens wahrscheinlich im Ausstellerbereich am Stand der Firma Infragistics. Dort wäre ich dann zusätzlich auch für den ein oder anderen Plausch über die Infragistics NetAdvantage Komponenten zu haben.

War dieser Artikel hilfreich für dich? Dann kicke ihn doch bitte bei dotnet-kicks.de!


Kick it on dotnet-kicks.de
 
5/4/2010 - 07:47 PM | Comments [4] | Categories: .NET | ASP.NET | Community | DotNetGerman Bloggers | Infragistics | jQuery
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

One of the many benifits as an Infragistics MVP is that you get quite early involved in product development in order to give feedback.

This could either be feedback on a new feature, an API change, or a brand new product!

Last spring it was time to give feedback again. There was an email on the Infragistics NDA mailing list which announced that work on a new product - Infragistics NetAdvantage for Powershell - had been started. Being an absolute Powershell fan, I felt really excited to offer my help with alpha and beta testing, giving feedback, etc.

After some great discussions between the director of product management Joseph Berres, lead developer Ambrose J. Tall and some Infragistis MVPs, the team managed to finish a first proof of concept prototype in early September. Some weeks later I met Dr. Tony Komischke, Director of User Experience at Infragistics, at the Basta conference in Germany. There he gave me a first demo of the product. At this point he was able to show me an early Version of the powershell grid: Infragistics NetAdvantage for Powershell powerGrid. I would have loved to see the charting component powerChart, too. Unfortunately it hadn't been ready for presentation at that time.

To my question how the idea for a whole powershell suite had been born, Tony Komischke gave me a quite interesting answer:

It was actually one of our internal IT guys who had the idea. During a meeting he complained that lately more and more server products came to market without an usable admin UI. Instead he had to struggle with some colourless command line tools.

This situation started the whole thing. We all thought that Windows administrators love decent UIs and don't want to work with a boring command line. If they liked the command line, they would have become Linux administrators!

And that's the point of Infragistics NetAdvantage for Powershell. With this product, we give administrators back what they deserve!

Since Basta conference some time went by. The product has nearly arrived at its final state. Starting with tomorrow, registered users will be able to download at CTP Version of it in the download area of Infrastics' homepage.

The first webinars on NetAdvantage for Powershell will be made available approximately next week by Infragistics new media evangelist Jeff Shoemaker.

During the quaterly Infragistics MVP call, Mr Beres stated:

"We really wanted to show off our high end visualizations in a DOS window" said Beres.  "PowerShell gave us a great opportunity to mix data analytics with the new features in the Command Window, like colorization" he continued.

As an Infragistics MVP I already enjoyed testing the product. Below you're going to find some impressions:

The powershell standard output

01_original

Output as PowerGrid. Notice the usage of the sortable table pattern as well as table and column borders.

02_powerGrid

The corner treatements pattern which includes curves in all rectangle corners didn't make it into the CTP as there were some performance issues with GDI+ and the gpu's hardware acceleration.

Output as PowerChart. I've chosen a bar chart as output type

03_powerChart


Kick it on dotnet-kicks.de
 
4/1/2010 - 07:19 AM | Comments [0] | Categories: .NET | english posts | Infragistics
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Einer der vielen Vorteile als Infragistics MVP ist es, dass man als relativ früh in die Produktentwicklung involviert wird, um Feedback geben zu können.

Dies kann entweder Feedback über neue Features, API Veränderungen, oder aber auch ganz neue Produkte sein.

Letztes Frühjahr war es wieder so weit. Über der Infragistics NDA Mailing Liste kam eine E-Mail, in der die ersten Arbeiten an einem neuen Produkt, nämlich NetAdvantage for Powershell, angekündigt wurden. Als absoluter Powershell Fan ergriff ich natürlich die Gunst der Stunde und bot meine Hilfe in Form von Alpha Tests, Feedback, etc an.

Nach regem Austausch zwischen dem Director of Product Management Joseph Berres, dem leitenden Entwickler Ambrose J. Tall und einigen Infragistics MVPs stand Anfang September der erste, wenn auch etwas wacklige Proof-Of-Concept Prototyp. Diesen konnte ich mir dann auch auf der Basta von Dr. Tony Komischke, Director of User Experience bei Infragistics, vorführen lassen. Zeigen konnte er mir eine erste Version des Powershell Grids: Infragistics NetAdvantage for Powershell powerGrid. Sehr gerne gesehen hätte ich damals auch die Charting Komponente powerChart. Leider war diese zu diesem Zeitpunkt jedoch noch nicht in einem vorzeigbaren Stadium.

Sehr interessant fand ich übrigens Tony Komischkes Antwort auf meine Frage wie die Idee für eine Powershellproduktsuite aufkam:

Die Idee hatte einer unserer internen IT Mitarbeiter. Er beschwerte sich während eines Meetings, dass in letzter Zeit immer mehr Serverprodukte mit abgespeckter grafischer Administrationsoberfläche auf den Markt kämen. Stattdessen müsste er sich nun mit farblosen Kommandozeilenwerkzeugen herumschlagen.

Diese Situation war der eigentliche Auslöser. Schnell war uns klar, dass Windows Administratoren ansprechende GUIs und keine fade Kommandozeile möchten. Würden Sie Kommandozeilen mögen, wären Sie schließlich Linux Administratoren geworden.

An diesem Punkt setzt NetAdvantage for Powershell. Mit diesem Produkt gibt Infragistics Windows Administratoren zurück, was sie verdienen!

Seit der Basta ist einige Zeit vergangen. Das Produkt nähert sich seiner endgültigen Form und steht ab morgen registrierten Benutzern als CTP im Downloadbereich der Infragistics Homepage zur Verfügung.

Erste Trainingsvideos wird Infragistics New Media Evangelist Jeff Shoemaker voraussichtlich kommende Woche online stellen.

Als Infragistics MVP hatte ich die Freude, das Produkt bereits ausgiebig zu testen. Anbei einige Impressionen:

Die Standardausgabe der Powershell.

01_original

Ausgabe als PowerGrid. Sehr schön umgesetzt wurden das Sortable-Table-Pattern sowie die Tabellenlinien.

02_powerGrid

Ausgabe als PowerChart. Als Anzeigeform habe ich ein Balkendiagramm gewählt.

03_powerChart


Kick it on dotnet-kicks.de
 
4/1/2010 - 12:43 AM | Comments [2] | Categories: .NET | DotNetGerman Bloggers | Infragistics
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Ich weiß, ich bin spät, aber zum Glück noch nicht zu spät. MSDN Deutschland hat zur Blog-Parade aufgerufen und fragt nach den drei Lieblings-Entwickler-Tools.

150x32_BlogParade_anim_thumb

Nachdem Mario, Alex, Jan und viele andere auch schon mit gemacht haben, möchte ich meinen Senf selbstverständlich auch zum Besten geben.

Das Visual Studio zur Grundausstattung eines Entwicklers gehört setze ich mal voraus und lasse es daher außen vor. Nun aber zu meinen Top 3.

  1. Microsoft WinDbg

    windbg

    Ich kann gar nicht aufzählen, wie oft mir dieses Tool schon in unangenehmen Situationen geholfen hat.
    Wer kennt die Situation nicht:
    • Man entwickelt eine Applikation
    • Auf dem Entwicklungs- und Testsystemen läuft Sie großartig
    • Beim Kunden stürzt sie ab
    • Man hat weder eine vernünftige Fehlermeldung, noch einen aussagekräftigen Eintrag in der Log-Datei
    • Der Fehler ist bei uns nicht nachvollziehbar
    • Wir dürfen mit unserem PC nicht ins Kundennetz und Visual Studio oder CoreDbg dürfen wir dort auch nicht installieren
    • „Pech gehabt, lieber Kunde“ oder wirres Code-Ändern ist keine valide Option ;-)

    Wenn es so weit ist, hilft nur noch ein ganz tiefer Griff in die Werkzeugkiste, nämlich der zu WinDbg. Für diejenigen, die ihn nicht kennen: WinDbg ist ein unmanaged (native) Debugger mit grafischer Benutzeroberfläche. Dank der SOS Erweiterung kann man ihn jedoch wunderbar dazu verwenden, auch managed Code zu debuggen. Zugegeben, der Komfort liegt etwas hinter dem des in Visual Studio integrierten Debuggers, aber in der Not nimmt man schließlich, was man bekommen kann. Das tolle an diesem Debugger ist nämlich, dass er nicht installiert werden muss, sondern direkt vom Stick gestartet werden kann. Außerdem "sieht" er etwas mehr als der in VS integrierte Debugger, denn schließlich ist er ja eigentlich ein unmanaged Debugger. Bei Interesse könnte ich mich übrigens dazu verleiten lassen, mal ein WinDbg Einsteiger Tutorial zu schreiben, oder zumindest mein "Cheat-Sheet" hier aufs Blog zu packen. Also einfach die Kommentarfunktion dieses Eintrags nutzen!

  2. Infragistics NetAdvantage

    infragistics 

    »Für den ersten Eindruck gibt es keine zweite Chance« lautet ein geflügeltes Wort. Dass Menschen einander innerhalb weniger Augenblicke beurteilen, ist allgemein bekannt. Da diese Beurteilung vor allem anhand optischer Gesichtspunkte statt findet, achten viele Menschen heutzutage in besonderem Maße auf ihr Äußeres. Nur so lassen sich wichtige erste Begegnungen, wie zum Beispiel ein Vorstellungsgespräch, erfolgreich meistern.

    Ähnlich wie das menschliche Äußere bei einem Vorstellungsgespräch, kann auch das Äußere einer Softwareapplikation – also die Benutzeroberfläche – im Zweifelsfall über Sieg oder Niederlage (kaufen oder nicht kaufen!) entscheiden. Der Grund dafür ist, dass viele Benutzer, vor allem solche, die technisch nicht sonderlich versiert sind, vom Eindruck der Benutzeroberfläche auf die Gesamtqualität der Software schließen. Komplexe, überladene Bildschirmmasken, deren Design an ein typisches Look and Feel von vor zehn Jahren erinnern, mindern potentiell also den kommerziellen Erfolg einer Anwendung. Dies gilt besonders dann, wenn die Konkurrenz ihre Hausaufgaben gemacht hat!

    Reichte es vor 15 Jahren noch vollkommen aus, einfach nur die Bedienung der Applikation mit der Maus zu unterstützen, erwarten Anwender heute doch einiges mehr. Angeregt von innovativen Oberflächenelementen in Applikationen großer Hersteller, wie zum Beispiel Apples Coverflow, das Ribbon in Microsoft Office 2007 oder interaktiv gruppierbarer Tabellen wie in Microsoft Outlook, erwarten Endanwender solche Features auch in anderen, also unseren Applikationen.

    Leider kommt man mit den Bordmitteln, die Microsoft Visual Studio bis zur Version 2008 an dieser Stelle liefert nicht immer ans Ziel. So sind zum Beispiel weder Ribbons, noch interaktiv gruppierbare Tabellen oder Excel ähnliche Diagramme „out-of-the-box“ möglich.

    Möchte man die Anforderungen an eine konkurrenzfähige Oberfläche also erfüllen, kommt man (wirtschaftlich gesehen) kaum um den Einsatz einer 3rd Party UI Komponentensuite herum.

    Die Suite meiner Wahl ist Infragistics NetAdvantage. Die Komponenten sehen nicht nur top aus, sondern bieten auch alle Features, die das Entwicklerherz begehrt.

  3. StyleCop

    Konsistente Quellcode Formatierungen in einem Projekt mit mehreren Entwicklern. müssen dank StyleCop kein Wunschtraum mehr bleiben. Jedem, der im Team entwickelt kann ich dieses Tool nur wärmstens ans Herz legen!

Kick it on dotnet-kicks.de
 
6/4/2009 - 09:51 PM | Comments [7] | Categories: .NET | DotNetGerman Bloggers | Infragistics | Tips und Tricks
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Dienstag Abend fand ich folgende E-Mail in meinem Postfach:

Dear Andre,
Congratulations! We are pleased to present you with the 2008 Infragistics MVP Award! Your actions in the community have not only promoted the spirit of community but have also helped other professionals in the industry to be more successful each and every day. This award is our way of thanking you for your contributions.

[...]

Thank you again,
Tony Lombardo
Anthony Lombardo
Lead Technical Evangelist
Infragistics, Inc.
Worldwide Evangelism Group

Bis zu diesem Augenblick wusste ich noch nicht einmal, dass Infragistics MVPs auszeichnet. Des Rätsels Lösung: Die Auszeichnung gibt es - laut Tonys Blog - erst seit letztem Dienstag. Demnach bin ich einer der ersten Infragistics MVPs.

Die Auszeichnung kam sehr überraschen für mich und selbstverständlich habe ich mich sehr gefreut und bin extrem stolz. Sie ist in meinen Augen ein toller Weg, um Community Engagement zu wertschätzen.

Mein Dank gilt neben dem Infragistics Team vor allem Nic Goetz!

IgMvpLogoRotatedReflected_43836EBF


Kick it on dotnet-kicks.de
 
4/3/2009 - 03:03 PM | Comments [1] | Categories: .NET | Community | DotNetGerman Bloggers | Infragistics
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

(English version below)
30 begeisterte Fans des manged Codes fanden gestern Abend Ihren Weg nach Koblenz, um bei unserer .NET User Group Tony Hasselhoff Lombardo, ASP.NET MVP und Lead-Evangelist bei Infragistics, zu hören.

Tony teilnehmer

Tony erzählte in einem sehr spannenden Vortrag, was mit Microsoft Silverlight 2.0 fernab von sinnfreien animierten Buttons und TextBoxen machen können. Ganz Konkret ging es um Geschäftsapplikationen, mit denen unsere Kunden sogar arbeiten können ;-)

Unter anderem Sprach Tony über:

  • Authentifizierung und Authorisierung
  • Das Speichern von Benutzereinstellungen
  • Datenzugriff und -bindung
  • sowie das MVVM Pattern.

presentation

Entgegen meiner ersten Befürchtung war die Gruppe trotz des ersten fremdsprachlichen Vortrages recht aktiv und stellte viele Fragen. Außerdem freute ich mich sehr darüber, so viele neue Gesichter zu sehen. Hoffentlich findet der ein oder andere zu zukünftigen Treffen seinen Weg zu uns.

Als User Group freuen wir uns natürlich sehr darüber, dass wir Tony als einzige Gruppe in Europa exklusiv zu Gast haben durften. Vielen Dank an dieser Stelle noch mal an Ihn und das ganze restliche Team von Infragistics, die diesen Vortrag möglich machten!

Als kleines Bonbon sponsorte Infragistics zum Abschluss des Vortrags sogar noch eine MSDN Premium Subscription sowie eine vollständige NetAdvantage Suite, die wir innerhalb der Gruppe verlosen durften.

ziehung

Als Fazit nehme ich mit:

  • Silverlight eröffnet eine Reihe neuer Möglichkeiten im Web
  • 5 Erwachsene passen in einen Peugeot 106, bequem ist es aber nur für den Fahrer
  • Man sollte auch grauen Text lesen
  • Jemand der kein deutsches Bier gewohnt ist, verwechselt leicht den "Kleiner als" Operator "<" mit einem öffnenden Generic

English version:

Yesterday evening, 30 excited fans of managed code found their way to Koblenz in order to listen  to Tony Hasselhoff Lombardo, ASP.NET MVP and Infragistics lead evangangelist, at our local .NET user group.

Tony teilnehmer

Tony did a great talk on the possibilities of Microsoft Silverlight 2.0 beyond rotating buttons or text boxes. Actually the whole thing was about Line of Business Applications, which our customers could eventually use to get their job done ;-)

During his talk Tony covered:

  • Authentication and authorization
  • Preserving user settings
  • data access and binding
  • as well as the MVVM pattern

presentation

Despite my initial worries, the group was very active and asked a lot of question. So nobody seemed to be shy at our first talk in a foreign language. In addition, I've been very happy to see so many new faces during the meeting. Hopefully some of them will find their way to future meetings, too.

As a user group we were of course very happy to be the only group to present Tony in Europe. Many thanks again to him and the whole Infragisitcs team for making this talk possible.

As a small bonbon, Infragistics sponsored our meeting by raffling a MSDN Premium Subscription as well as a full NetAdvantage Suite.

ziehung

My resume of the meeting is:

  • Silverlight gives you a whole set of new possibilities for web applications
  • 5 persons do fit into a Peugeot 106, but it's only comfortable for the driver
  • You should read the grey text, too
  • Somebody who's not used to German beer may easily mix up a "lower then"-operator (<) with an opening generic

Kick it on dotnet-kicks.de
 
11/7/2008 - 09:04 PM | Comments [0] | Categories: .NET | DNUG Koblenz | DotNetGerman Bloggers | english posts | Infragistics | Silverlight
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Er ist ASP.NET MVP, er ist Co-Leader der Central-Jersey .NET User Group, für Microsoft hält Web-Casts direkt aus Redmond. Außerdem ist er der Leiter von Infragistics weltweiter Evangelism Gruppe. Er kommt direkt aus den USA und im November ist er bei uns!

Die .NET User Group Koblenz ist stolz, Anfang November mit Tony Lombardo, Lead Evangelist von Infragistics aus den USA, den ersten internationalen Sprecher zu Gast zu haben.
Tony wird über Line of Business Applications mit Silverlight 2.0 sprechen. Während des Vortrags wird er unter anderem auf alltägliche Aufgabenstellungen wie Datenbindung, Authentifizierung oder der Speicherung von Benutzereinstellungen zu sprechen kommen.

Über den Sprecher:

Tony Lombardo ist der leitende Evangelist von Infragistics Welt-Weiter Evangelisten Gruppe. Sein Spezialgebiet ist ASP.NET. Sein tiefer technischer ASP.NET Hintergrund sowie sein Community Engagement verschafften ihm die Auszeichnung zum Microsoft MVP für ASP.NET.
Tony ist Co-Leader der Central-Jersey .NET User Group. Zusätzlich schreibt er regelmäßig für online und print Medien wie zum Beispiel ASP.NET Pro, Dr. Dobb’s Journal, .NET Developers Journal und die Redmond Developer News.
Tony arbeitet seit fast einem Jahrzehnt für Infragistics. Diese Zeit startete er zunächst als Entwickler für ASP.NET, wurde anschließend Produkt Manager für die Infragistics ASP.NET Komponenten ehe er seine aktuelle Rolle als Lead-Evangelist einnahm. Bedingt durch seinen Werdegang verfügt er über "real-world" ASP.NET Erfahrung, die er stets mit freue teilt.
Der Vortrag wird ausnahmsweise in englischer Sprache abgehalten werden.

Anmeldung unter:
https://www.xing.com/app/events?op=detail;id=267741

English Version:

LOB 2.0 with Silverlight 2

This talk will cover building a next generation web application using Silverlight 2. In this talk we will discuss how to do some common tasks including databinding, authentication, and persistence of user defined settings.

Speaker: Tony Lombardo

In November we have Tony Lombardo visiting Europe from the USA. Tony is the lead Technical Evangelist in Infragistics' Worldwide Evangelism Group at Infragistics.
Tony has a deep technical background in ASP.NET and his community participation has earned him the ASP.NET MVP Award from Microsoft. Tony co-runs the Central Jersey .NET Users Group, and often writes for both online and printed publications, including ASP.NET Pro, Dr. Dobb’s Journal, .NET Developers Journal and Redmond Developer News.
In addition, Tony has been working for Infragistics for almost a decade, and in that time he spent his days working as a Developer on our ASP.NET product before becoming a Product Manager and eventually moving the role he has today. As such, Tony has first-hand experience in “real-world” issues and he will be very pleased to advise in a technical capacity on use of Infragistics controls.

Register at:
https://www.xing.com/app/events?op=detail;id=267741


Kick it on dotnet-kicks.de
 
10/27/2008 - 09:17 PM | Comments [0] | Categories: .NET | ASP.NET | DNUG Koblenz | DotNetGerman Bloggers | Infragistics | Silverlight
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Abgesehen von "Können Sie mir hier bitte einen Stempel drauf machen?" oder "Darf ich so einen Kuli haben?" war  die dritthäufigste Frage an unserem Infragistics-Stand während der diesjährigen Herbst-Basta sicherlich "Wann kommen die Infragistics Silverlight 2.0 Controls raus?"

Nun, während der Messe lautete unsere Antwort stets: "So lange Microsoft selbst nicht weiss, wann Silverlight 2.0 heraus kommt, können wir hier leider keine Antwort geben" ;-)

Tja, wie heute in diversen Blogs zu lesen war ([1], [2], [3]) hat Microsoft die Katze aus dem Sack gelassen und das Silverlight 2.0 RTW für morgen angekündigt.

Infragistics war allerdings ein wenig schneller - zumindest was die Ankündigungen angeht -  und gabin Tony's Blog letzten Mittwoch die Infragistics NetAdvantage Silverlight Controls for Line of Business (LOB) Applications Roadmap bekannt.

Zusammengefasst sieht diese wie folgt aus:

Meilenstein Datum
Roadmap angekündigt Oktober 2008
Erstes CTP Ende 2008
Zweites CTP März 2009
2009 Vol 1 Release (inkl. Silverlight LOB Controls) Quartal 2 2009

Die ersten Screenshots sehen schon recht vielversprechend aus

xamWebChart xamOutlookbar

bleibt nun also abzuwarten, was tatsächlich daraus wird.

PIC-0031

Eine Aussage zum NetAdvantage Silverlight Release Datum konnten wir während der Basta leider nicht treffen. Spaß auf dem "Bastoberfest" hatten wir aber trotzdem ;-)


Kick it on dotnet-kicks.de
 
10/13/2008 - 11:01 PM | Comments [1] | Categories: .NET | DotNetGerman Bloggers | Infragistics | Silverlight
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Wirft man einen Blick auf die Vielzahl der im Internet vorhandenen Silverlight 1.0 Demo Applikationen, stellt man in den meisten Fällen eine Gemeinsamkeit fest:

  • Die Demo zeigt verblüffende grafische Effekte / Animationen im Web
  • Abgesehen von diesen Effekten hat die Demo keinerlei Nährwert :-)

Infragistics möchte die Lücke der wertvollen Silverlight Demos nun füllen.

Zu diesem Zweck wird unter http://www.faceoutlive.com/ ein Silverlight Dashboard für Vertriebsmitarbeiter gezeigt.

faceout

Registrierte Benutzer erhalten unter  http://www.infragistics.com/hot/silverlight.aspx#InfragisticsandSilverlight zusätzlich den kompletten Source Code sowie ein 12seitiges Dokument, in dem Infragistics einen kurzen Überblick über die Applikationsarchitektur sowie die "lessons-learned" gibt. Gerade der "lessons-learned" Bereich ist sehr interessant.

In diesem Sinne: Viel Spaß mit Silverlight ;-)

Technorati tags: ,

Kick it on dotnet-kicks.de
 
4/7/2008 - 04:20 PM | Comments [0] | Categories: .NET | DotNetGerman Bloggers | Infragistics | Silverlight
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Vorbereitend auf den Visual Studio 2008 Launch in Frankfurt hatte ich die Möglichkeit, einen Artikel für Zoschkes Devdorado.de (01/2008) über die Infragistics Excel Engine zu schreiben.

André Wiese, Geschäftsführer der Zoschke Data GmbH, gab mir freundlicherweise die Genehmigung, den Artikel im PDF-Format auf meiner Homepage zum Download anzubieten.

Anbei ein kleiner Vorgeschmack:

"Optisch ansprechende Excel-Dateien zu erzeugen, erfordert normalerweise fehleranfälligen Automatisierungscode. Devdorado.de zeigt Ihnen, wie Sie mit Hilfe der Infragistics Excel Engine fehlerfrei zu eindrucksvollen Ergebnissen kommen."

Den kompletten Artikel gibt's hier. (Link wurde am 7. April 2008 gefixt.)

Technorati tags:

Kick it on dotnet-kicks.de
 
4/4/2008 - 09:50 AM | Comments [1] | Categories: .NET | DotNetGerman Bloggers | Infragistics | Veröffentlichungen
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

As I’m very interested in new technologies, I recently downloaded – like maybe hundreds of other people – Infragistics NetAdvantage for WPF 2007 Vol 2. My goal was to evaluate Infragistics newest technology.

Unfortunately, my enthusiasm was dampend a little bit, when I tried to run the sample application “xamFeatureBrowser”. Instead of showing the newest and coolest WPF features, the application crashed and displayed the windows error reporting dialog. Actually, this wasn’t what I really expected :-)

3ndmessage

My sales contact at Infragistics confirmed, that the sample application shows this quite unexpected behavior on non English operating systems only.

In order to find a solution for that problem, I opened the xamFeatureBrowser solution in Visual Studio 2005 and started the debugger. Immediately after starting, the following dialog appeared on my screen:

1stmessage

 2ndmessage

System.IO.IOException was unhandled

Message="Cannot locate resource  \"app.xaml\"."

Afterwards, the application crashed again. A short research on the internet showed, that this problem mostly occurs if you save a solution with Visual Studio 2008 Beta 1 and try to open it with VS 2005 later – independent of the operating system language. As the application runs fine under English operating systems, this couldn’t be the problem's root cause.

My next step in hunting down this error was using windows debugging tools, which showed the following exception:

0:000> .loadby sos mscorwks

0:000> !pe

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll -

PDB symbol for mscorwks.dll not loaded

Exception object: 01429598

Exception type: System.Resources.MissingManifestResourceException

Message: Für die angegebene Kultur oder die neutrale Kultur konnten keine Ressourcen gefunden werden.

Stellen Sie sicher, dass xamFeatureBrowser.g.resources beim Kompilieren richtig in die Assembly

xamFeatureBrowser eingebettet wurde, oder dass die erforderlichen Satellitenassemblys geladen werden

können und vollständig signiert sind.

An exception like this occurs, when the CLR can’t find a resource file for your current culture and there’s no resource file for the invariant culture.

The Solution:

On my system, I’ve got the samples running by following these steps:

  1. Open the xamFeatureBrowser solution. On my system it's located at:
    "C:\Users\Public\Documents\Infragistics\NetAdvantage for WPF 2007 Vol. 2\Samples\xamFeatureBrowser"
  2. Change solution configuration from "Debug - Full trust" to "Release". I’m not sure, if this step is necessary with Visual Studio 2008, too.

    projectconfiguration
  3. Open app.xaml.cs and add the following constructor:

            public App()

            {

                CultureInfo objCI = new CultureInfo("en-US");

                Thread.CurrentThread.CurrentCulture = objCI;

                Thread.CurrentThread.CurrentUICulture = objCI;

            }


    Thanks to heroic, who posted this code in the infragistics forum.
  4. Change the file properties of "TableOfContents.xml". I set Build Action to Content and Copy to Output Directory to Copy always
    toc
  5. Run the solution :-)
    xambrowser

Those 5 steps should do the trick. Let's hope, that Infragistics fixes the bug in the next version :-)




kick it on DotNetKicks.com


Kick it on dotnet-kicks.de
 
4/3/2008 - 12:42 PM | Comments [1] | Categories: english posts | Infragistics | WPF
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Als technologiebegeisteter Mensch lud ich mir kürzlich, wie wahrscheinlich außer mir noch 100te andere, Infragistics NetAdvantage for WPF 2007 Vol 2 runter, um Infragistics neueste Technologie zu evaluieren.

Leider kam bereits beim öffnen der Beispielsapplikation "xamFeatureBrowser" die erste Enttäuschung. Die Applikation zeigte nämlich nicht Infragistics neueste Features, sondern präsentierte statt dessen den relativ langweiligen Windows-Fehlerreportingdialog:

3ndmessage

Eine kurze Rückfrage bei meinem Kontakt zu Infragistics ergab, dass das Problem anscheinend nur unter "nicht englischen Betriebssystemen" auftritt.

Um der Sache nun auf den Grund zu gehen, öffnete ich die xamFeatureBrowser Solution unter Visual Studio 2005 und warf den Debugger an. Sofort nach dem Start wurde mir folgende Meldung mit anschließender Exception um die Ohren geworfen:

1stmessage

System.IO.IOException was unhandled

Message="Cannot locate resource  \"app.xaml\"."

2ndmessage

Anschließend stürzte die Applikation wieder ab. Eine kurze Recherche im Internet ergab, dass das Problem mit .NET 3.0 Solutions zusammen hängt, die unter Visual Studio 2008 Beta 1 gespeichert und später unter Visual Studio 2005 wieder geöffnet wurden. Einen Einfluss auf die von Infragistics ausgelieferte kompilierte Version der Anwendung sollte diese Situation jedoch nicht haben.

Um dem Fehler also auf die Spur zu kommen, warf ich als nächstes die Windows Debugging Tools an. Hier bekam ich die recht interessante Meldung, dass er für die angegebene Kultur keine Ressourcen finden kann. Dieses Verhalten würde auch zum Phänomen passen, dass der xamFeatureBrowser nur unter englischen Betriebssystemen läuft, da für die englische Kultur Ressourcen vorhanden sind.

0:000> .loadby sos mscorwks

0:000> !pe

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll -

PDB symbol for mscorwks.dll not loaded

Exception object: 01429598

Exception type: System.Resources.MissingManifestResourceException

Message: Für die angegebene Kultur oder die neutrale Kultur konnten keine Ressourcen gefunden werden.

Stellen Sie sicher, dass xamFeatureBrowser.g.resources beim Kompilieren richtig in die Assembly

xamFeatureBrowser eingebettet wurde, oder dass die erforderlichen Satellitenassemblys geladen werden

können und vollständig signiert sind.

Die Lösung

Auf meinem System konnte ich das Problem wie folgt lösen:

  1. Öffnen der Solution. Diese lag bei mir unter:
    "C:\Users\Public\Documents\Infragistics\NetAdvantage for WPF 2007 Vol. 2\Samples\xamFeatureBrowser"
  2. Umschalten der Solution Konfiguration von "Debug - Full Trust" auf "Release". Dieser Schritt ist eventuell nur unter VS 2005 notwendig. Zumindest kommt dann keine Meldung mehr, dass die App.xaml fehlt.
    projectconfiguration
  3. Öffnen der App.xaml.cs und hinzufügen des folgenden Konstruktors:

            public App()

            {

                CultureInfo objCI = new CultureInfo("en-US");

                Thread.CurrentThread.CurrentCulture = objCI;

                Thread.CurrentThread.CurrentUICulture = objCI;

            }


    Diesen Tipp bekam ich übrigens von heroic im Infragics Forum
  4. Ändern der Eigenschaften für die Datei "TableOfContents.xml". Die Build Action muss auf Content und die Copy to Output Directory auf Copy always gesetzt werden.
    toc
  5. Starten des Projekts :-)
    xambrowser 

Bleibt nun zu hoffen, dass Infragistics den Bug in der nächsten Version behebt ...


Kick it on dotnet-kicks.de
 
4/2/2008 - 02:52 PM | Comments [0] | Categories: .NET | DotNetGerman Bloggers | Infragistics | WPF
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Devin Rader, Produktmanager bei Infragistics für ASP.NET kündigte in seinem Blog eine neue CTP des Web User Interface Frameworks Aikido an.

Ziel des Aikido Frameworks ist - neben einer erheblichen Reduzierung der Client-Scripte im Vergleich zu den Standard NetAdvantage ASP.NET Controls - eine verbesserte Web Standard Unterstützung (CSS 2 + XHTML 1.0), ein einfacheres Objektmodell sowie die dadurch resultierende Performanceverbesserung.

Das Framework basiert auf Microsofts ASP.NET 2.0 AJAX Extensions 1.0.

Neu im März 2008 CTP sind:

  • WebDataGrid
  • WebDataTree
  • WebSlider
  • und die WebHierachicalDataSource.

Ob Infragistics die ehrgeizig gesteckten Ziele erreicht, kann jeder der möchte unter der Aikido Downloadseite selbst herausfinden.

Technorati tags: , ,

Technorati Profile


Kick it on dotnet-kicks.de
 
3/13/2008 - 09:20 AM | Comments [0] | Categories: Aikido Framework | ASP.NET | Infragistics
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Technorati tags:

Beginnend mit NetAdvantage 2007 Vol 2 spielt Infragistics ein wenig verstecken mit den Kunden. War man vorher noch gewohnt, ein großes Setup für alles zu haben, welches alles unter %program files%\Infragistics\NetAdvantage<Version> installierte, gibt es mittlerweile drei Setups, deren Inhalte in verschiedene Verzeichnisse installiert werden.

Häufig führt dies dazu, dass die Infragsitics Sapmples auf der Festplatte nicht mehr gefunden werden.

Hierfür gibt es zwei mögliche Ursachen:

  1. Das SDK wurde nicht installiert. Die Samples befinden sich innerhalb des seperat erhältlichen SDKs. Dies muss unbedingt installiert werden, wenn man Zugriff auf die Beispiele haben möchte.
  2. Die Samples sind nun nicht mehr unterhalb des Infragistics Programm Ordners abgelegt. Statt dessen befinden Sie sich im öffentlichen Profil (all users), wie der folgende Screenshot zeigt.

image

Besonders schnell und ohne Umwege kommt man übrigens über folgenden Link im Startmenü zum Ziel:

image


Kick it on dotnet-kicks.de
 
11/8/2007 - 10:49 AM | Comments [0] | Categories: Infragistics
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Technorati tags: ,

Wird im VS Win/Web Forms Designer statt eines Infragistics Controls ein Platzhalter Control mit dem Inhalt "unable to locate license assembly" angezeigt, so hängt dies höchst wahrscheinlich mit der Deinstallation einer älteren Infragistics Version zusammen.

Sämtliche Versionen "teilen" sich die selbe License DLL sowie den Help Namespace. Aus diesem Grund funktioniert nach Deinstallation einer alten Version auch häufig die Hilfe der neuen Version nicht mehr.

Lösung:

Neue Version deinstallieren und anschließend neu installieren

edit: Alternativ kann man seit einigen Versionen nun auch eine Reparaturinstallation der bestehenden neuen Version durchführen. Anschließend sollte es auch klappen.


Kick it on dotnet-kicks.de
 
11/2/2007 - 09:14 AM | Comments [0] | Categories: .NET | Infragistics
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)

Technorati tags: ,

Der Einsatz visueller Zusatzkomponenten, wie zum Beispiel NetAdvantage von Infragistics, kann der eigenen Anwendung schnell einen professionellen Touch verleihen. Mit wenigen Mausklicks kann man seinen Kunden Ribbons, gruppierbare Tabellen und weitere Nettigkeiten bieten.

Getrübt wird die Freude jedoch kurz nach dem Start der eigenen Anwendung, wenn dem Benutzer englische Texte in der deutschen Applikation präsentiert werden. Zurück in Visual Studio zeigt ein schneller Klick durch die Control Eigenschaften, dass sich die englischen Texte leider nicht so einfach über die IDE editieren lassen.

Um nun also nicht bereits innerhalb der ersten zwei Minuten jeden Anschein von Professionalität der eigenen Anwendung zu verlieren, möchte ich im folgenden Beispiel die Möglichkeiten der Infragistics NetAdvantage Windows Forms Control Lokalisierung zeigen.

Ausgehen werde ich von einer einfachen Anwendung mit einem Formular, das ein UltraGrid beherbergt. Innerhalb des Designers habe ich sowohl Gruppierung als auch Filterung aktiviert. Die folgenden Screenshots zeigen das Hauptformular der Anwendung sowie Infragistics eingebauten Filter-Dialog.

image 

 image

 

Um die englischen Texte nun also los zu werden, deklariert man zunächst eine Variable vom Typen Infragistics.Shared.ResourceCustomizer. Dieser weist man im nächsten Schritt die Customizer Eigenschaft der betreffenden Assembly - in unserem Fall also der UltraWinGrid Assembly - zu.

Im Quellcode sähe das ungefähr wie folgt aus: 

// Auf Ressource Customizer Objekt der UltaWinGrid Assembly verweisen

Infragistics.Shared.ResourceCustomizer rc;

rc = Infragistics.Win.UltraWinGrid.Resources.Customizer;

Anschließend kann man die englischen Default-Texte, mehr oder weniger bequem, über die Methode SetCustomizedString(name, customizedText) des Customizers verändern.

Den Gruppierungsbereich könnte man z. B. wie folgt übersetzen: 

// Text für Grid Gruppierung

rc.SetCustomizedString("GroupByBoxDefaultPrompt", "Um nach einer Spalte zu gruppieren, ziehen Sie die Spaltenüberschrift hierhin.");

Etwas müßig ist lediglich das Aufspüren der entsprechenden name Einträge zu den gewünschten Texten. Hierzu gehe ich immer wie folgt vor:

Ausgehend von folgender Übersicht navigiere ich zur den Texten meines entsprechenden Controls. Anschließend suche ich in der Übersicht den passenden name Eintrag für den gewünschten Text.

Die Übersetzungen gelten übrigens Applikationsübergreifend für alle Vorkommen des entsprechenden Controls. Um ein einheitliches Bild zu präsentieren sollte man seine Lokalisierung daher relativ früh durchführen.

Mein komplettes Beispielprogramm gibts

übrigens hier

.

Achtung: Zum Ausprobieren wird NetAdvantage 2007 Vol 3 benötigt!


Kick it on dotnet-kicks.de
 
10/30/2007 - 11:17 PM | Comments [0] | Categories: .NET | Infragistics
© Andre Kraemer | RSS/Subscribe Feed your aggregator (RSS 2.0)