Category Archives: Cloud

All .NET topics related to pushing information up to a cloud server and pulling down information from the cloud.

Microsoft Office Open Source Standards

Microsoft Office to be given open source standards

Here’s some great news for Microsoft users: the next version of Office has been altered to include open source technologies. The company have opened up Microsoft Office 2013 to fully support the Open Document Format, for PDFs and variants of Open XML. According to Jim Thatcher, principle program manager lead for Office standards, the next version of Office “will support strict Open XML and Transitional Open XML, ISO 32000 (PDF) and OASIS ODF 1.2.” This move could have been due, in part, to the fact that both LibreOffice and OpenOffice have both been backed by ODF for a while, which may have put pressure on those in charge of Microsoft Office.

The movement towards open ODF has not been a fast process. It has been simmering along for around six or seven years, so the fact that it has now come to fruition is an exciting development.

Electronic paper archives have increasingly come into focus over the years and now it is very useful to be able to have access to them. As well as this, Thatcher has talked about Microsoft’s plans to make it so that PDF’s can be edited as though they are Office documents. This is being called the ‘PDF reflow’ and would mean a drastic change in the way people work with PDF documents and the features that they boast. Thatcher has made it clear that this is not designed as a replacement to Adobe Reader or Acrobat, however it will no doubt prove to be very useful.

Office 2013 is expected to be formally launched in early 2013, however a fixed date has not yet been set.

Pitfalls and Mistakes to avoid in Dynamics GP 2010

You have just entered in all of your manufacturing items into your system, and close down your GP client.  The next morning you come in and all of your items are being sent to the wrong assembly lines and a work stoppage has occurred.  Yikes!  Check out this document by Mark Polno about the Worst Mistakes You Can Make With Dynamics GP.

HOW TO: Use Await In Windows 8 Style Metro Coding

With the release of the new Visual Studio 11, and Microsoft 8, comes a new display and coding style targeting Metro. Metro is a display system that was modeled after a Swiss system of subway trains that allowed users to interact and purchase their tickets quickly and efficiently. A new very exciting keyword is being presented with the demos that are up called Await. What this keyword allows us to do is execute an asynchronous function or subroutine and move on with our code. This option is available very easily and does not require any timers or threading to handle any complex processes.
Here is a great example of how to use Await while reading a feed from a blog.

VB.NET

Private Async Function GetFeedAsync(FeedUriString As String) As Task
' Imports Windows.Web.Syndication
Dim Client As New SyndicationClient
Dim FeedUri As New Uri(FeedUriString)
Try
Dim Feed As SyndicationFeed = Await Client.RetrieveFeedAsync(FeedUri)
Dim FeedData As New FeedData
FeedData.Title = Feed.Title.Text

For Each Item As SyndicationItem In Feed.Items
Dim FeedItem As New FeedItem
FeedItem.Title = Item.Title.Text
FeedItem.PubDate = Item.PublishedDate.DateTime
FeedItem.Author = Item.Authors(0).Name.ToString()

If Feed.SourceFormat = SyndicationFormat.Atom10 Then
FeedItem.Content = Item.Content.Text
ElseIf Feed.SourceFormat = SyndicationFormat.Rss20 Then
FeedItem.Content = Item.Summary.Text
End If

FeedData.Items.Add(FeedItem)
Next

Me.DataContext = FeedData
ItemListView.SelectedIndex = 0
Catch Ex As Exception
' Log Error.
TitleText.Text = Ex.Message
End TryEnd Function

C#

private async Task GetFeedAsync(string feedUriString){
// using Windows.Web.Syndication;
SyndicationClient client = new SyndicationClient();
Uri feedUri = new Uri(feedUriString);

try {
SyndicationFeed feed = await client.RetrieveFeedAsync(feedUri);
FeedData feedData = new FeedData();
feedData.Title = feed.Title.Text;

foreach (SyndicationItem item in feed.Items)
{
FeedItem feedItem = new FeedItem();
feedItem.Title = item.Title.Text;
feedItem.PubDate = item.PublishedDate.DateTime;
feedItem.Author = item.Authors[0].Name.ToString();
if (feed.SourceFormat == SyndicationFormat.Atom10)
{
feedItem.Content = item.Content.Text;
}
else if (feed.SourceFormat == SyndicationFormat.Rss20)
{
feedItem.Content = item.Summary.Text;
}
feedData.Items.Add(feedItem);
}
this.DataContext = feedData;
ItemListView.SelectedIndex = 0;
}
catch (Exception ex)
{
// Log Error.
TitleText.Text = ex.Message;
}
}

SQL Azure: First Steps

With the wave of cloud technologies on the rise, the most notable that I have found has been SQL Azure. A big problem that I have seen with centralized database has always been performance. While developing Azure type applications, you can have a central database with complete control over client experience and still maintain excellent performance.

Accessing SQL Azure is as simple as modifying your connection string and pointing it to the right database that is provided from your cloud environment. There are some changes which are not supported in the cloud such as CLR development and redundancy management, which should not be an issue because the cloud system is responsible for data integrity.

For a great example of how to access data in the cloud, and typically any other SQL environment, check out this page on the msdn.

In this example, they use a connection string builder class which is an excellent class if you are use to typing out your connection strings or using connectionstrings.com

Here is an example of how to use the builder efficiently in your code:

// Create a connection string for the master database
    SqlConnectionStringBuilder connString1Builder;
    connString1Builder = new SqlConnectionStringBuilder();
    connString1Builder.DataSource = "server"; //your server name
    connString1Builder.InitialCatalog = "master"; //your database
    connString1Builder.Encrypt = true; //encrypt connection information
    connString1Builder.UserID = userName; //sql username
    connString1Builder.Password = password; //sql password

Once you have this object setup, you can use the ToString method of the object to retrieve a proper connection string for any object you like to use in your SQL data queries. Happy coding!