Startseite > Techblog > Artikel mit dem Tag: visual-studio
nächste Seite
thu

Dem Einen oder Anderen hat Visual Studio wahrscheinlich schon einmal mit dieser leicht dominierenden Bildschirmausgabe überrascht. Wahrscheinlich aber haben es die Meisten noch nie zu Gesicht bekommen, denn wir sind ja keine Copy & Paste Entwickler. :)

Das ist der besagte Hinweis:

Here you can see the error message thrown by visual studio

RDClip

Randbedingungen:
Ich verwende eine virtuelle Maschine(Windows Server 2003) unter Microsoft Virtual Server 2005 R2.

Das Problem tritt gelegentlich auf, wenn innerhalb der Host Maschine etwas kopiert wird und anschließend versucht wird, das soeben kopierte, in Visual Studio, auf der Entwicklungsmaschine, einzufügen.

Lösung:

Wie kann dieses Problem nun gelöst werden? Anfangs dachte ich, der Übeltäter wäre Visual Studio, und beendete einfach den devenv.exe Prozess. Irgendwann irritierte es mich aber, dass sobald diese Meldung auftauchte überhaupt kein Copy & Paste mehr funktionierte. Zu diesem Zeitpunkt fand ich heraus, dass der eigentliche, anfangs nicht verdächtige, Prozess rdpclip.exe der Schuldige war.

Um also in Visual Studio weiter arbeiten zu können, muss einfach der Prozess rdclip.exe beendet werden. Dies kann leicht über den  Task Manager vollführt werden.

Falls anschließend wieder Copy & Paste verwendet werden soll, nicht vergessen den RdpClip.exe Prozess wieder zu starten. Gefunden werden kann dieser im Verzeichnis C:\Windows\System32

Kommentar Feed Trackback URL
thu

Für alle, die sich mit dem neuen Visual Studio und dem .NET Framework 4.0 vertraut machen  wollen oder mehr erfahren möchten, hat Microsoft das neu aktualisierte Visual Studio 2010 and .NET Framework 4 Training Kit veröffentlicht. Das am 11.01.2010 veröffentlichte 151 MB große Paket enthält eine Vielzahl von Präsentationen, Demos und Tutorials. Genau genommen 17 Präsentationen, 21 Demos und 26 Tutorials sowie 10 Videos. In dieser Version des Kits wird auch auf die Themen Office, SharePoint und Application Lifecycle Management eingegangen. Der Download lohnt sich auf alle Fälle.

Artikel vollständig lesen »

Kommentar Feed Trackback URL
dri

Communardo tritt als Media-Sponsor der BASTA! Spring 2010 auf. Sie findet vom 22.-26. Februar 2010  in Darmstadt statt und soll dem Wissens- und Erfahrungsaustausch zur .Net und SharePoint Technologie dienen.

Von Silverlight 3.0 bis Windows Azure, von Windows 7 über Visual Studio 2010 und Visual Studio Team System 2010 bis C# 4.0 und last but not least SharePoint 2010: Auf .NET-Entwickler warten viele Änderungen und Neuerungen. Auf der BASTA! Spring 2010 wird es wieder die bestmögliche Unterstützung für Ihre alltägliche Arbeit und Ihre Projekte geben. In Form von Best Practices, Hands-on Power Workshops und interessanten Sessions bieten Ihnen namhafte nationale und internationale .NET-Experten Tipps, Ideen, Unterstützung und Antworten für Ihre laufenden und zukünftigen Projekte.

Neben dem vielfältigen Programm der Hauptkonferenz beleuchten verschiedene Special Days wie z.B. der Architecture/ALM Day und die SharePoint Days wichtige Themen in einem umfassenden Sinne. Moderiert von einem Experten des jeweiligen Themas, bieten sie in zahlreichen Vorträgen umfassendes Wissen sowie einen idealen Rahmen für den Erfahrungsaustausch.

Programm und Anmeldung finden Sie  unter http://it-republik.de/dotnet/basta10spring/

Kommentar Feed Trackback URL
kug

Gelegentlich kann es vorkommen, dass aus einem Teilprojekt ein Projekt oder sogar ein Produkt wird. Um die Abspaltung vom eigentlichen Projekt sauber zu vollziehen, ist es notwendig auch die Sourcen in Source Control in ein neues TFS-Projekt zu verschieben.

Folgende Schritte sind notwendig:

  1. Lokale Workspaceverknüpfungen für das alte und das neue TFS-Projekt muss vorhanden sein (z.B. mit Check-Out anlegen)
  2. Visual Studio-Kommandozeile aufrufen
  3. In das Quellverzeichnis des Projektes wechseln
  4. Aufruf tf.exe: tf rename <Root-Ordner des alten Projekts> $/NeuesProjekt/
  5. Check-In der Änderung (z.B. im Visual Studio)

Um WorkItems zu verschieben, hab ich leider keine gute Lösung gefunden. Wenn jemand einen Hinweis hat, freue ich mich über einen entsprechenden Kommentar.

Kommentar Feed Trackback URL
thu

Vom 22 – 24.09.2009 hatte ich, dank meiner Firma, die Gelegenheit zur Shareconnect & Basta 2009 in Mainz zu fahren. Das ist zwar jetzt schon fast einen Monat her, jedoch will ich euch meine Eindrücke nicht vorenthalten.

Die Shareconnect findet im Rahmen der Basta statt und baut auf  den Sharepoint Days auf, welche seit 2007 parallel zur Basta stattfinden. In über 50 Sessions geben Experten Einblicke in die Sharepoint Welt sowohl aus Administratoren Sicht, als auch aus der Sicht von Entwicklern. Da durften auch die Experten von Communardo nicht fehlen.

Nach einem anstrengenen Flug und Bahnerlebnis und einem anschließenden Gewaltmarsch über die Theodor-Heuss-Brücke erreichte ich am 22.09 pünktlich zur ersten Session die Rheingoldhalle in Mainz. Begrüßt wurde jeder Teilnehmer mit dem Basta Survival Pack bestehend aus Rucksack, T-Shirt und allerlei Büromaterial ( Danke nochmal). Danach hat es mich direkt in den Vortrag von Oliver Sturm verschlagen, welcher bereits eifrig über die Zukunft von C# und .NET philosophierte, Co- und Kontravarianz erläuterte und die dynamischen Erweiterungen von .NET 4 vorstellte.

Gott sei dank habe ich mir im Vorfeld bereits die Sessions der Konferenz zusammengestellt, was gar nicht so einfach war.  Das Angebot umfasste rund 90 Sessions, wobei jeweils ca. 9 gleichzeitig liefen. Dank des tollen Zeitplaners konnte man aber den Überblick behalten und keine der Veranstaltungen verpassen.

Nach dem Vortrag von Oliver Sturm zog es mich direkt zu der ersten Sharepoint Session von Björn Schneider : “Planung und Aufbau von hochverfügbaren SharePoint-Infrastrukturen”.

Christian Glessner veranstaltete im Anschluss die Sharepoint Freak Show. Hier wurden richtig coole Ansätze gezeigt, Sharepoint mit jQuery, PowerShell, IronRuby oder IronPyhton zu erweitern. Seit Christians Demos, welche den Umgang  mit Powershell und Sharepoint zeigten, bin ich richtiger Fan der Powershell geworden.

Weiter ging es mit einer Demonstration wie extrem sich Sharepoint bezüglich seines User Interfaces verbiegen lässt. Michael Hofer zeigte anhand eines Fallbeispieles wie Sharepoint mit Hilfe von Bordmitteln zu einem Intranetportal ähnlich der Startseite von www.bbc.com umgebogen werden kann. Auch wenn die Technik an diesem Tag nicht mitspielte , anhand der Screenshots konnte man schon sehr gut erkennen welche Lesitung in diesem Customizing Projekt erbracht wurde.

Für die letzte Session des Tages habe ich mir “(Keine) Zeit für Herzrasen” von Torsten Weber gegönnt. Am besten ist dieses Thema durch Torstens eigene Worte beschrieben:

Es geht um Handlungsmaximen für eine ausgeglichene Work-Life-Balance, “Entschleunigung” für Fortbildung, Freiräume und Erfolg mit Werkzeugen wie MindManager oder Livescribe.

Obwohl dieser Vortrag so rein gar nichts mit Programmierung oder IT zu tun hat, habe ich es genossen Torstens Worte zu folgen. Wer mehr zu dem Vortrag erfahren möchte kann ihn hier nochmal nachlesen.

So ging er zu Ende dieser erste Tag der Shareconnect & Basta in Mainz. Zwischen den Sessions wurde man durch das Konferenz Team mit reichlich Kaffee, Kuchen, Brötchen und warmen Mahlzeiten am Mittag versorgt. Ganz nebenbei konnte ich nette Kontakte knüpfen und Produkte von Firmen bestaunen. Es gab sogar die Möglichkeit sich massieren zu lassen.

Pünktlich 8:30 ging es dann am Mittwoch mit Bus und Bahn zur Reingoldhalle, zum zweiten Tag der Basta. Nach einer kurzen Auffrischung meiner Webpartentwicklungs – Kentnisse mit Renè Hèzser verschlug es mich zu Manfred Steyers Session “Codequalität mittels Code Contracts und PEX”.  Da meine Interessengebiete in Codequalität und Clean Code Development liegen, war ich sehr interessiert daran wie Code mittels Code Contracts besser und sicherer gestaltet werden kann. Zunächst entwickelte Manfred Steyer eine unscheinbare C# Klasse, welche ein Taschengeldkonto verwalten kann. Nach und nach wurden Mängel und Lücken im Quellcode aufgedeckt und anschließend erläutert, wie diese durch Code Contracts und PEX verhindert werden können. Für mich eine der besten Sessions der Basta.

Die letzten drei Sessions für diesen Tag waren sehr von Silverlight 3 geprägt. Los ging es mit Christian Wenz, welcher alle prägnanten Neuigkeiten in Silverlight 3 präsentierte. Dazu gehören Features wie Element Data Binding, 3D Unterstützung oder das legendäre Out Of Browser Funktionalität ;)
Oliver Scheer schloss sich den Ausführungen von Christian Wenz fast nahtlos an und erläuterte wie Silverlight 3 für Enterprise Business Aplikationen verwendet werden kann. Silverlight 3 bringt dazu schon einiges an Funktionalität mit, wie etwa die eben genannte Out Of Browser Fähigkeit, smooth streaming oder die neuen RIA Services. Obwohl Olivers Vortrag eher sehr multimedialastig gehalten war und ich den Enterprise Aplikations Teil ein wenig vermisst habe war die Darbietung von Oliver wie immer sehr genial. Jörg Krause beendete den Tag mit einem Überblick der Methoden um Webparts in Kombination mit Silverlight zu verwenden.

Selbst den Abend konnte man auf der Basta verbringen indem man sich beispielsweise direkt auf das BASToberfest gesellte.

Der dritte und somit letzte Tag der Basta war für mich komplett von Silverlight und WPF geprägt. So ging es pünktlich 8:30 mit Oliver Scheer und seinen Ausführungen zu “Design the next RIA Generation” los. Nach diesem Vortrag sollte auch der Letzte alle neuen Features von Silverlight 3 kennen :) Ob Ton, Bild, Streaming ,Styling oder Skinning.
Markus Egger zeigte in den nachfolgenden 2 Sessions wie WPF & Silverlight Business Applications gestylet und anschließend in wiederverwendbare Komponenten ausgelagert werden werden können.  Auch diese beiden Tracks kann ich mit gutem Gewissen zu meinen persönlichen Highlights der Basta zählen. Anhand eines aktuellen Projektes erklärte er wie mit Hilfe von Styling und Skinning die Performance und Usablity einer Applikation gesteigert werden kann. Anschließend zeigte er auf welche Art und Weise Silverlight Komponenten ausgelagert und somit zu wiederverwendbaren Komponenten gewandelt werden können. Auch aus diesen Erläuterungen konnte ich sehr viel für mich mit nach Hause nehmen. Die für mich letzte Session der Basta verbrachte ich bei Jan Blessenohl von Telerik und seinen Ausführungen zu Silverlight und dem RIA Framework.

Vor der täglichen  Mittagspause fanden sogenannte KeyNotes statt in denen Sprecher wie Tony Lanni oder aber auch Frank Fischer von Microsoft die Zuschauer unterhielten.Tonny Lanni erklärte in seiner KeyNote “What can Sharepoint do for you” wie sehr er die Sharepoint Fee mag und diese Figur in seiner Firma wiederspiegelt. :) Hier nochmal für alle das Video

[youtube]http://www.youtube.com/watch?v=lw-OHO3UMco&feature=PlayList&p=328055501A304058&playnext=1&playnext_from=PL&index=36[/youtube]

Abschließend kann ich feststellen, dass sich die Shareconnect und Basta 2009 für mich persönlich sehr gelohnt hat. Ich konnte viele für mich neue Gesichter kennenlernen und auch viele Anregungen mit nach Hause nehmen.

Kommentar Feed Trackback URL
thu

Neugierig geworden von der diesjährigen  Basta! und Oliver Scheers Vortrag über Silverlight und das .NET RIA Framework, wollte ich das Gehörte heute einmal versuchen in die Praxis umzusetzen.

Das .NET Rich Internet Application (RIA) Framework unterstützt  den Entwickler bei der Erstellung  n- schichtiger Applikationen. Die .NET RIA Services bilden dabei ein Datenzugriffsmodell welche aus einem Objektmodell (z.B. ADO.NET Entity Framework) einen sogenannten Domain Service zur Verfügung stellen können. Die Hauptzielgruppe dieser Technologie sind  .NET Entwickler welche sich vorrangig in Silverlight sowie ASP.NET Anwendungen heimisch fühlen.

Die erste Version der .NET RIA Services kann hier heruntergeladen werden. Es sollte beachtet werden, dass es sich dabei um eine frühe CTP Version handelt.

Nach dem ersten Installationsversuch der .NET RIA Services erhielt  ich folgende Fehlermeldung.

The following required components are missing.
Microsoft Silverlight 3 Developer Runtime
Microsoft Silverlight 3 Beta SDK
Microsoft Silverlight 3 Tools.

incompatible versions

Da ich die komplette Silverlight 3 Runtime inkl. Silverlight Tools bereits installiert hatte, erschien mir die Fehlermeldung etwas irreführend.  Nach kurzer Suche fand ich heraus, dass die .NET RIA Services nicht mit einer deutschen Installation von Visual Studio zusammenarbeiten. Aber wie so oft gibt es auch hier einen nicht dokumentierten Weg um an das Ziel zu kommen :)

Voraussetzung:

  • installiertes Visual Studio 2008 SP1
  • Silverlight 3 SDK
  • Silverlight 3 Tools für Visual Studio

1. Nachdem die .NET RIA Services heruntergeladen wurden in das Downloadverzeichnis wechseln
2. Folgenden Befehl ausführen msiexec /i RiaServices.msi NOCHECK=true

  • Dieser Befehl bewirkt, dass der Windows Installer aufgerufen wird, ohne jegliche Prüfung durchzuführen

3. Sofern die Installation fehlerfrei abgelaufen ist, folgen nun weitere wichtige Schritte:

  • Wechsel in das Verzeichnis C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\1033
    Darin befinden sich die zwei Zip Dateien BusinessApplication.zip und RIAServicesLibrary.zip.
    Diese beiden Dateien müssen nun in das deutsche Verzeichnis kopiert werden, zum Beispiel für eine deutsche Installation
    C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\1031
    Durch diese Aktion kann nun innerhalb des Neu->Projekt Dialoges das RIA Template gewählt werden
  • Um die Funktionen rund um die Domain Service Class und Authentifizierung nutzen zu können, müssen nun noch die Element Vorlagen kopiert werden. Dazu  in den folgenden Ordner wechseln C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\1033 und folgende Dateien in das deutsche Verzeichnis kopieren C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\1031
    - AuthenticationDomainService.zip
    - BusinessLogic.zip
    - SearchSitemap.zip
    - AdoNetDataService_DomainServiceCSharpWap.zip

4. Nun die Kommandozeile aufrufen und in folgendes Verzeichnis wechseln C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE


5. Von dort aus folgenden Befehl ausführen: devenv /installvstemplates

  • Visual Studio installiert nun alle neu gefundenen Templates für Projekte und Elemente

Sollte die nachstehende Fehlermeldung erscheinen: “Der angeforderte Vorgang erfordert erhöhte Rechte”, muss die Kommandozeile als Administrator ausgeführt werden.

Nach dem Neustart von Visual Studio sollte nun in der Projektvorlagenübersicht .NET RIA Service Class Library

ria1
und in dem Dialog Hinzufügen -> Neues Element die Domain Service Class auswählbar sein.

ria2

Neugierig geworden von der diesjährigen Basta! und Oliver Scheers Vortrag über Silverlight und das .NET RIA Framework, wollte ich das Gehörte heute einmal versuchen in die Praxis umzusetzen.

Das .NET Rich Internet Application (RIA) Framework unterstützt  den Entwickler bei der Erstellung  n- schichtiger Applikationen. Die .NET RIA Services bilden dabei ein Datenzugriffsmodell welche aus einem Objektmodell (z.B. ADO.NET Entity Framework) einen sogenannten Domain Service zur Verfügung stellen können. Die Hauptzielgruppe dieser Technologie sind  .NET Entwickler welche sich vorrangig in Silverlight sowie ASP.NET Anwendungen heimisch fühlen.

Die erste Version der .NET RIA Services kann hier heruntergeladen werden. Es sollte beachtet werden, dass es sich dabei um eine frühe CTP Version handelt.

Nach dem ersten Installationsversuch der .NET RIA Services erhielt  ich folgende Fehlermeldung.

The following required components are missing.
Microsoft Silverlight 3 Developer Runtime
Microsoft Silverlight 3 Beta SDK
Microsoft Silverlight 3 Tools.

incompatible versions

Da ich die komplette Silverlight 3 Runtime inkl. Silverlight Tools bereits installiert hatte, erschien mir die Fehlermeldung etwas irreführend.  Nach kurzer Suche fand ich heraus, dass die .NET RIA Services nicht mit einer deutschen Installation von Visual Studio zusammenarbeiten. Aber wie so oft gibt es auch hier einen nicht dokumentierten Weg um an das Ziel zu kommen :)

Voraussetzung:

  • installiertes Visual Studio 2008 SP1
  • Silverlight 3 SDK
  • Silverlight 3 Tools für Visual Studio

1. Nachdem die .NET RIA Services heruntergeladen wurden in das Downloadverzeichnis wechseln
2. Folgenden Befehl ausführen msiexec /i RiaServices.msi NOCHECK=true

  • Dieser Befehl bewirkt, dass der Windows Installer aufgerufen wird, ohne jegliche Prüfung durchzuführen

3. Sofern die Installation fehlerfrei abgelaufen ist, folgen nun weitere wichtige Schritte:

  • Wechsel in das Verzeichnis C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\1033
    Darin befinden sich die zwei Zip Dateien BusinessApplication.zip und RIAServicesLibrary.zip.
    Diese beiden Dateien müssen nun in das deutsche Verzeichnis kopiert werden, zum Beispiel für eine deutsche Installation
    C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\1031
    Durch diese Aktion kann nun innerhalb des Neu->Projekt Dialoges das RIA Template gewählt werden
  • Um die Funktionen rund um die Domain Service Class und Authentifizierung nutzen zu können, müssen nun noch die Element Vorlagen kopiert werden. Dazu  in den folgenden Ordner wechseln C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\1033 und folgende Dateien in das deutsche Verzeichnis kopieren C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\1031
    - AuthenticationDomainService.zip
    - BusinessLogic.zip
    - SearchSitemap.zip
    - AdoNetDataService_DomainServiceCSharpWap.zip

4. Nun die Kommandozeile aufrufen und in folgendes Verzeichnis wechseln C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
5. Von dort aus folgenden Befehl ausführen: devenv /installvstemplates

  • Visual Studio installiert nun alle neu gefundenen Templates für Projekte und Elemente

Sollte die nachstehende Fehlermeldung erscheinen: “Der angeforderte Vorgang erfordert erhöhte Rechte”, muss die Kommandozeile als Administrator ausgeführt werden.

Kommentar Feed Trackback URL
thu

Steht man vor der Aufgabe einen Sharepoint optisch anpassen zu müssen, ist oft die Masterpage anzupassen. Wird der Sharepoint lediglich als interner Portalserver verwendet, welcher nur von einer bestimmten Zielgruppe genutzt wird, reicht dazu meist das Anlegen einer eigenen Masterpage aus.

In einem aktuellen Projekt stand ich jedoch vor dem Problem, Gästen sowie Administratoren jeweils eine eigene Masterpage zur Verfügung zu stellen. Sharepoint selber bietet keine Möglichkeit zu unterscheiden ob gerade ein Gast oder ein Nutzer auf eine Seite zugreift und eine entsprechende Masterpage auszuliefern.

Auf der Suche nach einer Lösung im Internet wurde ich relativ schnell fündig, jedoch funktionierten die angebotenen Lösungen nicht für Publishing Pages oder Template Redirection Pages.

Um die Masterpage dynamisch für Publishing Pages zu ändern, verwendet man die nachfolgende Eigenschaft:

SPContext.Current.Web.CustomMasterUrl

Die nächste Eigenschaft kann nur verwendet werden, wenn es sich nicht um Publishing Pages handelt oder man die “application.master” verändern will.

page.MasterPageFile = "/_catalogs/masterpage/default.master"

Auf Basis dieser Informationen kann nun ein Skript geschrieben werden, welches abhängig davon ob ein Nutzer angemeldet ist oder nicht, die Masterpage setzen kann. Als Ergänzung dazu kann innerhalb der “page_PreInit” die application.master auf eine eigene Masterpage eingestellt werden.

Alles was man dazu tun muss, ist, sich ein neues dll Projekt anzulegen und die fertig kompilierte dll in dem Global Assembly Cache abzulegen. Dabei ist es wichtig die dll zu signieren.

using System;
using System.Web;
using System.Web.UI;
using System.IO;
using Microsoft.SharePoint.Publishing;
using Microsoft.SharePoint;

public class MasterPageSwitch : IHttpModule
{
        public void Init(HttpApplication context)
        {
            context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
        }

     void context_PreRequestHandlerExecute(object sender, EventArgs e)
        {
            Page page = HttpContext.Current.CurrentHandler as Page;

            if (page is PublishingLayoutPage || page is TemplateRedirectionPage)
            {
                HttpApplication currentApp = sender as HttpApplication;
                string parameter = "";
                if (HttpContext.Current.User.Identity.IsAuthenticated)
                {
                    parameter = "/_catalogs/masterpage/adminMaster.master";
                }
                else
                {
                    parameter = "/_catalogs/masterpage/guestMaster.master";
                }
                if (parameter != null)
                {
                    SPContext.Current.Web.CustomMasterUrl = parameter;
                }
            }
            else
            {
                if (page != null)
                    page.PreInit += new EventHandler(page_PreInit);
            }
        }

         void page_PreInit(object sender, EventArgs e)
        {
            Page page = sender as Page;
            if (page != null)
            {
                if (page.MasterPageFile != null)
                {
                    if (page.MasterPageFile.Contains("application.master"))
                    {
                      //auskommentiert da wir die Änderung der application.master nicht benötigen
                      //page.MasterPageFile = "/_catalogs/masterpage/default.master";
                    }
                }
            }
        }

        public void Dispose()
        {
        }
}

Als letzten Schritt fügt man innerhalb der web.config unter der Sektion folgenden Eintrag hinzu :

<add name="MasterPageSwitch" type="MasterPageSwitch, MasterPageSwitch, Version=1.0.0.0, Culture=neutral, PublicKeyToken=................"/>

Kommentar Feed Trackback URL
dri

Crystal Reports ist ein leistungsfähiges Berichtserstellungstool (mittlerweile) aus dem Hause SAP, vorher von Business Objects, noch davor von Crystal Decisions (nein, Seagate Software erwähne ich jetzt nicht auch noch…) am Markt angeboten. Die Crystal Reports Runtime ist für Microsoft-Entwickler (bzw. deren Anwendungen) kostenlos nutzbar, solange ich mich zurückerinnern kann (und das geht immerhin abwärts bis Visual Basic 5.0 – in was für Sprachen man so alles mal programmiert hat…).

Jedenfalls gilt dies auch im Zeitalter von .Net und C# und es ist gängige Praxis, als Firma einige wenige Crystal Reports Vollversionen zu erwerben, die für die reine Berichtserstellung genutzt werden (in der Regel nicht von Programmierern) und dazu eine Anwendung (vorzugsweise eine Webanwendung)  zu erstellen, die den kostenlosen Crystal Reports Viewer mit all seinen Features (Parameterübergabe, Filtern, Export in verschiedene Formate etc.) integriert. Dabei kann man je nach Anforderungen die diversen Funktionalitäten des Viewers entweder out-of-the-box über dessen Toolbar nutzen oder selbst recht komfortabel über die Runtime-API programmieren. Das funktioniert sogar in SharePoint, indem man den Viewer in einen Webpart einbindet. Eigentlich eine feine Sache.

Um die Crystal Reports Runtime in ein eigenes Setup einzubinden, werden von SAP sogenannte Merge Module zum Download bereitgestellt. Diese muss man nur in Visual Studio.Net einem Setup-Projekt hinzufügen – und die Welt ist schön.

Mit Visual Studio.Net ist außerdem eine Art Spar-Edition von Crystal Reports gebundelt. Wer will, kann also auch hier Berichte erstellen, allerdings ist die Oberfläche etwas gewöhnungsbedürftig, wenn man die Vollversion kennt. Außerdem sind die gebundelten Versionen nicht gerade die aktuellsten: Die zur Zeit aktuelle Version ist Crystal Reports 2008 (entspricht Version 12), mit Visual Studio.Net werden folgende Versionen ausgeliefert:

  • VS.Net 2008: Crystal Reports 10.5
  • VS.Net 2005: Crystal Reports 10.2
  • VS.Net 2003: Crystal Reports 9

Das sehr verbreitete Crystal Reports XI kann nur mit einer Vollversion zur Berichtserstellung genutzt werden, es gibt aber verschiedene Runtime-Versionen für alle .Net Framework-Versionen von 1.1 bis 3.5. Bis hierher also alles im grünen Bereich.

Etwas befremdlich wird es allerdings, wenn man darüber nachdenkt, den Webserver/SharePoint auf einem 64-Bit-System zu installieren (was ja im Jahre 2009 keine sehr vermessene Idee scheint und z.B. von Microsoft für den SharePoint Server empfohlen wird):

  • Erste Erkenntnis: Die bisher für 32bit verwendete Runtime läuft unter 64bit nicht.
  • Zweite Erkenntnis: Nachdem man erstmal eine ganze Weile verzweifelt danach gegoogelt hat, irgendwo eine unter 64bit lauffähige Runtime für Crystal Reports XI zum Download zu finden, wird mit diesem Artikel vom SAP Support die Vermutung, dass Crystal Reports XI keine 64-Bit-Systeme unterstützt, zur traurigen Gewissheit. Crystal Reports 10 ist die “letzte” Crystal Reports Version, für die eine auf 64-Bit-Systemen lauffähige Runtime verfügbar ist. Etwaige weitere Schlüsse zu ziehen, wird dem geneigten Leser selbst überlassen…
  • Dritte (“Trostpflaster”-) Erkenntnis: Immerhin ist es möglich, mit Crystal Reports XI erstellte Reports unter der Runtime von Crystal Reports 10 und damit auch auf einem 64-Bit-System zum Laufen zu bringen. Dieser MSDN-Artikel beschreibt, wo die erforderlichen Redistributables zu finden sind, im VS-Projekt müssen noch die Referenzen auf die DLLs von Crystal Reports XI gegen die 10er DLLs ausgetauscht werden und wenn dann das Ganze noch kompiliert, hat man schon fast gewonnen :-)

Hat man allerdings in der bisherigen Anwendung ein Feature genutzt, das es in Crystal Reports 10 noch nicht gab, dann wird man wohl als 2. Sieger aus dem Rennen gehen…

Kommentar Feed Trackback URL
kug

Mit den Visual-Studio-Erweiterungen für Sharepoint wird der Entwickler schon sehr gut beim Deployment auf seinem Entwicklungssystem unterstützt. Ein Nachteil ist jedoch, dass der Deployment-Prozess recht lang dauert. Der Grund ist, dass der Workflow in eine Solution verpackt und deployed wird.

Um das Deployment während der Entwicklung zu beschleunigen, kann direkt nach dem Build eine Batch-Datei ausgeführt werden, die diese Aufgabe übernimmt. Post-build events werden direkt in den Projekteigenschaften unter “Build Events” konfiguriert. Um eine Batch-Datei aufzurufen ist folgender Befehl notwendig:

call “$(ProjectDir)\PostBuildEvent.bat”

Um die Batch-Datei möglichst generisch zu gestalten stehen diverse Makros zur Verfügung, die als Parameter übergeben werden können.

Folgende Aktionen sind per Batch auszuführen:

  1. Assembly zum GAC hinzufügen mittels GACUtil
  2. Kopieren von Dateien in den 12-Ordner von Sharepoint
  3. Kopieren von Dateien direkt in die Sharepoint-Datenbank. Dies kann mittels UNC-Pfad geschehen. Bsp: \\server\website1\documents
  4. Deaktivieren des Features
  5. Deinstallieren des Features
  6. Installieren des Features
  7. Aktivieren des Features
  8. IISRESET

Sollte es nur ein Webpart sein, können die Punkte 4-7 ausgelassen werden. Alternativ kann die DLL auch ins BIN-Verzeichnis von Sharepoint kopiert werden, anstatt sie im GAC zu deployen. Die Verzeichnisse können mittels Umgebungsvariablen und der oben bereits erwähnten Makros systemunabhängig ermittelt werden. Mit dem eigenen Deployment lässt sich während der Entwicklung viel Zeit sparen…

Kommentar Feed Trackback URL
kug

In Visual Studio 2005 gibt es leider einen kleinen Bug in den “Extensions for WF”. Das Debuggen von Workflows, also nicht des Quellcodes, funktioniert oft nur schlecht oder garnicht. Häufig stürzt das Visual Studio sogar ab, wenn man versucht den Debugger an einen Prozess zu hängen, der Workflows verwendet. Einen solchen Prozess erkennt man recht leicht, indem man einen Blick auf den Typ wirft. Steht dort u.a. “Workflow” (siehe Abbildung) sollte man sich besser nicht an den Prozess hängen.

Blog_WF_Debug

Verhindern lässt sich dieser Effekt indem man das Visual Studio bereits an den Prozess hängt, bevor die Assembly des Workflows geladen wurde, wobei ggf. vorher ein iisreset durchgeführt werden muss. Sobald die Assembly geladen wurde, lässt sich der Quelltext wie gewohnt debuggen.

Kommentar Feed Trackback URL
nächste Seite

Tag Cloud

Unsere Themen

Kommentare

  • SharePoint_Team: Rückblick zum Treffen der .NET Usergroup Dresden am 24.02.2010: im #Communardo #Techblog...
  • TorstenHu: Rückblick zum Treffen der .NET Usergroup Dresden am 24.02.2010: im #Communardo #Techblog...
  • SharePoint_Team: Neuer Blogpost zur #BastaCon im #Communardo #TechBlog: http://tinyurl.com/yjqyqpb This comment was...
  • SharePoint_Team: Nur noch etwa 1 Stunde, dann beginnt die .NET Usergroup… http://bit.ly/dxDoKg This comment was...
  • SharePoint_Team: RT @TorstenHu: ViS is waiting for an operation oder Warum Copy & Paste schlecht ist: #Communardo...

Twitter