Home  |   Chi siamo  |   Soluzioni  |   Consulenza  |   Formazione  |   Clienti  |   Blog  |   Contatti  |  
 
Home      Blog      Il blog 
 

Blog

  • Il blog
 

 

Cerca


Calendario

<<  luglio 2010  >>
dolumamegivesa
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567


Blog

Code Architects - Sottoscrivi il nostro rss feed  blog RSS

'system.serviceModel/bindings/netTcpRelayBinding' could not be found

clock giugno 2, 2010 05.04 di author Giuseppe Dimauro

Usando il Windows Azure Service Bus con .NET 4.0 potreste incorrere in questo errore:

Configuration binding extension 'system.serviceModel/bindings/netTcpRelayBinding' could not be found.

Il messaggio completo è il seguente:

Configuration binding extension 'system.serviceModel/bindings/netTcpRelayBinding' could not be found. Verify that this binding extension is properly registered in system.serviceModel/extensions/bindingExtensions and that it is spelled correctly. (c:\users\gdimauro\documents\visual studio 2010\Projects\CloudService4\EchoService\bin\Debug\EchoService.vshost.exe.Config line 5)

Come risolverlo ? Semplicemente aggiungendo le parti evidenziate di seguito nel file “C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config” :

            <behaviorExtensions>
                <add name="persistenceProvider" type="System.ServiceModel.Configuration.PersistenceProviderElement, System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="workflowRuntime" type="System.ServiceModel.Configuration.WorkflowRuntimeElement, System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="enableWebScript" type="System.ServiceModel.Configuration.WebScriptEnablingElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="webHttp" type="System.ServiceModel.Configuration.WebHttpElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="serviceDiscovery" type="System.ServiceModel.Discovery.Configuration.ServiceDiscoveryElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="endpointDiscovery" type="System.ServiceModel.Discovery.Configuration.EndpointDiscoveryElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="etwTracking" type="System.ServiceModel.Activities.Configuration.EtwTrackingBehaviorElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="routing" type="System.ServiceModel.Routing.Configuration.RoutingExtensionElement, System.ServiceModel.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="soapProcessing" type="System.ServiceModel.Routing.Configuration.SoapProcessingExtensionElement, System.ServiceModel.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="workflowIdle" type="System.ServiceModel.Activities.Configuration.WorkflowIdleElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="workflowUnhandledException" type="System.ServiceModel.Activities.Configuration.WorkflowUnhandledExceptionElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="bufferedReceive" type="System.ServiceModel.Activities.Configuration.BufferedReceiveElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="sendMessageChannelCache" type="System.ServiceModel.Activities.Configuration.SendMessageChannelCacheElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="sqlWorkflowInstanceStore" type="System.ServiceModel.Activities.Configuration.SqlWorkflowInstanceStoreElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="workflowInstanceManagement" type="System.ServiceModel.Activities.Configuration.WorkflowInstanceManagementElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="connectionStatusBehavior" type="Microsoft.ServiceBus.Configuration.ConnectionStatusElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="transportClientEndpointBehavior" type="Microsoft.ServiceBus.Configuration.TransportClientEndpointBehaviorElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            </behaviorExtensions>            <bindingElementExtensions>
                <add name="webMessageEncoding" type="System.ServiceModel.Configuration.WebMessageEncodingElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="context" type="System.ServiceModel.Configuration.ContextBindingElementExtensionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add name="byteStreamMessageEncoding" type="System.ServiceModel.Configuration.ByteStreamMessageEncodingElement, System.ServiceModel.Channels, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="discoveryClient" type="System.ServiceModel.Discovery.Configuration.DiscoveryClientElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="tcpRelayTransport" type="Microsoft.ServiceBus.Configuration.TcpRelayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="httpRelayTransport" type="Microsoft.ServiceBus.Configuration.HttpRelayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="httpsRelayTransport" type="Microsoft.ServiceBus.Configuration.HttpsRelayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="onewayRelayTransport" type="Microsoft.ServiceBus.Configuration.RelayedOnewayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            </bindingElementExtensions>            <bindingExtensions>
                <add name="wsHttpContextBinding" type="System.ServiceModel.Configuration.WSHttpContextBindingCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add name="netTcpContextBinding" type="System.ServiceModel.Configuration.NetTcpContextBindingCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add name="webHttpBinding" type="System.ServiceModel.Configuration.WebHttpBindingCollectionElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add name="basicHttpContextBinding" type="System.ServiceModel.Configuration.BasicHttpContextBindingCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add name="basicHttpRelayBinding" type="Microsoft.ServiceBus.Configuration.BasicHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="webHttpRelayBinding" type="Microsoft.ServiceBus.Configuration.WebHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="ws2007HttpRelayBinding" type="Microsoft.ServiceBus.Configuration.WS2007HttpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="netTcpRelayBinding" type="Microsoft.ServiceBus.Configuration.NetTcpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="netOnewayRelayBinding" type="Microsoft.ServiceBus.Configuration.NetOnewayRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="netEventRelayBinding" type="Microsoft.ServiceBus.Configuration.NetEventRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            </bindingExtensions>

Giuseppe



Effettuare debug di una template T4

clock maggio 28, 2010 21.30 di author Giuseppe Dimauro
Per chi come noi utilizza in Visual Studio template T4 per generare automaticamente codice sorgente e si ritrova a creare o modificare template giá pronte (nel nostro caso template oggetti Entity Framework POCO) ma ha bisogno di una mano nel debugging di complesse sequenze di codice T4 bastano poche accorteze per riuscirci. Basta cambiare la proprietá debug del prima riga del template da false a true per garantirsi la visione/ispezione dei sorgenti durante il debug:

<#@ template language="C#" debug="true" hostspecific="true"#>

il passo successivo è inserire una istruzione di Break del debugger nel punto interessato:

<#System.Diagnostics.Debugger.Break();#>

Prima di eseguire (anche solo salvando) il template è necessario effettuare un attach della sessione corrente di Visual Studio da un'altra istanza di Visual Studio. In caso contrario Visual Studio andrá in errore chiudendosi "malamente" costringendovi a ricaricarlo. Ovviamente risulterá essere particolarmente noioso se oltre al template al momento dell'errore avete altri sorgenti non salvati in sessione perché andranno irrimediabilmente perduti ...

Per evitare noie di questo tipo e per garantirsi che il BreakPoint venga raggiunto soltanto nel caso in cui Visual Studio sia stato effettivamente "agganciato" é possibile cambiare lo statement precedente nel seguente:

<# if(System.Diagnostics.Debugger.IsAttached) /*break only if attached =DG=*/ System.Diagnostics.Debugger.Break();#> 

Ho provato il tutto con VS2010 ma sono certo che vada bene anche con VS2008 

Giuseppe

 



Serializzare Entitá di tipo Self Tracking con AppFabric (Velocity)

clock maggio 13, 2010 20.52 di author Giuseppe Dimauro

Mi sono imbattuto in questo post:

http://blogs.msdn.com/cesardelatorre/archive/2010/04/30/using-entity-framework-self-tracking-entities-with-appfabric-cache-velocity-and-net-4-0-rtm.aspx

sostanzialmente il serializzatore di Velocity non riconosce le collezioni TrackableCollection come serializzabili perché manca l'apposito attributo. Aggiungendo opportunametne l'attributo [CollectionDataContract] come suggerito nel post il problema é risolto.

Giuseppe



WPF 4

clock maggio 13, 2010 20.46 di author Giuseppe Dimauro

Abbiamo alcuni progetti basati per la parte di interfaccia utente su tecnologia Windows Presentation Foundation. Ecco un link con una parte dei motivi per cui conviene seriamente prendere in considerazione il passaggio alla versione 4:

http://10rem.net/blog/2010/04/12/wpf-4-release-a-guide-to-the-new-features

Giuseppe



Dublin diventa Windows Server AppFabric

clock dicembre 19, 2009 23.59 di author Giuseppe Dimauro

In questi giorni ho finalmente avuto il tempo necessario per dare una occhiata approfondita alla Beta 1 pubblica di Windows Server AppFabric. La prima impressione e' assolutamente positiva e devo ammettere che sono rimasto molto impressionato da come buona parte delle nuove tecnologie (da .NET 4.0 a Visual Studio 2010) sono state integrate per costruire questa nuova tecnologia. Sostanzialmente si tratta di un add-on su Windows Server e in particolare Internet Information Server per costruire applicazioni Enterprise praticamente nello stesso modo di come sara' possibile farlo con le attuali e future/finali versioni di Azure ma localmente sui propri Server non senza caratteristiche di scalabilita' verticali, orizzontali (o diagonali :)) proprio come "on the cloud" nei datacenter di Microsoft e Partner. Ho gia' dato una occhiata ad alcuni esempi come "OrderApplication" che di certo non brillano per la tecnica con la quale sono stati implementati ma lasciano senz'altro trasparire abbondantemente le reali e elevatissime potenzialita' di questa interessantissima tecnologia. Mi riprometto a brevissimo di dare una occhiata ad altri esempi disponibili su: http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx

Approfitto di questo brevissimo blog per sottolineare il fatto che le primissime impressioni su Windows Workflow Foundation 4 con Visual Studio 2010 a design-time sono assolutamente positive. A parte le caratteristiche/novita' sulle quali spero di poter tornare con alcuni futuri post, le prestazioni sono veramente ottime. Spero solo di non essere smentito con future release della tecnologia in questione perche' in Code Architects dove usiamo Windows Workflow Foundation a piene mani per modellare i flussi navigazionali delle nostre applicazioni abbiamo sofferto veramente tanto per questo non trascurabile difetto.

Alla prossima,
Giuseppe Dimauro



.NET 3.5 Enhancments Training Kit RTM

clock settembre 5, 2008 21.41 di author Giuseppe Dimauro

per chi volesse farsi aiutare da un bel po' di materiale didattico gia' pronto per approfondire alcune delle principali novita' di  .net 3.5 puo' andare su questo indirizzo e scaricare un  kit di auto-training pronto per l'uso: 

NET Framework 3.5 Enhancements Training Kit

 

Giuseppe 

 



Rule Editor per Windows Worfklow Foundation e Biztalk Server

clock marzo 2, 2008 16.58 di author Giuseppe Dimauro

In questi ultimi mesi sto "pasticciando" parecchio con Windows Workflow Foundation in modo molto spinto. Tra le varie feature che sto sfruttando ed implementando con estrema soddisfazione vi è la gestione delle regole attraverso le feature "built-in" di WWF. Giusto per capire di cosa stiamo parlando datevi una lettura qui: http://msdn2.microsoft.com/en-us/library/aa480193.asp

Inoltre L'ottimo esempio di utilizzo delle regole attingendo ad un proprio database esterno anzicchè ai file di risorse con estensioni ".rules" chiude egregiamente il cerchio. Lo trovate qui: http://wf.netfx3.com/files/folders/rules_samples/entry309.aspx



Tra l'altro l'esempio mostra come sfruttare alcune dialog box di edit delle regole direttamente dal proprio codice senza passare per Visual Studio. Le finestre di edit delle regole sono potenti e abbastanza complete ma pur sempre molto developer oriented. Per questa ragione mi sono messo al lavoro e ho iniziato a scrivermi qualcosa di custom fino a quando, cercando delle risorse su internet per effettuare il parsing di regole
 in stringhe, mi sono imbattuto nel tool della Acumen (http://www.acumenbusiness.com/Products.htm ). La grafica e la qualità del prodotto è impressionante. Tra le varie feature veramente interessanti troviamo:
- editor grafico assistito di regole di business
- simulazione delle regole con grafica animata
- verifica completezza delle regole inserite
- export delle regole verso biztalk e Windows Workflow Foundation
 ... e molte altre feature

Ecco una screenshot dell'editor con navigatore/simulatore animato:



Le regole vengono esportate come ".rules" e con lo stesso codice di esempio dell'external ruleset toolkit possono essere gestite direttamente dall'interno della propria applicazione dinamicamente.

Giuseppe 


DinnerNow.Net su CodePlex per VS 2008 RTM

clock febbraio 10, 2008 06.46 di author Giuseppe Dimauro

DinnerNow è un ottimo esempio didattico che uso in molte conferenze e corsi per spiegare tecnologie come LINQ to SQL, integrazione WF/WCF ecc.
Finalmente la versione consolidata per la versione finale di VS2008 è disponibile al link:

http://www.codeplex.com/DinnerNow/Release/ProjectReleases.aspx?ReleaseId=10572

 è stata testata su Vista (compresa la SP1) e Windows Server 2008 RTM. Inoltre molti hands-on lab sono disponibili in un apposito training kit a questo indirizzo:

http://www.microsoft.com/downloads/details.aspx?familyid=8BDAA836-0BBA-4393-94DB-6C3C4A0C98A1&displaylang=en

 



 

© Code Architects S.r.l. P.Iva 05831090724
Home  |   Chi siamo  |   Soluzioni  |   Consulenza  |   Formazione  |   Clienti  |   Blog  |   Contatti