Thursday, December 6, 2012

Windows 8 Shortcuts

With windows 8 my shortcuts did not work fully, well there is a whole bunch of new methods in windows 8, I thought it would be good to share.

1. Admin Menu: It's not the Start Menu so familiar in earlier versions of Windows, but the Admin Menu is as close as it gets in Windows 8. Windows + X pops it up from the bottom left corner.

2. Charms: When you hit Windows + C the Charms bar pops out from the right-hand side of the screen. Charms, a new Windows feature, are a set of tools such as Search, Share and Settings that are located in a Charms Bar that can be flicked in from the right side of the display on a touchscreen.

3. Settings: One of the Charms is Settings. To avoid calling out the Charms bar then choosing Settings it's possible to go directly to Settings: Windows +I. This will reveal the Power button, too. Click on that to reveal the Sleep, Shut down and Restart options, options users say are way too hard to find.

4. Sharing: If you are in an application and want to email or share its content with someone on a social network, hit Windows + H.

5. Second screen: If you are connecting to a second screen as you might presenting a PowerPoint in a conference room, use Windows + P.

6. Search: There are three layers of Search: Apps, Settings and Files. Using touch it calls for whisking out the Charms bar, selecting Search then choosing one of the three layers. With shortcuts, each layer can be reached with one command. They are: Apps: Windows + Q ; Settings: Windows +W ; Files: Windows + F

7. Snap an app: It's possible to snap an application on hold in the right or left quarter of the screen with a second active app occupying the rest of the screen. To snap to the right, press Windows + . ; to snap to the left, press Windows + Shift + .

8. Running Apps: Thumbnails of apps that are running are concealed off the left side of the screen. Pressing Windows + Tab reveals them.

9. To close an app: It's just like it was in Windows 7: Alt + F4 .

10. The desktop: While it's different from the traditional desktop, it is much more familiar territory than the Start Screen. Typing Windows + D brings up the Desktop...Same as Windows 7


Thursday, November 22, 2012

WCF SQL operations



When adding WCF sql ports to BizTalk, you can add a whole host of different types of operation with SQL and it’s incredibly powerful. 

The problem is with all these options, the wizard rarely makes a binding file for you, it will make the schemas, but the binding file contains that extra little bit of magic…

The key to all of this in the SOAP action header you specify on the port.

There are your basic ones:

TableOp/Insert/dbo/Employee
TableOp/Update/dbo/Employee

If you read this, it will do a table operation and insert or update employee record(s) in the employee table.

Then there is of course stored procedures for both send and receive ports. 

TypedProcedure/dbo/StoredProcedureName

Simple enough, however maybe you have a few operations you want to do, you want to go for a more composite operation. 

Your Soap action can be CompositeOperation

The message you send can do a whole host of things, for example, insert into a table, and when done, run a stored procedure.

You have your insert schema, and your execute stored procedure schema, that the wizard generates, now bundle this into the following structure and all of a sudden a whole world of opportunities opens up.

<xs:element name="Request">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="ns0:Insert" />
        <xs:element ref="ns1:CompareEmployee" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RequestResponse">
   <xs:complexType>
    <xs:sequence>
     <xs:element ref="ns0:InsertResponse" />
     <xs:element ref="ns1:CompareEmployeeResponse"/>
    </xs:sequence>
   </xs:complexType>
  </xs:element>

Then there are the Generic operations, vastly undocumented, for example a SQL reader, that can execute SQL against the database and return the results of the query…

Your Soap Action header would be: GenericOp/ExecuteReader

The schema looks like this:
  <ExecuteReader xmlns="http://schemas.microsoft.com/Sql/2008/05/GenericTableOp/">
    <Query>[PL/SQL STATEMENT1];[PL/SQL STATEMENT2];…</Query>
  </ExecuteReader>


Have a look at some of the more unknown options available, and you start to see the power in all of this. 

Operation
Soap Action  Header
ExecuteNonQuery Request
GenericOp/ExecuteNonQuery
ExecuteNonQuery Response
GenericOp/ExecuteNonQuery/response
ExecuteReader Request
GenericOp/ExecuteReader
ExecuteReader Response
GenericOp/ExecuteReader/response
ExecuteScalar Request
GenericOp/ExecuteScalar
ExecuteScalar Response
GenericOp/ExecuteScalar/response

Refer to this link for more: http://msdn.microsoft.com/en-us/library/dd788372%28v=bts.10%29.aspx

Monday, November 5, 2012

BizTalk 2013 *Beta* Released

BizTalk has existed in one form or another since the early Site Server Days, then BizTalk 2000-2002 and then BizTalk 2004, and now all the way to 2013.... Welcome BizTalk Server 2013 (previously called BizTalk Server 2010 R2)

I have been using it as part of the TAP, it still rocks like BizTalk always does, but now it's great in the cloud.... finally. 

It is available for download at Microsoft Download Center.

BizTalk Server 2013 Beta offers significant enhancements to the already rich integration capabilities by including the following feature additions:
  • Integration with Cloud Services: BizTalk Server 2013 Beta includes new out-of-the box adapters to send and receive messages from Windows Azure Service Bus. It also provides capabilities to transfer messages using different relay endpoints hosted on Azure.
    • SB-Messaging adapter: This version introduces the SB-Messaging adapter to send and receive messages from Service Bus entities like Queues, Topics, and Relays. You can use the SB-Messaging adapters to bridge the connectivity between Windows Azure and on-premises BizTalk Server, thereby enabling users to create a typical hybrid application (read more here).
    • WCF-BasicHttpRelay Adapter: Microsoft BizTalk Server uses the WCF-BasicHttpRelay adapter when receiving and sending WCF service requests through the BasicHttpRelayBinding. The WCF-BasicHttpRelay adapter enables you to send and receive messages from the Service Bus relay endpoints using the BasicHttpRelayBinding (read more here).
    • WCF-NetTcpRelay Adapter: Microsoft BizTalk Server uses the WCF-NetTcpRelay adapter when receiving and sending WCF service requests through the NetTcpRelayBinding (read more here).
  • RESTful services: BizTalk Server 2013 Beta provides adapters to invoke REST endpoints as well as expose BizTalk Server artifacts as a RESTful service.
    • WCF-WebHttp Adapter: Microsoft BizTalk Server uses the WCF-WebHttp adapter to send messages to RESTful services. The WCF-WebHttp send adapter sends HTTP messages to a service from a BizTalk message. The receive location receives messages from a RESTful service. For GET and DELETE request, the adapter does not use any payload. For POST and PUT request, the adapter uses the BizTalk message body part to the HTTP content/payload (read more here).
  • Enhanced SharePoint adapter: Integrating with SharePoint using BizTalk Server 2013 Beta is now as simple as integrating with a file share. We have removed the need for dependency on SharePoint farms, while still providing backward compatibility (read more here).
  • SFTP adapter: After Microsoft, in 2009, improved the FTP adapter by extended to support FTPS, BizTalk Server 2013 Beta enables sending and receiving messages from a secure FTP server using the SSH file transfer protocol (read more here).
  • ESB Toolkit integration: With BizTalk Server 2013 Beta, ESB Toolkit is now fully integrated with BizTalk Server. Also, the ESB Toolkit configuration experience is vastly simplified to enable a quick setup (read more here).
  • Dependency tracking: A typical BizTalk Server application involves various artifacts such as orchestrations, send ports, receive locations, pipelines, schemas, maps, and the likes. All these artifacts have dependencies on each other. The dependencies between artifacts can now be viewed and navigated in Admin console (read more here).
  • Improvements in dynamic send ports: BizTalk Server 2013 Beta provides the ability to set host handler per adapter, instead of always using the default send handler of the adapters (read more here).
  • Updates to the supported EDI schemas: BizTalk Server 2013 introduces support for the following EDI schemas:
    • X12: 5040, 5050, 6020, 6030
    • EDIFACT: D06A, D06B, D07A, D07B, D08A, D08B, D09A, D09B, D10A, D10B
  • XslCompiledTransform: BizTalk Server mapping engine makes use of XslTransform API for mapping needs. With BizTalk Server 2013 Beta release, the mapping engine makes use of the enhanced XslCompiledTransform API. This will provide improvements in mapping engine performance.
  • Ordered Send Port improvements: With BizTalk Server 2013 release, we have made changes to the BizTalk runtime engine which increases the performance of ordered send port scenarios.
  • BAM Alerts update: In previous releases of BizTalk Server, BAM Alerts feature had a dependency on SSNS (SQL Server Notification Services). With the current release of SQL Server (SQL Server 2012), SSNS is no longer available. However, we have made sure your existing BAM Alerts scenario work just the same even if your backend is targeting SQL Server 2012. If your backend is SQL Server 2008 R2, you will continue to require the dependency on SSNS.
System Requirements
  • Supported Operating Systems: Windows Server 2008 R2 SP1, Windows Server 2012
The software is for evaluation and deployment planning purposes only. If you plan to install the software on your primary computer, we recommend that you back up your existing data prior to installation.
To run BizTalk Server 2013 Beta you need:
  • 32-bit (x86) platforms: Computer with an Intel Pentium-compatible CPU that is 1 GHz or faster for single processors; 900 MHz or faster for double processors; or 700 MHz or faster for quad processors
  • 64-bit (x64) platforms: Computer with a CPU that is compatible with the AMD64 and Extended Memory 64-bit Technology (EMT64T), 1.7 GHz or faster processor recommended for BizTalk Server 2013 Beta
  • 2 GB of RAM minimum (more recommended)
  • 10 GB of available hard-disk space
  • VGA monitor (1024 x 768) or higher-resolution monitor
  • Microsoft Mouse or compatible pointing device
To use BizTalk Server 2013 Beta you need the following software:
  • SQL Server 2012 or SQL Server 2008 R2 SP1
  • Microsoft .NET Framework 4.5
  • Microsoft Visual Studio 2012 [Required for selected features only]
  • Microsoft Office Excel 2010 [Required for selected features only]
  • SQL Server 2005 Notification Service [Required for selected features only]
  • SQLXML 4.0 with Service Pack 1 [Required for selected features only]
  • Internet Information Services (IIS) Version 7.5 and 7.0 [Required for selected features only]
All these capabilities will be available in Windows Azure Virtual Machine platform gallery soon.

Wednesday, October 31, 2012

Windows Azure Conference

As a community event, hosted on channel 9, there is to be the Windows AzureConf.
 
This is a free event for the Windows Azure community. This event will feature a keynote presentation by Scott Guthrie, along with numerous sessions executed by Windows Azure community members. Streamed live for an online audience on Channel 9, the event will allow you to see how developers just like you are using Windows Azure to develop applications on the best cloud platform in the industry. Community members from all over the world will join Scott in the Channel 9 studios to present their own inventions and experiences.

WHERE WHEN:

November 14, 2012
8:00 AM - 5:00 PM PST
Channel 9


For more information visit here:  http://www.windowsazureconf.net/

Thursday, October 18, 2012

Microsoft Integration MVP



I am so pleased to announce the new MVP Category.

Microsoft Integration MVP

I have always been doing integration, for the last 12 years I've been doing integration, it's just something about being able to reach out to other business systems and not just make them talk to each other make the connections between them dance. Lay down the right architecture and make it work.

The technology I used also varied, be it WCF, BizTalk, Azure, SQL Azure, Azure XYZ. , SharePoint, SQL Server or anything else, when you do integration you previously had to choose which MVP to be…

Now thanks to Microsoft you don’t need to choose anymore…. 

I could not be happier with the name as it correctly reflects exactly what we do, I will write posts and articles on any of these topics all under the banner of integration, and all on the Microsoft technology stack. Bring it on I say.




Friday, September 21, 2012

The Microsoft Distributed Transaction Coordinator (MS DTC) has cancelled the distributed transaction.

We had a WCF-SQL send port that was to insert a large data set into the database, and then execute a stored procedure when done, this can all be sent as one message to sql and it works it out.

The problem is that this took a very long time, we increased time outs but were still getting a time out every time, with the error: 

System.Data.SqlClient.SqlException: The Microsoft Distributed Transaction Coordinator (MS DTC) has cancelled the distributed transaction.

Server stack trace:
   at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)

We looked around and found that the timeout for the msdtc controller was in the machine,config.

%Windows%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config

Or if you run 64bit.

%Windows%\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.config

<system.transactions>
<machineSettings maxTimeout=”01:10:00″ />
</system.transactions>

You may find this already in there, we had 00:30:00 as the timeout, we increased this, and it worked.

Problem solved.

Wednesday, August 15, 2012

To Integrate or to Integrate Badly



When someone chooses to integrate there is always the wrong way and the right way to go about this. Just because you chose to integrate does not mean you did a fantastic job about it. 
One such example I came across recently was a nameless organisation decided to integrate their systems, they provided a very good level of integration and it was all working fine, then they got over zealous, a contractor they hired thought hey I can do integration also, the company not knowing any wiser said OK sure let’s do it. 

The integration was a simple one, I’d like to change my surname, and it should update all the systems, because I am married now and have taken my husband’s name by choice. 

The old way of doing this was very manual and very cumbersome and took a long time to implement.
We already provided integration of other user profile details, which were updated in the various systems in the organisation. The contractor thought hey I can do it too… 

The surname request update had a fancy front end, when the user submitted this, their request was sent as an email to someone in HR, the first problem. 
 
They would manually make the changes required in the system… The second problem.
What is worse, is that the email got it wrong, it said update my first name to this name, and not my surname, so the person in HR went and updated their first name to their new surname…  This person was outsourced from the organisation. The third problem.

This had flow on effects, that had not been thought of, when someone changes their name, their AD name needs to update, their email address needs to change, and a whole bunch of other systems need to be informed. 

To get around this they just deleted the user and made a new one as if they had just joined the organisation, the flow on was very very bad… Major problem goes with out saying.

All of their access gone, all of their email gone, their permissions to all the internal systems gone, this would have happened even if they had changed their surname. 

The loss of productivity for this person was about two weeks’ worth, the person was not a low level admin, they were senior and on a good rate. 

Take this against the decision to use a contractor who said yeah we can do it,  probably $1000 for the efforts, then add the down time of the one employee, $20000 in loss of productivity and in ability to work, you are not only paying for them to work but they can’t work and produce income for the organisation. 

Now multiply this by a low estimate of 5 people who may have been effected by this across an organisation of 7000 people…  

You have a net loss to the organisation of: $100,000  plus your low cost of implementing this in the first place.  

Take this and compare against doing it correctly in the first place, taking the time to understand the impact, going and updating the various systems, in near real time, and ensuring that the user was good to go within 15 minutes. 

A cost estimate for this would be somewhere between  $20,000 to $60,000. Had more than 5 people requested this change, think of the cost to the organisation.

It becomes very clear that you need to integrate, and you need to do it properly. You need to have the right people working with you who understand this and are able to see these issues well before they happen. 

Never believe someone who says yeah we can do that, no problem, it is easy, we will just email someone, or we will add a manual step, or we will just leverage the existing process or method, or we will just delete them and put them back… these things make me cringe… don’t do it… ever! 

Talk to the professionals, they have done it all before.