Donnerstag, November 09, 2006

DEV304 Microsoft Robotics Studio

Martin Calsyn
Abstract:
The Microsoft Robotics Studio is a Windows-based environment for academic, hobbyist and commercial developers to easily create robotics applications across a wide variety of hardware. Key features and benefits of the Microsoft Robotics Studio environment include: end-to-end Robotics Development Platform , lightweight services-oriented runtime, and a scalable and extensible platform.

Diese Session besuche ich jetzt rein aus persönlichem Interesse. Wer weiss, ev, gibt es zu Weinachten ja einen Lego Mindstorm ;-)

Robbotics ist in den Anfängen, es existiert noch keine wirkliche Killer Applikation. Es gibt keine Standard Hardware und auch keine HW"abstraction".Und das "Real World testing" ist sehr teuer.

• The ‘hot buttons’ from Industry, hobbyists, academia and researchers:
• Static and dynamic device configuration
• Coordinating asynchronous device input
• Starting and stopping components dynamically and independently
• Monitoring and interacting with running systems
• Improved development cycle, particularly with limited access to robot hardware
• Spanning multiple compute units
• Reuse of software, particularly across different hardware
• Microsoft Robotics Studio addresses:
• Reusable components: Introduces a paradigm that facilitates reuse
• Standardization: Introduces a hardware abstraction paradigm
• Concurrency and distributed computing: Introduces CCR and DSS to greatly simplify these tasks
• Simulation: Introduces a high-fidelity, extensible virtual world

Barrier to Entry: Introduces a Visual Programming Language to make the advanced features more accessible to newcomers


Was ist eine Robotics Applikation ? :

• A composition of loosely-coupled and concurrently executing components providing:
• Orchestration of sensors and actuators
• User Interaction
• Control or Behavior logic

Architektur:

• Services are the basic building block
• Structured state
• Behavior
• Partner services
• Contract

• Operations
• State retrieval and manipulation
• Create and Terminate
• Notification

• Services
• Can be used to abstract hardware
• Can be composed and provide aggregated functionality (sensor fusion, for example)
• Are inherently remotable and participate in distributed operations
• Restartable and mobile (state transfer)
• Must be inherently asynchronous

• But asynchronous programming is hard!
• Sequential applications
○ Flat or incremental performance
○ Potentially poor responsiveness
• Explicitly threaded apps
○ Hardwired number of threads prefer K processors for a given workload
○ Can penalize < K processors and fail to scale to > K processors
○ Hard to write and even harder to debug



Das Programming Model:

• Zuerst muss ich den Service und die Operations deklarieren;Operations

public sealed class Contract {
public const String Identifier = "http://schemas.coroware.com/2006/10/machinedirectory.html";
}
[DataContract()]
public class MachineDirectoryState {
[DataMember]
public List Services = new List();
}
public class MachineDirectoryOperations : PortSet { }
public class Get : Get> { }
public class Replace : Replace> { }

• Declaring a Service Port
[ServicePort("/machinedirectory", AllowMultipleInstances=false)]
private MachineDirectoryOperations _mainPort = new MachineDirectoryOperations();
• Defining Partnerships
[Partner("NodeDirectory",Contract=nds.Contract.Identifier, CreationPolicy = PartnerCreationPolicy.UseExistingOrCreate)]
private nds.NodeDirectoryOperations _nds = new nds.NodeDirectoryOperations();
• Coordinating Asynchronous Tasks - A compositional, declarative pattern
protected override void Start()
{
ActivateDsspOperationHandlers();
}
[ServiceHandler(ServiceHandlerBehavior.Concurrent)]
public virtual IEnumerator GetHandler(Get get)
{
get.ResponsePort.Post(_state);
yield break;
}
[ServiceHandler(ServiceHandlerBehavior.Exclusive)]
public virtual IEnumerator ReplaceHandler(Replace replace)
{
_state = replace.Body;
replace.ResponsePort.Post(DefaultReplaceResponseType.Instance);
yield break;
}


Beispiel für einen Choice:


// Subscribe to the local node directory service
nds.Subscribe sub = new nds.Subscribe();
sub.NotificationPort = _ndsNotify;
_nds.Post(sub);
Activate(
Arbiter.Choice(
sub.ResponsePort,
delegate(SubscribeResponseType resp)
{ LogInfo("Successfully subscribed to node directory"); },
delegate(Fault fault)
{ _mainPort.Post(new DsspDefaultDrop()); })
);

• Example: Interleave
ActivateDsspOperationHandlers().CombineWith(
Arbiter.Interleave(
new TeardownReceiverGroup(),
new ExclusiveReceiverGroup(
Arbiter.Receive(true,
_ndsNotify, NdsInsertHostHandler),
Arbiter.Receive(true,
_ndsNotify, NdsDeleteHostHandler),
Arbiter.Receive(true, _dirNotify,
DirInsertHandler),
Arbiter.Receive(true, _dirNotify,
DirDeleteHandler)
),
new ConcurrentReceiverGroup()
)
);

• Services run within an execution context called a ‘node’
• Nodes expose http and SOAP/TCP endpoints



Es folgt nun eine Demo im Microsoft Robotics Sudio und er demonstriert, wie er mittels http mit den Services interagiert.

• Nun erfolgt eine Exkursion in die Visual Programming Language
• Ich kann damit joins kreieren, choices und pathways.
• Ich kann partnerships mit externen services kreieren
○ All Services (regardless of language) are available on the diagram surface
Das Studio mit seiner Visual Designer Language sieht ein wenig aus wie der Designer im Workflow. Nur es ist etwas eigenes. Dazu am Schluss mehr.

Es folgt eine Demo, wo das ganze in einem Simulator gezeigt wird. Er kann seinen Robo Steuern, Bilder anschauen von der Robo Cam. Etc. Alles, wie wenn es ein echter Robo wär. Nur eben im Simulator. Ziel ist es, das ich im Simulator wie beim echten Robo immer den selben Code verwenden kann. Somit ist auch sichergestellt, dass die Simulation "realistisch" ist. Die Tests werden so natürlich sehr viel günstiger, so kann ich etwas für eine Laser Spektrometer programmieren, ohne einen kaufen zu müssen.

• Simulation
• Cost effective
• High-fidelity
• Fast, incremental prototyping



• Entities consist of:
○ A graphical representation of your object
§ Geometric shape
§ Complex mesh with materials and textures
○ A physics representation
§ Shape, Mass, CM, friction, joints
§ Physical shape (hull) can be automatically derived from geometric shapes and complex meshes
○ An entity can have both, either or neither representation(s)

• Simulation services
○ Communicate with entities to effect changes in entity state (change position, orientation, physics attributes like torques and forces)
○ Communicate with application services through a service interface
§ This service interface should mimic the interface used for the real device on the real robot
• Application services
○ Your application code
○ Should be identical code for simulation or real-world use


Printscreen des Simulators:



Am schluss zeigt er noch Hardware, welche ich benötigen kann. (Feuchtigkeitssensor, GPS Modul, Infrarot Sensor, Temperatur Messer, und einen echten Robo. Er kann leider nichts am Robo zeigen, da es ihm anscheinend das Netzteil geschmort haben soll.

Sehr interessante Session, über die ich noch sehr viel schreiben könnte. Es ist schwierig hier das Konzept verständlich zu erklären. Typisch Microsoft ist, dass sie eine Visual Language geschaffen haben, die nur im ROBO Studio gültig ist. Hier hätte ein Konzern interner Griff zur WinWF Engine genau dieselben Ergebnisse gebracht. Dies wurde dann auch gefragt, weshalb für die Orchestrierung nicht WinWF gebraucht werde. Die Antwort: Das sei so, und vermutlich habe man nicht miteinander gesprochen. Wenn ich mehr Zeit hätte, würde ich sofort beginnen mit der Robo Programmierung !

DEV227 Windows Presentation Foundation (WPF) in the Real World: Zürich Airport Monitoring System

Ronnie Saurenmann
Abstract:
WPF enables new scenarios, in particular regarding rich data visualization. In this session we will present an ongoing project at Zürich Airport, where a WPF based map is used to display near real time data about the airport. With this system it is possible in a blink of an eye to see the status of the airport, including landing and taking off airplanes with the relative information like delays, load, etc... At the beginning we will present the overall architecture of the system, and in particular how Service Oriented Architecture (SOA) helped in having all the data available and aggregated. Then we will focus on the WPF User Interface (UI) showing the application running and how to build the basic construct in WPF. This session has the goal of providing you with new ideas and scenarios combining WPF and SOA. We will also demonstrate the ease of use and productivity of WPF.

Auf diese Session bin ich jetzt wirklich gespannt. Ronnie war gestern (war ja auch schon bei uns) auch an der Swiss Country Night, Ich weiss, was er zeigen wird, wir haben und gestern noch darüber unterhalten. Es ist vor allem so, das für WPF immer die gleichen Demos gebraucht werden. Ronnie wird uns endlich eine "echte" Applikation zeigen.
Ronnie beginnt sehr witzig und macht sich auch gleich lustig über die Demo die man immer irgendwo sieht. Er erklärt, dass Zürich bei den letzten war in ganz Europa, wenn es sich um Verspätungen gehandelt hat. Nun, er wisse zwar nicht ob es sich wegen seiner App so Entwickelt hat, aber jetzt ist er nr5. Er erklärt, dass das Problem ist, irgendwie sinnvoll die grosse Menge von Daten darzustellen. Jetzt kommt die Demo. Wooow , geile Applikation !!
Man sieht die Map vom Flughafen Zürich. Ich sehe, welche Flugzeuge wo sind, ich sehe wie beladen die Flugzeuge sind etc. Einfach nur cool !



Was musste alles beachtet werden ?






Client Service Communication:

• Web Services Pull every 10 seconds
• Message is zipped
○ I don’t like the zip idea
• Get the last 10 seconds vector for the animation
• Plus all the additional information
○ Delays, Passengers load, Destination, Etc..

• Today, considering Duplex binding in WCF
• Still not the best in regarding of Firewall
○ Then two binding
§ Intranet: Duplex over TCP or HTTP and Binary
§ Extranet: HTTP/SOAP BasicProfile
• Need to host it outside IIS for TCP
○ WAS not yet available
• WCF doesn’t work for a XBAP deployment
○ WCF needs full trust, XBAP are partial trust by default

• Why WPF?
• Powerfull graphical engine
○ Takes advantage of GPU
• Full animations support
○ fully programmable
• Any visual element is a .NET object
○ Easy to create, manipulate and interact
• XAML
○ Nice separation UI/Code
○ Possibility to convert from other formats

• Used Expression Interactive Designer for XAML generation
• Great way to learn WPF
• Used Visual Studio for code behind and XAML editing
• Disabled Cidar
• Remember always to save when switching tool!

Nun zeigt Ronnie, wie er mit dem Interactive Designer das ganze gebaut hat. Er bringt das ganze sehr witzig rüber und hat viele Lacher auf seiner Seite.Die Flugzeuge sind buttons…

Cool Featurers:

• Controls are look less
• Choose them by behavior
• Can be completely restyled through templates
• Nice for changing look and feel of an application without changing code
○ Application face-lifting like Car face-lifting
• Template can be applied at design and at runtime

• Template binding
• Can expose inner property of a template as external property
○ E.g.. Fill of a Rectangle bound to a Button Background
• The coordinate system
• Double precision
• Can apply transformation to it
• I can use original Latitude and Longitude
○ Can position airplane based on lat/long coming from the radar
○ Simply flip the Y axis
• WPF ist nicht Resolution independent !!
• Data and Control binding
• Can bind data to any property
• Can also bind an element property to another element property
• Scalable and hierarchical vector engine
• Can transform an element and all the contained ones
• Super easy to build zoom or panning


Er zeigt nun, wie er aus dem Button ein Flugzeug macht. (Canvas)
Ist wirklich cool, und ich weiss, wie wir in Zukunft unsere UI's machen !!

Nun zeigt er, wie er wirklich die Verschiedenen Flugzeuge gezeichnet hat, Er nimmt eine svg Graphik und Konvertiert sie in Xaml. Somit kann er diese einfach importieren und der Button sieht nun wirklich aus wie ein Flugzeug, Das ganze ist schon sehr schön animiert und sehr schnell entstanden.

Woher stammen die Daten für die Koordinaten ?

• Where it comes from
• Airport GIS application
○ Original too detailed (e.g doors numbers)
○ Exported in SVG
○ SVG is XML so it is easy to convert in XAML
§ Watch out for scaling problems
§ We used XAML Pad as a conversion tool
□ Alternatively can build a XSLT
§ Every element has a name (e.g. Runway1) so it is very easy to interact with

• Er zeigt nun, wie er die Daten (XAML) importiert und er nun gleich die "Original" Map hat, die immer exact dem Original entspricht.



… Remeber, the airplaine is a Button.

Simply Zoom in:




Nun kommt die Erklärung, wie das ganze animiert wird. Cool ist auch, da das ganze ja vektor basiert ist, ich einen Zoom hinzufügen kann. So kann ich jetzt überall hinzoomen.
Nun wird noch das scroling hinzugefügt. Und fertig ist die App!
Jetzt implementiert er noch ein "Alarm" System. So dass die Leute, welche diese Applikation benutzen, auch gleich darauf aufmerksam gemacht werden, Er fügt dem Runway 1 Grau und Rot hinzu, und nun blinkt die Runnway…
Also jetzt bin ich voll von WPF überzeugt !!


Summary:
• When a company adopt SOA you have tons of data at your disposal
• The problem is how to visualize it
• WPF is an amazing technology for data visualization
• Easy to learn, fast to build
○ No need of DirectX or Direct3D special knowledge
• Quite performing
• Any technical visualization apps is a good candidate for WPF
○ F1 Racing simulation
○ Pollution visualization
○ Medical instruments visualization
○ Map based solutions


Ronnie, nicht weil ich dich kenne oder du einen Bonus bei mir hast, aber das war die Beste Session für mich an dieser TechEd! Es war die erste Demo, die Realitätsbezogen war, aus der ich einen Nutzen ziehen konnte und das ganze so nachvollziehen konnte, das ich es auch verstand ;-) und unterhaltsam war das ganze auch noch.

DEVWD09 Windows Workflow Foundation Drop in Clinic

Paul Andrew , Matt Winkler
Abstract:
Paul is the Product Manager and Matt is the Technical Evangelist for Windows Workflow Foundation. They are both experienced at consulting with customers on projects and would like to invite you to share your project ideas at this whiteboard session. Potential software architecture using Windows Workflow Foundation will be discussed with the audience.


Ich bin gespannt an diese Session gegangen, es nimmt mich ja Wunder, wie oder was für eine Diskussion da aufkommen wird.
Es wird die Frage nach Designer gestellt. Er zeigt einen Interessanten Workflow Manager, (Link weiter unten)wo ich jede WF Instanz öffnen kann und im Designer sehe, wo mein Workflow steht und wer bei welchem Step was gemacht hat.
Die Frage ist Hosting Designer vs. Custom Designer. Die Antwort hätt ich mir vorstellen können… Hängt davon ab, was du machen willst.
BizTalk vs. WF
Positioning ?
BizTalk ist ein Server Produkt, dass schon länger auf dem Markt. WF ist gemacht für Entwickler, um die Engine in ihren Produkten zu nutzen. Grundsätzlich machen die Produkte ziemlich ähnliche Sachen, jedoch sei der Fokus der Produkte ein anderer. BizTalk ist ein Produkt, WF eine engine "for free". In der nächsten Major Version wird BizTalk WinWF basiert sein. SSIS wird angesprochen, dass dies ja auch eine Art WF ist. Frage: Wird dies auch einmal mit WF gemacht ? Es gäbe 7-8 MS Produkte, die sich commited hätten, WF einzusetzen. Mit den guys von SSIS habe man Gespräche, entschieden sei noch nichts. Wenn man SSIS einsetze, könne es je nach case Sinn machen, dass man sich überlege auf WF zu schwitchen.

Sharepoint sei momentan ideal, um WF's zu hosten. Er meint aber nicht SP WF's, sondern WF's die auf Sharpoint gehostet werden und mit SP WF's interagieren. (Sven -> Eskalation ;-)) )

Updating exisitng workflows (Dynamic updates)
Dies ist nicht einfach zu beantworten. Es gibt ein Dynamic Update API… Er zeigt ein kleines Sample.Er klickt in seinem Workflow Designer bei einem laufenden WF auf "pause", dann auf den Button "Change WF" und fügt dann ein Activity hinzu (Der WF darf natürlich noch nicht da vorbei sein) , dann "Accept Changes" und "Resume", nun kommt der WF an diesem Activity vorbei und es wird dann natürlich ausgeführt. Hmm, interessantes sample, IMHO wird dies für uns und in der Realität nie funktionieren. Ich erklär Euch gerne warum, but not here…
Achtung: Watch this guys: Workflow Manager
Whats about WF scalability? More then 100k ? It's not possible to give a answer with a "Zahl". Es kommt drauf an, was das für WF's sind, was sie machen etc. 100k ist keine grosse Zahl, weil wir ja den persistence Service haben. D.h. es sind ja dann nie die 100k WF im memory. Es ist dann eher eine Frage der Skalierbarkeit der DB. Hier ein Bild, das zeigt, wie ich die WF's skalieren kann:




Locking mechanismen for SP Tasklists: Tasklist framework in SP ist great. Paul recommend, that we should use the oob Tasklist activitys.


Interessante Diskussion, ist noch schwierig dies hier alles so wiederzugeben. Viele Fragen haben wir uns schon selbst beantwortet, da wir schon etwas weiter sind, als die meisten hier. Ich kann Euch nur sagen, dass ich nichts gehört habe, dass wir uns irgendwo falsch entschieden hätten. Ich denke, Paul hätte Freude an unserem Projekt ;-)

Persönlicher Session Break….

Mittwoch 12 Uhr war eigentlich für mich Halbzeit. Ich hab aber wie im Fussball keinen The und Zitronen Schnitz erhalten, sondern wird jetzt mal meinen Senf los….

Also, zu Converence ist zu sagen, das ich das Gefühl habe, im Gegensatz zu anderen Jahren, das hier mehr Leute sind als je zuvor, aber der "space", wo sich diese Leute bewegen können, kleiner wurde…
Die Events IT-Forum und TechEd wurden ja zusammengelegt. Nun, das macht Sinn. Kein Einwand daher. Es gibt aber schon ein Paar Sachen, die halt auf der Strecke bleiben… Es sind dies :

• Kein Printing Service mehr
• Wenig WC's (Da kann die Event Organisation nichts für, das ist Location related)
• Weniger Kühlschränke mit Getrönken (oft leer oder warme Getränke)
• Keine Glacé mehr
• Keine Party mehr !
• Die Wege sind kürzer, dafür viel mehr Gedränge

Also, jetzt will ich noch erzählen, was ich so erlebe hier… Also, das Hotel ist gut. Keine Rede. Aber… (Da kann das Hotel nichts dafür)
Ich kriege jede Metro mit.Das Ganze Hotel "zittert" wenn ne Metro vorbei donnert, Aber kein Problem, ich richte meine Uhr danach :-)
In der Nacht von Dienstag auf Mittwoch habe ich nicht soo viel geschlafen. Ich kam um ca. 10.00 Uhr ins Hotel. Nun, ihr müsst Euch das vorstellen wie ein Schlauch (das ist der Gang) und am Ende (der Head) habe ich mein Zimmer. Das heisst, ich habe mehr oder weniger Links und Rechts Nachbarn,. Also, als ich nach Hause kam, waren da (ich schätze etwa 10) Girls auf dem Gang. Einige ganz Interessante Exemplare (Sorry die Ausdrucksweise... Girls !) . Sie hatten mühe mit dem Schlüssel etc. Hab natürlich gerne geholfen… Sie hatten unter Anderem die Zimmer Links und Rechts von mir.
So gegen 11 gings los… Sie liefen im Gang mit Ihren "Absatzschuhen" hin und her… (Marmorboden) es machte einen enormen Krach..zudem haben die Ladys nie gelernt, die Türen vernünftig zu schliessen!! Natürlich können nicht 2 und 2 in einem Zimmer sich einigen, wie sie jetzt in den Ausgang gehen. Also switchen sie von Tür oder Zimmer zu Zimmer. Wie man Türen schliesst, haben sie anscheinend wirklich nie gelernt. Also Türe zu = Bäng !... Bäng ! …. Und das alle 20 Sekunden ! Ok, ich musste nichts sagen, hab mitbekommen, wie irgend ein Guy im Gang Terror macht und erzählt, das er um 8 Uhr wieder auf sein müsste um zu Arbeiten. Das Ganze hatte dann auch relativ schnell ein (vorläufiges) Ende, den die Ladys wollten ja in den Ausgang.
Ich war froh denn jetzt war Ruhe.
Erwacht bin ich dann genau um 3.04 Wieso dann ?
The girls are coming back ! Ich bin erwacht, weil auf dem Marmor Boden die Schuhe "schepperten" und zum anderen, weil sie immer noch nicht gelernt hatten, wie man Türen so schliesst, dass niemand erwacht oder so. Zu meinem Bedauern habe ich noch merken müssen, dass sie sich genau für das Zimmer für Ihre gemeinsame "After" Party entschieden haben, welches eine Wand hat, die an "meine" grenzt. So gegen viertel vor vier hat es mir den "Nuggi" rausgehauen. Ich habe an die Wand gepoltert und gerufen "I wane sleep !" Was denkt ihr, passiert ist ? ….
Es wurde keine 3 Minuten später an mein Türe geklopft. Ich schlaftrunken in meinem Bett… Erster Gedanke. "Das hab ich geträumt!, Es ist nach halb vier". Es klopft ein zweites mal .. Und ich steh auf, mach die Türe auf … Ich hab in diesem Moment nicht überlegt, dass ich nun in den Unterhosen da stehe…. Also, ich öffne die Türe… und was hör ich…gekreische… wow, das erste mal das girls wegen mir kreischen… ok, ich weiss nicht warum ;-) Aber, diejenige, die geklopft hatte fragte (mit einer gewissen röte im Gesicht)dann ganz keck: "When you can't get sleep, come to us and have a party ! "..Hmm, ich hab abgelehnt.(Keine Fragen wieso !) Sie haben mir aber versprochen, das sie ruhiger sind und das Zimmer verlegen. Nun konnte ich schlafen und träumte ganz süss ;-))) Ich weiss, ne story die man nur glaubt, wenn man es selbst erlebt hat… THINK WHAT YOU WANT !!

Greets from Barca!

Mittwoch, November 08, 2006

SQL303 SQL Server 2005 Analysis Services: Deep Dive

Richard Tkachuk
Abstract:
SQL Server 2005 Analysis Services includes a re-architecture of the Online Analytical Processing (OLAP) and Data Mining engines from SQL Server 2000. In this session we explore the semantics of the Unified Dimensional Model (or UDM) including explanations of what it is in the dimension and data structures that make calculations so flexible and query response so fast. This will be followed with a demonstration of building a cube, how multidimensional expressions (MDX) are used to query the result, and how the structure of the cube is exposed programmatically in native and managed environments. We'll end with a demonstration of building a mining model and querying the result with Data mining expressions (DMX).


Ich hatte wieder einmal die Qual der Wahl. Der letzte Slot für heute.. Puhh, bin geschafft. Hätte jetzt gleich 3 Sessions gleichzeitig besuchen können. Aber, aus aktuellem Anlass habe ich diese gewählt. ;-) Zudem erhoffe ich mir hier Infos, die uns in diesem Thema weiterbringen…. Mal schauen.

Richard ist Lead Programm Manager für Analysis Services. Er erklärt, dass er normalerweise mit DBA's spricht, Performance und Caching von Cubes ist sein "spezial" Gebiet.
Zuerst folgt eine Demo mit Excel, wo er in einer Spalte gleich "Grafiken" eingeblendet hat, wo ich eine Art "Ranking" der Zahlen sehe…



Auf die oben gezeigt Darstellung ist er leider nicht weiter eingegangen, zeigt aber eigentlich auch nur den Aufbau, wie wir Ihn schon kennen…
Er geht direkt auf die API's ein, welche Arten es für den "Zugang" gibt etc. Die folgende Grafik zeigt dies sehr schön:




XMLA ist XML for Analysis:

• Industry standard that defines interaction between client and analytical data provider
• Specification managed by XMLA Council (www.xmla.org)
• Simple Object Access Protocol (SOAP) based XML protocol
• OLAP or data mining
• Based on OLEDB (for OLAP/data mining)
• Just two methods – Discover and Execute

Nun folgen viele Erklärungen über wie und wo ich meine Cube optimieren kann. Geht einwenig schnell ;-) Hab aber die Slides gezogen, so dass wir dies in Ruhe studieren können.
Ich bin irgendwie nicht die Zielgruppe.. Er klickt in seinem Tool herum, und ich weiss eigentlich gar nicht, was er machen will….
Jetzt kommt eine Erklärung zur Frage: Was ist eine Aggregation ?
Hier die AW:
A subtotal of partition data based on a set of attributes from each dimension




Was ich verstanden habe ist, dass eine Aggregation die Query Performance steigert. Nein im Ernst, ich glaub anhand der Grafik ist er erklärlich. Mit dem Trace Tool kann ich schauen, ob die Querys die Aggregation "treffen" oder nicht . So weiss ich auch, ob meine Aggregation "sinnvoll" ist oder nicht.

Was ist ADOMD.net ?

• Query cube schema
• GetSchemaDataSet
• Query cube data
• With MDX or SQL
• Results returned in a cellset or (flattened) rowset
• Get back a “Cellset”
• A multi-dimensional rowset
• Caution: Trace your application!

Es folgen ein paar Demos, wo er seine Cube mit Querys "quält" und zeigt, dass je nachdem er seine Cube definiert hat, sich die Perfomance massiv unterscheidet.

Leider ist mein Akku jetzt gleich leer. Es geht nun um Data mining und mdx. Ich werde noch liefern….

So, bin zufrieden von der Swiss Country Night zurück..war ein netter Abend ! Aber mehr dazu in der persönlichen Rückschau oder in einem Zwischenbericht.

Zurück zur Session….

Ok, sehr viel länger ging die Session nicht, es ging noch um Data mining (wie angedroht) und mdx. Wenn man die Kürzel zu interpretieren mag, dann weiss man auch, was wohl MDX heissen soll. Wie soll ich bloss data mining erklären.Hmm, hier ist es sehr einfach. Direkte Übersetzung ! Anbei 2 Grafiken, wo ich das besser erklären kann:



Oder anders ausgedrückt:




So, das wars ! Mehr later, there is a lot of stuff cuming !

OFF201 Web Content Management (WCM) and Microsoft Office SharePoint Server (MOSS) 2007 – The Out-of-the-Box Experience


Patrick Tisseghem
Abstract:

Web content management systems require a rich, flexible, easy to use and maintain infrastructure where the role of IT and developers is to set up and prepare the environment. It is then leave it up to the business users/content authors to start taking control over the content delivered via the pages making up a WCM-enabled site. This session will give you a complete overview of the different WCM-related building-blocks and features delivered with MOSS 2007. WCM in MOSS 2007 builds on the many foundations that are part of WSS v3 (site columns, content types, versioning, per item security, field types, and more). In the session, you will learn how they are all used, enhanced and brought together to create a very powerful supporting infrastructure for creating sites – both internal as well as external. This session will cover the creation of an Internet site, the configuration to allow for forms authentication and anonymous access, the creation and maintenance of site hierarchies and galleries storing the content, customization of the navigation and the master pages defining the look and feel, the underlying page model, the creation of new page layouts for business users/content authors to use, the role of workflow in the publishing cycle, the options for using smart clients to create and modify the Web content, the support for multilingual scenarios with site variations and an overview of the various Web parts that are WCM-related.


Patrick beginnt mit den Konzepten, welche hinter dem WCM von SharePoint steckt. Er zeigt ein paar Seiten, auch solche von MS, welche auf SP gehostet werden. Er erwähnt die Variations, und will später darauf eingehen.



Er erklärt, dass es im Gegensatz zum CMS Server 2002 gratis in SP enthalten ist.
Es wird nun in der Demo gezeigt, wie ich ein neues Intranet anlege, und was ich alles einstellen kann. (Zuerst SiteCollection etc. ) Es ist immer das selbe Puplishing tool, Diesesmal muss ich einfach den Typ Portal aussuchen. Er zeigt auf dem File System, wo die Templates liegen. So kann ich mein eigenes Template hinterlegen, und dann jedesmal wieder verwenden, wenn ich ein neues Portal anlege.
Die Definitionen könne auch gleich Subsites etc. enthalten, so dass diese auch jedesmal miterstellt werden. (internetblank.xml) Dies macht natürlich nur sinn, wenn ich viel Internet seiten und dies häufig erstellen muss.

In der Vergangeheit gab es sehr viel "Konfusion":

• Windows SharePoint Services 2003 à sites
• SharePoint Portal Server 2003 à areas
• Content Management Server 2002 à channels

• In SharePoint 2007 everything is a site

Alles ist based on ASP.net 2.0 . Jede neu erstellt Default.aspx ist in der Datenbank gespeichert, resp. in der DocLib "Pages"
Die folgende Grafik zeigt den Aufbau der Site Map Providers. Jedes "Kästchen" lässt sich überschreiben und Customizen.Also ich kann eigene Controls oder Data Sources machen etc.



Jetzt kommt die Erklärung über Master Pages. Dies ist das selbe wie bei den anderen SP Sites. Natürlich kann ich eigene Master Pages definieren. Alle Sites and Subsites referenzieren dann auf diese Master Page. Nun wird gezeigt, wie ich in Subsites verschiedene Master Pages definiere. (OOB)
Es folgt eine Demo, wie ich mit SharePoint Puplisher master Pages oder ander Pages und Layouts anpasse.
Da alle Layouts in DocLibs gespeichert ist, und wir nun ja Item Level Security habe, kann ich natürlich auch bestimmen, wer welches Layout als Template zur Verfügung hat. (Also das HR Template nur für das HR etc.)

Nun erfolgt die Erklärung, wie mit den Content Types umgegangen wird.



Bei all meinen Content Types kann ich auch Custom Fields hinzufügen etc. Ich kann aber auch WF's an die Contentypes binden, so dass ich eine Internet Seite habe mit diversen WF's.
Ich kann nun im SharePoint Designer auf einer Subsite, meine Contnet Fields und Content Types hinzufügen und natürlich bestimmen, wer diesen editieren kann.
Wenn ich die Seite publishe, so kommt noch ein kleiner Approval WF, so dass der Intra oder Extranet verantwortliche dies Approven und freigeben kann.
Nun wird das ganze aus Sicht des HR Managers gezeigt, wie er die Seite sieht. Er sieht die selbe Seite wie jeder, kann dann aber auf Editieren klicken und dann den Inhalt (der Zuvor definiert wurde ändern) Nach dem Speichern kann wieder ein Approval stattfinden, muss aber nicht, Die Site ist somit gleich "Live" .
Es wird jetzt gezeigt, wie ich das Puplishing "Tool" Customizen kann, wenn ich das OOB Tool nicht verwenden will.
Site Variations: Ziel der Site Varations ist ein Multilingual Scenario oder verschieden "Targets" ( PDA's, Mobiles, PC's etc. ) Ich kann bestimmen, von wo ich die Variation beginne. Jede Variation wird gelabelt.
Ich gebe beim Label den "local" an (Spracheinstellung). Der User wird nun auf die richtige Seite gesteuert. (Wenn ich Deutsch (Schweiz) eingestellt habe und eine Variation für diese Seite besteht, so lande ich auch gleich auf dieser).
Es kommt noch eine kleine Exkursion betreffend Authentication. Diese ist aber nicht anders, als sonst bei SP. Sprich ich kann AD Accounts benutzen, aber auch irgendwelche LDAPS etc.

Interressante Session, da ich mich noch nie um das WCM gekümmert habe. Leider kein Infos betreffend Migration von bestehenden Webs. Nur, wie ich neue erstelle und was ich alles definieren kann etc.

OFF002 DEMO: Building Collaboration Solutions with Windows SharePoint Services and the 2007 Microsoft Office System

Chris Bryant , Todd Bleeker

Abstract:
This session presents the fundamentals of developing applications that use 2007 Microsoft Office SharePoint Server and Services. Examples shown will include the development of collaborative applications and the use of wikis and blogs. Furthermore it will drill down into using custom content types and adding custom fields types to lists and content types.



Ich weiss… aber da es sich um eine Demo handelt, will ich mir Ideen holen, wie wir zukünftig "Collaboration" betreiben können. Ich würde gerne die eine oder andere Session besuchen, jedoch bin ich ja SV Office System, und da fühle ich mich irgendwie verpflichtet ;-)
Das es auch um Wikis und Blogs on SharePoint geht, bin ich schon gespannt, ob ich diesesmal mehr Glück habe.
Zuerst wird eine Wiki Seite erstellt. Danach geändert und Links hinzugefügt. Nichts spektakuläres, ein Wiki wie man es kennt. Denn grossen Vorteil sieht der Speaker darin, dass er nun auch die History ansehen kann, was wann von wem geändert wurde. Hmm… kann das nicht jedes Wiki ??
Nun "unterschreibt" er noch fü einen RSS Feed und der Kollege erhält im Outlook die Notifikation, wenn "seine" Wiki Seite einen Update erhalten hat.
Nun macht er eine neue Blog Seite, zeigt wie einfach das gehen soll. Komischerweise sind beide immer als System Account angemeldet… MS Way ;-) Natürlich muss diese Seite ein Admn anlegen, aber dass sie immer damit arbeiten… Ok, die Blog Seite ist natürlich wiederum eine "normale" SharePoint Seite, welch ich halt "gewissen" Authoren zuweisen kann, dass die dort bloggen können. Interessant am ganzen ist jetzt jedoch die Verlinkung untereinander, also vom Blog aufs Wiki und von da wiederum in eine Doc Lib, wo ich die Dokumente (Im Beispiel ist es ein Projekt Wiki und Blog) die da referenziert sind, abgelegt sind. Wenn ich nun auf dem Projekt Wiki ein Dokument hochlade, liegt dies automatisch in dieser Doclib.
Jetzt wird via Visual Studio ein neues Custom Field dem SharePoint beigebracht. Dies wird dann verwendet, um Zip Codes zu verifizieren. Scheint eher eine Demo zu sein, wie ich dies im Studio mache und wie ich es deploye. IMHO gehört hier aber keine Exkursion hin, wo mir erklärt wird, wie man ein Strong Named Assembly macht und dass ich dies in den GAC deployen kann etc. Aber weiter zur Demo…
Die Solution, welche zum SharePoint deployed wird, enthält eine Regular Expression, welche den Zip Code Prüft, wenn ich etwas Uploade. Wenn diese RegEx nicht "greifft" wird eine Exeption geworfen, (dem User wird eine MsgBox angezeigt) wo dann halt steht, dass dieses Dokument einen ungültigen Zip Code enthält. Schön daran ist, dass ich nun in den Doc Libs diese Validation einschalten kann. Kann ich mir vorstellen, dass irgend jemand in der RTC mit so einer Anforderung kommt ;-) Auch bei Wiki Uploads etc. kann ich dies nun anwenden.
Somit kann ich jede Möglichkeit von RegEx in der Doclib nutzen. Ich muss mal mit Roger W. sprechen, ich glaub wir nutzen dies schon … (Ntrl_ )
Jetzt definieren sie ein "render pattern". Dass heisst, wenn ich bei den Propertys in meinem Upload das Feld Zip Code eingebe, wird dies, so wie ich dass in meiner Klasse definiert habe, dargestellt. So kann ich das ganze natürlich customizen und so verbauen, dass es noch hässlicher aussieht ;-)


War noch eine interressant Demo, besser als das ganze zuvor. Deshalb gehe ich auch an die nächste SP Session, geht es da doch um OOB WCM. (Web Content Management).

Case Sensitiv Crawling

So, jetzt habe ich mein Mittagessen "sausen" lassen und habe Moritz Berger aufgesucht. Ich habe ihn natürlich auch gefunden….
Die Antwort betreffend der Frage, "Wann will MS Case Sensitiv crawlen " ? Ist nicht neu und entspricht dem, was wir bis anhin auch als Antwort zu hören bekommen haben.
Im Moment leider nicht… Ich wurde gefragt, was den Case Sensitiv sei und weshalb ich dies Crawlen möchte … Ah, this Unix thing… war die Reaktion. Nun, wie gesagt, vermutlich mit SP1, man arbeite daran, könne aber nichts garantieren. Wann den SP1 erscheinen wird, war dann natürlich postwendend meine Frage… Zurzeit gibt es noch keinen (offiziellen) Plan. Sprich über Termine redet noch niemand….
MS, welcome to the real World !

OFF306 Understanding Workflow in Windows SharePoint Services (WSS) and Microsoft Office SharePoint Server 2007



Ted Pattison
Abstract:
The Windows Workflow Foundation (WF) which debuts with version 3.0 of the .NET Framework introduces a core set of workflow plumbing and a productivity-oriented development paradigm to the Windows platform. WSS 3.0 builds on top of WF by adding in extra workflow dimensions for managing the document lifecycle and integrating humans into the workflow process. This session quickly covers the underlying workflow architecture of .NET Framework 3.0 and WSS 3.0 and then dives into demonstrations of building custom WSS workflows with Visual Studio 2005. You will see how to build, deploy, test and debug custom workflows for WSS sites with the Visual Studio 2005. Along the way you will also see how to use InfoPath 2007 to create and integrate forms into custom workflows created with Visual Studio 2005.


Jetzt geht der doch schon wieder an eine SharePoint Session. Wie ihr aber am Titel erkennen könnt, geht es ja um WF's in SP. Ich weiss, auch dass ist für uns nicht neu, jedoch erhoffe ich, einige "hints" zu hören, Best Practices oder so …
Die Session beginnt mit einer Exkursion, was WinWF ist, was die Idee dahinter ist etc. Es muss ja so sein, es hat ja sicherlich Leute hier, die dies das erste Mal hören. Dies werde ich aber sich hier nicht alles aufschreiben ;-)
Die Session ist als 300'er gekennzeichnet. Leider ist bis jetzt nichts davon zu merken. Es geht darum, das Office System einfach schon suuper WF's OOB zur Verfügung stellt. Es wird gezeigt, wie mit dem SharePoint Designer einfache Workflows zusammen geklickt werden können. Danach kommt die Erklärung, dass man einer Libary WF's anhängen kann. Leider werde ich wieder enttäuscht.
Natürlich geht es nicht um InfoPath, irgendwelche erweiterten oder Customized WF's. Es wird gezeigt, wie ich beim Einchecken in Word 2007 oben die Propertys, sprich Metadaten eingeben kann. Es wird dann auch gezeigt, dass ich oben klicken kann, "Add Workflow" und dann jemanden das Dokument zum approven geben kann… Es ist immer die selbe Demo… Ich verstehe nicht ganz, weshalb MS immer diese DEMO braucht, seit 1 Jahr. Entweder können sie sich nicht vorstellen, was für WF's in der Realität existieren, oder sie haben keine Fantasie…
Oh, jetzt kommt doch noch InfoPath. Was wird gezeigt ? Hmmm, OOB, Initial Form etc. Alles schon gehabt. Sorry Guys, wenn ich hier nicht mehr weiter schreibe, aber jeder INDS Mitarbeiter weiss mehr (sofern sie aufgepasst haben :-) über WF's und SharePoint als die Besucher dieser Session !

Könnt ihr euch an die Demo im Februar erinnern ? Da habe ich die besseren OOB WF's gezeigt als hier gezeigt werden. Nur glaube ich, ich habe nicht soo fest Werbung gemacht und das Wort exiting, great und fabulous gebraucht…

Dienstag, November 07, 2006

DEV309 The Identity Metasystem, Active Directory Federation Services (ADFS) and Windows CardSpace (formerly 'InfoCard')



Keith Brown
http://www.pluralsight.com/keith
Abstract:
The Identity Metasystem is a new way of representing digital identity. It's a claims-based identity backplane that can be used for authentication and authorization on the Internet. This session will introduce these concepts in a very concrete way including demos of ADFS that show how you can reap the benefits of federated and claims-based identity in your own Web applications. We'll follow up with a discussion of Windows CardSpace, which surfaces the metasystem to end users and puts them in control of their identities. You'll take away from this session fresh ideas about how to authenticate and authorize users in your Web applications and Web services. You'll also learn how important it is to avoid creating more identity silos!


Die Diskussion beginnt damit, dass MIIS zu teuer sei… und weshalb kein "Single Identity System" Erfolg hat. Passport funktioniere zwar super, aber eben nur auf MS Systemen.

Die sieben "Laws" of a stable Identity system:

User Control an consent
Minimal disclosure
Justifiable parties
Directional identity$Mutliple operators and technologies
Human integration
Consistent expirience across contexts

Wieso funktioniert Passport nicht ? Weil niemand sich trauen würde, sich bei seinem e-banking System mit dem Passport Account einzuloggen. Microsoft sei zwar fein, aber gewisse Daten will man nicht jedem anvertrauen…

Dem Identity Metasystem: Keine Identity Technologie oder Provider "rule them all" =Law 5 ! Es sei aber möglich, ein Identity Backplane zu machen, wo diverse Systeme miteinander arbeiten. Denn kein System erfülle alle Anforderungen aus allen Systemen. Nun wird erklärt, was claims sind.





Die Active Directory Federation Services wurden letzten Dezember mit Windwos 2003 R2 Server ausgeliefert.

• Adds support for WS-Federation (passive profile)
• Passive profile is for browser clients
• Active profile (ADFS v2) will support smart clients
• ADFS supports several modes of operation
• B2B federation (this talk will focus on this mode)
• B2E extended intranet access for mobile users
• B2C single-sign on using account database in perimeter network

• Architects: federation with ADFS has many benefits!
• Reduces cost and latency
• Single-sign on means users don’t need yet another password
• Ditch those passwords and use strong authentication!
• Devs: learn how to support ADFS in your web apps!
• ADFS comes with an HttpModule called the “ADFS web agent” that does all the heavy lifting for you (decrypting SAML tokens, etc.)
• ADFS class library adds a couple of new namespaces
○ System.Web.Security.SingleSignOn
○ System.Web.Security.SingleSignOn.Authorization
• HttpContext.User.IsInRole works like you expect for group claims

Sorry wenn ich hier Teile in English poste, aber es geht so schnell… Ich werde die Folien organisieren, denn es ist mit einer Animation sehr viel einfacher zu erklären, wie die ADSF funktionieren, als jetzt step by step zu beschreiben. (Oder ihr fragt Roger , der kann euch dies sicher besser erklären, als ich im Blog. )



Nun geht es um Windows Card Space… und ich verstehe endlich, was das genau ist.
Windows Card Space funkioniert so, dass wenn ich irgendwo einlogge, wo (Card Space vorausgesetzt) ich mit meiner "Card" einloggen kann. Ich brauche dazu kein PW oder so. Meine Card ist wie eine Art "Pass". Dieser Pass muss nicht von der Seite stammen, wo ich mich einlogge, sondern kann z.B (wie ein Zertifikat) von Verisign sein oder so. Übertragen werden nun nicht alle Informationen, die die Seite von mir haben muss. Es ist eine Art Token, sieht aus wie ein Kerberos Ticket. Nun weiss die Site, woher meine Card kommt und fragt diese an. Die Antwort ist nun einfach OK, oder NOK. Ich erhalte Zugang zu Website, ohne einen "eigenen" Account dort zu habe.



Sehr interressante Session, ich werde hier sicher mündlich oder so noch mehr erklären können. Ist nicht immer ganz einfach, aufzupassen, zu bloggen und alles auch noch so wiederzugeben, dass verstanden wird was ich sagen will ;-)

DEV240 Introduction to Extending Windows Desktop Search: How to add YOUR data to the system

Chris McConnell , Moritz Berger
Abstract:
We will discuss the current products that help users find and use their data such as files and e-mail. We will show in-depth examples of how to add your companies' data into the Windows Search platform. This will showcase both local data (filters) and remote data stores (protocol handlers). We will also provide a sample of consuming data from the Windows Search index.


Da ich mich in letzter Zeit häufiger mit der Suche beschäftigt habe, habe ich mich für diese Session entschieden. Das Moritz Berger auch mit von der Party hat mich dann wirklich überzeugt, dass ich an diese Session gehe. Moritz war vor 2 Wochen schon am Global Accounts Roundtable, deshalb weiss ich, dass ich ihn betreffend SharePoint Suche, Case Sensitive crawling und solche Sachen fragen kann.

Die Präsention beginnt mit den selben Folien, die ich vor 2 Wochen bei Rick Samona bereits gesehen habe. Die Leute, welche an dem letzten RENO SF Gesamtstatus Meeting waren, kennen diese Folien bereits, denn da habe ich sie vorgestellt. Es sind genau diese Folien. Für alle anderen gilt es zu bis zum 24.11 (intern) oder dem 5.12 zu warten, denn da werde ich das ganze nochmals präsentieren. Deshalb verrate ich hier auch nicht allzu viel ;-)
Ich werde aber die Frage stellen, weshalb MS nicht einen ihrer Vorteile nutzt, dass wenn ich Dokumente suche, welche schon auf Ntfs gespeichert sind, so könnte ich ja für die Relevanz (Resultat Reihenfolge) die File Usage des File Systems brauchen… AW: Das sei ein guter Input, man habe auch schon daran gedacht, ev. mit Casino (next Wave, Q2 07) .
Das meiste, was hier besprochen wird, ist das einbinden eigener Filetypes (via Ifilters) . Wie mache ich dies und was muss ich beachten. Ich werde Moritz morgen am Mittag treffen (ask the experts) und ihn dann betreffend Case Sensitiv löchern.

DEV225 Windows Presentation Foundation (WPF): Introduction

Mike Pelton
Abstract:
WPF is Microsoft's new graphical presentation technology. It makes very light work of sophisticated graphics tasks and hence opens many new doors – the ability to create highly productive and original user interfaces (UI), to mix 2D and 3D graphics into applications easily, to offer a compelling experience to your users, and the ability to mesh the work of graphic designers with business logic. There's a remarkable clarity of vision behind WPF's architecture and, primarily through demonstrations, this session will illustrate how that model brings capabilities that used to be considered the domain of the highly specialised to within easy reach of all developers.


Diese Session habe ich besucht, weil die SharePoint oder Office Sessions nicht wirklich interessant sind für mich. Eine wäre InfoPath und die andere SharePoint with Workflow. Leider haben beide nur einen 200 Level, deshalb lasse ich es sein. Ich werde immer noch die Slides anschauen können…

WPF sieht sehr interessant aus, und jeder, der sich schon mit MFC rumgeschlagen hat, weiss, dass es irgendwie einfacher gehen muss…WPF kann ich mittels XAML oder natürlich C# "steuern". Interessant ist der Ansatz der Programming Model Unification:




Die Presentation bringt sehr viele Demos, keine Slide Show. Dies begrüsse ich so oder so, will ich doch was sehen ;-)

WPF ist daraus ausgelegt, die Grafikpower, die heute ein PC besitzt, auch auszunutzen. Die ganze Engine ist Vector basiert.

• Uses the PC’s graphics power
• Quality is preserved with scale
• CPU freed from graphics work
• Gain capability from graphics card advances

Er zeigt nun ein paar Grafiken, welche mittels WPF erstellt wurden. Sieht wiederum sehr gut aus. Ich staunte auch, wo er eine Grafik von einem Elefant nimmt und diese einfach als XAML speichert. Ist zwar gross und unübersichtlich… aber es wird sicherlich solche gebe, die zukünftig ohne Grafischen Editor im Notepad mittels XAML irgendwas malen, ohne es zu sehen ;-)

Was kann man mit WPF alles machen ?

• Drawing
• Painting
• Controls
• Layout
• Document interface
• Text
• Animation
• 3D
• Data Binding
• Browser-only Apps



Und hier noch eine Architektur Übersicht:



Eine sehr sehr interessante Demo !! Ich kann hier gar nicht aufzählen, was uns alles gezeigt wurde. (Z.B. eine Applikation, welche via Web Service Flickr connectet und nach Bildern sucht, dessen Suchbegriff eingegeben wurde. Ok, nichts besonderes…aber die Art, wie dies dargestellt wurde, war einmalig. Das aktuelle Bild war in der Mitte Rund, alle anderen Bilder rundherum. Wenn ich mit der Maus über ein Bild fahre, dann wird dieses langsam grösser, Beim klick tauschen sich das Grosse Bild in der Mitte mit dem auf der Seite. Sieht einfach heiss aus, sehr schön animiert. Und den Code, den wir hier zu sehen bekommen, ist nicht so gross. Ich pers. Kann mir nicht vorstellen, ob solche Effekte jemand mit MFC hingekriegt hätte…)
Ein anderes Beispiel ist eine neue Art UI, welche sich der Speaker so vorstellen kann. Ein Fenster, mit ca 16 Farbigen Quadraten drauf. Wenn ich über ein Quadrat fahre, dann wird dieses Grösser, die anderen werden sehr klein. So kann ich in Applikationen Fenster wechseln, ohne Tabs oder speziellen Navigations Button etc.
Übrigens ist der berühmte Vista Effekt, welches die einzelen offenen Programme so hintereinander durchlaufen lassen, eine "relativ" einfache WPF Anwendung. Witzig ist hier, dass ich dazu genug Grafik Power brauche, DirectX 9… aber keinen WDDM Treiber, wie ihn VISTA (wenn ich diesen Effekt haben will) zwingend vorschreibt. Die Demo läuft auf XP, jedoch kann er den Effekt auch zeigen, direkt aus dem Studio compiliert.
Eine Demo zum Staunen !!

Übrigens eine Software die WPF schon nutzt, ist iBlocks :

OFF202 Windows SharePoint Services v3 and Office SharePoint Servers 2007 as a Development Platform

David Gristwood
Abstract:
Windows SharePoint Services v3 and Office SharePoint Servers 2007 as a Development Platform (a.k.a. "7 Reasons why Developers Will Love SharePoint"). Based on ASP.NET 2.0, SharePoint v3 and Office SharePoint Server 2007 are a great platform for developing a wide range of solutions. This session explores the overall architecture of SharePoint v3 and Office SharePoint Servers 2007, and covers 7 reasons why developers should be looking at SharePoint, including Web Parts, Workflow, Excel Services, Business Data Catlog, etc
.

Hmm, die Session beginnt nicht wirklich interressant. Sind es doch die selben Folien, welche ich bereits im Februar verwendete für meine Präsentation. Mal schauen, ob was "neues" kommt.
Es ist wirklich so, dass ich hier falsch am Platz bin. Er zeigt, wie man WebParts platziert, wie man diese Customized etc. Leider nicht wirklich spannend.
Nun sind Content Types, Features etc. dran… Naja, wie ich zu beginn bereits befürchted hatte.

Also grosse Neuigkeit sind InfoPath Forms angekündigt, welche sich im Browser bearbeiten lassen ;-)
Er klickt sich ein einfaches InfoPath Formular zusammen, Deployed es und… es gibt Applaus… Was wüden die wohl sagen, wenn ich jetzt unseren Laufzettel oder das Incident Formular zeigen würde. He, dass sind alles professionelle Developer die da sitzen, und sind von diesem einfachen Beispiel begeistert. Wenn ich an die Begeisterung bei unseren Präsentationen denke, da merke ich einfach, dass "unsere" Leute nicht abschätzen können, wie weit wir "ahead of the game" sind ;-)
Weitere Infos in meinem Office Blog vom März.
Ich verlasse die Session, so dass ich endlich Zeit und Ruhe habe, die ersten Session-Blog Einträge zu posten….(Wifi funkionierte gestern nicht im Hotel )

KEY001 LAUNCH: Windows Vista, the 2007 Office System and AJAX



Eric Rudder
Abstract:
Windows Vista and the 2007 Office System provide a wealth of new capabilities that enable you to build dynamic solutions more productively. AJAX technologies will help you build visually compelling Web sites. With these updates to the Microsoft application platform, you will enjoy productive and familiar tools for building a breadth of Windows, Web, and business solutions on a secure and dependable environment. This keynote session will provide you with an overview of these latest advances for building modern applications and reveal several new tools for helping you get your job done faster.



Ich war leider 5 Minuten zu spät, es hatte sooo viele Leute, und bis ich endlich im Auditorium sass, war ich ein wenig zu spät. Ich habe aber zum Glück nichts verpasst.
Sie erzählen von einem kleinem Mädchen, dass vor ca. 1 Jahr aufgefallen war, als sie den MCP für Visual Studio und C# machte. Damals war das Mädchen 9(!)
Danach holt er sie auf die Bühne, lässt sie ein wenig erzählen was sie alles machen will in ihrem Leben und lässt sie dann eines Ihrer Programme zeigen. Ok, ein Calculator, nichts spektakuläres. Als sie dann aber den Code erklärt, bin ich erstaunt. Sie hat das Ding mit -net 3.0, Also WPF und und WCF gebaut. Nicht schlecht für dieses Alter…Fand ich irgendwie eine witzige Einlage.



Nun wird verkündet, dass Gestern um 6.00 Uhr (Pacific Time) war der RTM von Office… ASP.net AJAX soll heute kommen und innert kürze via MSDN verfügbar sein (inkl. VISTA)
Der altbekannte Eric Lee kommt wieder einmal auf die Bühne… er zeigt die KPI WebParts in Sharepoint…. Klickt auf die Details eines KPI Wertes und wir erhalten Sensationelle Graphiken… Hier werde ich nachaken müssen, was dies für WebParts sind. Denn wenn unsere Reports so aussehen würden...
Danach zeigt er den WF, der dahinter steht… er erklärt einiges über den WF und dessen Designer, brauch ich hier nicht weiter auszuführen. Danach fügt er ein Sendmail Activity hinzu, interressant an diesem ist, dass Exchange 2007 via Webservice ansprechbar ist..
Nun kommt das WPF (Windows Presntation Foundation) zur Erklärung Er zeigt eine Design Applikation, so ne Modell - Designer Software, sehr sehr schön, mit 3 d- Modellen…. Sieht einfach suuper aus ! Innerhalb der Designer Software kann er nun diverse Modells auswählen, denen verschieden Kleider aus einem Katalog anziehen und sie dann auch virtuell sich bewegen lassen, drehen etc. Ich glaub es hat allen gefallen, gab es doch so einige solche Pfiffe, welche schöne Frauen bei einigen Typen auslösen ;-)



Eric (lee)erklärt nun das "People near me" API in Vista. Innerhalb der Software (nachdem er gezeigt hat, wie er im Source Code das API anspricht, sucht er sich Eric (Rudder)aus, klickt auf ihn. Nun wird via Secure Pipe zu Eric connected, sie arbeiten fortan in der selben Applikation mit dem selben Bild. Via Communication Server reden sie miteinander, während sie immer das selbe sehen. Beide können innerhalb der Software interagieren.
Nun kommt eine Office Demo, wie man Excel 2007 erweitern kann. Er zeigt eine Applikation, die in der Tabelle bei angeklicktem Item immer den Besten Preis und die Händler sucht, welche die besten Preise haben. Nun kann ich via Funktion berechnen, was wäre wenn, wenn ich alle Item's von dem Selben Händler nehmen würde und was es kosten würde. Ich kann auch sagen, dass ich einfach für jeden Artikel den günstigsten will. Oder ich kann mir den Lieferant anzeigen lassen, der am günstigsten ist, wenn ich alle Artikelo von einem Hersteller möchte. Die Übersicht sieht wieder einmal fantastisch aus. !
Der nächste Schritt ist, die Designer Software im Browser laufen zu lassen. ASP.net AjAX on Server… wow… sieht fast so aus wie in der WPF Applikation. Er zeigt, dass wenn ich etwas ändere, immer ein kompletttes Postback geschieht. Nun fügt er Code hinzu, und zeigt, dass nun via AJAX nur noch das geänderte Bild ändert und ersetzt wird ohne kompletten Postback. Intressant ist auch, dass sogar das "Drag and drop" von Kleidern auf den Modells im Browser funkioniert… und das sehr schnell.
Danach kommt ein Video vom Otto Versand. … hier wird die vorhin gezeigte Software anscheinen bereits genutzt und auch für den neuen Webshop genutzt.
Nun erfolgt ein Ausblick auf die nächsten Tools, Orcas etc. und die vielen schönen neuen Plugins… Wer die Roadmap kennt… Kann hier nicht alles vorstellen.
Am Schluss war das Thema noch LINQ (.net Language integrated Query) . Dazu ev. später mehr.

Interessant Key Note !

PRE008-4 Session 4: Advanced Customization Topics, Persistence and Designer Hosting


Christian Weyer , Ingo Rammer

Abstract: Das selbe wie in der vorhergegangenen Session !


Dies ist die letzte Session für heute.. Puh, bin froh. Ich hab das Gefühl, mein Fieber ist wieder gestiegen und ich bin ziemlich schlapp. Ich werde auf dem nach-Hause weg eine Apotheke suchen, mich ins Hotel begeben, diese Blog Artikel bearbeiten und dann nur noch schlafen… Aber nun zurück zur Session:
Ingo zeigt nun den State Machine Workflow, den er dem Titel nach bei der letzten Session hätte zeigen sollen… egal. Nun sind wir bei unserem Incident Management ;-)
Seine State Machine hat folgende States:

○ Initial State
○ Accepted
○ Declined
○ Manager Approval
○ Completed


Natürlich nichts neues für mich, jedoch bin ich gespannt, ob ich diverse Fragen beantwortet bekomme oder ob sie auf uns bekannte Probleme bezug nehmen. Nun werden die einzelnen Activitys, welche während dem ganzen Tag entstanden sind, kombiniert. D.h, unsere State Machine ist nun voll mit Sequentiellen WF's , resp. Activitys. (z.B. callExternalMethodActivity) Nun zeigt er, wie man von aussen den WF jederzeit fragen kann, in welchem State er ist. Ausserdem zeigt er, dass man den WF fragen kann, auf welche Events er wartet und dass man sie von aussen beantworten oder "feuern" kann. Somit kann ich jederzeit einen WF weitertreiben. Hier ist eine Frage: Kann ich einen WF, der Completed ist, wieder reaktivieren. Die Antwort von Ingo ist, Nein. Es mache keinen Sinn… Zudem werde im Persistance Layer jeder WF "normalerweise" beim completen gelöscht.
Nun werden die FaultHandlersActivitys gezeigt. (Dies sind eigentlich Try Catch Blocks). Global Event Handler.
Nun zeigt er die Cancellation View. Darin kann man Cancellation Activity definieren. Es kann ja durchaus sein, dass ich in jedem Step den Workflow Canceln kann. Damit kann ich dann die Activitys verwenden, um zu Entscheiden, was nun geschehen soll. Dies sind wiederum nur Try Catch Blöcke.
Nun zeigen sie ein Beispiel mit dem FilePersistence Service. Damit kann ich WF's in Files speichern und wieder laden. Im Beispiel zeigen sie, wie der Worflow wenn er Idle ist, einem WebService übergeben wird und auf einem Server gespeichert wird. Was hier nicht funkioniert ist dies: Wenn der WF gespeichert wird, so wird er ja aus dem Memory gelöscht. Nun wird geschaut, ob es noch irgendwelche Timers gibt auf dem WF.Wenn ja, dann werden System.Threading.Timers erzeugt. Dies funktioniert dann auch, ausser man bootet das System. Nach dem Booten kann ich jederzeit meinen WF wieder zum Leben erwecken, aber meine Timers sind weg.
Nun kommt er zum Thema des Designer hosting. Den Designer selber zu hosten ist dafür gedacht, wenn ich in meiner Applikation den Designer verwenden will oder durch eine eigene Applikation meine WF's umkonfigurieren will. Natürlich kann ich dies alles im Visual Studio, aber ich möchte ja ev. dass jemand aus meiner Applikation, welche selber WF's benötigt, der Benutzer den WF auch ändern kann (Grafisch, resp. wir sprechen nur vom Designer) .

Die Pre-Conference ist nun beendet. Ich habe mich nach der ersten Session dazu entschieden, weder den Architekten Track noch den SharePoint Track zu besuchen. Der SharePoint Track war "aufgwärmtes" (ok, der WF auch, aber wesentlich interessanter präsentiert und mit viel mehr Tipps und Tricks gespickt. Deshalb blieb ich auf diesem Track...

PRE008-3 Session 3: State Machine Workflows and Custom Activities


Christian Weyer , Ingo Rammer
Abstract: Das selbe wie in der vorhergegangenen Session !

Diese Session baut auf der letzten auf. Nun geht es um State Machines, welches für uns natürlich noch interessanter ist.
Ingo hat gerade erwähnt, dass dies ein Sample sein wird, welches download -bar sein wird… klau schau wem ;-)) http://www.thinktecture.com
Ingo will nun erklären, wie man ein custom Activity macht. Natürlich ist alles für uns auch nicht neu, aber es gibt auch hier immer wieder interessante Bemerkungen oder Hinweise ;-) .
Er bringt ein Beispiel, wie man einen Eskalations Support in seinen Workflow bringt. Er macht in seinem Workflow ein parallelActivity. Auf der einen Seite ruft er das callExternelMethodActivity auf, auf der anderen Seite nimmt er das . Nachdem er die OOB Activity vorgestellt hat, erklärt er noch kurz, dass dies wirklich nur "baseline" sind.
Nun folgt ein Step by Step, wie man ein Custom Activity macht. Glaube nicht, dass ich dies hier aufschreiben muss, da es vermutlich nicht alle interessiert, zum anderen diejenigen, welche wissen müssen wie dies geht, es bereits wissen ;-) Interessant ist aber sein Activity trotzdem… Er macht ein eigenes Send E-Mail Activity.
Nun erfolgt eine ausführliche Erklärung über dependencies properties. D.h. properties abhängig machen von properties aus andern Workflows oder Activities.
Nun haben wir ein eigenes Activity. Was etwas verwirrend ist, dass alle Activitys gleich aussehen. Nun wird dem Activity noch ein eigener Designer hinzugefügt, so dass ich meine Activitys auch gleich im Designer ersehen kann. Diese Möglichkeit lässt sich natürlich bis zum Exzess treiben… und macht durchaus Sinn, wenn jemand von Euch sich daran machen will, eigene Activitys zu builden und diese kommerziell zu vermarkten.
Die nächste Demo geht darum, dass natürlich auch in Activitys die regular Expressions nutzen lassen. Diese werden nun geprüft, ob es sich tatsächlich um eine e-Mail Adresse handelt. Die RegEx lassen sich verwenden wie überall in .net.

PRE008-2 Session 2: Communication Inside and Outside of Workflows, Dynamic Workflow Changes




Christian Weyer , Ingo Rammer
Abstract:
The Microsoft Windows Workflow Foundation (WF) is an extensible framework for developing workflow solutions on the Windows platform. WF will be available as a free part of .NET Framework 3.0 which will run on Windows Server 2003, Windows XP SP2 and Windows Vista. It allows you to embed crucial workflow capabilities directly into your applications (and, yes, this includes graphical workflow designers for end-users).

This set of runtime, APIs and tools allows you (and your users and system administrators) to properly map and implement business-related workflows and its bits and bytes. Developing this kind of applications will really be easier!


In this full-day tutorial, Ingo and Christian show you how to use the workflow foundation's single, unified model to create end-to-end solutions that span different categories of applications, including human workflow and application-based workflow. After this day, you will know how you can leverage Windows Workflow Foundation in your own applications. See and experience the different facets of workflows as well as how to extend and augment the features and tools that are already there.


Christian beginnt damit, dass er erklärt, dass noch nicht wirklich alles ausgeschöpft ist, was die externe Kommunikation von WF's betrifft. So ist z.B die Kommunikation mit WCF noch nicht vollständig implementiert. Es zeigt das Activity handleExternalEvent ( Sven ?) (nach dem CallexternalMethodActivity) und zeigt auf einer Grafik, wie dies "shematisch" abläuft. Nun wird das Activity mit Code befüllt. Das Beispiel der externen Kommunikation wird mit einer DLL gemacht, welche er auch gleich buildet. Zuerst muss in der DLL ein Communication Contract gemacht werden. ( marked as [ExternalDataExchange] ). Es muss ein public interface sein und es muss ein event deklariert werden. Er macht 2 events, eine approved und ein rejected. Beim CallExternalMethod Activity gibt er nun den Interface Type an (in den Propertys) , also unser zufor erstelltes interface. (Er macht nun eine kleine Exkursion in die WinWF "Logik". Ein WF ist ein Activity, ein WF ist die Menge von Activitys und kann beliebig verschachtelt werden. In der kleinen WF Exkursion kommt auch gleich wieder einmal die Bestätigung, dass Sequentiell WF's nicht geeignet sind, um in einen vorherigen Zustand zu gelangen. Also so wie wir im Incident Mngt. = State Machine ).
Was jetzt noch fehlt, ist die Definition eines ExternalDataExchangeService. Dies kann aber auch via config File geschehen. Nun wird im Worklfow (natürlich nur in einem Bestimmten Zustand) eine DLL aufgerufen, welche wiederum eine MSGBOX aufruft und den Benutzer rückfragt. Die Antwort (simple YESNO MsgBox) wird via Events dem WF mitgeteilt.
Nun wird dem ganzen der Persistence Layer "zugeschaltet". Er zeigt, dass wenn Workflows ja die meiste Zeit idle sind (also warten, eben z.B auf externe Events) Er fügt ein paar Events hinzu, um zu zeigen, dass der WF dehydriert wird etc. Er zeigt auch, wo und was nun im SQL Server in der Persistance DB steht.
Nun folgt noch , dass er den Tracking Service zu unserem WF hinzufügt. Nun startet er den WF Monitor, (Sample vom SDK um einen Monitoring Application zu bauen. ) Der WF Monitor kann sehr interressant sein ! Ich werde mich da wohl noch etwas genauer einlesen (kenne ihn ja schon lange, habe ihn aber noch nie so "mächtig" gesehen . )
Die ganze Präsentation ist ohne Slides, alles auf Demo Basis. Ansonsten würde sich diese Session sehr gut für uns eignen ! Da beide kein MS Speaker sind, nehme ich nicht an, dass es dies irgendwie als Hands-On Lab oder so was geben wird…. Leider. Ich werde aber schauen, dass ich an mehr infos komme, weil viele Sachen gezeigt wurden, mit dem bei uns schon gekämpft wurde.

PRE003-1 Session 1: WSS 3.0 Architecture

Ted Pattison , Patrick Tisseghem

Abstract:
The first session explores how WSS 3.0 integrates with IIS and ASP.NET 2.0 significantly improving the routing architecture from the previous version of SharePoint Products and Technologies. You will see how WSS interacts with SQL Server to process page requests and to allow for page and list customization.


Also ehrlich gesagt, wusste ich nicht, welche Session ich zuerst besuchen soll. Es sind alles einzelne Tracks für die Pre-Converence. Alle Tracks haben 4 Session, und natürlich beginnen alle von "vorne". Das schöne zuerst: Die Pre-Converence ist noch sehr beschaulich und die Sessions sind im "kleinen" Rahen. Mehr als 30 Geeks hats hier nicht an einer Session.
Leider ist oder sind dies wirklich die Einstiegs Session… also nichts neues, eher schon SharePoint V3 Marketing. Sehr viele Demos, was gut ist. Jedoch hoffe ich schwer, dass das Level noch steigt. Heisst doch der Slogan in diesem Jahr: "GET AHEAD OF THE GAME". Also in dieser Session ist das "Game" hinter uns….
Dies meine ich nicht einmal Qualitativ… aber wir sind wirklich schon sehr weit… Tedd Pattison erklärt aber sehr ausführlich, witzig und sehr verständlich. Er geht auf die Veränderungen ein, welche seit V2 geschehen sind. Er erklärt die Begriffe der Application Sides, Content Databases, Site Collections and Sites, The SPVirtualPathProvider, die System Application Pages und die Site Definitions.
Es gäbe da noch einen Track, der sich nur um "Architekten krims krams" kümmert. Ich habe mir die Letzte Session für heute mal vorgemerkt… Und mich am Ende entschieden, heute den Track WinWF zu machen.

Montag, November 06, 2006

Anreise und erste Eindrücke

Da ich ja bereits Montags an der Pre-Conference teilnehme, bin ich bereits Sonntags angereist. Die Reise ging gut, dieses mal gab es keine Probleme -- ;-) Der Nachteil war, dass ich Sonntags Abend zwar noch Leute von der Tech Ed Organisation gefunden habe am Flughafen, jeoch keine Shuttle Buse mehr gefahren sind. Diese sind erst Montag Morgen früh organisiert. Also habe ich ein Taxi genommen.
Meine Taxi - Chauffeuse war ziemlich funny. Sie hat zwar relativ schnell gemerkt, dass ich kein Spanisch kann.. .Aber während der ganzen Fahrt hat sie trotzdem gequasselt und gequasselt…. Hab nur immer Bahnhof verstanden … und sie fand das irgendwie lustig ;-)
Leider habe ich in der ersten Nacht nicht wirklich gut geschlafen… zuerst einmal hörte ich jede Metro die vorbei fuhr, zum anderen habe ich die ganze Nacht geschlottert. Irgendwo muss ich mich ziemlich erkältet haben… zumindest bin ich am Morgen mit laufender Nase und leichtem Fieber an die TechEd.
Das ganze ist wie immer gut organisiert, da gibt es nichts zu meckern. Im Gegensatz zu anderen Veranstaltungen wird nun aber am Transport gespart. Anders als an anderen Orten oder Jahren, gibt es diesesmal einfach ein Mehrfahrtenkarte, die für 10 Mal Metro reicht. Früher war es ein Wochenticket oder es standen Gratis - Busse bereit. So , nun aber geht’s los ...

Montag, Oktober 30, 2006

Die nächste Tech-Ed Developers rückt näher !!




Ja, mich gibt es noch...
Ich weiss, auf keinem meiner blogs war während den letzten 11 Monate irgendwas los..eventuell gibt es ja noch menschen, welche eine RSS feed auf irgend ein blog von mir haben ;-) Nö,da glaub ich nicht dran ...
Aber, jetzt gehts wirklich wieder los. Ich werde vom 5.11 - 10.11 in Barcelona weilen, und euch natürlich herzlich gerne von der Tech Ed Developers (Ja so heisst das Teil neu) berichten.
Dieses Jahr, wen wunderts wer mich kennt, werde ich den Schwerpunkt auf Office Systems 2007(including Search) und Vista legen. (Ich werde die Pre-Confernece zum Thema Moss2007 besuchen).
Falls ihr Fragen oder spezielle Anregungen habt, Dinge die ich eine Product Manager oder sonst jemand fragen soll, dann postet oder mailt mir dies !