Raffaele Rialdi MVP Profile: personalizzazione dell'ambiente Visual Developer Security MVP.

Slides:



Advertisements
Presentazioni simili
© 2010 Colt Telecom Group Limited. All rights reserved. Cloud Computing Lapproccio Colt Dionigi Faccedna.
Advertisements

1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
Open Document Format for Office Applications Organization for the Advancement of Structured Information Standards Sergio Capone ITP.
ASP .NET & Web Service: Introduzione
Compact Framework 2.0 Fabio Santini.NET Developer Evangelist Microsoft Italy.
Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi Roberto Brunetti.
Sviluppare workflow per il nuovo 2007 Microsoft Office system e Windows SharePoint Services 3.0 Paolo Pialorsi
La sicurezza di ASP.NET e IIS
Midrange Modernization Conference 1 Scenari evolutivi per le soluzioni basate su AS/400 Walter Poloni Direttore Developer & Platform Evangelism Microsoft.
1 Windows SharePoint 2003 Products & Technologies – Overview funzionale Marco Bellinaso Senior trainer & consultant Code Architects S.r.l. Web:
TechNet Integration Workshop
Scoprirete che su Office non si può solo contare ma anche sviluppare.
Luca Bianchi Windows Development Day Bologna 28 gennaio 2005 SQL Server Desktop Engine (MSDE) & SQL Server 2005 Express.
Sql Server 2005 Reporting Services - Sviluppo Franco Perduca Factory Software
Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event.
ASP.NET – Data Binding Davide Vernole .NET MVP.
ASP.NET – Web Forms Davide Vernole.NET MVP. Di cosa parleremo Introduzione ad ASP.NET ASP.NET, dietro le quinte Componenti principali di una applicazione.
Sql Server 2005 Integration Services - Introduzione Franco Perduca Factory Software
Vincenzo Campanale PM Security & Management System Center, DSI e la Roadmap.
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Microsoft Robotics Studio Marco Petrucco Microsoft Student Partner - Udine.
EJB Enterprise Java Beans B. Pernici. Approccio Java.
Pierluigi Plebani - Politecnico di Milano MAIS Registry URBE (Uddi Registry By Example) WP2 Roma - 25 Novembre 2005.
Model – View - Controller
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
prompt> java SumAverage
Directory services Directory offline –Elenchi telefonici –Guide TV –Cataloghi acquisti Directory online –Application specific (lotus notes, MS Exchange.
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
Introduzione alle griglie computazionali - a.a LEZIONE LEZIONE N. 12 Grid Monitoring modello GMA GridICE GridICE demo Introduzione alle griglie.
1 Esercitazione sui segnali Problema: creare un programma analizzatore di file testuali che prenda come argomenti il nome di un file e una sequenza di.
Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 2: Microsoft.NET.
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Componenti dell’architettura Oracle
A.N 991 Client server SQL DBMS TP monitors componenti middleware CORBA Web server OTM HTML Protocolli Sicurezza dati istruzioni funzioni oggetti interfacce.
SQL Server 2012 LocalDB.
realizzazione app per Google Android OS
Palermo, may 2010 F.Doumaz, S.Vinci (INGV-CNT- Gruppo di telerilevamento)
Articoli e codice: Blog: Profilo MVP:
1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image Processing Lab Nanodesktop Software development kit per sistemi.
Primi passi con Windows: Gestione del Desktop Barra Applicazioni Menu Avvio ISTITUTO COMPRENSIVO N.7 - VIA VIVALDI - IMOLA Via Vivaldi, Imola.
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
Sistema Informativo Demanio Idrico marzo Per aumentare lefficienza del servizio abbiamo realizzato un sistema in grado di gestire in modo integrato.
KNOwledge Store. INSTALLAZIONE KNOS 1.Architettura dellapplicazione 2.Prerequisiti hardware 3.Prerequisiti software 4.Installazione ruoli e funzionalità
PROGETTO DI STRUMENTI PER LA CONFIGURAZIONE DI APPLICAZIONI JAVA ENTERPRISE Anno Accademico 2006 / 2007 Sessione III FACOLTÀ DI INGEGNERIA CORSO DI LAUREA.
Attività Formativa Sviluppo di un WORKFLOW ENGINE di Dott. Riccardo Gasperoni Alessandro Caricato Gabriele Trabucco in collaborazione con Progesi S.p.A.
Facelets case study: Ricettario Docente: Gabriele Lombardi
WPF per il client Desktop
14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010 Introduzione ai framework per IoC / DI e AOP.
Fabio Cozzolino Vito Arconzo
Attribution-NonCommercial-ShareAlike Le novità
Scoprirete che su Office non si può solo contare ma anche sviluppare.
Microsoft Office SharePoint Designer 2007 Costruire soluzioni SharePoint senza sviluppare codice Paolo Pialorsi
IIS7 Media Services Piergiorgio Malusardi IT Pro Evangelist
VB.NET Sviluppo Applicazioni Desktop
Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:
SQL Server 2005 Sicurezza Davide Mauri Factory Software
Silverlight per le applicazioni Enterprise Antonio Liccardi.
Corso di Web Services A A Domenico Rosaci Patterns di E-Business D. RosaciPatterns per l'e-Business.
soluzioni professionali
Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione.
Introduction to automatic ABMs documentation Keywords: Doxygen ODD protocol MASON documentation Simone Romano.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità  Componenti (Web Parts e Event.
Azure: Mobile Services e Notification Hub ANDREA GIUNTA.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Nuove funzionalitA’ e caratteristiche del linguaggio
Paradigma MVC Ing. Buttolo Marco.
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Transcript della presentazione:

Raffaele Rialdi MVP Profile: personalizzazione dell'ambiente Visual Developer Security MVP

PRESENTATION ASP.NET System.Web (2.0) Compilation Configuration Handlers Hosting Mail Management Security UI (2.0) Util Presentation Framework System.Windows (3.0) Annotations Automation Controls Data Documents Ink Interop Navigation Resources Serialization Shapes Threading System.Windows.Media (3.0) 3D Animation Imagine Windows Forms System.Windows.Forms (2.0) Design Layout VisualStyles Printing Subsystem System.Printing (3.0) GDI+ System.Drawing Design Drawing2D Printing ADO.NET System.Data Common Odbc OleDb OracleClient Sql SqlClient ASP.NET Data Management System.Web Caching Profile SessionState XML Data System.Xml Schema Serialization XPath Xsl Windows File System System.Storage (F) Core Audio Calendar Contacts Documents Image Media Messages Rules Sync Video XPS Documents System.Windows.Xps (3.0) System.IO.Packaging (3.0) Speech Integration System.Speech (3.0) Recognition Synthesis Language Integrated Query System.Query (F) System.Data.DLinq (F) System.Xml.XLinq (F) System.Expressions (F) Windows Communications Foundation System.ServiceModel (3.0) Channels Configuration Diagnostics Integration QueueHelper System.ServiceModel.Security(3.0) Protocols Tokens Network Class Library System.Net Cache Mail (2.0) Network Information (2.0) Security (2.0) Sockets.NET Remoting System.Runtime.Remoting ASMX Web Services System.Web.Services Identity Management Microsoft.InfoCards (3.0) MSMQ System.Messaging Directory Services System.DirectoryServices DATACOMMUNICATION FUNDAMENTALS BASE CLASS LIBRARIES System System.CodeDom System.ComponentModel System.Diagonostics System.IO (2.0) System.Resrouces System.Text System.ServiceProcess System.Threading System.Timers System.EnterpriseServices System.Transactions (2.0).NET Remoting System.Runtime.Remoting System.Text Generic (2.0) System.Reflection System.Configuration System.Text AccessControl (2.0) Cryptography (2.0) Permissions Policy Principal (2.0) Managed Add-In Framework System.Addins (F) Contact Microsoft.Build (2.0) System.Runtime CompilerServices ConstrainedExecution (2.0) InteropServices Hosting Serialization Versioning ClickOnce Deployment System.Deployoment (2.0) WINDOWS VISTA (2.0) (3.0)- New (2.0)- Substantially Improved - Windows Presentation Foundation (formerly codenamed Avalon) - Windows Communication Foundation (formerly codenamed Indigo) - Windows Workflow Foundation KEY Windows Workflow Foundation System.Workflow (3.0) System.Workflow.Activities (3.0) Rules System.Workflow.ComponentModel (3.0) Compiler Designer Serialization System.Workflow.Runtime (3.0) Hosting Messaging

A chi serve Workflow? Perché già in una beta 2 parlare di designer e customizzazione?

Workflow e servizi I servizi di WF sono pluggabiliI servizi di WF sono pluggabili –questa architettura permette l'espandibilità futura dell'infrastruttura di Workflow Alcuni esempi:Alcuni esempi: –ExternalDataExchangeService (comunicazione tra host e workflow) –WorkflowSchedulerService –WorkflowTransactionService –WorkflowPersistenceService –TrackingService –Custom (derivato da WorkflowRuntimeService) –WorkflowCompilerOptionsService –ToolboxService –......

Due mondi: il workflow e l'host Thread 1 Thread 2 ExternalDataExchangeService ds = new ExternalDataExchangeService(); _Runtime.AddService(ds); MyService svc = new MyService(); // informiamo WF del nostro servizio ds.AddService(svc); public class MyService : IMyService

Comunicazione 1.Definire una Interfaccia e marcarla con [ExternalDataExchange] Dichiarare gli eventi per comunicare verso WF event EventHandler Foo;Dichiarare gli eventi per comunicare verso WF event EventHandler Foo; Dichiarare metodi per comunicare verso l'host void FromWorkflow(string Message);Dichiarare metodi per comunicare verso l'host void FromWorkflow(string Message); 2.Implementare l'interfaccia in una classe la UI va aggiornata via Invokela UI va aggiornata via Invoke 3.Scrivere una classe (marcata con Serializable) che deriva da ExternalDataEventArgs per passare dei parametri 4.Gestire nel workflow i messaggi in ingresso con HandleExternalEventActivity 5.Spedire messaggi verso l'host con CallExternalMethodActivity

Custom Activities: perché? Per costruire in modo visuale ed a blocchi la logica dell'applicazionePer costruire in modo visuale ed a blocchi la logica dell'applicazione Per scomporre il problema in sottoproblemiPer scomporre il problema in sottoproblemi Activity 'esecutive'Activity 'esecutive' –Eseguono codice, query su db, chiamate a WS, etc. etc. Activity di 'scambio dati'Activity di 'scambio dati' –Derivando HandleExternalEventActivity –Derivando CallExternalMethodActivity

System.Workflow.ComponentModel.Activity Le Activity sono il "mattoncino" di WFLe Activity sono il "mattoncino" di WF Ci sono tre tipologie di ActivityCi sono tre tipologie di Activity –Basic: semplici nodi di un programma SendMail, call WebService, etc. etc.SendMail, call WebService, etc. etc. –Composite: contenitori che consentono di modellare e coordinare le activity base SequentialActivitySequentialActivity ParallelActivityParallelActivity –Root: Activity speciali che costituiscono una unità di attivazione. Microsoft ne fornisce due: SequentialWorkflowActivitySequentialWorkflowActivity StateMachineWorkflowActivityStateMachineWorkflowActivity

Anatomia di una activity Definizione. L'insieme di proprietà ed eventi che costituiscono lo stato dell'ActivityDefinizione. L'insieme di proprietà ed eventi che costituiscono lo stato dell'Activity Esecuzione. Il comportamento dell'activity, cioè la "logica"Esecuzione. Il comportamento dell'activity, cioè la "logica" Validazione. Le regole per il controllo dei parametriValidazione. Le regole per il controllo dei parametri Design. La classe che è responsabile del rendering sulla superfice designerDesign. La classe che è responsabile del rendering sulla superfice designer Toolbox. Il comportamento quando viene inserita nel designerToolbox. Il comportamento quando viene inserita nel designer

Activity Component Model Richiesto Opzionale Alle Activity si associano dei componenti tramite attributiAlle Activity si associano dei componenti tramite attributi Questi componenti definiscono il comportamento:Questi componenti definiscono il comportamento: –sul designer –per la validazione dei dati –durante la serializzazione (workflow di lunga durata) –della persistenza nel codice (via codedom) [Designer(typeof(MyDesigner))] [CodeGenerator(typeof(MyCodeGen))] [Validator(typeof(MyValidator))] public class MyActivity: Activity {...} Activity Code Generator Designer Validator Serializer Services

Operazioni tipiche delle Custom Activity Se necessario, due override:Se necessario, due override: –Initialize (alloca risorse) –Cancel (le rilascia) Se l'activity supporta le transazioniSe l'activity supporta le transazioni –Compensate (rollback) Sempre necessario fare l'override di:Sempre necessario fare l'override di: –Execute (esecuzione della logica) ritornando lo stato dell'activity Cancelling, Closed, Compensating, Executing, Faulting, InitializedCancelling, Closed, Compensating, Executing, Faulting, Initialized

Esempio: la CodeActivity protected sealed override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { base.RaiseEvent(CodeActivity.ExecuteCodeEvent, this, EventArgs.Empty); return ActivityExecutionStatus.Closed; } // nel workflow... private void CodeActivity1_ExecuteCode(object sender, EventArgs e) {... }

Modello di esecuzione della Activity Transizioni possibili Activity Execution Methods Initialize()Initialize() Execute()Execute() Cancel()Cancel() Compensate() (se implementa ICompensatableActivity)Compensate() (se implementa ICompensatableActivity) Activity Runtime InitializedExecuting Closed Canceled Compensating

Esecuzione di una Composite Activity Composite Activity.. += OnChildClosed Execute() Status.Closed() ChildActivity ChildActivity

Sequence Activity – Execute() protected override Status Execute(ActivityExecutionContext context) { Activity childActivity = this.ExecutableActivities[0]; EventHandler OnClosed = null; OnClosed = delegate { childActivity.Closed -= OnClosed; if (this.Status == Status.Canceling) context.CloseActivity(); context.CloseActivity(); else if (this.Status == Status.Executing) { this.index++; this.index++; if (this.ExecutableActivities.Count > this.index) if (this.ExecutableActivities.Count > this.index) { childActivity = this.ExecutableActivities[this.index]; childActivity = this.ExecutableActivities[this.index]; childActivity.Closed += OnClosed; childActivity.Closed += OnClosed; context.ExecuteActivity(childActivity ); context.ExecuteActivity(childActivity ); } } else else context.CloseActivity(); context.CloseActivity();}}; childActivity.Closed += OnClosed; context.ExecuteActivity(childActivity); return Status.Executing; }

Activity Execution Context Template Activity Context Owner Activities Ad ogni loop viene creato un contesto differente che consente l'eventuale rollback Context 1 Context 2 Context 3 Default Workflow Context

Sub - workflow I Workflow sono Activity e quindi....I Workflow sono Activity e quindi.... Oltre a poter creare Activity composite è possibile eseguire veri e propri workflow grazie a:Oltre a poter creare Activity composite è possibile eseguire veri e propri workflow grazie a:InvokeWorkflowActivity

Validazione Ci sono diversi tipi di validazioni:Ci sono diversi tipi di validazioni: –Validazione dei parametri La più usata ovviamenteLa più usata ovviamente –Validazione della sequenza delle child Activity Usata dalle Activity compositeUsata dalle Activity composite –Validazione della posizione del "SetState" Usata dalle macchine a statiUsata dalle macchine a stati –Validazione delle CallExternalMethodActivity Utile per chi deriva questa classeUtile per chi deriva questa classe –Validazione delle HandleExternalEventActivity Utile per chi deriva questa classeUtile per chi deriva questa classe

ActivityValidator, ActivityCompositeValidator public class MyValidator : ActivityValidator { public override ValidationErrorCollection ValidateProperties( ValidationManager manager, object obj) { ValidationErrorCollection errs = new ValidationErrorCollection( base.ValidateProperties(manager, obj)); Activity1 act = manager.Context.Current as Activity1; if(act.HisName != null && act.HisName.Length == 1) errs.Add(new ValidationError("HisName cannot be 1 char", 1)); return errs; } [ActivityValidator(typeof(MyValidator))] public partial class Activity1 : Activity {... } logica di validazione

Quali proprietà validare? ValidationOption.NoneValidationOption.None –Nessuna validazione ValidationOption.OptionalValidationOption.Optional –Sono accettati i null ValidationOption.RequiredValidationOption.Required –Validazione obbligatoria [ValidationOption(ValidationOption.Required)] public string Address { get {...} set {...} }

ActivityDesigner Classe di supporto alla ActivityClasse di supporto alla Activity Derivando questa classe si crea un nuovo Designer per una custom activityDerivando questa classe si crea un nuovo Designer per una custom activity –painting del "box" dell'activity –help text –tooltip –gestione di mouse/tastiera sull'activity –menu contestuale –evento di default CompositeActivityDesigner in più:CompositeActivityDesigner in più: –painting negli stati espanso/collassato –painting nelle fasi di drag&drop –painting delle child activity

Creare un Designer per le Activity System.Object System.Workflow.ComponentModel.Design.ActivityDesigner System.Workflow.ComponentModel.Design.CompositeActivityDesigner System.Workflow.ComponentModel.Design.FreeformActivityDesigner public class SendMailDesigner : ActivityDesigner { protected override Size OnLayoutSize(ActivityDesignerLayoutEventArgs e) { return new Size(230, 100); } protected override void OnPaint(ActivityDesignerPaintEventArgs e) { e.Graphics.DrawString( );..... } } [Designer(typeof(SendMailDesigner), typeof(IDesigner))] [ActivityValidator(typeof(ParametersValidator))] public partial class SendMailActivity : Activity {... }

ActivityToolboxItem Definisce il comportamento di default che deve avere una Activity quando viene posta (drop) sul workflowDefinisce il comportamento di default che deve avere una Activity quando viene posta (drop) sul workflow Tipico esempio: aggiunta in automatico di una child activityTipico esempio: aggiunta in automatico di una child activity

Le "Rules" (regole) Le regole in WFLe regole in WF –Permettono di modellare più facilmente la logica –Rendono più semplice la comprensione della logica del sistema –Permettono di eseguire modifiche in modo semplice e comprensibile –Le Activity Policy permettono di stabilire una sequenza di regole (percentuali applicate in sequenze diverse ad esempio)

RuleSet Due dialog usabili anche fuori da WF:Due dialog usabili anche fuori da WF: –RuleSetDialog –RuleConditionDialog Sono in preparazione Dialog ancora più specializzate, ad esempio, per BizTalkSono in preparazione Dialog ancora più specializzate, ad esempio, per BizTalk

I Themes Sono una sorta di foglio di stile per il designerSono una sorta di foglio di stile per il designer Sono in formato.... xml (.wtm)Sono in formato.... xml (.wtm) VS2005 (+ WF Extensions) ha un editor che si trova in Tools – Options – WorkflowVS2005 (+ WF Extensions) ha un editor che si trova in Tools – Options – Workflow Permette di cambiare colori, font, stile delle linee, background, ombrePermette di cambiare colori, font, stile delle linee, background, ombre L'applicazione che tiene in host il designer può applicare programmaticamente i ThemesL'applicazione che tiene in host il designer può applicare programmaticamente i Themes

I Glyph Sono dei marker apposti sopra il disegno della activitySono dei marker apposti sopra il disegno della activity –CommentGlyph –ConfigErrorGlyph –LockedActivityGlyph –ReadOnlyActivityGlyph –SelectionGlyph –ShadowGlyph Tipico utilizzo: marcare le activity in modo visuale durante il tracking (Esempio Workflow Monitor dell'sdk)Tipico utilizzo: marcare le activity in modo visuale durante il tracking (Esempio Workflow Monitor dell'sdk)

Toolbox [ToolboxBitmap(typeof(MailActivity), "raf.bmp")][ToolboxBitmap(typeof(MailActivity), "raf.bmp")] –bitmap 16x16 –nome completo di namespace escluso quello di "MailActivity" –La bitmap appare dentro il box dell'activity –La bitmap appare nella toolbox solo se si aggiunge con add item. Nella toolbox appare l'icona di default se l'activity è aggiungta in automatico da vs.net –Vogliamo di più?

Volete provare le brezza della beta2? Prerequisiti:Prerequisiti: –VS2005 RTM (opzionale ma in questo momento senza è un'impresa titanica) –Disinstallare tutte le beta precedenti di WinFX Installare:Installare: –WinFX runtime –Windows Vista SDK (beta) (lanciare.msi se l'exe fallisce) –Estensioni di Visual Studio (contengono Cider) –Estensioni di Workflow x Visual Studio –Esempi "Hands On Lab" (msdn website)

Risorse Channel 9Channel 9 The book (obsoleto - beta1)The book (obsoleto - beta1) I tanti blogI tanti blog msdn magazine (articoli di Dino Esposito)msdn magazine (articoli di Dino Esposito) msdn magazine Gennaio 2006msdn magazine Gennaio 2006

Domande?