.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv Januar 2014

CeBIT 2014: Was Microsoft so plant

28.01.2014 20:12:35 | Mathias Gronau

Selbstverständlich fehlt auf der diesjährigen CeBIT auch Microsoft nicht. Der Stand steht unter dem Motto Adding Productivity to Datability, das flexibel durch die Dimensionen Simplicity, Profitability und Creativity ergänzt wird. Viel mehr verrät Microsoft bislang noch nicht, aber dass sich in diesem Jahr alles um Unternehmenskunden drehen wird, hat Microsoft bereits verraten. Aber das war ja aufgrund der Neuausrichtung der CeBIT eh’ klar. Das spiegelt sich auch in der Aufteilung des Standes wider: Auch die Optik des Standes hat Microsoft bereits verraten: Zusätzlich hat das Unternehmen auch bereits bekanntgegeben, dass es auch in diesem Jahr wieder Vorträge geben wird. Aber auch in diesem Bereich sind die Vorbereitungen noch nicht abgeschlossen, aber in Kürze soll es auch Informationen geben, welche Vorträge gehalten werden und wann wir diese Vorträge genießen können.

CeBIT 2014: Kaspersky präsentiert sich im Konferenzformat

28.01.2014 19:38:28 | Mathias Gronau

Kaspersky Lab präsentiert sich vom 10. bis zum 14. März 2014 auf der CeBIT in Halle 12, Stand C74. Wie nicht anders zu erwarten war, stehen in diesem Jahr nicht die Consumer im Mittelpunkt, sondern mittelständische und große Unternehmen. So werden in diesem Jahr Roundtables, Foren und Lounge-Gespräche angeboten. Dabei konzentriert sich Kaspersky Lab gemäß der diesjährigen CeBIT-Ausrichtung ausdrücklich auf Unternehmenskunden. Wie in den Vorjahren sind daneben Partner aus System- und Fachhandel sowie Distributoren in die Messekonzeption mit einbezogen. “Vor dem Hintergrund nationalstaatlicher Wirtschaftsspionage und krimineller Cyberangriffe, die Organisationen immer zielgerichteter attackieren, wird der Schutz sämtlicher Endpoints inner- und außerhalb eines Unternehmensnetzwerks zum zentralen Thema für alle Mitarbeiter – vom IT-Verantwortlichen bis zur Geschäftsführung”, so Holger Suhl, General Manager DACH bei Kaspersky Lab. “Wir informieren die Messebesucher der CeBIT gemeinsam mit unseren Partnern über alle derzeit relevanten IT-Sicherheitsthemen und stellen adäquate Sicherheitskonzepte, -strategien und -lösungen vor.” Unter dem Motto “See it. Control it. Protect it. With Kaspersky, now you can.” bietet der Messestand von Kaspersky Lab ein vielfältiges Programm und zahlreiche Informationsangebote. Dazu zählt beispielsweise das Kaspersky-Forum, in dessen Rahmen täglich Keynotes und Vorträge zu Sicherheitsthemen aus Bereichen wie IT-Security, Schutz kritischer Infrastrukturen, Bedrohungslage für Unternehmen, Fraud Prevention oder Datability stattfinden. Mit seinem neuen Konferenzformat steht der Kaspersky-Stand dem Publikum als interaktives Konferenzareal in der Messehalle 12 zur Verfügung. Auch das CeBIT-Leitthema Datability wird von den IT-Sicherheitsexperten am Stand aufgegriffen. Der verantwortungsvolle und nachhaltige Umgang mit großen Datenmengen ermöglicht Anbietern und Kunden gleichermaßen große Potenziale, stellt jedoch auch ein Risikopotenzial bei unsicherer Nutzung dar. Im Ausstellungsbereich werden die Standbesucher mittels Live-Demos über diese Themen der IT-Sicherheit für Mittelstand und Großunternehmen fachmännisch beraten. Kaspersky Lab präsentiert auf der CeBIT 2014 sein komplettes Unternehmensproduktportfolio und betont, das von mittelständischen Unternehmen bis zum Großkonzern alle Firmengrößen und IT-Sicherheitsbereiche adressiert werden. Kaspersky Lab beteiligt sich auch am Konferenzprogramm der CeBIT, den Global Conferences. Das Unternehmen wird mit zahlreichen Sprechern auf dem Messegelände zu unterschiedlichen IT-Sicherheitsthemen vertreten sein. Wie wichtig Kasperski diese Veranstaltung nimmt, zeigt, dass Eugene Kaspersky, CEO und Chairman von Kaspersky Lab, am 11. März 2014 im Rahmen der CeBIT Global Conferences unter dem Titel “Cyberunderworld: How it works.” eine Keynote hält.

Aus SkyDrive wird OneDrive

28.01.2014 19:19:31 | Mathias Gronau

Nachdem Microsoft einen Prozess gegen den Fernsehanbieter Sky um Namensrechte verloren hat, muss das Unternehmen sein Speicherplatz-Angebot in der Cloud umbenennen. Nun hat Microsoft den neuen Namen bekanntgegeben: aus SkyDrive wird OneDrive. Im gleichen Zug wird auch das Angebot für Unternehmenskunden, das bislang SkyDrive Pro hieß, in OneDrive for Business umbenannt. Und wenn das Produkt schon umgetauft wird, soll es auch einige neue Funktionen erhalten. Um welche Features es sich dabei handelt, hat Microsoft aber noch nicht bekanntgegeben. Zumindest für die Unternehmenskunden soll das Geheimnis aber auf der Sharepoint-Konferenz am 3. März 2014 in Las Vegas gelüftet werden.Wenn alles so läuft wie Microsoft es sich jetzt vorstellt, müssen die Nutzer des Cloudspeichers im Rahmen dieser Umstellung nicht aktiv werden. Eventuell wird es neue Apps geben, vielleicht werden die aber auch im Rahmen eines Updates verteilt. Vermutlich steht irgendwann einmal nicht mehr SkyDrive auf dem Bildschirm, sondern OneDrive. Sollte die Umstellung nicht so laufen wie jetzt geplant, so dass die Nutzer in irgendeiner Weise aktiv werden müssen, wird Microsoft dies sicher rechtzeitig vorher publizieren.

CeBIT 2014: Mehr als doppelt so viele britische Aussteller wie im letzten Jahr

28.01.2014 18:55:19 | Mathias Gronau

Tja, da war ich gestern wohl etwas zu früh dran. Ich hatte geschrieben, dass auf der Homepage der CeBIT nur ein Unternehmen aus Großbritannien gelistet ist, das aber gleich mit zwei Ständen. Heute wurde die Liste aktualisiert und es werden immerhin 21 Stände aufgezählt. Damit präsentieren sich aus dem Partnerland der CeBIT 2014 im Vergleich zum letzten Jahr mehr als doppelt so viele Unternehmen. Gezeigt werden britische IT-Exporteure aus den Bereichen Big Data, E-Health, Cybersicherheit und intelligente Städte. Zudem will sich Großbritannien auch als attraktiver Investitionsstandort vorstellen.   In Hannover zeigt die britische IT-Branche ihre ganze Dynamik: Von marktbestimmenden Global Playern wie British Telecom und Vodafone über starke Mittelständler stellen sich auch Jungunternehmen direkt aus Londons Startup-Szene Tech City vor. “Vor den Augen der Welt, die auf diese Ausstellung gerichtet sind, zeigen wir unsere Kompetenz in Bereichen wie E-Health, Big Data und Cyber-Sicherheit. Als größter Handelspartner Deutschlands setzen wir auch ein Zeichen für die Stärke unserer Wirtschaft im Allgemeinen und der IT-Branche im Besonderen”, sagt Lord Livingston, Britischer Staatssekretär für Handel und Investitionen. Mit Fokus auf Big Data, Smart City und E-Health präsentieren sich sechs britische Jungunternehmen bei dem Startup-Wettbewerb CODE_n in der Halle 16. Am Partnerlandstand in der Halle 6 zeigen Firmen wie Peachinc und Tento intelligentes Ticketing sowie einen neuen Sicherheitsansatz Cyber-Kriminalität durch visuelle Kryptographie zu bekämpfen. Im Bereich Research & Innovation in der Halle 9 gibt das Partnerland Einblicke in die Entwicklung bei hochklassigen Universitäten und Forschungsinstituten. Zusätzlich veranstaltet Großbritannien Seminare und Veranstaltungen für internationale Gäste im Haus der Nationen. Hierzu zählen der Britische-Deutsche ITK-Gipfel mit Lord Livingston und Joanna Shields, Vorsitzende von Tech City UK, die erste “Women Leaders in Tech”-Veranstaltung auf der CeBIT sowie ein Event mit internationalen Start-ups und Tech City Start-ups.   “Es ist für Großbritannien eine große Ehre, Partnerland der diesjährigen CeBIT zu sein. Dies gibt uns die einmalige Chance, all das zu präsentieren, was Großbritannien als Exporteur von IT-Produkten und –Dienstleistungen von Weltklasse wie auch als attraktiver Wirtschaftsstandort in dieser dynamischen Branche zu bieten hat”, sagt Lord Livingston. Mit einem Umsatz von rund 70 Milliarden Euro und 1,3 Millionen beschäftigten, ist Großbritannien Europas Marktführer für Software und IT-Dienstleistungen und gleichzeitig der größte europäische Markt für High-End Verbraucherelektronik.     21

Die CeBIT 2014 wirft ihre Schatten voraus

27.01.2014 14:57:28 | Mathias Gronau

Vom 11. Bis 15. März ist es wieder so weit: die CeBIT öffnet in Hannover ihre Pforten. In den letzten Jahren lasen wir vor allem viel über sinkende Besucherzahlen auf der CeBIT. Manch eine Publikation sah sich sogar veranlasst, bereits das Totenglöckchen für die CeBIT zu läuten, so zum Beispiel drwindows.de. Auch Spiegel Online sprach im letzten Jahr der CeBIT aufgrund des Rückgangs der Besucherzahlen um etwa 9 % ihren Status als Leitmesse ab. Ich halte diese Aussagen für überzogen bis falsch. Viele Unternehmen, die früher auf der CeBIT ausgestellt haben, finden sich heute lieber auf anderen Branchenmessen ein, um dort ihre speziellen Lösungen vorzustellen. Aber auch wenn dadurch die Zahlen der Aussteller und Besucher niedriger ausfallen, bleibt die CeBIT als Treffpunkt der IT-Branche nach wie vor wichtig und notwendig. Andererseits muss ich nicht extra meine Glaskugel putzen, um vorherzusagen, dass die CeBIT auch in diesem Jahr wieder einen deutlichen Besucherrückgang zu vermelden haben wird. Der Grund ist einfach: zum zweiten Mal nach 1999 will die CeBIT eine reine Businessmesse werden. Die Consumerthemen, die in den letzten Jahren eh auf der CeBIT seltener zu sehen waren, werden ab diesem Jahr ganz fehlen. Intel hatte seit längerer Zeit eine ganze Halle mit Computerspielen gefüllt; im letzten Jahr war dies nach meinem Gefühl auch die am besten besuchte Halle. Dies wird es in diesem Jahr nicht mehr geben, Intel erwägt aber ein Ersatzevent. Ob dieser in Deutschland stattfinden wird, ist bislang noch nicht sicher. Im Gespräch war auch eine Location in Polen. Diese Besucher werden wohl in diesem Jahr vollständig fehlen. Überhaupt – wer als Consumer auf die CeBIT geht, stolze 60 Euro Eintritt zahlt und anschließend durch die Hallen streift, um sich bespaßen zu lassen, wird in diesem Jahr mit Sicherheit noch enttäuschter sein als im letzten Jahr. Er wäre auf der IFA, die im September in Berlin stattfinden wird, besser aufgehoben. Seit vielen Jahren bietet die CeBIT neben der klassischen Ausstellung auch ein umfangreiches Konferenzprogramm an. Dieses Angebot soll in diesem Jahr deutlich ausgebaut werden. Traditionell fährt die CeBIT viele hochkarätige Sprecher nicht nur aus Deutschland auf. Für eine Konferenz mit dieser Qualität ist der Eintritt doch wohl auch ein echtes Schnäppchen. Die Konferenz zu beschreiben würde den Rahmen dieses Artikels sprengen. Die Konferenz ist eine eigene Beschreibung wert. Aber auch in den Hallen gibt es etliche interessante Neuheiten zu sehen. Ob es das Office to go der Telekom, die neuen Services von digitalSTROM oder das flachste Ultrabook der Welt von Fujitsu ist – wer etwas sucht, wird lohnende Neuheiten finden. Ich war auf einer Preview und werde bereits im Vorfeld der Messe über die dort vorgestellten Neuheiten berichten. Über die Neuheiten der Startups will ich jetzt gar nicht schreiben. Aber im letzten Jahr gab es auch auf dem Gemeinschaftsstand von code_n viele überraschende neue Ideen zu bestaunen. Wie in jedem Jahr hat die CeBIT selbstverständlich auch in diesem Jahr ein Leitthema. In diesem Jahr ist es Big Data. Dieses immer wieder kontrovers diskutierte und häufig auch missverstandene Thema wird […]

Qualität, aber bitte agil!

24.01.2014 18:25:42 | Hendrik Loesch

Gestern war ich bei Agile Saxony und habe über die unterschiedlichen Schulen des TDD gesprochen und wie sie sich auf unsere Arbeitsweise auswirken. Für mich besonders interessant war dabei die Diskussion am Ende meines Vortrages. Denn anscheinend war meine Vortragsweise etwas negativ konnotiert, wodurch ich eher skeptisch als überzeugt gewirkt haben muss. Ich war sehr […]

ALM Days 2014 – Der Testing Track im Überblick

23.01.2014 16:06:36 | Christian Binder

Frank Maar in Meinem Team über den Test Track auf den ALM Days 2014 :

Testing Track auf den ALMDays oder warum sollten Sie sich die Sessions ansehen?

Als Referenten sind die bekanntesten Namen sowohl aus dem deutschsprachigen als auch internationalen Raum vertreten. Martin Hinshelwood, MVP (Most Valuable Person, Kompetenzträger) für ALM und Autor des Buches „Professional Application Lifecycle Management with Visual Studio 2013“, wird in dem Vortrag „Test Management - KPIs for better decisions“ vorstellen, an Hand welcher KPIs Sie den Qualitätsstand Ihrer Entwicklung einschätzen können und in welchen Berichten des Team Foundation Servers Sie diese Informationen finden. Auf seiner Webseite unter http://nakedalm.com/ können Sie sich gerne vorab informieren.

Thomas Schissler, ebenfalls MVP für ALM und bei dem Partner Artiso AG, zeigt Ihnen auf, wie agiles Testen organisatorisch und tooltechnisch umgesetzt wird und welche Dinge dabei zu beachten sind. Seinen Blog finden Sie unter http://www.artiso.com/problog/.

Nico Orschel, der nächste MVP für ALM im Bunde mit der Spezialisierung Testing und bei der AIT GmbH als Berater tätig. Oberflächentests durch CodedUITests zu automatisieren, scheint auf den ersten Blick durch den Einsatz des Testrecorders sehr einfach zu sein. Allerdings gibt es eine Reihe von Dingen zu beachten, um robuste Tests mit einem geringen Pflege- und Wartungsaufwand zu erstellen.  Veröffentlichen von Nico Orschel können Sie sich z.B. unter http://www.tfsblog.de/tag/office/ ansehen.

Christoph Preschern von Ranorex GmbH schlägt die Brücke der Testautomation zu heterogenen Plattformen, wie beispielsweise Android und iOS, und zeigt die Integration in die Microsoft Toollandschaft wie z.B. Test Manager und Team Foundation Server.

Testumgebungen werden meist nur für einen kurzen Zeitraum benötigt und sollen möglichst schnell aufgebaut werden können. Zusätzlich können Dienste hilfreich, die in der Cloud bereitgestellt werden. Einen aktuellen Überblick über den sich rasant schnell ändernden Bereich wird Ihnen Frank Maar, Architekt für Application Lifecycle Management bei Microsoft, geben. Von Visual Studio Online (z.B. mit dem neuen Lasttestdienst) über vorgefertigte Images auf Windows Azure zum Erstellen von Testumgebungen in 30 Minuten, sollte selbst für erfahrene Zuhörer jede Menge Neuigkeiten dabei sein.

ALM Days 2014 - Inhaltliches Design

21.01.2014 19:32:29 | Christian Binder

Die Visual Studio ALM Days 2014 bieten in über 30 Sessions wieder einmal hochwertigen Content Rund um das Thema Application Lifecycle Management mit der Visual Studio Plattform. Erstklassige Sprecher wie Brian Harry (Technical Fellow) und Sam Guckenheimer (Product Owner Visual Studio) sind wieder mit dabei und lassen uns einen Blick auf die Zukunft von Visual Studio und Team Foundation Server werfen. Aber auch unsere Sprecher aus der Community und unsere Visual Studio MVPs werden das Thema Application Lifecycle Management mit all seinen Facetten in drei Tracks auf den ALM Days betrachten. Wie auf jeder großen Konferenz ist es nicht einfach eine Agenda aufzustellen, die es jedem Recht macht und manchmal läßt es sich auch vermeiden interessante Sessions parallel laufen zu lassen. Jeder Teilnehmer kann aus der Agenda die für ihn relevanten Themen und Sessions aussuchen. Wir möchten in diesem Beitrag für den ein- oder anderen Unentschlossenen ein paar Highlights vorstellen und das Inhaltliches Design der ALM erläutern.

Dazu haben wir ein kurzes Video gemacht und hier die Agenda.

Wir freuen uns schon alte Bekannte, aber auch neue Interessierte am Thema in Düsseldorf persönlich begrüßen zu können, und wünsche allen Teilnehmern angeregte Diskussionen und vor allem viel Spaß auf den ALM Days 2014!

Artur Speth, Christian Binder
ALM Architects

HTML5: Formeln anzeigen mit MathML

20.01.2014 00:17:00 | Jürgen Gutsch

Ich habe im Moment die Anforderung mathematische Formeln auf einer HTML-Seite richtig anzuzeigen. Die Formeln sollen durch den Autor verändert werden können und der Betrachter der Website soll diese richtig (mathematisch korrekt) sehen.

Nach einer kurzen Recherche war klar: Es gibt mit MS Word und LaTex Werkzeuge für Autoren um mathematische Formeln zu erstellen. Es gibt auch mit LaTex, AsciiMath und MathML sprachen um mathematische Formeln zu beschreiben. Aber es gibt kaum eine Möglichkeit diese auch im Web darzustellen.

Zwar wurde MathML in den HTML5 Standard übernommen, aber außer Firefox und Safari ist im Moment kein weiterer Browser in der Lage MathML zu verstehen. Firefox kann MathML auch nur interpretieren, der Code per Namespace-Angabe als MathML beschreiben wird.

Übrigens kann MathML Code per Copy & Paste ins MS Word eingefügt werden und dort als Formel angezeigt werden. MathML ist ein schon etwas älterer XML basierter Standard.

Kopiert man eine Formel aus MS Word z. B. in den Texteditor so erhält meine diese in einer Text-Version.

MathML

<math xmlns="http://www.w3.org/1998/Math/MathML">
    <mi>x</mi> <mo>=</mo>
    <mrow>
        <mfrac>
            <mrow>
                <mo></mo>
                <mi>b</mi>
                <mo>±</mo>
                <msqrt>
                    <mi>b<mn>2</msup>
                    <mo></mo>
                    <mn>4<mi>a<mi>c</mi>
                </msqrt>
            </mrow>
            <mrow> <mn>2<mi>a</mi> </mrow>
        </mfrac>
    </mrow>
</math>

Hier sieht man schön die Einzelkomponenten der Formel. Interessant ist die Schachtelung der Elemente. So sind die Zeilen über und unter dem Bruchstrich in ein <mrow>-Element eingefasst und die Quadratwurzel in einem <msqrt>-Element. Die gleiche Formel ist in LaTex natürlich mit wesentlich weniger Zeichen machbar.

Die gleiche Formel mit LaTex:

x = {-b \pm \sqrt{b^2-4ac} \over 2a}

Die Formel als Text:

x=(-b±√(b^2-4ac))/2a

So wird die Formel dann auf der Website ausgegeben:

MathJax

Bei der Vorbereitung zu einer HTML5 Schulung bin ich über die Weihnachtsfeiertage auf eine JavaScript Bibliothek gefunden, mit der die LaTex Syntax, AsciiMath und MathML so aufbereitet werden, dass sie im Web in jedem Browser angezeigt werden kann. Die Ansicht ist dabei in jedem Browser identisch. Die Bibliothek baut die Formeln mit Hilfe von gewöhnlichen HTML-Tags und CSS nach.

Eingebunden wird MathJax als ganz gewöhnliches Javascript im Header der Seite. Anschließend findet noch eine kurze Konfiguration statt. Ich empfehle in diesem Fall den Zugriff auf das CDN um immer die aktuelle Version zu erhalten. (Dieses Script beeinflusst nicht die Funktionalität, sondern nur die Anzeige der Formeln. Es ist somit nicht kritisch immer die neueste Version zu nutzen. Breaking-Changes sind nicht zu befürchten, solange sich nicht die Definition der Sprachen ändert.)

<script type="text/javascript"
            src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full">
</script>
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>

Hier wird noch Definiert, wie die LaTex Formel im Text zu finden und zu interpretieren sind. Z. B: können die Formeln inline im Fließtext oder freistehend in einem Block-Element dargestellt werden. Dafür gibt es dann spezielle Start- und Endzeichen

Fazit

Die Performance lässt etwas zu wünschen übrig, aber ich sehe natürlich ein, dass es kaum anders machbar ist. Man sieht auf der Seite den Aufbau der Formeln. Für einen Bruchteil ist die Formel als Text zu sehen, bevor die Formel von MathJax aufgebaut wird. Das ist natürlich auch abhängig von der Script-Engine der jeweiligen Browser. Ansonsten ist das Script klasse und stellt die Formeln wirklich in allen Browsern identisch dar.

Upgrade / Compile / Install Latest Nginx on armfh (Raspberry Pi)

19.01.2014 07:30:00 | Andreas Mehl

This guide shows you how to upgrade your nginx to the latest version.

1. First get requiered libs:

apt-get install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev

2. then get the latest version from here:

wget http://nginx.org/download/nginx-1.X.X.tar.gz

3. Extract Files to current folder.

4. go in extracted root directory and type:

./configure --prefix=/etc/nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --with-http_realip_module --with-http_ssl_module --with.sha1=/usr/include/openssl --with-md5=/usr/include/openssl --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/log/nginx/nginx.pid

5. last step:

make && make install

6. finished

 

Here is a list  for configuring with more parameters:

http://nginx.org/en/docs/configure.html

ALM Days 2014 – Journey to a Cloud Cadence

15.01.2014 20:22:32 | Christian Binder

Nur noch wenige Wochen bis zu den ALM Days 2014. Die Agenda steht und ich freue mich schon jetzt, die deutsche ALM Community wieder zu treffen und sich auszutauschen. In den nächsten Tagen möchte ich in einigen Posts die Chance nutzen, näher auf die Inhalte einzugehen. Starten möchte ich mit der Opening und Closing Keynote am ersten Tag, denn auch dieses Jahr konnten wir wieder Sam Guckenheimer und Brian Harry aus der Microsoft Developer Division für die ALM Days gewinnen. Brian und Sam sind die Schlüsselfiguren in einer Transformation der Developer Division, hin zu neuen modernen Development Prinzipien und Praktiken für eine kundeorientierte Produktentwicklung. Die Weiterentwicklung einer Organisation dieser Größe (+2k) von einem traditionell 3-jährigen Zyklus ist aus organisatorischer und technischer Ebene keine triviale Aufgabe. Jeder, der selbst Teil einer großen Organisation ist und an einem Produkt mit Historie arbeitet, kennt die Herausforderung nur zu genau. Prozesse im Engineering, die vorher funktioniert haben, müssen überarbeitet werden. Neue Organisationsstrukturen wie Developer Operations (DevOps) müssen etabliert werden.

“Cloud cadence enables a much tighter “build-measure-learn” loop so that you can deliver value in small increments and adjust rapidly to feedback.  In order to do this, you need to make significant changes to your customer data collection and engineering processes to avoid any debt accumulation and to streamline delivery into production.”

Brian Harry

Sam Guckenheimer wird in der Keynote Journey to a Cloud Cadence aufzeigen, wie die Cloud Cadence eine deutlich kundenorientiertere Produktentwicklung basierend auf dem Konzept von Build-Measure-Learn ermöglicht. Brian Harry wird in der Closing Keynote Engineering for a cloud cadence die Herausforderungen im Engineering betrachten und an der Lernkurve der Microsoft Developer Division teilhaben lassen. Um das ganze Thema abzurunden, sollte man im Anschluss die Q/A mit Brian und Sam nicht verpassen. Alle Fragen sind erlaubt. Spannend wäre zum Beispiel „Welchen Nutzen können diese Konzepte in meinem Umfeld erzeugen?“

Christian Binder

DNUG Braunschweig - Windows PowerShell für .NET Entwickler

14.01.2014 14:01:00 | Lars Keller

Die DNUG Braunschweig trifft sich am 16.12.2013 um 19:00 im Restaurant Zucker (Tagungsraum). Dieses Mal hören wir einen Vortrag zum Thema Entwicklung mit der Windows PowerShell.

Die Windows PowerShell wird im Windows Umfeld immer wichtiger.
Mit der Windows PowerShell kann man nicht nur Professionelle Windows Automation betreiben.
Da die Windows PowerShell mit .NET entwickelt wurde, Objekte Verarbeitet und Produziert und im Microsoft Visual Studio ab der Version 2012 mitgeliefert wird, ist die Windows PowerShell auch für.NET Entwickler Interessant.
Die Windows PowerShell ist aus meiner Sicht das Bindeglied zwischen System Administratoren und .NET Entwickler. Die Windows  PowerShell ist ein echtes "DevOps " Tool.
In meinem Vortrag stelle ich die Windows PowerShell speziell für .NET Entwickler vor und warum es sich auch für .NET Entwickler lohnt,  die Windows PowerShell in Ihren Werkzeugkaste zu integrieren.
 
Abstract:
 
- Kurze Einführung in die Windows PowerShell aus Sicht von System Administratoren und .NET Entwicklern.
PowerShell Befehle (Cmdlets), Aliase und PowerShell Scripting, PowerShell Module und Snapins, PowerShell Technische-Modelle.
- Typische stolperfallen mit der Windows PowerShell für .NET Entwickler (umdenken in der Syntax ;-))
-Die Windows PowerShell mit Externen Daten nutzen.
Datenbanken, XML, CSV, Internet Webservices, JSON, Internet APIs.
- Objekte mit der PowerShell Skriptsprache entwickeln oder .NET Code (C#) in einem PowerShell Skript einbetten.
-Mit Binäre Module (Snapins) und Cmdlets für die Windows PowerShell entwickeln
- Die Windows PowerShell in eigenen .NET Applikationen einbetten (Hosten).
Machen Sie Ihre Anwendung Skriptfähig und nutzen sie dazu den neuen Windows Skriptstandard!
- Das Visual Studio und die PowerShell.
NuGet die PowerShell Konsole im Visual  Studio, Das Visual Studio Automatisieren mit der StudioShell und PowerShell Skripte mit den " PowerShell Tools for Visual Studio" Entwickeln.
 
Wenn noch etwas Zeit ist stelle ich noch kurz die folgenden Themen vor:
- Software Builds einfach mit der PowerShell und PSake automatisieren
- Spezielle PowerShell Module um PowerShell Skripte Professionell zu entwickeln. PowerShell ScriptCop und FXCop, Pester Mocking und Unit Tests für die PowerShell.

Vita
Peter Kriegel ist Seit dem Jahr 2003 ein Erfahrener Windows System Administrator.
Spezalisiert auf Windows Client Livecycle Management,Windows Automation mit DOS,VBScript und Powershell, Software Deployment und Active Directory.
Seit 1990 beschäftigt er sich mit der Computer Programmierung (Amiga Basic, C, C++) und der Webseiten Entwicklung (HTML,CSS,Javascript.
Seit 2005 Programmiert er ausschließlich mit dem Microsoft .NET Framework in den Sprachen Visual Basic .NET (VB.NET) und C#.
Mit dem .NET Framework entwickelt er eigenen, Professionelle „DOS Befehle“ und Datenbank Frontends für den Microsoft SQL Server (GUI Frontend).

FAKE – F# Make

14.01.2014 11:08:00 | Jürgen Gutsch

Für den SimpleObjectStore nutze ich nun erstmals FAKE um den Build zu konfigurieren. FAKE ist ein Tool in F# das es sehr einfach macht, Builds zu konfigurieren, Build-Schritte zu definieren und auszuführen. F# wird dabei als Script-Sprache verwendet. Allerdings muss man kein F# können um FAKE zu nutzen, da die Syntax selbstbeschreibend, also recht einfach zu verstehen und zu schreiben ist.

Warum FAKE?

Ich habe in anderen Projekten bereits MSBuild eingesetzt, allerdings ist es für kleine Sachen, mit ein paar Spezialanforderungen dann doch recht mühsam zu nutzen. FAKE bietet von Haus aus einige Features die für mich interessant waren. So kann ich recht bequem die AssemblyInfos erstellen, NuGet-Packages können per Nuspec-Templates konfiguriert und erstellt werden. Nuget-Packages können automatisch nach NuGet.org deployed werden. Und ich kann Eigene Targets bequem per C# hinzufügen.

Zudem hat FAKE einfach auf Anhieb funktioniert.

Noch lieber hätte ich SAKE eingesetzt (eine auf C# basierendes MAKE), allerdings war die Installation wesentlich komplizierter und es wird seit zwei Jahren nicht mehr weiterentwickelt.

Jenkins

Der nächste Schritt ist, das Build-Script auf im Jenkins mit dem NuGet-Deployment einzurichten. Aber hier sehe ich absolut keine Probleme. Da ich FAKE einfach per Konsole starten kann, kann ich es auch per Jenkins als Batch Command aufrufen.

Dokumentation zu FAKE

Das Build-Script ist auf BitBucket im Source-Code enthalten. Wer es sich anschauen möchte kann das gerne machen.

Wer selber mit FAKE herumspielen möchte, dem empfehle ich die Dokumentation auf der offiziellen Website, die mit guten Beispielen zu Standardszenarien ausgestattet ist.

Einzig bei speziellen Anforderungen muss man selber herumspielen, bis man zur Lösung kommt. In meinem Fall baue ich Verschiedene DLLs für verschiedene .NET-Versionen. Alle Assemblies haben den gleichen Namen. Das heißt, ich kann die nicht in ein einziges Output-Verzeichnis bauen lassen, das sie sich sonst ständig überschreiben würden. Das hat Probleme beim erstellen des NuGet-Packages gemacht, bzw. es gab in der Doku kein Beispiel wie das zu behandeln ist. Die Lösung war dann doch einfacher: Die verschiedenen Assemblies müssen einfach über das NuSpec-Template entsprechend eingebunden werden. Lediglich das WorkingDirektory muss in der Config angepasst werden:

NuGet (fun p ->
    {p with
        Project = projectName
        Version = releaseNotes.AssemblyVersion
        Authors = [projectAuthor]
        Description = projectDescription
        Summary = projectSummary
        ReleaseNotes = toLines releaseNotes.Notes
        WorkingDir = "./"
    })
    "Gos.SimpleObjectStore.nuspec"

Weiterhin wird beim erstellen der AssemblyInfo eine statische Klasse angelegt, die die Versionsnummer enthält. Auf die Art kann einfach und performant auf die Version zugegriffen werden. Abschalten lässt sich das nicht und wie das anzupassen ist, wird in der Doku nicht gezeigt. Man bekommt das hin, wenn man etwas in der F# Dokumentation und in den FAKE-Sourcen nachschaut:

CreateCSharpAssemblyInfoWithConfig  "./Gos.SimpleObjectStore/Properties/SolutionInfo.cs"
    [Attribute.Title projectName
     Attribute.Description projectDescription
     Attribute.Product projectName
     Attribute.Company projectAuthor
     Attribute.Version releaseNotes.AssemblyVersion
     Attribute.InformationalVersion releaseNotes.AssemblyVersion
     Attribute.FileVersion releaseNotes.AssemblyVersion]
    {GenerateClass = true; UseNamespace = "Gos.SimpleObjectStore.Properties"}

Aus den Sourcen konnte ich lesen, das die Konfiguration (hier in der letzten Zeile) eine eigene Klasse ist. In der F# Dokumentation musste ich schauen, wie man eine Klasse instanziiert um diese an die Methode zu übergeben.

HTML5: Drag & Drop API

12.01.2014 12:09:00 | Jürgen Gutsch

Neu in HTML5 ist unter anderem die Drag & Drop API. Mit Hilfe dieser API lassen sich interessante Aufgabenstellungen lösen. Nicht nur DnD auf der Website wird vereinfacht, sondern auch das Einbinden DnD von Dateien aus dem lokalen Dateiensystem, sowie das Exportieren von Dateien aus dem Web in das Lokale Dateiensystem. Es lassen sich also Dateien per DnD aus dem Windows Explorer in das Web ziehen, sowie Dateien aus dem Web in den Windows Explorer.

Dadurch kann man dem Anwender interessante und nützlichen Mehrwert für Web-Apps bieten. Mehre Plattformen (unter anderem Google und Facebook) nutzen dieses Feature um Bilder hochzuladen.

In diesem Beitrag möchte ich kurz zeigen wie die Drag & Drop API grundsätzlich genutzt werden kann.

dragable=true

Neu ist das Attribut dragable, das für beliebige HTML-Elemente gesetzt werden kann. Nicht zwingend für Bilder, da diese per default dragable sind.

Damit wird sichergestellt, dass das Element per Drag & Drop bewegt werden kann und dass das Javascript-Event dragstart gefeuert wird.

Im Handler dieses Events kann definiert werden, wie das Element und seine Daten übertragen werden. Z. B. macht es selten Sinn, das gesamte Element zu übertragen, sondern eher relevante Daten wie z. B. IDs, Texte, URLs, etc. Wieso sollte beim Drag & Drop von Artikeln in den Warenkorb die gesamte Artikeldefinition übertragen werden, wenn nur die Artikel-ID benötigt wird?

Drop-Target

Das Drop-Target ist ein beliebiges Element, das die Events drop, dragenter und dragover behandelt. Beim behandeln des Events drop werden die Daten die bei dragenter festgelegt wurden ausgelesen, ausgewertet und ggf. angezeigt.

<div id="no3" draggable="true">.NET-Stammtisch</div>
<div id="no1" draggable="true">Jürgen Gutsch</div>
<div id="no2" draggable="true">ASP.NET Zone</div>
</div id="drop">
<script>
    function handleDragStart(event) {
        event.dataTransfer.setData('Text', this.innerText);
    }
    function handleDrop(event) {
        if (event.preventDefault) {
            event.preventDefault();
        }

        this.innerHTML += '<p>' +
               event.dataTransfer.getData('Text') + '</p>';

        return false;
    }
    function cancel(event) {
        if (event.preventDefault) {
            event.preventDefault();
        }
        return false;
    }

    var dropItem = document.querySelector('#drop');
    dropItem.addEventListener('dragover', cancel, false);
    dropItem.addEventListener('dragenter', cancel, false);
    dropItem.addEventListener('drop', handleDrop, false);
       
    var dragItems = document
                     .querySelectorAll('[draggable=true]');
    for (var i = 0; i < dragItems.length; i++) {
        dragItems[i].addEventListener('dragstart',
                                   handleDragStart, false);
    }
</script>

Bei dragstart wir in diesem Beispiel der Text des Verschiebbaren DIVs kopiert und in das Drop-Target geschrieben. Das passiert über die Eigenschaft dataTransfer des Events.

Dateien in den Browser ziehen

Das DataTransfer Objekt kann aber nicht nur Daten beinhalten, sondern auch Dateien, wenn diese per Drag & Drop aus dem Dateiensystem in den Browser auf das Drop-Target gezogen werden:

var target  = document.getElementById('DropTarget');
var file = var file = event.dataTransfer.files[i];

var reader = new FileReader();

// Closure to capture the file information.
reader.onload = (function (theFile) {
    return function (e) {
        target.innerHTML += '<p>';
        target.innerHTML += ['<img class="thumb" src="',
            e.target.result,
            '"
title="',
            escape(theFile.name), '"
/>'].join('');

        target.innerHTML += '</p>';
    };
})(file);

// Read in the image file as a data URL.
reader.readAsDataURL(file);

In diesem Beispiel (Der Code sollte im Drop-Handler eingebunden werden) kommt zusätzlich die HTML5 Filesystem API zum Einsatz um die Datei-Informationen auszulesen. die Methode readAsDataURL erzeigt eine HTML-DataURL mit der Binärdaten wie z. B. Bilder in die HTML-Datei eingebettet werden können. Auf die Art können Bilder die in das Drop-Target gezogen werden, direkt angezeigt werden. Auf den lokalen Pfad des Bildes kann aus Sicherheitsgründen nicht zugegriffen werden, daher ist das die einzige Möglichkeit.

Die Methode readAsDataURL ist asynchron, weshalb hier das Event-Load behandelt werden muss um auf die Daten des Bildes zuzugreifen.

Der FileReader bietet noch weitere Methoden um auf die Daten der Datei zuzugreifen. So kann der Inhalt einer Datei als Binärdaten, als Text, sowie als Array von Bytes ausgelesen und behandelt werden. (Das wäre aber ein Thema für einen separaten Beitrag über die HTML5 Filesystem API)

Neues vom .NET-Stammtisch Konstanz-Kreuzlingen

10.01.2014 13:03:00 | Jürgen Gutsch

Im November 2013 hatte ich zu einer Art Mitgliederversammlung beim .NET-Stammtisch eingeladen um über die schlechten Teilnehmerzahlen und die Verfügbarkeit des Teams zu diskutieren. Vor allem sollte auch festgestellt werden, ob an einer .NET-Usergroup in der Region überhaupt noch ein Interesse besteht.

Schön war, dass sich zusätzlich zum Team sechs weitere Leute eingefunden haben, die alle darauf bestanden, nicht nur die UG weiterzuführen, sondern sich aktiv als Vereinsmitglieder daran zu beteiligen. Der .NET-Stammtisch Konstanz-Kreuzlingen besteht nun also aus 10 aktiven Mitgliedern.

Für mich war vor allem interessant, dass das Angebot das wir bisher geboten hatten in dieser Form gar nicht immer gefragt war. Ich hatte mich bisher immer daran orientiert, was andere UGs machen und das waren vor allem Vortragssessions mit ggf. anschließender Diskussion. Es stellte sich in dem Novembermeeting heraus, dass vielmehr interaktive Sessions gefragt waren. Z. B. Coding-Dojos, die 5x20 Session (in der fünf Teilnehmer je einen 20-Minuten-Vortrag hielten), Diskussionsrunden, etc. Die Vorträge waren bisher alle super, aber einige Leute mit speziellen Interessen sind wegen der festen Themen eben nicht erschienen.

Es kristallisierte sich also nun heraus, dass wir ein breiteres und abwechslungsreicheres Angebot bieten müssen und in Zukunft auch bieten werden. Die Art der Angebote haben wir dann in einer Weiteren Runde im Dezember beschlossen, sowie die nächsten 5 Termine am Februar festgelegt (Diese werde ich separat bekannt geben) So viel vorweg: Es wird weiterhin Vorträge geben und im nächsten halben Jahr auch Vorträge von etwas bekannteren Sprechern und vor allem auch mit Themen die nicht nur rein die .NET-Entwickler interessieren könnten. Damit wollen wir das Interesse für den .NET-Stammtisch auch in anderen Interessensgruppen wecken.

Die Organisation wird sich in Zukunft nicht nur allein auf das Kernteam (aka. Vorstand) beschränken, sondern die Mitglieder erklärten sich bereit selber einzelne Treffen zu organisieren. So wird es im Sommer auch ein Grillfest geben, für alle die nicht in die Ferien fahren.

Im Dezember wurde der bestehende Vorstand bis zur nächsten Hauptversammlung bestätigt. Die Hauptversammlung wurde auf den kommenden Februar festgelegt und findet vor dem offiziellen .NET-Stammtisch-Treffen statt.

Fazit

Ich war sehr positiv über den Einsatz und die Motivation der Mitglieder überrascht. Einige Argumente haben mich nachdenken lassen. Aber am Ende sollten es die Mitglieder sein, die den Weg des .NET-Stammtisches und das Angebot vorgeben. Je mehr sich an diesem Prozess beteiligen, desto Interessanter kann die Usergroup für die Teilnehmer werden.

Ich persönlich finde es klasse, was im November und Dezember entstanden ist und bin Gespannt, wie sich das nächste Jahr entwickelt. Ich freue mich auf viele interessante Veranstaltungen.

BTW

Es hat mich ebenfalls gefreut zu erfahren, dass die Usergroup in Basel wiederbelebt wird. Da ich mich zur Hälfte meiner Arbeitszeit in Basel befinde, werde ich versuchen mich auch an dieser Usergroup zu beteiligen. Eventuell ergibt sich auch eine Zusammenarbeit oder eine Partnerschaft mit dem .NET-Stammtisch.

Neues NuGet Package: SimpleObjectStore

08.01.2014 12:51:00 | Jürgen Gutsch

In der Vergangenheit benötigte ich immer wieder eine Möglicheit, für Demos und einfache kleine Applikationen, schnell und einfach Daten zu persistieren. In den meisten Fällen war der Einsatz einer Relationalen DB zu oversized, genauso wie die bekannten Objekt-Datenbanken. Ich wollte mich nicht mit der Persistierung beschäftigen, sondern dies einfach nur Verwenden.

Das XmlRepository von Peter Bucher und Golo Roden war da schon ein sehr guter Schritt, hatte aber an der einen oder anderen Stelle ein paar Fehler und das XML-Format wollte mir nicht so recht passen.

Ich beschloss also das XmlRepository zu clonen und als Output JSON zu verwenden. Eine weitere Voraussetzung war die Erweiterbarkeit, bzw. die Definition von eigenen Datenprovidern, wie es schon beim XmlRepository der Fall ist. Auf die Art kann man tatsächlich auch einen Provider schreiben der dann auf eine relationale Datenbank geht. Mir war wichtig, einen Provider für den Azure Storage schreiben zu können. Im ersten Schritt ist allerdings nur der Standard-Provider für das Dateiensystem entstanden.

Das Resultat ist der SimpleObjectStore, der mit mindestens einer Zeile Code konfiguriert wird und auch den Store selber wird mit einer Zeile Code angesprochen.

Inzwischen ist die Bibliothek auch unter NuGet zu finden:

PM> Install-Package Gos.SimpleObjectStore

Verwendung

Zuerst muss ein Daten-Provider festgelegt werden. In diesem fall der Standard-Provider, dem ein Storage-Pfad übergeben wird. Optional kann angegeben werden, ob der Output formatiert werden soll oder nicht:

ObjectStore.DataProvider = new DataProvider(server.MapPath("/App_Data/"));
ObjectStore.FormatOutput = true;

Die Konfiguration passiert einmal üblicherweise beim Aufstarten der Applikation

Der Zugriff erfolgt pro Typ über einen generischen ObjectStore, dem der Typ des zu persistierenden Objekts übergeben wird. Optimalerweise passiert das in einer zentralen Klasse in der dann auf alle Typen zugegriffen werden kann:

public class StorageContext
{
    private StorageContext()
    {
        Orders = ObjectStore.GetInstance<Order>();
        Products = ObjectStore.GetInstance<Product>();
    }

    public IObjectStore<Order> Orders { get; set; }

    public IObjectStore<Product> Products { get; set; }
}

Das Interface IObjectStore sieht wie folgt aus:

public interface IObjectStore<TEntity> :
        IObjectStore, IDisposable where TEntity : IEntity, new()
{
    void DiscardChanges();
    void SaveOnSubmit(TEntity entiy);
    void SaveOnSubmit(IEnumerable<TEntity> enties);
    void DeleteOnSubmit(Func<TEntity, bool> predicate);
    void DeleteAllOnSubmit();
    void SubmitChanges();
    IEnumerable<TEntity> LoadAll();
    IEnumerable<TEntity> LoadAll(Func<TEntity, bool> func);
    [Obsolete("Use TEntity LoadSingle(Func<TEntity, bool> func) instead", true)]
    TEntity LoadBy(Func<TEntity, bool> func);
    TEntity LoadSingle(Func<TEntity, bool> func);
}

Die der ObjectStore arbeitet mit einer Liste im Arbeitsspeicher, die beim ersten Aufruf geladen wird und beim Aufruf von SubmitChanges() gespeichert wird. Jeder Aufruf von SaveOnSubmit() und DeleteOnSubmit() bearbeitet also nur die Liste im Arbeitsspeicher. Selektiert wird ebenfalls nur aus dieser Liste. Die Methoden SubmitChanges() und DiscardChanges() laden die Liste zudem neu in den Arbeitsspeicher.

Lesen:

var products = _storageContext.Products.LoadAll(x => x.CategoryId == id);

Speichern:

_storageContext.Orders.SaveOnSubmit(order);
_storageContext.Orders.SubmitChanges();

Damit die Entitäten richtig gespeichert werden, muss der Identifier gekennzeichnet werden. Entweder über das IdentifierAttribute, mit dem die entsprechende Property markiert wird oder alternativ muss Equals überschrieben werden, um die Identifier zu vergleichen:

public class TestEntityWithId : IEntity
{
    [Identifier]
    public int Id { get; set; }
    public string Name { get; set; }
}

Open Source

Jeder ist herzlich eingeladen mit dem SimpleObjectStore zu arbeiten und Code und Vorschläge einzubringen. Auch Bug-Meldungen sind immer herzlich willkommen.

Die Sourcen, eine rudimentäre Dokumentation und das Bug-Tracking kann unter folgender URL auf BitBucket gefunden werden: https://bitbucket.org/JuergenGutsch/simpleobjectstore

Ich freue mich über jedes Feedback

dotnet Cologne 2014 am 9. Mai

06.01.2014 12:45:01 | Jürgen Gutsch

Zum sechsten Mal findet dieses Jahr am 9. Mai die dotnet Cologne statt. Melanie, Stefan, Roland und Albert legen sich wieder mal richtig ins Zeug und es wird sicher auch dieses Jahr ein erfolgreiches Event werden. Die 350 Plätze werden sicher wieder in kürzester Zeit ausgebucht sein.

Dieses Jahr bin ich endlich auch mal wieder dabei und darf vorstellen wie ein Mobile Game mit Hilfe von Windows Azure Diensten aussehen kann:

Im letzten Jahr entstand für einen großen Kunden ein Mobile Game für iOS, das serverseitig auf Windows Azure basiert. Zum Einsatz kommen dabei Computer-Instanzen, Backup, Table Storage, SQL Database. Die Spiel-Logik wurde serverseitig mit CQRS umgesetzt, das für Azure ideal einsetzbar ist. Der Vortrag gibt einen Einblick in die Architektur und zeigt den Einsatz der gewählten Azure-Komponenten.

Die Anmeldung zur Konferenz wird rechtzeitig über die üblichen Kanäle auf der Website, auf Twitter und Facebook bekanntgegeben.

Zuvor findet aber noch der zweite Teil des “Call for Papers” statt, in dem noch weitere Sprecher und Vorträge zu trendigen Themen gesucht werden.

Wer die Konferenz als Sponsor unterstützen möchte darf sich bei Melanie melden um die nötigen Informationen zu bekommen.

Regeln | Impressum