Martin's Blog - Developer Infos zu SharePoint, ASP.NET, BI und anderen Technologien




powered by Component Software GmbH

Geo-Location Felder mit Google API befüllen

Die Idee ist ganz simpel. Da SharePoint nun Geo-Location Felder bietet (siehe mein Blogeintrag zu Geo-Location) möchte ich die Koordinaten einer Adresse automatisch über ein Webservice von Google ermitteln lassen und in die Liste eintragen. Dafür verwende ich einen Workflow der beim Anlegen eines Listen-Items automatisch gestartet wird. Zunächst wird die Liste im Visual Studio mit dem Editor angelegt: Zu beachten sind die beiden Felder “Location” und das hidden-Field: “LocationTXT”. Dieses wird aufgrund einer Einschränkung der Workflow Engine benötigt. Location-FieldValues können nicht per W... [Mehr]

Was ist schneller? CAML oder KQL

Unlängst beschäftigte ich mich mit der Frage, welcher Weg der schnellste ist, um auf die Daten zu zugreifen: der Zugriff über eine CAML Abfrage oder der Zugriff über den Search Index. Daher habe ich eine SharePoint Kontakt-Liste mit ca. 18.000 Datensätzen gefüllt und dann eine simple Abfrage programmiert. Die Aufgabenstellung war die Suche im “CompanyName” mit dem BeginsWith Operator. Die CAML Variante: lbAusgabe.Items.Clear(); SPList firmen = SPContext.Current.Web.Lists["Firmen"]; DateTime start = DateTime.Now; int anz = 0; st... [Mehr]

Der Sinn vom ViewModel–oder was sagt die Fehlermeldung “No parameterless constructor defined for this object” aus

Das MVC Pattern spricht von Model – View – Controller. Jedoch kann es auch im ASP.NET MVC sinnvoll sein ein ViewModel zu verwenden. Gute Architektur ist durch nichts zu ersetzen und beim falschen oder “abgekürzten” Einsatz eines Frameworks wie zum Beispiel ASP.NET MVC stellt mal bald fest: man hält sich besser an Architektur Empfehlungen als das Rad neu zu erfinden. Konkret wollte ich ein Eingabeformular gestalten in dem eine DropDownliste verwendet wird. Im System.Web.Mvc Namenspace gibt es eine Klasse “SelectList” und diese ist für die Darstellung einer Auswahlliste sehr gut geeignet da sie ... [Mehr]

MVC 4 – Ein View für Create und Edit

Meist sind die Datenoperationen für Create und Edit gleich. Zumindest an der Oberfläche. Daher ist es naheliegend wenn man einen View für beide Operationen nutzen möchte. Das Visual Studio legt aber per Default immer zwei Views an. Mit wenig Änderungen kann jedoch ein simpler Edit-View auch für die Datenanlage verwendet werden. Die Grundidee ist, dass es eine Eigenschaft im Datenobjekt gibt, die anzeigt, ob das Objekt neu ist, oder bereits vor dem Aufruf des Views bestand. In meinem BSP verwende ich den ID, der bei einem neuen Objekt auf –1 gesezt wird. Dafür habe ich eine “mini-Factory”-Klass... [Mehr]

T-SQL View im Entity Framework verwenden

Oftmals ist es sinnvoll eine Datenbankabfrage in SQL zu schreiben und das Ergebnis im Entity Framework als Entität zu verwenden. Allerdings gibt es meist bei aggregierten Views Probleme, da für das EF kein Primary Key vorhanden ist. Das EF erstellt automatisch einen zusammengesetzten Key für alle Spalten in der Tabelle, die nicht null sein können. Daher reicht es, wenn man im View sicherstellt, dass die Spalten “not nullable” sind. Folgendes SQL Statement kann in EF nicht verwendet werden: SELECT Quartal,KPIFK, Sum(Zahl) as Zahl FROM Planwertgroup by Quartal, KPIFK Wenn allerdings rund um die... [Mehr]

Event-based Async-Pattern in SharePoint hosted Apps mit TypeScript

TypeScript erlaubt richtige Software-Entwicklung im JavaScript-Umfeld. Klassen, Vererbung, Interfaces und Polymorphie ist nun auch in der Webentwicklung möglich. In Verbindung mit dem SharePoint Client Object Modell kann TypeScript auch genutzt werden, da seit einiger Zeit umfangreiche Type-Definition-Dateien existieren. Allerdings beruht das CSOM auf einer asynchronen Ausführung des Codes. Sobald versucht wird, die Datenzugriffe auf SharePoint in TypeScript Klassen zu verpacken um mehr Übersichtlichkeit im Code zu erhalten, steht man vor dem Problem ein Asynchronous Pattern (z.B: Event-based ... [Mehr]

Fehlermeldung beim Veröffentlichen eines InfoPath Formulars in SharePoint

Beim Veröffentlichen von InfoPath Formularen kann es zu der Fehlermeldung “Das folgende Formular kann durch InfoPath nicht gespeichert werden….” Leider ist diese Fehlermeldung nicht hilfreich. Dieses Problem tritt meist dann auf, wenn InfoPath auf der Server Maschine verwendet wird. Arbeitet man remote und nicht direkt am SharePoint Server tritt dieses Problem nicht auf. Das Problem lässt sich leicht lösen. Es muss das Windows Feature “Desktop Experience” welches im Bereich “User Interfaces and Infrastructure” angesiedelt ist aktiviert sein. Und dieses Feature ist auf Server Betriebssystem ni... [Mehr]

SharePoint Context in einem API Controller verwenden

Eine Provider-hosted SharePoint App ist letztendlich eine normale Webanwendung, die mit WebForms oder MVC erstellt werden kann. Daher ist nur eine Frage der Zeit, bis der Wunsch entsteht einen WEB-API Controller zu schreiben und diesen in der App zu nutzen. Dieser Schritt ist noch simpel. Unlängst wollte ich aber in der Controller Funktion die aktuell angemeldeten User ermitteln. eigentlich sind es nur 3 Zeilen Code: var user = ctx.Web.CurrentUser;ctx.Load(user, u => u.LoginName);ctx.ExecuteQuery(); .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: con... [Mehr]

technische Ausstattung für Business Nomaden

Nicht alle meiner Blog Einträge müssen sich um SharePoint oder Business Intelligence drehen. Da ich aber in diesen beiden Bereichen Vorträge und Schulungen halte komme ich viel herum. So habe ich gerade eine Vortragsserie für Microsoft beendet. Diese brachte mich immer Donnerstags abend nach München, Köln und nun nach Hamburg. Die Flugverbindung zurück nach Wien ist nicht ganz optimal und ich fliege erst am Abend wieder zurück. Leider hat die ppedv (noch) keinen Standort in dieser schönen Stadt und so verbringe ich nun einen Tag hier mobil und gehe dennoch meinem Job nach. Die moderne Technik... [Mehr]

SharePoint-Apps ohne App-Catalog installieren

Sobald eine App fertig entwickelt wurde, kann diese in einen SharePoint Catalog hochgeladen werden und vom Anwender installiert werden. Evtl. möchte man aber Apps installieren sodaß die Anwender sie verwenden können. Die Anwender sollen aber nicht die App in andern Sites oder Webs installieren dürfen. Hierfür bietet die SharePoint-Powershell Commandlets um eine App zu deployen und zu installieren. Und das ganze auch für Webanwendungen, denen kein App-Catalog zugewiesen wurde. 1. Import-SPAppPackage als erstes muss das App-File hochgeladen werden. Dies wird mit dem Befehl “Import-SPAppPackage” ... [Mehr]

Copyright © 2019 Martin Groblschegg - Impressum