Be sure to check out the May issue of MSDN Magazine, which spotlights some of the powerful new capabilities highlighted at the Microsoft Build Conference last month. Our lead feature, by Mark Michaelis, explores the new features and capabilities coming in the next version of the C# programming language (C# vNext, expected to be called C# 6.0 upon release).
As Michaelis points out in his feature, C# 6.0 won’t be a revolutionary change, but it will help eliminate a host of coding annoyances and inefficiencies that can bog down your programming efforts. He goes on to single out a few of his favorite features in C# 6.0, including the $ operator (string index members), primary constructors (without field parameters), using static, and declaration expressions. Definitely give this articles a read.
Also highlighted at the Build Conference was the new Microsoft Application Insights facility in Visual Studio 2013 and Visual Studio Online. Application Insights is a set of services that provide actionable insight into a production application and integrates that data back into the development tools and process. The tool is great for understanding application health and responsiveness, feature effectiveness, and usage patterns. Charles Sterling’s feature Next-Generation Development with Application Insights dives into this new facility, which was unveiled at the Visual Studio 2013 launch late last year.
Also notable in the May issue is Stephen Cleary’s closing installment in his excellent series on combining the async and await keywords with the tried-and-true MVVM pattern. This month Cleary explores the services layer and addresses asynchronous services. I also encourage you to check out the other two features in the series—the April issue feature on asyc implementation of ICommand, and the March feature on data binding to an asynchronous operation.
Rounding out the May issue are two more features. Bill Heys and the ALM Rangers team offer a look at feature toggles as an alternative to branching for parallel, concurrent feature development. Also known as feature flags or feature switches, feature toggles lets you check new features in to the main branch so they can be continuously integrated and tested at build time. Finally, Brannon King’s “Dangers of Violating SOLID Principles in C#” looks at the time-worn principles of SOLID-- Single responsibility, Open for extension and closed for modification, Liskov substitution, Interface segregation, and Dependency injection—from a whole new angle.
Don’t miss out on our May issue columns, either. Charles Petzold leads the charge this issue, with his DirectX column exploring how to make 2D graphical objects seem to acquire depth and body and float in 3D space. Petzold has been chipping away at Direct2D and now Direct3D in recent months, introducing the powerful DirectX graphics subsystem to developers who might otherwise hesitate to wade into the deep water. Don’t miss it!
This is the fifth blog post in our series around developing a node.js application using Monaco. In this part we take a look at the Git tooling support Monaco provides. We assume that you are familiar with the basic concepts of Git. If not, there is a lot of useful documentation and tutorials around Git available on other sites, like here or here.
In the previous chapters of this series you have learned all the basic steps to setup a node.js project using Monaco. There is a lot more to explain around Monaco and how to use it for the best development experience. You can check out our Channel9 videos on further topics like Editor Tips and Tricks and Navigating the environment if you are interested.
If you are interested in previous parts of this series, please use the links below:
There are two typical scenarios where you want to use source control for your changes: On the one hand you might have existing source code that you want to push into a new Git repository and on the other hand you might have an existing repository with code that you want to pull into Monaco. If you have followed this series all the way from Part 1, your workspace will be filled with some files already. In this paragraph you will learn how to push these changes to a Git repository.
Monaco provides Git integration both from the console (Ctrl+Shift+C) through the Git command as well as the Git view (Ctrl+Shift+G). If you open this view, you can easily initialize an empty repository, clone from an existing one or connect to a Visual Studio Online repository.
In our case, we want to initialize a Git repository with all the files of our workspace. After you have clicked on the "Initialize git repository" button in the Git view, you can create your initial commit. Simply type a commit message into the input box on the top of the Git view and hit Enter. You can also use the console (Ctrl+Shift+C) for this purpose. All Git commands are available to you from there by providing the native Git command.
Since this is the first time we are using Git, Monaco will now ask you to provide some additional information about you.
You name and e-mail will be used for Git to relate the changes you do to your identity. When someone else pulls your changes, these changes will show up with your name and e-mail. Type in your identity by uncommenting the related lines in the configuration file:
Close this editor with Ctrl+S to save it and enter your commit message again followed by Enter. This saves the git configuration file outside of wwwroot, but still inside the website. As a consequence you will have to enter the identity info again when setting up git for another web site. This is something we plan to improve in the future.
Now that we have our first commit created, we need to let Monaco know where to push it. Monaco works with any Git repository, so it is your choice where you want to push your changes to. You can create a project with Git repository for free at CodePlex or GitHub.
Open the Monaco console (Ctrl+Shift+C) and type the following commands to add your Git repository as a remote and push your changes:git remote add origin <Git Repository URL> git push origin master
In case your repository is protected with credentials, Monaco will ask for them and also provide an option to remember the credentials for further use. We are currently not storing the credentials across multiple web sites, so you might see the same dialog showing up from another web site.Pulling a workspace from an existing repository
In this scenario we assume that you start with a fresh web site without local changes. The standup application is hosted in a Git repository at CodePlex but any git URL will work. If your git repository is hosted in VSOnline, then you can connect to VSOnline and pick from the list of repositories without having to look up the Git URL.
We can quickly pull the sources into Monaco using Git. From the Git view (Ctrl+Shift+G) type https://git01.codeplex.com/monacostandup into the repository URL field and press “Clone from a git URL”. You will see the console running the clone operation and the explorer filling with the contents of the repository. In case your repository is protected by credentials, Monaco will ask you to type username and password.
Now that the entire standup application source code is pulled into your workspace you can actually run the application from your web site. Just use the run action from the left hand side or press Ctrl+F5 and see it live!A tour around Monaco Git tooling features
Once the clone operation has finished you will notice some more controls showing up in the navigation bar to the top. These controls provide you with an up to date indication of your current git status. This includes an indication of
The first dropdown gives you an indication of the branch you are working on. It will also indicate if you have dirty changes on the working tree or the index by adding a '*' and '+' decoration after the branch name. In case you are in a state where you have to merge changes, an exclamation mark is added to indicate this state. From the dropdown you can create new branches and quickly switch between branches.
The second dropdown provides you with a synchronize action that will pull incoming changes and push your commits to the repository. It will also give you an indication of incoming changes from the server and outgoing commits you have not yet pushed.
Monaco will periodically check for incoming changes in the background. You don't have to configure anything to be informed when new changes are ready to be pulled into the workspace. You will see the same indicator from the Monaco console. Any git operation will update the console prompt directly so that you are always informed about the state of your repository.
Monaco makes it easy to track changes and work with them. In the next paragraph we will take a tour on making a change and committing it to the repository.Tracking changes with Monaco
Now that our workspace is under control of Git, changes you make to files are tracked and reported. You will be able to distinguish added, changed and deleted files from the Git view (Ctrl+Shift+G). In the example below you see app.js was modified, newfile.txt added and the routes folder deleted:
You will also notice a little decoration on top of the Git icon on the left hand side of the workbench. This decoration indicates the number of changes that have not yet been committed. In our example, four changes are waiting to be committed.
Let's make some simple modifications to a file in the workspace to get a feeling for change indication in Monaco. In the screenshot below you can see changes to the app.js file. Since the original revision of the file is known to Monaco through Git, the editor can indicate additions, changes or deletions to lines in the file. This makes it easy to track changes in individual files:
Before committing changes back to the repository you typically want to review all changes. Each entry in the git view can be clicked to review the changes that were made. Click on the file you changed to bring up Monaco's diff editor. This editor will give you an indication of lines changed from the revision that was pulled from the Git repository. The change indication goes down to the word level making it easy for you to track smaller changes to individual lines.
The right hand side of the diff editor is a fully editable editor. You can continue to make changes here as needed.
Once all changes have been reviewed, you can type in a commit message into the Git view and press Enter to create the commit. You will notice that the change indicator in the navigation bar to the top now shows you the number of outgoing commits. Just click on the "synchronize" action to push your changes back to the repository.Conclusion
In this part you learned how to leverage the git tooling of Monaco to connect your workspace to a repository and share changes to your team. Monaco provides convenient git tooling from the Git view (Ctrl+Shift+G). Whenever you feel that this view does not provide enough git functionality, you can always run the git command from the Monaco console (Ctrl+Shift+C) and have the full git experience at your fingertips.
In the next and last part of this series we will distinguish production web sites from development web sites. You will see the full picture of how the standup application is developed and how we ensure that changes are first tested in development before pushing them to our production site.
There are many settings that are ignored when set in a DLL. /LARGEADDRESSAWARE. SizeOfStackReserve and SizeOfStackCommit. There are plenty of others. Commenter 640k asks why these settings even exist for DLLs if they has no effect.
Because they are settings for PE modules in general.
If there were separate file formats for EXEs and DLLs, then there would have to be two different module loaders, one for EXEs and one for DLLs. This creates extra work for no particular benefit aside from satisfying some anal-retentive compulsion that nothing be wasted. As far as I can tell, all operating systems use a common file format for both executables and libraries.
If it really bothers you, you can consider this flags as Reserved for future use when applied to DLLs.
Chuck Sterling did a nice article on using Application Insights in the latest MSDN Magazine issue:
Connector for Microsoft Dynamics V3 CU2 has been re-released and now supports Microsoft SQL Server 2014.
If you are planning to install the MSDI database for Connector for Microsoft Dynamics on an instance of Microsoft SQL Server 2014, then you will need to use this refreshed version of CU 2 (3.2.816.1).
Connector for Microsoft Dynamics also supports the recently released Microsoft Dynamics AX 2012 R3 ERP. This refresh is only required if you are integrating Microsoft Dynamics CRM and Microsoft Dynamics AX 2012 R3 and you are installing the MSDI database on an instance of Microsoft SQL Server 2014. If you are using another supported version of Microsoft SQL Server, this refresh is not required.
How difficult is it to validate and disassemble a flat file in BizTalk? Not much! I’d say, provided you have the ight document schema(s) and know how a flat file disassembler in the receive pipeline works. Now is that any more difficult when it comes to a HL7 flat file? The answer is “No” and “Yes”. “No”, being the basic concepts remain largely the same and “Yes” because there are a few additional components you have to acclimatize yourself with. If you have had some acquaintance with EDI processing, this should be nothing short of a cake walk.
So, here’s my scenario. BizTalk receives a HL7 flat file message thru MLLP adapter. The BTAHL7Receive pipeline validates and disassembles the incoming message to an XML file and sends an ACK / NACK back to the source system. Now the notable difference this makes with a flat file disassembling is that “the disassembled message breaks into 3 parts or segments – A MSH Segment, body and a Z-Segment”. In this demo, we are only interested in the body part of the disassembled message. If you like to know how these segments could be processed, I’d suggest the HL7 End to end sample in MSDN at http://msdn.microsoft.com/en-us/library/bb981217(v=bts.10).aspx
While processing a HL7 message it’s quite important to realize the Header segment (MSH), Version and the Message type (9th composite in the MSH Segment).
In my sample, I am going to deal with an ADT^A03 type message wherein ADT – Admit Discharge Transfer and A03 is the action type. There are numerous other message types; MFN (Master File Notification), ORU(Observation Result
Unsolicited) to name a few. I wouldn’t quite attempt a deep delve into the HL7 standard segments here, but if you like to explore more on that area, I’d suggest http://www.interfaceware.com/hl7-standard/
I am expecting a 2.3.1 version message and my party name happens to be Tutorial_ADTSystem. You will find out how the party is relevant towards the later part of this exercise.
1. I’ll start a new solution with 3 projects.
a. BTAHL7V2XCommon Project
Contains ACK schemas ACK_24_GLO_DEF.xsd, ACK_25_GLO_DEF.xsd and MSH_25_GLO_DEF.xsd
b. BTAHL7V231Common Project
Contains datatypes_231.xsd, segments_231.xsd and tablevalues_231.xsd. These schemas define the segments in your standard ADT^A03 schema in the coming project.
c. Empty BTAHL7 Project
Build the first two projects (BTAHL7V2XCommon Project and BTAHL7V231Common Project) and create a reference in the BTAHL7 Project. This is important because the datatypes, segments and tablevalues schemas define the nodes in the ADT schema.
So, below is how my final solution is going to be like;
Now, the configuration part; I’ll have;
1. A Request-Response port and a location – To receive the HL7 message and send the ACK / NACK back. Make sure this port runs under a 32 bit host.
BTAHL72XReceivePipeline (Add BizTalk Application1 as a reference to be able to see these pipeline enlisted)
The most important amongst the above properties is the Port. It mediates the message transport between BizTalk and the HL7 sender. Make sure that no other services is using the port number you set. It’s also worth checking if the
firewall is blocking this port number. If so, add inbound, outbound exemption rules and get it opened.
2. A send port – To send the disassembled HL7 message (in XML format) to an output folder.
BTS.ReceivePortName == ReceivePort2Way
BTAHL7 CONFIGURATION EXPLORER
Now, this is a very intriguing part. Users familiar with an EDI Trading Partner Management should easily develop a connect with this component. Only difference is that it’s external to Admin console and here’s exactly where the “Party”
comes into picture. You start by creating a new Party in Admin console.
The Party name must match the Party (MSH3) in your sample file which in my sample is Tutorial_ADTSystem. The party is the key that associates the incoming HL7 message to the validation, ACK procedures. No sooner the party is created, it shows up on the HL7 Config explorer. Make sure you refresh. You will also see the schemas deployed from the solution. The config console is inherently smart to recognize
When a message goes thru the BTAHL72XReceivePipeline, it calls to the Config console. The config console is inherently smart enough to realize the Party name within the sample file, loads the settings and does the validation, disassembling and acknowledges the sender.
Below are the settings at each Tab you have to make to get this sample working.
Save the settings are you are almost done!
As I have no real time HL7 system to test my solution, I am going to have to leverage onto alternate simulation methods. Fortunately, HL7 accelerator comes with a pair of fine utilities that let you simulate receive and send for MLLP adapter. Navigate to Drive: \Program Files (x86)\Microsoft BizTalk 2013 Accelerator for HL7\SDK\MLLP Utilities and you will locate the below utilities there;
You need to execute these utilities from command prompt. In my tests, I’d only need the MLLPSend.
You could read more on this at http://msdn.microsoft.com/en-us/library/ee404935.aspx
Let me explain my test cases. Process a
1. Clean file with a valid header segment (MSH), and body. [GoodMsg.txt in the attachment]
For starters, open a cmd and set the path to the MLLPSend utility folder.
CD Drive: \Program Files (x86)\Microsoft BizTalk 2013 Accelerator for HL7\SDK\MLLP Utilities
- Edit and copy the below command onto the window and submit.
MLLPSend.exe /i localhost /p 10000 /SB11 /EB 28 /CR 13 /f "—filepath--\GoodMsg.txt" /twoway
- This sends my file to the two way receive location, ReceivePort2Way.MLLP we created thru port 10000.
- The file is first disassembled against the ADT^A03 schema and validated to true.
- Since it being a two way port, the ACK is sent back over the same channel by the response port. You will get to see a RESPONSE file in the same folder the source file resided, thanks to MLLPSend. And it content looks like below. The “AA (Application Accept)” value in the MSA segment signifies that the transaction was a success.
- The resultant xml message is subscribed to by the file send port, SendOutput.FILE.
2. File with a valid header, but invalid body composite. [InvalidDate.txt in the attachment]
This file contains an invalid datetime stamp in its third row as highlighted:
- I execute the same MLLPSend command with the exception of the filename.
MLLPSend.exe /i localhost /p 10000 /SB 11 /EB 28 /CR 13 /f "—filepath--\InvalidDate.txt" and below is how my RESPONSE file is going to be like.
- My HL7Receive pipeline instantly found the datetime value to be invalid and threw a “Data type error”. And if you take a closer look, you will see that MSA flag changed to “AE (Application Error)” this time.
3. File with an invalid header [InvalidHeader.txt in the attachment]
I deliberately messed up with the Party name and the MessageType here.
- I had no acknowledgments this time. However, event logs showed me what happened.
Validation error in header during parsing
Error # 1
Segment Id: MSH
Sequence Number: 1
Field Number: 9
Error Number: 200
Error Description: Unsupported message type
Encoding System: HL79999
Error # 2
Segment Id: MSH
Sequence Number: 1
Field Number: 9
Error Number: 201
Error Description: Unsupported event code
Encoding System: HL79999
- It clearly couldn’t recognize the message type of the message and without any further ado rejected the message.
I hope this helped you with a fundamental understanding of how the HL7 message processing works in BizTalk.Microsoft started supporting HL7 accelerator alongside ROSETTANET and SWIFT in BizTalk 2006 though these standards existed before that. And there has been an overwhelming improvisation rate on this area ever since. I am confident that the coming years would see the advent of more and more interesting features on the accelerators.
Blog originally posted on the Teachers Blog by Stuart Ball.
So the time is nearly upon us . . . the deadline for entries for the Kodu Kup is fast approaching as all games must be submitted by 30th May. Before you can submit the games they will need to be exported from Kodu Game Lab, this is a very simple process, here is a video that shows how to export:
Once you have exported your game you will be able to upload your team’s entry to the Microsoft Educator Network.
What should I be submitting?
This year the entry should consist of the following:
To submit a team’s work you must first become a member of the Microsoft Educator Network website: www.pil-network.com. Once you have signed up you will be able to submit your entries by adding a new ‘Learning Activity’ by clicking ‘Resources’ in the menu and selecting ‘add learning activity’, as shown here:
You will then be required to add some basic information about your entry as shown below. It is very important these instructions are followed accurately otherwise your entry may not be found by the judges. The name of the learning activity should be the name of the game, under ‘learning objectives’ make sure you add “kodu kup” and in the description clearly state the following:
When you get to the section on ‘Supporting’ resources you will need upload your students’ work.
If your students have created their game using Project Spark they will first need to share their game through the Project Spark website, you will then be able share the link to this in the supporting resources above.
For a more detailed breakdown of this process check out our teachers resources: http://bit.ly/KoduKup
What is Kodu? …just in case you don’t know…
Kodu is a visual programming language made specifically for creating games. It is designed to be accessible for children as young as 6 year olds and enjoyable for anyone
Developed by Microsoft Research, Kodu runs on PC and Xbox allowing rapid design creation. Kodu is available for free
The Kodu User Interface is easy to use and visually attractive especially to primary phase pupils
Its ‘code’ syntax used is simple, intuitive, yet allows a high degree of computational thinking and programming fundamentals
Kodu is easily integrated throughout the curriculum, with strong links to numeracy and literacy, as well as science, maths and geography
Kodu is a great start to computing. And to a new European adventure with Kodu Kup Europe
What is the Competition about?
The first Kodu Kup Europe involves 8 countries: Belgium, Estonia, Finland, Greece, Lithuania, Norway, Portugal, and UK
In the UK you can ONLY get to the European final by entering this year’s Kodu Kup in the UK . There is still time to enter. Details here
The winning team from the UK Kodu Kup will win an invite to compete in this competition.
More information is available at www.kodukup-europe.org Follow #kodukup_eu for updates and news
A while ago I wrote a blog post on How to Share Maps Using the Search Charm in Windows Store Apps. In that blog post we made use of the Bing Maps REST Imagery service to generate a static image of the map that we could share in an email. This method has a couple of limitations. The first is that you can only render pushpins and routes on the static map image. The second is that the pushpin icon is limited to one that already exists in the service. This might be acceptable for simple applications but what if we want a true screenshot of our map? In this blog post we are going to take a look at how to take a screenshot of the map which we can then either share via the Share charm or save as a local file for use later in documents or presentations.
Full source code for this blog can be found in the MSDN Code Sample Gallery.
Before we dive in, its worth noting that if you just want a screenshot of your app there are three ways to go about this. The first is simply press the “Print Screen” button on your keyboard when your app is running to add a screenshot of your app to the clipboard. The second method applies to tablets and consists of pressing and holding down the Windows button on the tablet and the volume down button at the same time. The third method appears to be new in Windows 8.1 Update 1 and consists of pressing on the Share button and then clicking on the down arrow that appears. You will see at least two options; one to take a screenshot and the other to share the app in the Windows Store.
To get started open Visual Studio and create a new project in C# or Visual Basic. Select the Blank App template, call the application BingMapsScreenshots, and then press OK.
Next, add a reference to Bing Maps SDK. Right click on the References folder and press Add Reference. Select Windows → Extensions, and then select Bing Maps for C#, C++ and Visual Basic. If you do not see this option, be sure to verify that you have installed the Bing Maps SDK for Windows Store apps. While you are here, also add a reference to the Microsoft Visual C++ Runtime Package, as this is required by the Bing Maps SDK when developing using C# or Visual Basic. Press OK.
In Solution Explorer, set the Active solution platform in Visual Studio by right clicking on the Solution folder and selecting Properties. Select Configuration Properties → Configuration. Find your project and, under the Platform column, set the target platform to x86, and press OK.
Now open the MainPage.xaml file and update the XAML to the following.<Page
This will add a map, a ScrollViewer for route instructions, and three buttons to the app. The buttons will be used to take screenshots and for sharing the map. Next open the MainPage.xaml.cs file and update it with the following code. This code contains the event handlers for the buttons without any logic in them yet. I’ve also added logic to display a route from Seattle to Miami on the map when the app loads so that we have something interesting to share.
At this point if we run the app and give it a moment to load the route it will look like this. Pressing any of the buttons won’t do anything as we haven’t added the logic for them yet.
We can create a screenshot of a FrameworkElement by using a RenderTargetBitmap. To keep things clean, we will create a couple of helper Task methods. The first method will take in a FrameworkElement to take a screenshot of and an IRandomAccessStream to save the screenshot to. This method will encode the screenshot as a PNG image file. The second helper method will only take in a FrameworkElement and will return a RandomAccessStreamReference. Notice that these methods take in a FrameworkElement and not a Map object. This allows us to pass in just about anything that is displayed in our app that we want to take a screenshot of. Add the following code to the MainPage.xaml.cs file.
C#private async Task ScreenshotToStreamAsync(FrameworkElement element, IRandomAccessStream stream)
VBPrivate Async Function ScreenshotToStreamAsync(element As FrameworkElement, stream As IRandomAccessStream) As Task
Next we will create a method that creates a screenshot of a FrameworkElement and then saves it to a file using the FileSavePicker. Add the following code to the MainPage.xaml.cs file.
C#private async void SaveScreenshot(FrameworkElement captureSource, string suggestedName)
VBPrivate Async Sub SaveScreenshot(captureSource As FrameworkElement, suggestedName As String)
We can now update the button handlers for capturing screenshots to make use of this method. The first handler creates a screenshot of the whole app, and the second handler will create a screenshot of just the map.
C#private void TakeAppScreenshot_Tapped(object sender, TappedRoutedEventArgs e)
VBPrivate Sub TakeAppScreenshot_Tapped(sender As Object, e As TappedRoutedEventArgs)
If you run the application and press the button to take a screenshot of just the map you will be prompted to select a file to save the screenshot to. Once this is done, if you view the screenshot it should look something like the following image. Notice that our buttons for taking screenshots and the route instructions are not in the image as they are not a part of the map.
In order to share our map we will need to make use of the Share charm. To do this we will need to attach a DataRequested event to the DataTransferManager when the user navigates to the app. We will also remove this event handler when the user navigates away from the app. When this event is triggered we will generate two screenshots, one of the map and the other of the route instructions. Notice that for the route instructions we are capturing a screenshot of the Map.DirectionsManager.RouteSummaryView element rather than the Instructions ScrollViewer element. The main reason for this is that the ScrollViewer will clip the route instructions to only those that are visible on the screen whereas using the RouteSummaryView captures the full set of instructions. We will then share the images by setting the HTML format of the share charm in a similar manner to how we did it in the previous blog post on sharing maps. Add the following code to the MainPage.xaml.cs file.
C#protected override void OnNavigatedTo(Windows.UI.Xaml.Navigation.NavigationEventArgs e)
VBProtected Overrides Sub OnNavigatedTo(e As NavigationEventArgs)
The final step is to add the logic for our custom share button. Update the ShareMapScreenshot_Tapped button handler with the following code.
C#private void ShareMapScreenshot_Tapped(object sender, TappedRoutedEventArgs e)
VBPrivate Sub ShareMapScreenshot_Tapped(sender As Object, e As TappedRoutedEventArgs)
If you run the application, wait for the route to load, and then either press our custom share button or use the standard Share charm button, you will be able to share the map and the route instructions. If you select the option to share using the Mail app you should see the map and instructions in the mail app flyout like in the image below.
If you are looking for some other great resources on Bing Maps for Windows Store apps, look through this blog or check out all the Bing Maps MSDN code samples.
May 1 - General availability of Microsoft Dynamics AX 2012 R3.This is a major milestone as this update to our ERP solution for enterprises and upper mid-market businesses represents a significant step for the entire industry toward the future of ERP, with apps, device and services in the cloud as cornerstones of its new capabilities.
R3 is continuing the revolution of the enterprise level business solutions we are delivering to customers. R3 will help enterprises better engage with their customers, more effectively run their businesses and expand their operations. It features:
Blogs: Check out all the latest Microsoft Dynamics AX 2012 R3 blog posts to learn about the new capabilities in Microsoft Dynamics AX 2012 R3.
Microsoft Dynamics AX General Session at Convergence offers a great overview of the new capabilities being delivered complete with compelling customer stories. And if you have still not attended the Online Launch event, you can still sign up on demand here: https://presentations.inxpo.com/Shows/microsoft/4-10-14/Registration/Registration.html?AffiliateKey=21572&AffiliateData=1939
Additional information for customers and partners is now available on the Microsoft Dynamics website.
Social outreach: Twitter: follow @msftdynamics and retweet us.
Daha önceki bir yazımda "Perfview" uygulamasını tanıtmış, ve performans incelemeleri için nasıl kullanılabileceğini ele almıştım. Perfview, sistemde çalışan process ve thread'ler üzerinden belirli aralıkla "Callstack" sample'ları toplayarak hangi çağrıların daha çok zaman aldığını belirlememizi sağlıyor. Bunun yanısıra, ".net heap" analizi, event analizi vs. gibi farklı analiz tiplerine de olanak sağlamakta.
Perfview uygulaması, ".NET Runtime, Architect" ekibinden "Vance Morrison" tarafından yazıldı. Uygulama ile ilgili her türlü gelişme ve yeniliği takip etmek için "Vance Morrison"un kişisel blog'unu takip edebilirsiniz. Ayrıca gine "Channel9" üzerinde de pekçok faydalı video mevcut.
Sizlere bu yazımda geçenlerde keşfettiğim bir özellikten bahsetmek istiyorum. Bu özelliği "help" dosyasını incelerken tesadüfen farkettim. Genellikle "Windbg" üzerinden bir process'e bağlı, "debugging" yaparken "wt" ("watch and trace") komutunu fonksiyonların birbirlerini nasıl çağırdığını görmek ve iş mantığını anlamak, hangi aşamada hata alındığını tespit etmek gibi pek çok farklı nedenden kullanıyoruz. Öncelikle ilgilendiğimiz fonksiyonu üzerine bir "breakpoint" koyup, bu breakpoint'e gelindiğinde komutu çalıştırarak o fonksiyonun hangi fonksiyonları nasıl çağırdığını görebiliyoruz. Aşağıda örnek bir çıktı mevcut:
Tracing MyModule!myFunction to return address 00401137
105 0 [ 0] MyModule!myFunction
1 0 [ 1] MyModule!ILT+1555(_printf)
9 0 [ 1] MyModule!printf
1 0 [ 2] MyModule!ILT+370(__stbuf)
11 0 [ 2] MyModule!_stbuf
1 0 [ 3] MyModule!ILT+1440(__isatty)
14 0 [ 3] MyModule!_isatty
50 15 [ 2] MyModule!_stbuf
17 66 [ 1] MyModule!printf
1 0 [ 2] MyModule!ILT+980(__output)
59 0 [ 2] MyModule!_output
39 0 [ 3] MyModule!write_char
111 39 [ 2] MyModule!_output
39 0 [ 3] MyModule!write_char
11 0 [ 5] kernel32!__SEH_epilog4
54 11675 [ 4] kernel32!ReadFile
165 11729 [ 3] MyModule!_read
100 11895 [ 2] MyModule!_filbuf
91 11996 [ 1] MyModule!fgets
54545 83789 [ 0] MyModule!myFunction
1 0 [ 1] MyModule!ILT+1265(__RTC_CheckEsp)
2 0 [ 1] MyModule!_RTC_CheckEsp
54547 83782 [ 0] MyModule!myFunction
Eğer "wt" çıktısını ( "105 0 [ 0] MyModule!myFunction" satırlarının olduğu) bir text dosyasına "*.wt" uzantısı ile kaydedersek bu uzantıyı "Perfview" uygulaması tanıyabilmekte. Ve ilgili fonksiyon çağrılarını "Perview" uygulamasının "Stack Viewer" ekranında inceleyebiliriz. Daha da güzeli; iki farklı "wt" çıktısını menü üzerindeki "Diff" özelliği ile de karşılaştırabilmekteyiz:
Mange Microsoft Dynamics C5 2014 partnere møder revisorer, som spørger til hvad fordelene ved Microsoft Dynamics C5 2014 er for dem. Vi har her samlet et udpluk af de ting, som gør revisorer mere produktive, når de skal gennemgå en virksomheds regnskab.
Startsiden – Økonomisk overblik
Allerede på startsiden af Microsoft Dynamics C5 2014 har vi gjort det endnu lettere for revisorer, at få et hurtigt overblik over deres klienters økonomiske situation. Et diagram giver overblik over kunders nøgletal, indtægter og udgifter, kassebeholdning samt likviditeten
i virksomheden. Desuden vises resultatopgørelsen baseret på de seneste posteringer direkte på startsiden.
Som det kan ses i billedet ovenfor, kan man i højre side hurtigt danne sig et overblik af den pågældende virksomhed. Samtidig er det nemt at danne sig et overblik over, hvilke aktiviteter kunden skal tage aktion på via de blå bokse til venstre (salg, køb, tilgodehavender og gæld).
Søgning i posteringer – Hurtigere indblik
Et andet eksempel er, at det nu kun tager et par enkelte klik for, at se om en kunde har bogført posteringer og transaktioner korrekt. Dette gøres via navigér-funktionen (som vist ovenfor) der viser alle poster og modposter i kundens regnskab. Det har ikke før været så simpelt og tilgængeligt, at finde og revidere kundedata som tilfældet er i Microsoft Dynamics C5 2014. Selve navigér-funktionen kan ses nedenfor, hvor en søgning på bilagsnr. 103003 er foretaget, hvorefter hver post kan åbnes og gennemses med et enkelt klik.
Filtrering – nemmere revision
I forlængelse heraf kan filter- og linjesøgningsredskaberne nævnes, da de har simplificeret og optimeret revisorens søgearbejde på et hidtil uset niveau. Microsoft Dynamics C5 2014 er mere gennemskueligt og åbent end nogensinde før, hvilket er årsagen til at Filter- og linjesøgning er blevet et gennemgående element i hele versionen. Så om du søger i salgsordre eller om du søger i diverse posteringer, er du ikke mange klik fra et fuldt overblik over lige præcis de transaktioner og data, som du søger. Nedenfor vises det, hvor simpelt det er, at tilføje og fjerne filtre fra en søgning i salgsordrer. I dette eksempel søges der på Valutakode og bogføringsdato, men antallet af filtre er op til revisoren.
Til slut skal det nævnes, at hele brugerfladen er blevet strømlinet med Microsoft Office pakken og ikke mindst Excel. Alt lige fra design til data-integration er bygget op via samme tanke om frihed og funktionalitet, som er kendetegnet ved resten af Office pakken. Derfor er det selv for helt ny Microsoft Dynamics C5 bruger, nu hurtigt og let at komme i gang med revisor-arbejdet.
Hvis du er revisor, kan du i øvrigt finde mere information ved at klikke her.
Med venlig hilsen
In this article, I will take you right through the installation of HL7 accelerator.
This is no different from a conventional software installation. You will find the set up file for “BizTalk Accelerators” in a BizTalk DVD or an ISO downloaded from MSDN. Just transit thru the set up screens and you are done!
Now the important thing is to check if the installation was successful. Of course you will see errors if any of the components fails to install. But there are a couple of additional pointers which is worth checking.
Known Issues with HL7 Installation
Cause: HL7 logging service is stopped.
Resolution: Switch to services.msc and start the HL7 Logging service. Click Retry, it should continue the installation.
2. Faulting application BTSNTSvc.exe, version 3.8.368.0, time stamp 0x49b1dadf, faulting module kernel32.dll, version 6.0.6002.18704, time stamp 0x5065cd44, exception code 0xe0434f4d, fault offset 0x0001d8cb, process id 0x2b44, application start time 0x01cf58c323011d0f.
Cause: Default host BizTalkServerApplication might be running as a 64bit host.
Resolution: Change it to a 32 bit host. This is documented at http://support.microsoft.com/kb/2009616/de
Cause: Missing Artifacts - If it fails to create any artifacts, it will return an error. In the example below, it created the Receive Port but was unable to create the receive location because the File adapter was missing.
Resolution: Just with a regular customer’s solution/application all the artifacts it depends on must be there for Accelerators to configure successfully. If you have an HL7 environment to compare to you can manually recreate the missing artifacts. In this case the receive location for batching can be manually created.
Cause: Wrong Platform – Known issue if you have installed BTS 2013 on WS 2012 R2. Even if BizTalk 2013 is successfully installed/configure on wrong operating system, you will see the error below if you try to install HL7.
Resolution: Install / configure BizTalk 2013 inline with the correct software requisites. In this case use Windows 2012 and not Windows 2012 R2.
5. Run time error – Unable to log message “A message was received of type http…” to the event log due to exception: “No connection could be made because the target machine actively refused it 127.0.0.1:4000”
Cause: Known issue
Resolution: Start HL7Logging services in services.msc
We are excited to announce the launch of MicrosftPressStore.com! Take advantage of our new store special and save 40% on all books and eBooks through May 11, 2014. This includes new and popular titles like:
The Microsoft Press Store also offers:
· Free U.S. shipping every day
· Buy an eBook, get three formats: Access PDF, EPUB and MOBI files to use on your computer, tablet, and mobile devices.
· eBook deal of the week: Save up to 60% on featured titles.
Be sure to sign up for Microsoft Press newsletters and offers to be the first to learn about new releases, upcoming products, and more.
As we shared last month, Pearson is the official distributor for Microsoft Press and books will continue to be sold by retailers around the world. Please visit the Microsoft Press page on InformIT.com for additional information on corporate, government, volume, education, and international sales.
Also cover Webcams in general
Camera app and webcams help covering:
RobTechnorati Tags: Windows 8.1,apps,webcam,FAQ
Written by education writer Gerald Haigh
In my recent blog on the Civica Education Conference http://blogs.msdn.com/b/ukschools/archive/2014/04/04/thoughts-on-civica-s-education-conference-amp.aspx
I mentioned a presentation on Office 365 in the classroom, by Paul Hart and Brendan Murphy. In the course of it they mentioned they used ‘Reputation Scores’.
It was something I hadn’t heard of before, so I called Paul, who’s a Civica e-learning consultant, to find out a little more about it.
‘Reputation Scores’, he told me, is a feature which enables the leader of a collaborative project – in the school setting presumably a teacher – to know which members of the group have actually engaged the discussion, when and how many times. So the teacher might, for instance, set a question for the group to discuss. As the students make suggestions and ask further questions of each other and the teacher, their ‘reputation score’ builds. There’s the opportunity for the teacher to give a ‘best reply’ award.
Paul Hart says,
‘It provides good opportunities for students to help each other – peer-to-peer support – so the teacher is not the only one responding. There’s group responsibility for the learning, all in it together, helping each other along the way.’
The reputation score, he says, adds an extra dimension,
‘The real power lies in the way it’s visible to the user and to all other users at the same time, immediately with no delay.’
The growing understanding and popularity of Office 365 with SharePoint Online means that the number of SharePoint users is rapidly increasing. One of the key features of this, and the whole Office 365 offering, is the way that it supports collaborative, anytime/anywhere learning, in a highly organised, flexible yet carefully monitored environment. ‘Reputation Scores’ fits beautifully into that, yet I suspect there will be some – many, perhaps – who are unaware that it exists. Paul Hart, in fact, calls it, ‘A hidden gem’ and you certainly do need to look for it, unless, that is, your IT team, or your provider have, like Civica, spotted its educational potential and made it easily accessible. Part of the reason is that in the adult business world the notion of scoring team members for their participation isn’t always seen as appropriate. In school, though, the act of collaboration itself is part of the learning process, to be encouraged and rewarded. As Paul explains,
‘Although it’s very relevant to today’s classrooms, in a business setting it might not have anything like as much potential, and that’s probably why it’s not always highlighted.’
今回は Microsoft Dynamics CRM 2013 を IFD 構成にした際の AD FS の Tips をお届けします。
※以下の内容は Windows Server 2012 R2 AD FS を利用して検証しています。
必要がありますが、毎回入力することを避けたい場合 AD FS の設定を変更することで、
1. AD FS サーバーにログインして PowerShell を起動します。
>Set-AdfsProperties –EnableKmsi $true
4. ブラウザから IFD アドレスにアクセスします。
Microsoft Dynamics CRM の IFD では、ログインしたタイミングで AD
FS よりクレーム認証のトークンを受理しますが、既定で 60 分の有効
期限が設定されています。期限が切れる 20 分前に以下のメッセージが
1. AD FS サーバーにログインして PowerShell を起動します。
2. 以下のコマンドで現在 AD FS に登録されている証明書利用者
>Get-AdfsRelyingPartyTrust | Select Name, TokenLifeTime
※ 値が 0 の場合は既定値です。
>Set-AdfsRelyingPartyTrust –TargetName <上記で確認した名前> –TokenLifeTime <分>
指定した時間 20 分前まで、上記の確認メッセージが出ず利用できます。
テスト段階で、AD FS は本番環境のものを利用するが、Microsoft
Dynamics CRM はテスト環境を利用していて、本番環境からテスト
1. AD FS サーバーにログインして PowerShell を起動します。
2. 以下のコマンドで現在 AD FS に登録されている証明書利用者
>Get-AdfsRelyingPartyTrust | Select Name, SigningCertificateRevocationCheck
>Set-AdfsRelyingPartyTrust –TargetName <上記で確認した名前> –SigningCertificateRevocationCheck None
- 中村 憲一郎