Custom application development is one of AIS’ many strong suits, and we’re constantly expanding our repertoire. Recently we successfully delivered a custom-designed scorecard and dashboard, as well as a SQL Server Analysis Services (SSAS) data cube, which provided self-service Business Intelligence for one of the nation’s leading pain medication monitoring organizations. Ameritox’ senior management required a user-friendly solution that was consumable on a variety of mobile devices like Apple iPads and other tablets. Our experience in Microsoft BI, .NET development and mobile solutions enabled us to deliver a solution that allows the organization to effectively track their specimens on a daily basis.

Click here to find out exactly what we did to ensure success on this project!

Have you ever worked on a project that seemed to eat any memory available? If so, chances are you have encountered a memory leak. Memory leaks in SharePoint are very common. For example, using instances of SPLimitedWebPartManager can be a cause of memory leaks. Why? Turns out that SPLimitedWebPartManager instances instantiate their own SPWeb object, but don’t properly dispose of them: a bug in the SharePoint 2010 SDK. It seems that one of the only ways to discover this ghost memory leak is in production. Or a little utility, built by Microsoft, called SPDisposeCheck.

You can run SPDisposeCheck in the command line, but I thought it would be nice to integrate it into a project. These are the steps to integrate SPDisposeCheck into a build: Read More…

What exactly is Responsive Design? The simple answer: Making digital media viewable across all devices and resolutions.

Take your company website, for example. It looks great on your desktop computer, right? But when you view it on your phone, it doesn’t look nearly as nice if it wasn’t developed using responsive design techniques. Images will be too big, the navigation may be impossible to tap and the download time may kill you.

Designers/developers must write the code in a way that looks great no matter what device it is viewed on. Basically, we have to use something called media queries. Media queries are pieces of code that allow us to put details around objects. So we can say if a web page is being viewed on a device with a 460 pixel width, display it like this. But if the web page is being displayed on a device with a 800 pixel width, then display it like that.

It actually goes well beyond just the width. We can decide what to display based on the following factors:

  • width
  • height
  • device-width
  • device-height
  • orientation
  • aspect-ratio
  • device-aspect-ratio
  • color
  • color-index
  • monochrome
  • resolution
  • scan
  • grid

We can tell your website if it should use high-res images for Retina Display or no images for a phone display. We have a ton of options. Responsive Design is in its infancy and we are discovering new ways every day to make this logical way of thinking possible. The sad fact is we haven’t quite developed the best way to do this yet. Right now we have to write tons of lines of code to account for all the different resolutions, as well as older versions of browsers that do not support the latest and greatest best practices. But each time we launch a new digital page, we get closer. We make it better. Read More…

System Center 2012 is all about cloud computing — it provides IT as a Service, so it offers support for heterogeneous environments extending from a private cloud to the public cloud.

Trying to describe what you can accomplish with Microsoft System Center 2012 is akin to defining what a carpenter can build when he opens his toolbox. The possibilities are virtually limitless. When all of the System Center 2012 management components are deployed, administrators and decision makers have access to a truly integrated lifecycle management platform. The seven core applications can each be deployed independently to provide specific capabilities to an organization, but are also tightly integrated with each other to form a comprehensive set of tools.

System Center 2012 is offered in two editions, Standard and Datacenter, with virtualization rights being the only difference. The simplified licensing structure is identical to that of Windows Server 2012. Further simplifying the licensing, SQL Server Standard is included and no longer needs to be licensed separately. The applications that make up the System Center 2012 suite, however, cannot be licensed individually, so it makes sense to have an idea of what each application can do, and how it fits into your environment.  Read More…

Introduction by Vishwas Lele:

Amazon Web Services (AWS) CTO Werner Vogels offers this great piece of cloud advice: “Treat everything as a programmable resource, including data centers, networks, compute, storage and load balancers.” In other words, automate every aspect of your (cloud-based) infrastructure. There are significant benefits in following Werner Vogels’ advice:

  1. You can build systems that are cost aware by only keeping the parts of the system that are needed and turning off everything else .
  2. Capacity planning is hard. It is much better to dynamically build capacity based on the need.
  3. Failures are not an exception but a rule. Rather than building complex logic to handle exceptions, make your systems fault resilient by provisioning failover resources as needed.
  4. Make your systems more agile – systems that can scale in the direction of business vs. a design time scaling criterion.

Given AIS’ years of experience with SharePoint, we are always looking for ways to make the underlying infrastructure more cost effective, scalable and robust. Fortunately, the aforementioned benefits of automation apply equally to a SharePoint 2013 farm hosted in the cloud — whether it is the ability to dynamically provision a SharePoint 2013 farm on the fly, or the ability to scale up and down based on load, or the ability to make the SharePoint 2013 farm more fault resilient.

But it all begins with developing robust automation scripts to provision and manage a SharePoint 2013 farm. This brings us back to the purpose of this blog post by Abhijit Kumar. Abhijit discusses an automated approach for provisioning a SharePoint 2013 farm using Amazon Web Services. It is noteworthy that the automation approach we describe below is based solely on PowerShell. This might come as a surprise given that AWS offers services like CloudFormation, which enables creation of AWS resources, combined with open source tools such as Opcode Chef and AWS Puppet, which enable the installation and configuration of applications. We chose to rely solely on PowerShell for the following reasons:

  1. PowerShell is Microsoft’s canonical task automation framework, consisting of a command-line shell and a scripting language that has full access to COM and WMI, giving Windows administrators control over every aspect of Windows OS-based machines.
  2. PowerShell scripting language is based on the .NET framework. This means a PowerShell script can take advantage of .NET framework enhancements such as Workflow Foundation (WF). We use WF extensively to manage long-running automation scripts.
  3. AWS Cloud Formation is not available on AWS Gov Cloud. AWS Gov Cloud is an isolated AWS region designed to allow U.S. government agencies and customers with sensitive workloads to address their specific regulatory and compliance requirements. Given that AIS services a large number of customers with stringent regulatory and compliance requirements, we needed an automation approach that worked on AWS Gov Cloud.
  4. If you read our earlier blog post about SharePoint 2013 automation on Windows Azure, you will notice that we have been able to achieve a high level of reuse between Windows Azure and AWS scripts for SharePoint 2013 scripts. While the WF-based provisioning logic is largely the same, Azure Service Management SDK calls are replaced with AWS Tools for Windows PowerShell. This reuse allows us the flexibility to offer our customers a choice between the industry leading IaaS platforms – AWS and Windows Azure.

Abhijth’s post below walks you through the script to deploy SharePoint 2013 Farm on AWS in an automated manner. I am confident that you will it useful. Please give the scripts a try and let us know.

Is your organization in need of a cutting-edge, custom-developed mobile application?   AIS is quickly becoming the go-to organization by developing innovative solutions like KCI Technologies’ new Windows 8 UI application. The application will enhance the efforts of the organization’s initiative to further develop its mobility program, and will support field inspections in both network connected and network disconnected environments. AIS is currently preparing for this exciting endeavor and expects the application to move into full production in early 2014.

Head over to our website for a more detailed look at what we’re doing… 

In today’s mobile society, the current and future generation of “mobile” devices (i.e. smartphones, tablets, “phablets,” special purpose devices, etc.) and the applications that can be hosted on them provide a significant opportunity to improve the way we work. This is especially true for those workers whose job involves traveling during the day to work directly with customers “in the field.” In this post, I’ll share some recent experiences we’ve had in working with mobile field workers as part of an analysis effort to define requirements for a tablet-based application.

Approach:

The specific approach we used for this project was to “follow” or “shadow” the workers as they performed their activities and collect observations about:

  • The tasks they performed,
  • The devices and applications they used to support those tasks, and
  • The types of information and work products (forms, documents, etc.) they either collected or produced in course of performing the tasks.

We worked with both staff personnel and supervisor personnel, and we looked at both scenarios where customers would come into a field office and scenarios where the field staff would meet customers at a field location directly. We then followed the observation sessions with one-on-one interviews to review the observations and ask more specific questions.

Based on our experiences, we identified what we would consider to be some key recommendations for business analysts, product managers, or others seeking to elicit requirements for mobile worker applications. Read More…

70% of all devices sold in 2012 were tablets or smartphones. Tablet purchases by businesses will grow three times by 2016. These numbers, provided by Gartner, confirm what we already know from walking in the mall or sitting at a cafe…and the news for PC sales doesn’t appear to be improving any time soon.

Navigating this post-PC world can a frightening experience when your corporate lifeblood relies on the dominance of PCs. Compounding this is the fragmentation of the emerging market across native mobile platforms, three primary desktop browsers (exponentially more when including mobile), and varying device form factors and operating system flavors. Read More…

Previously, we looked at how to implement localization of an iOS app using storyboards. Then we discussed how to localize text that is generated programmatically. In this final article, we will examine how to determine the current locale of the device, and how to use that information to communicate with a web service. This is obviously very useful in those situations where your app is downloading data from a web service and needs to be able to display the correct text for the current locale. Read More…
Are you a developer who adamantly hates JavaScript and would give up your firstborn before taking on a project that involves said language? If so, you are not alone. JavaScript seems to be one of those languages that polarizes us into two groups:

TEAM SIMBA

Members of this group believe JS is the rightful king of the web (and possibly server). They believe JS is easy and fun to develop with and mature enough to handle anything you throw at it. They praise the language for its impressive developer community and rich ecosystem of libraries.

TEAM SCAR

Members of this group believe JS is a twisted and deceitful language. They are obstinate that JS is a broken language flawed from its conception and mired by designers and the 90s. They see the language and its associated tooling as too “immature” for any real work. Of course, all JS libraries are just the hyena minions sent upon the web (and now server) to ravage and uglify the beautiful landscape that computer scientists have diligently built over the past six decades.

I believe both groups have valid points. JS can be a bit idiosyncratic at times. I have been burned a few times by many of the questionable “features” of the language. For example, double-equals is not equivalent to == present in many C-style languages:

if ("" == 0) //this statement is true...
	console.log("Seriously?!")
The above code snippet is known to make minds explode!

If you are like me, you probably learned C or some language based/inspired by it. The reason behind the behavior above is that == actually is an equality operand that performs type-coercion first. But there are also some very neat things going on in JS, and perhaps the best attribute is function-passing. There is great power in the ability to pass functions as arguments — just ask any Scala programmer! While functions are fundamental to JS, they are a topic that confuses a lot of developers, so let’s get started. Read More…