Welcome to MSDN Blogs Sign in | Join | Help

IE 8 RC1 Released

Dear Friends,

You know I work at Microsoft, and that I love technology.  Sometimes I love Microsoft technology so much that I can’t wait to tell people about it, and this is one of those times.  Microsoft has just released the Release Candidate 1 for Internet Explorer 8, and I think you should install it and use it today.

You may want to know what a “release candidate” is:  that’s techno-speak for an almost-final version of software, like a sneak preview.

Internet Explorer 8 RC1 is much faster than previous versions of Internet Explorer, so you’ll notice that difference right away.  But you’ll also notice some cool new features that will make your surfing experience faster and easier—not mention a whole lot safer.

· Highlight a street address in your Hotmail, Yahoo Mail, or other web mail account, right-click on the blue button that appears, and hover over “Map with Live Search.”  Presto!  You’ll see the map with the location right there—no more copying and pasting street addresses from web mail to a mapping site.  Plus, you can choose what mapping service you want to use.

· Go to the search box in the top right, and type a search item—see how the enhanced Instant Search Box is more helpful, providing real-time search suggestions, including images, from your chosen search provider.

· Click on a new tab, and see the options that are presented there, including “InPrivate Browsing.”  Click InPrivate Browsing and watch what happens—you are now in a browser session that is leaving no trail behind, so research gift suggestions for your significant other to your heart’s content without worrying about who might pick up the crumbs after you. 

Harder to see are the many security enhancements that will help keep you protected against the ever-evolving online threats—things like protection from cross-site scripting attacks that no other browser offers.

We’re friends, and you know I wouldn’t lead you astray.  Let me know what you think of IE8 RC1.

Posted by imayak | 0 Comments

VBScript for Creating and Sharing a Folder

Nothing to type. The Code is well documented. :)

'--------------------------------------
'Script Start
'Owner - Imayakumar J.
'Date - December 5 2008
'--------------------------------------

'---------------------------------------------------------
' Get the Folder name
'---------------------------------------------------------

'wscript.Echo Date

dim thismonth, thisday, thisyear, foldername

'wscript.echo Month(Date)

thismonth = Month(Date)
thisday = Day(Date)
thisyear = Year(Date)

if len(thisday) = 1 then
thisday = "0"&thisday
end if

foldername = thismonth&thisday&thisyear

'----------------------------------------------------
'Create folder
'----------------------------------------------------

Dim filesys, returnvalue

Set filesys = CreateObject("Scripting.FileSystemObject")

'wscript.Echo returnvalue

filesys.createfolder "c:\"&foldername

'---------------------------------------------------------
' Check if another shar with the same name exists
'---------------------------------------------------------

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colShares = objWMIService.ExecQuery _
    ("Select * from Win32_Share Where Name = 'INGEST'")
For Each objShare in colShares
    objShare.Delete
Next

'-----------------------------------------------------
' Share the created folder
'-----------------------------------------------------

Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = 25
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objNewShare = objWMIService.Get("Win32_Share")
errReturn = objNewShare.Create _
    ("c:\"&foldername, "INGEST", FILE_SHARE, _
        MAXIMUM_CONNECTIONS, "Notes to Exchange Migration Share.")

if errReturn = "0" then
    wscript.echo "Success"
else
    wscript.echo "Task Failed"
end if

'---------------------------------------------
' Script End
'-------------------------------———————

Enjoy !!

Posted by imayak | 0 Comments

Microsoft Web Platform Installer Released

Download it here: http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx

What is Microsoft Web Platform Installer? (WebPI)

The Web Platform Installer (Web PI) is a simple tool that installs Microsoft's entire Web Platform, including IIS7, Visual Web Developer 2008 Express Edition, SQL Server 2008 Express Edition and the .NET Framework. Using the Web Platform Installer’s user interface, you can choose to install either specific products or the entire Microsoft Web Platform onto your computer. The Web PI also helps keep your products up to date by always offering the latest additions to the Web Platform.

What is the Microsoft Web Application Installer? (WebAI):

The Web Application Installer Beta is designed to help get you up and running with the most widely used Web Applications freely available for your Windows Server. Web AI provides support for popular ASP.Net and PHP Web applications including Graffiti, DotNetNuke, WordPress, Drupal, OSCommerce and more. With just a few simple clicks, Web AI will check your machine for the necessary pre-requisites, download these applications from their source location in the community, walk you through basic configuration items and then install them on your computer.

Microsoft Web Platform Installer Benefits

Obtain components of the Microsoft Web Platform quickly and easily

The Microsoft Web Platform Installer provides a single installer that runs on Windows XP SP3, Windows Vista SP1, Windows Server 2003 SP2, and Windows Server 2008, to download the Microsoft Web Platform, including IIS 6.0 and 7.0, SQL Server 2008 Express, .NET Framework 3.5 SP1 and Visual Web Developer 2008 Express SP1. The installer also identifies and installs Extensions for IIS 7.0 and ASP.NET, service packs, database drivers and other relevant Web platform technologies.

Choose which components to install to set up a complete or custom Web platform

The Web Platform Installer offers three installation options – Complete, which installs all available server and development products, Web server components, Web server extensions, and additional technologies; ASP.NET Developer, which installs the server components, tools and technologies that support the development and hosting of ASP.NET applications; and Custom, which allows you to choose exactly which components are installed to customize and streamline your Web platform. For example, you can choose specific components to support developing and hosting PHP applications on IIS 7.0, with support for data-driven applications through the SQL Server driver for PHP.

Install the latest versions of Microsoft Web Platform products, components and tools.

The Web Platform Installer downloads an XML-based manifest of available products and technologies, which is continually updated to ensure that each time the tool is run, it will offer the most current components and the latest versions of each technology, including service packs and other software updates. In addition, the Web Platform Installer will highlight newly available or pre-release software.

Features

  • Single installer for all Microsoft Web Platform components including:
    • Internet Information Services (IIS) 5.1 on Windows XP SP3
    • IIS 6.0 on Windows Server 2003 SP2
    • IIS 7.0 on Windows Vista SP1 and Windows Server 2008
    • SQL Server 2008 Express
    • .NET Framework 3.5 SP1
    • Visual Web Developer 2008 Express SP1
  • ASP.NET, Complete and Custom installation options
  • XML-based product manifest updated automatically when tool is run

Links

 

Posted by imayak | 2 Comments

.NET Threading

Just came across this wonderful series of posts of my friend Raja on .NET threading and its internals.

He has detailed every aspect of .NET threads, its management, pooling and lifecycle. I would recommend anyone to have a look at this great series of 10 posts here

http://blogs.msdn.com/rnarayan/archive/2008/06/17/threading-deep-dive-day-1.aspx

Enjoy !!

Posted by imayak | 1 Comments

Windows Live Hotmail – The Beautiful

What a sweet surprise to land in such a wonderful Inbox page this morning. The Live Mail has changed, for good. Actually, it appears to be in the best of its shape than ever before.

It is 56% faster than previous, clean and friendly looking and very readable. This is really a very good step forward by the Live Mail team in order to compete and win back the people from the competitors.

image

I love the below Contacts picker..

image

image

The contact picker is lightning fast and very easy and intuitive to use.

With the upcoming ever-growing mailbox limit, faster uploads, IM on the web feature, and better use interface, Live Mail might even pull back customers lost in the past few years.

Overall, the new interface deserves a 5 star rating.

Happy Emailing !!! :)

Posted by imayak | 1 Comments

Not Using using() {..}

Yes, the title is a little confusing. Just wanted to make it little interesting that’s all and no other intentions behind it :)

You must have encountered the following error message often while coding WCF,

The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.

And yes, it does not give any other detail except the above message. I had no clue on what is happening when I got this error the first time. But the solution to it is simple. Just *remove* the ‘using..{}’ block and replace it with a try{}..catch() and it works as expected.

Unless you do so, you would never get the actual exception information that has taken place in the method because, WCF replaces all information detail with the above exception message.

For more information on why this happens, take a look at the following blog post.

http://blog.genom-e.com/CommentView,guid,b9e3019d-0d68-4344-9c7a-407774323d0f.aspx

Happy Coding !!

Posted by imayak | 3 Comments

WCF – BEA Aqualogic Interop Issue

There are always constraints when it comes to interoperability between .NET and Java platforms. I had to go through a 3 week long struggle in making a simple thing work on these platforms.

Here is the requirement,

Develop a WCF client which should talk to a Java Web Service running on Aqua Logic Web Server. The service is secured by 2 Way HTTPS (both Server & Client Certs) and message signing for non-repudiation.

Immediately after you see this requirement, anyone would just advice “TransportWithMessageCredentail” security mode which is out of the box as I did. I precisely did the same but wouldn’t succeed. Why?

The reason is simple. “TransportWithMessageCredential” by default signs the “timestamp” element on the SOAP Header and sends it across. It is designed in this way because, the timestamp is the smallest attribute and signing it takes lesser cycles of canonicalization, compared to any other element in the entire SOAP content. But, ALSB (AquaLogic Service Bus)  wouldn’t recognize this request. It was always throwing an error saying,

No id attribute on element http://schemas.xmlsoap.org/soap/envelope/:Body

This means that ALSB requires the Body to be signed, and nothing else.

There is no way to address this interop issue with not only the out-of-box “TransportWithMessageCredentail” security mode but also with any other custom configuration as well.

But there is always a way to make things work in some or the other way. Here I show you how to make it work with a small modification on the service side.

In my above said requirement, the Request is signed (SOAP Body), but not the Response. With the following configuration, you can make WCF sign the request (body) and still use transport security.

<customBinding>
        <binding name="SigningBinding">
          <textMessageEncoding messageVersion="Soap11" />
          <security authenticationMode="MutualCertificate" requireDerivedKeys="false"
              includeTimestamp="false" keyEntropyMode="ClientEntropy"
              messageProtectionOrder="SignBeforeEncrypt"
              messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversation

February2005WSSecurityPolicy11BasicSecurityProfile10"
              requireSecurityContextCancellation="false" securityHeaderLayout="Strict" allowSerializedSigningTokenOnReply="true">
            <secureConversationBootstrap />
            <localClientSettings detectReplays="false"/>
          </security>
          <httpsTransport requireClientCertificate="true"/>
        </binding>
      </customBinding>

But the catch here is, WCF expects the response also to be signed as it signs the request. It necessarily asks you to have the server certificate as well, installed on the client machine which is accessing the service.

If you have the freedom to make the service behave so, you are out of trouble.

Below is the rest of the configuration..

<endpoint address=https://domain.com/services/service
               behaviorConfiguration="ServiceSecurityBehavior" binding="customBinding"
               bindingConfiguration="SigningBinding" contract="MyContract"
               name="SuscribeEventEndPoint">
        <identity>
          <certificateReference storeLocation="LocalMachine" x509FindType="FindByThumbprint"
            findValue="v2d43d464abd384b5cc3a2d669862807241234567" />
        </identity>
      </endpoint>

<behaviors>
      <endpointBehaviors>
        <behavior name="ServiceSecurityBehavior">
          <clientCredentials>
            <clientCertificate findValue="123459f47cb80f67tgb385ae0ebc0b92f8861234"
                               storeLocation="LocalMachine" x509FindType="FindByThumbprint"/>
            <serviceCertificate>
              <defaultCertificate findValue="v2d43d464abd384b5cc3a2d669862807241234567"
                                  storeLocation="LocalMachine" x509FindType="FindByThumbprint"/>

              </serviceCertificate>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
</behaviors>

SvcUtil.exe – Quick Trick

When using SvcUtil.exe to generate proxy for a Web Service which references a .XSD, you might face this error very often:

Error: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.XmlSerializerMessageContractImporter
Error: The attribute tokenType is missing.
XPath to Error Source: //wsdl:definitions[@targetNamespace='
http://fw3rd.services.telefonica.es/services/IDP']/wsdl:portType[@name='TokenTranslation']

Error: Cannot import wsdl:binding
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on.
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='
http://fw3rd.services.telefonica.es/services/IDP']/wsdl:portType[@name='TokenTranslation']
XPath to Error Source: //wsdl:definitions[@targetNamespace='
http://fw3rd.services.telefonica.es/services/IDP']/wsdl:binding[@name='TokenTranslationSOAP']

Error: Cannot import wsdl:port
Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on.
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='
http://fw3rd.service
s.telefonica.es/services/IDP']/wsdl:binding[@name='TokenTranslationSOAP']
XPath to Error Source: //wsdl:definitions[@targetNamespace='
http://fw3rd.services.telefonica.es/services/IDP']/wsdl:service[@name='TokenTranslation']/wsdl:port[@name='TokenTranslationSOAP']

Generating files...
Warning: No code was generated.
If you were trying to generate a client, this could be because the metadata documents did not contain any valid contracts or services
or because all contracts/services were discovered to exist in /reference assemblies. Verify that you passed all the metadata documents to the tool.

Warning: If you would like to generate data contracts from schemas make sure to use the /dataContractOnly option.

It took me plenty of time to figure out the problem. But actually, the solution to it is simple. The SvcUtil.exe requires you to pass the .XSD files as parameters along with the input. It does not take the .XSD by itself even if you have given referenced it in the WSDL document.

The following syntax will fix the problem.

> SvcUtil.exe <WSDL Path> <.XSD Path> [If you have multiple XSDs referenced, give all of them separated by space]

Posted by imayak | 0 Comments

Using Custom SOAP Headers

Here is a simple way of adding custom SOAP Headers on an outgoing request.

Write a Data class as shown below:

[DataContract(Namespace = “http://personalspace.org”, Name ="CustomHeader")]
public class CustomHeader
{
private string something;
[DataMember(Name=”CustomElement”)”]
public string someThing
{
get { return something; }
set { something= value; }
}
}

In the BeforeSendRequest() method of the class that you have implemented the IClientMessageInterceptor interface, add the code below

MessageHeader<CustomHeader> header = new MessageHeader<CustomHeader>();
MyHeaderClass customHeader= new MyHeaderClass();
customHeader.someThing = "My value";
header.Content = header;
header.Actor = “anonymoususer”;

MessageHeader unTypedHeader =
header.GetUntypedHeader("CustomHeader", “
http://personalspace.org”);
request.Headers.Add(unTypedHeader);

That’s it. This will generate a header similar to the one below:

<CustomHeader:actor="Anyone" xmlns="http://personalspace.org">
<CustomElement>My Value</CustomElement>
</CustomHeader>

Enjoy !!

Posted by imayak | 0 Comments

WCF – 2 Way SSL Security using Certificates

I had to work extensively in this topic, and had to go through hundreds of blogs and articles to finally make it work. It’s actually pretty simple but for someone who is new to WCF, it might give a few sleepless nights and some terrible days.

This article assumes that you have a decent knowledge on WCF, IIS hosted WCF Services, transport security and digital certificates.

Configuring the Service:

Open your Service’s web.config file and edit it’s binding configuration as below:

 <bindings>
  <wsHttpBinding>
    <binding name="CertificateWithTransport">
      <security mode="Transport">
        <transport clientCredentialType="Certificate" />
      </security>
    </binding>
    </wsHttpBinding>
</bindings>

The above binding configuration uses wsHttpBinding with Transport mode security. You can also notice that the clientCredentialType is mentioned as “Certificate”. It means, that the consumer of the service is authenticated using a certificate.

Your behavior section should look like this,

<serviceBehaviors>
       <behavior name="BindingBehavior">
                  <serviceMetadata httpsGetEnabled="true"/>
                  <serviceDebug includeExceptionDetailInFaults="true"/>

       </behavior>
     </serviceBehaviors>

Notice that the httpsGetEnabled=”true” attribute. It tells WCF to serve get request on the service. This is should be set to true when you want the consumers to get the wsdl themselves.

If this is set to false, no one will know about this service, unless you give them the wsdl file for consumption. Most of the enterprise services do set this attribute to false for security reasons.

Your Services section should look like this,

<services>
      <service behaviorConfiguration="BindingBehavior"
        name="servicename">
        <endpoint binding="wsHttpBinding"         contract="SSPNotificationReceiver.IReceiverService" bindingConfiguration="CertificateWithTransport">
        </endpoint>
        <!--<endpoint address="mex" binding="mexHttpsBinding"
            name="MetadataBinding" contract="IMetadataExchange"/>-->
      </service>
</services>

The above behavior configuration basically exposes an endpoint with information about the binding type, service contract type and the binding configuration. The bindingConfiguration attribute is the link between the binding settings and the endpoint, and the behaviorConfiguration attribute is the link between the behavior settings and the service settings.

The commented endpoint is for the meta data exchange. Since we are using SSL, the meta data exchange is also secure. But beware, may be this is the most important statement in the entire article. There is something very important about commenting this part at the end of the article.

Setting up IIS and creating the Certificates:

Now, publish the service on IIS using Visual Studio. The following screen shots show you how to configure the IIS SSL mappings.

The following example will show you how to create SSL Server and SSL client certificates using a Certificate Authority running on Windows Server 2003. You can also create your own certs for development through makecert.exe. There are multiple articles on the internet showing how to create certificates using the tool. Just do a Live Search and find out.

  • Set Anonymous Access on IIS for your website (another important task which you might easily miss out) and remove all other authentication modes.

image

  • On the Directory Security tab, click Server Certificate and choose “Create new Certificate”. Follow the wizard to generate the certificate request. The certificate request is by default created in “c:\certreq.txt”
  • Open the Certtificate Services Website. It is generally http://localhost/certsrv on the server which is running the certificate authority.

image

  • Click on the Request a Certificate link

image

  • On the next screen, click on advanced certificate request

image

  • Choose the second option in the above screen

image 

  • In the next screen, paste the contents of the c:\certreq.txt file in the saved request textbox as shown above.
  • After you click submit, the certificate is created and queued in the Pending Requests on the Certificate Authority.
  • Open Certificate Authority in the Windows Server 2003 machine

image

  • Issue the certificate.
  • Again, go back to the Certification Services and click on the “View Status of the pending requests” link in the home page.

image

  • Click on Download Certificate link and save the certificate to a location and name it SSLServerCert.cer

 image

With this, you have successfully created the SSL Server Certificate which can be used for Server Authentication purpose.

Follow these steps to create a Client Authentication certificate.

  • On the Certificate Services home page, click on Request a Certificate option which will take you to the page shown below.

image

  • Click on advanced certificate request option in this page.
  • In the next page, click on “Create and submit a request to CA” option
  • Choose “Client Authentication Certificate” in the Type of certificate needed drop down.
  • Give all text boxes with appropriate information in the Identifying Information section.
  • Check “Mark Keys as exportable” option

image

  • Click Submit
  • As you did for SSL Server Certificate, go to Certification Authority and Issue this certificate as well
  • Come back to the Certificate Services again and click on Install Certificate link

image

  • Your Certificate will be installed in your Personal Store as shown below

image

  • You can export this cert with private key and send it across to the client who is going to use the certificate for authenticating itself.

Configuring IIS for 2 Way SSL Authentication

  • On your website’s directory security tab, click on Server Certificate
  • Click next and choose the option as shown below

image

  • Follow the wizard and select the SSLServerCert.cer that you already saved
  • Once finished, again click Edit button in the Secure Communications Section in Directory Security tab.

image

  • Check the Require secure channel (SSL) option
  • Choose Require client certificates under Client Certificates section

Do not do the following steps if your service needs only SSL Server Authentication. To enable SSL Client authentication also, proceed with the following steps

  • Check Enable client certificate mapping option
  • Click Edit to create a 1-1 certificate mapping
  • Browse to the client certificate that you already created and give map a local user account to it. All requests that carry this certificate will run using the account that you give here
  • Now, you have completed the entire hosting part of the service. The Service that you created is secured by SSL Server as well as SSL Client authentication.

Configuring the client to use SSL

<system.serviceModel>
      <bindings>
        <wsHttpBinding>
          <binding name="WSHttpBinding_IReceiverService">
            <security mode="Transport">
              <transport clientCredentialType="Certificate" />
            </security>
          </binding>
        </wsHttpBinding>
      </bindings>
        <client>
            <endpoint address=
https://YourIP/ReceiverHost.svc behaviorConfiguration="credentialConfiguration"
                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IReceiverService"
                contract="NotificationProxy.IReceiverService" name="WSHttpBinding_IReceiverService" />
        </client>
      <behaviors>
        <endpointBehaviors>
          <behavior name="credentialConfiguration">
            <clientCredentials>
              <clientCertificate findValue="99bbc6c9e6f4a6bd526bc8bb21f9c21f0716c23r"
          storeLocation="CurrentUser"
          x509FindType="FindByThumbprint" />

              </clientCredentials>
          </behavior>
        </endpointBehaviors>
      </behaviors>
    </system.serviceModel>

I have pretty much posted the entire client configuration here. There is nothing very different from the service configuration, but for the behavior and the endpoint address.

Now, you are all set to access the service through the client.

You can access the service using the browser too..

When you do so, the browser (IE) pops up a window showing all the certificates installed in your personal store. You need to select a the certificate that you already installed in it

image

Select the appropriate certificate to view the service screen.

image

That’s it. Your service is up and running on IIS, secured using 2 Way SSL Authentication.

Two most important things not to forget:

As I said earlier there are two things that you should do:

NEVER FORGET TO ENABLE ANONYMOUS ACCESS ON IIS.

NEVER FORGET TO COMMENT THE MEX ENDPOINT ON THE SERVICE CONFIG

These two things are the most crucial part of this entire process. WCF, for some reason that I don’t know, wants Anonymous Access to be enabled on the website. You will get this error if you don’t do so.

Exception: System.ServiceModel.ServiceActivationException: The service '/ReceiverHost.svc' cannot be activated due to an exception during compilation.  The exception message is: Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.. --->

Next, if you forget to leave the mex endpoint uncommented, you might end up seeing this error on the event log of the service.

Exception: System.ServiceModel.ServiceActivationException: The service '/ReceiverHost.svc' cannot be activated due to an exception during compilation.  The exception message is: The SSL settings for the service 'None' does not match those of the IIS 'Ssl, SslNegotiateCert, SslRequireCert, SslMapCert'.. –->

As you can see, this does not convey any reasonable thing to you, leave alone suggestions to fix the error. Be careful with these two settings.

Enjoy WCF !!

Apple's Safari on wrong route

News about Apple's Safari for Windows caught many's attention and everyone was wondering what was Steve Jobs' intention behind it. Apple tries to play an intelligent game here, which will prove futile soon. Already there have been many criticisms on the security vulnerability of Safari browser for Windows. The beta version is simply not yet mature enough to fit into Windows.

Hackers were able to break the browser's security within 2 hours of it's release. More than 6 critical flaws were discovered within a day of it's release.

Now, what is that Apple trying to do? Is it trying to tighten the competition for Internet Explorer? Or, is it trying to eat up some Firefox market? IE is used in not less than 95% of the computers worldwide. Firefox is still finding it very hard to compete with IE in all aspects. Apple's move on Safari is not surprising. In a era where people started appreciating Apple's success in the Music and Entertainment field, Steve wants to release as many products as he can to cash in.

You might remember Apple released Apple TV couple of months ago, which is just a Set Top Box with no single special feature apart from regular basic ones. But yes, it was a White colored Box. Apple also tries to get into the Mobile phone market with Apple iPhone as well, but yet to find huge success.

All one can say is that Apple is trying more than it is capable of, just betting on its User Interface which will not reap success in the long term for them.

 

Posted by imayak | 3 Comments

Zune Website Launched

Microsoft has launched its companion site for its Zune player. The webiste is not going to be Zune.com, but www.zune.net. It will give a free 14 days trial pass initially for its users.

The website will allow the Zune owners to download as many songs as they want in the free trial period, but the songs will go dead after 14 days.

MSN Music will start pointing to Zune website eventually. There will be no selling/renting music on the MSN Music site anymore.

For those affected by this change in policy, you can view Microsoft’s Q&A here.

Posted by imayak | 1 Comments

Microsoft launches sixth-generation Windows Embedded CE

Microsoft Corp. today released the sixth generation of its Windows Embedded CE software, which is used to build real-time operating systems that power millions of smaller devices, from thin-client computers to point-of-sale appliances to Global Positioning System devices.

For more info, read this article..

http://www.computerworld.com/action/article.do?command=viewArticleBasic&taxonomyName=development&articleId=9004677&taxonomyId=11&intsrc=kc_top

Posted by imayak | 0 Comments
More Posts Next page »
 
Page view tracker