Korea Evangelist

Developer & Platform Evangelism, Microsoft Korea

December, 2010

  • Korea Evangelist

    {CODE PARTY}개발자를 위한 News+ 48개 링크 업데이트 입니다. 2010-12-22일


    Hot News
    1. {CODE PARTY} On-line 8월 9월 10월 세미나가 모두 올라왔습니다.!!!

    발빠르게 개발자들에 필요한 링크를 모아서 전달해드리는 {CODE PARTY} News+ 서비스를 시작하게 되었습니다.
    가입도 필요없이 편리하게 링크(http://youngwook.com/tag/NEWS+)만으로 혹은 RSS Feed로 접근하실 수 있습니다.
    News+를 실시간으로 받아보고 싶으신 분들은 Twitter @winkey7을 지금 팔로우 해주세요.
    {CODE PARTY}세미나와 기타 이벤트 소식을 리얼 타임으로 알려 드립니다.


    .NET Framework

    How to re-target unit-tests to .Net Framework 3.5 in VS 2010 SP1

    Doing Web Development Better Part 2

    Expression Blend 5-Day On-Ramp Course: A Directory of Material


    Retrieve data from an ASP.Net application using Ado.Net 2.0 disconnected model

    Retrieve data from an ASP.Net application using ADO.Net 2.0 connected model

    Track updated/inserted entities in LINQ to SQL applications

    Now Available:  Updated Windows Azure Platform Training Kit Covering All the Latest Features and Enhancements

    Real World Windows Azure: Interview with Wolf Ruzicka, CEO of EastBanc Technologies, and Evgeny Popov, Head of the Microsoft Business Unit at EastBanc Technologies.

    ADP and NVoicePay Power E-Payments For More Than 18,000 Car Dealers Worldwide with Windows Azure

    Novell joins Windows Azure TAP To Test and Validate Novell Cloud Security Service

    ERROR_UNSUPPORTED_OS seen with Windows Azure Drives

    Page Blob Writes in Windows Azure Storage Client Library does not support Streams with non-zero Position

    Announcing Pirates Love Daisies: an HTML5 Tower Defense Game by Grant Skinner


    Parallelism: In the Cloud, Cluster and Client

    Code Sample

    ANLP - Another .NET Lexer Parser

    NDepend – Code Query Language (CQL)

    ASP.NET 4.0 Script Manager Enhancement Part-2 AjaxFrameworkMode Property

    Entity Association Mapping with Code First Part 2: One-to-One Shared Primary Key Associations

    Identifying AppFabric Access Control Service users uniquely

    Windows Phone 7 Database Rapid Repository V2.0 Examining Operation Requests

    Windows Phone 7 Database Rapid Repository V2.0 Caching

    Windows Phone 7 Database Rapid Repository V2.0 File Helper

    Windows Phone 7 Database Rapid Repository V2.0 Create Read Update and Delete


    Marking Tasks and Bugs as “Done” During a Check-in


    Presales topics on Microsoft Dynamics AX

    “Fuel Tracker” Guidance Application – Drop 3

    Patch notice

    Playing sound effects on Windows Phone 7


    ASP.NET MVC 3: Razor’s @: and <text> syntax

    Access .accdb format’s

    jQuery Templates with ASP.NET MVC

    Retrieving data using stored procedures with LINQ to SQL in an ASP.Net application

    Using a service registry that doesn’t suck part I: UDDI is dead

    ALM Summit Videos Available On-line


    December 16th What's Happening Around Visual Studio

    SQL Server

    Join the TFS development team and help shape the industry

    Visual Studio

    Hiring for Roslyn

    Forward Navigation on the Windows Phone

    How to solve Visual Studio hang problem when working in win7 with Norton antivirus

    ASP.NET MVC 3: Implicit and Explicit code nuggets with Razor 

    Using Custom Validation with LINQ to SQL in an ASP.Net application

    Using Geolocation in the Browser and with Hosted Services

    Windows/SQL Azure

    ASP.NET MVC 3: Razor’s @: and <text> syntax

    KB2425534 - WPF layered window doesn't appear on return from system hibernation

    KB2434700 - Error downloading source - "System.IO.IOException: Unable.." 

    KB977778 - TFS2005SP1: Work Item hyperlink address gets truncated after 255 char

    KB2464222 - NullReferenceException's with events in nested templates in WPF appl

    UI Automation Text Pattern Sample for Internet Explorer 9


  • Korea Evangelist

    [WebMatrix] WebMatrix Beta3의 새로운 기능과 변경된 부분 소개 - 릴리즈 노트


    안녕하세요. 코난 김대우 입니다. 이번에 발표된 WebMatrix Beta3가 발표 되었고, 간단히 새로운점소개해 드리려고 합니���.

    Beta3를 받아서 이전 강좌들을 죽 검토하면서 느낀건, Beta1에서 Beta2처럼 많은 중요한 변경(Breaking Change)가 있기 보다는 대단히 안정성과 마이너한 부분에서 변경이 이루어진 것 같습니다. MVC3와 호환성도 어느정도 근접했다는 느낌이 드네요. 간략히, Beta3의 릴리즈노트 내용을 제목 정도만 휘리릭~ 리뷰하도록 하겠습니다. 도움 되시길 바랍니다.


    Web Matrix and ASP.NET Web Pages (Razor) Beta 3 Release Readme

    WebMatrix Beta 3
    설치 관련 이슈

    Issue: WebMatrix Beta3 설치를 위해서는 반드시 .NET Framework 4.0 버전이 필요합니다.

    The .NET Framework version 4 is required for WebMatrix Beta. In certain cases, the WebMatrix Beta installer will let you try to install on a platform that is not part of the supported configuration set. In particular, Windows Vista without the SP1 update will let you begin the installation of WebMatrix Beta, but the .NET Framework 4 component will fail and block your installation.

    Install on a supported platform, which includes:

    · Windows 7

    · Windows Server 2008

    · Windows Server 2008 R2

    · Windows Vista SP1 or later

    · Windows XP SP3

    · Windows Server 2003 SP2

    Issue: 만약, PC Visual Studio 2008 설치되어 있을 경우, Visual Studio 2008 SP1 있어야만 WebMatrix Beta3 설치됩니다.

    Install Microsoft Visual Studio 2008 SP1 from the Microsoft Download Center.

    Issue: SQL CE 4.0 몇몇 어셈블리가 GAC 설치되지 않는 이슈

    The managed assemblies for SQL Server Compact 4.0 are not placed in the global assembly cache (GAC) when you install SQL Server Compact 4.0 on a 64-bit computer and the computer has only the .NET Framework 3.5 SP1 Client Profile installed. The managed assemblies that are not installed in the GAC are:

    · System.Data.SqlServerCe.dll (ADO.NET provider)

    · System.Data.SqlServerCe.Entity.dll (ADO.NET Entity Framework )

    Uninstall SQL Server Compact 4.0. Download and install the full version of .NET Framework 3.5 SP1 from the following location:
    Microsoft .NET Framework 3.5 Service pack 1 (Full Package)
    Then reinstall SQL Server Compact 4.0.

    Issue: 명령프롬프트에서 SQL CE 제거되지 않는 이슈

    Uninstallation of SQL Server Compact using command-line options does not work in this release.

    Use Programs and Features in the Windows Control Panel to uninstall Microsoft SQL Server Compact 4.0.

    ASP.NET Web Pages 관련 사항 - 새로운 기능 / 변경점 / 이슈

    This section of the document describes new features, changes, and known issues with the Beta 3 release of ASP.NET Web Pages with Razor syntax.

    New Features in Beta 3 for ASP.NET Web Pages with Razor Syntax

    New: "Html.Raw" metohd renders unencoded markup

    The new Html.Raw method lets you render HTML markup as markup instead of rendering encoded output. (By default, ASP.NET Razor encodes strings before rendering them.) The syntax is:


    The following example shows how to use Html.Raw:

    @* Inserts literal markup into the page as specified in the value string. *@

    @Html.Raw("<div>Hello <em>world</em>!</div>")

    ASP.NET Web Pages w/ Razor Beta3 변경점

    Change: "HrefAttribute" 메서드 제거

    The HrefAttribute method of the WebPage class has been removed. This helper was used to encode unsafe characters in URLs. It is no longer required because ASP.NET Razor automatically encodes strings. (Use the new Html.Raw method to render unencoded strings.)

    Change: "@Helper" helper 선언 문구 변경

    In the Beta 3 release, ASP.NET changes how it parses helpers that are created using the @helper syntax. In essence, the @helper syntax is now parsed as a code block instead of as a block of markup that can include code. Therefore, code inside the helper does not need to be enclosed in @{ } blocks. Conversely, markup inside the helper has to be explicitly included in HTML elements or in ASP.NET Razor <text></text> tags.

    For example, the following @helper syntax works in the Beta 3 release:

    @helper ThumbnailLink(string imagePath, int width, int height) {


    string newFileName = "";

    WebImage thumbnail = new WebImage(imagePath);

    if(thumbnail != null){

    thumbnail.Resize(width, height, true, true);

    newFileName = @"~\thumb_" + Path.GetFileName(thumbnail.FileName);




    <a href="@Href(imagePath"><img src="@Href(newFileName" /></a>


    In the Beta 3 release, this helper must be changed to look like the following example:

    @helper ThumbnailLink(string imagePath, int width, int height) {

    string newFileName = "";

    WebImage thumbnail = new WebImage(imagePath);

    if(thumbnail != null){

    thumbnail.Resize(width, height, true, true);

    newFileName = @"~\thumb_" + Path.GetFileName(thumbnail.FileName);



    <a href="@Href(imagePath"><img src="@Href(newFileName" /></a>


    Notice that the @{ } characters around the initial code in the helper is no longer used. This is because the contents of the helpers are treated as a code block by default. The helper renders markup, which starts with the opening <a> tag. If the helper must render plain text or tags that do not include a closing tag (for example, <meta> tags), the content to be rendered must be in <text></text> tags.

    Change: "WebPageContext.HttpContext" 제거됨

    The WebPageContext.HttpContext property has been removed. Use HttpContext.Current instead. (The WebPageContext.HttpContext property simply wrapped this.)

    Change: "Facebook" helper 새로운 패키지로 변경됨

    The Facebook helper has been moved to the Facebook.Helper library, which includes the Facebook helper and additional functionality. You must install this library as a separate package, as described in "Installing Helpers with Package Manager" in the tutorial Getting Started with ASP.NET Pages.

    Change: Membership, Role Security type 새로운 어셈블리로 변경됨

    The following types were moved to the WebMatrix.WebData assembly:

    · ExtendedMembershipProvider

    · SimpleMembershipProvider

    · SimpleRoleProvider

    · WebSecurity

    Change: "TagBuilder" 클래스가 System.Web.WebPages.dll 어셈블리로 변경됨

    The TagBuilder class has been moved to the System.Web.WebPages.dll assembly. Previously, this was in an assembly that was part of ASP.NET MVC. This change means that you do not have to install ASP.NET MVC in order to use the TagBuilder class.

    However, the class is still in the System.Web.Mvc namespace. In order to use the TagBuilder class (for example, in a custom ASP.NET Razor helper), you must reference the namespace (for example, by adding @using System.Web.Mvc to your code).

    Change: Request validation 구문 변경됨 ; "Validation" 클래스 제거됨

    In the Beta 3 release, to disable validation for an individual field or set of fields, you can call the Validation.Exclude method, passing in the name or names of the fields to exclude from validation. A new syntax is available in the Beta 3 release for bypassing validation. The Validation method used in Beta 3 has been removed.

    Note If you do not disable request validation, if users try to upload HTML markup (for example, by using a rich text editor on a page), the website will report an error like A potentially dangerous Request.Form value was detected from the client and the user input is not accepted. If you disable request validation, you must manually check user input to make sure that it does not contain potentially dangerous markup or script using something like the Microsoft Anti-Cross Site Scripting Library V4.0.

    To disable automatic request validation, call the Request.Unvalidated method, passing it the name of the field or other post object that you want to bypass request validation for. You can use this method to bypass validation for any items in the Form, QueryString, Cookies, and ServerVariables collections. The following examples show how to use the Unvalidated method:

    Request["userInput"]; // Validated

    Request.Unvalidated("userInput"); // Validation bypassed

    Request.Unvalidated().Form["userInput"]; // Validation bypassed

    Request.QueryString["userPreference"]; // Validated

    Request.Unvalidated().QueryString["userPreference"]; // Validation bypassed

    ASP.NET Web Pages with Razor Syntax 알려진 이슈들

    Issue: 사용자 정의 membership 테이블 사용시 비정상 동작 발생

    To initialize the membership provider for an ASP.NET Razor website, you call the WebSecurity.InitializeDatabaseConnection method. (In WebMatrix, the Starter Site template includes a call to this method in the _AppStart.cshtml file.) If the autoCreateTables parameter of this method is set to true (by default, it is set to true in the Starter Site template), and if an unrecognized table name is passed to the method (the second parameter), the method does not throw an error. Instead, it automatically creates the table.

    This can be a problem if you intend to use a custom user table for membership but pass the wrong table name to the WebSecurity.InitializeDatabaseConnection method. Because the method does not by default raise an error if the table you specify does not exist, and because it instead creates a new table, the application can appear to be working. However, application code that relies on your custom user table (and on fields in it) can eventually fail with unexpected errors.

    Make sure that the name passed in the InitializeDatabaseConnection method matches the user profile table in the membership database, or make sure that the autoCreateTables parameter is set to false.

    Issue: "Failed to generate a user instance of SQL Server" 오류

    If a WebMatrix Web application uses SQL Server Express and is running IIS 7.5 on Windows 7 or Windows Server 2008 R2, you might see an error that indicates that SQL Server cannot retrieve the user's local application path at run time.

    Make sure that the Windows account that the application runs under (typically NETWORK SERVICE) has read/write permissions for root folders of the application and for subfolders such as App_Data. More detailed information is available in the KnowledgeBase article Problems with SQL Server Express user instancing and ASP.net Web Application Projects.

    Issue: Visual Studio에서 사용자 정의 어셈블리(DLL) 네임스페이스가 자동으로 import 되지 않는 이슈

    If you use custom assemblies in a project in Visual Studio, the namespaces declared in those assemblies are not automatically imported at design time. As a result, references to custom types might not be recognized at design time and are marked as not recognized in Visual Studio (using a "squiggle"). This problem occurs only at design time in Visual Studio; the application itself runs properly.

    Include a using statement (imports in Visual Basic) that references the entities that are not recognized at design time.

    Issue: Visual Studio 인텔리센스는 ASP.NET MVC 3프로젝트 템플릿에서만 동작

    Installing ASP.NET Web Pages does not also install tools for Visual Studio such as IntelliSense and project templates for ASP.NET Web Pages applications.

    To use IntelliSense and project templates for ASP.NET Web Pages applications in Visual Studio, install ASP.NET MVC 3 RC either through the Web Platform Installer or the stand-alone installer.

    Issue: "<helper> class cannot be found" 오류

    After you upgrade to Beta 3, you might see an error that a helper class (for example, the Facebook class) cannot not be found. Starting in Beta 2 and continuing in Beta 3, helpers have been moved to packages that you must explicitly install. Existing sites are not upgraded to include these packages; this includes sites in the \My Documents\IISExpress or \My Documents\My Web Sites folders. In particular, you will see this error if you use the default site in My Sites (WebSite1), which includes a reference to the Twitter helper.

    Comment out calls to any helpers in the site, run the _Admin page, and install the package or packages that include the helpers that you want to use. (For details, see New: Package support added for ASP.NET Web Pages later in this document.) After you've installed the package, you can uncomment the lines that reference helpers.

    Issue: 특정 호스팅 사이트에서 Bin 폴더의 Razor 어셈블리 배포에 문제�� 있을 수 있다.

    If you deploy an ASP.NET Web Pages website to a hosting site, and if you deploy the ASP.NET Razor Beta 3 assemblies to the site's Bin folder, you might experience errors, including the following:

    Could not load type 'Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility' from assembly 'Microsoft.Web.Infrastructure, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

    This can happen if the hosting provider has installed the ASP.NET Web Pages Beta 1 assemblies into the server's global application cache (GAC). Assemblies in the GAC get precedence over assemblies installed locally in the Bin folder.

    Workaround Contact your hosting provider to confirm that the errors you are seeing are due to a conflict between the provider's versions of the assemblies and yours. If so, request that the hosting provider update the assemblies in the server's GAC.

    Issue: 프록시 서버를 통해 피드나 외부 데이터를 읽을 경우

    If the server running the site is behind a proxy server, you might need to configure proxy information in the Web.config file in order to be able to read information that comes from outside your site. For example, if you use the ReCaptcha helper, the helper communicates with the reCAPTCHA service, but might be blocked by your proxy server. Similarly, feeds that are used in ASP.NET Web Pages, such as the feed used by the package manager, might require proxy configuration.

    If you experience problems in working with an external service or working with the package feed, put the following elements into your application's root Web.config file:



    <proxy autoDetect="False"

    proxyaddress="[proxy URL]"/>



    For more information about configuring a proxy server, see <proxy> Element (Network Settings) on the MSDN Web site.

    Issue: "Microsoft.Web.Infrastructure.dll cannot be loaded" 오류

    If you previously installed the Beta 1 version of ASP.NET Web Pages with Razor syntax and then install the Beta 3 version, all appropriate assemblies are installed in the GAC except Microsoft.Web.Infrastructure.dll. As a consequence, when you run ASP.NET Razor pages, you see an error that indicates that Microsoft.Web.Infrastructure.dll could not be loaded.

    This issue does not occur if you loaded the Beta 3 release on a clean computer.

    In Control Panel, uninstall ASP.NET Web Pages. Then reinstall the Beta 3 release.

    Issue: .NET Framework 4.0 제거 재설치 ASP.NET Web Pages with Razor Syntax 사용 불가 이슈

    If you uninstall the .NET Framework version 4 and then reinstall it, ASP.NET Web Pages with Razor syntax is disabled. Pages with the .cshtml extension do not run correctly. ASP.NET Web Pages registers an assembly in the machine root Web.config file, and removing the .NET Framework removes that file. Reinstalling the .NET Framework installs a new version of the configuration file, but does not add the reference for the ASP.NET Web Pages assembly.

    Workaround After reinstalling the .NET Framework, reinstall ASP.NET Web Pages with Razor syntax. This adds the following element to the Web.config file in the machine root, which is typically in the following location:
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config (32-bit)
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config (64-bit)



    <add assembly="Microsoft.WebPages.Configuration, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

    <-- Additional assemblies here. -->



    Issue: Bin 폴더에 이미 배포한 ASP.NET 어셈블리들이 오류를 유발

    During deployment, copies of the ASP.NET Web Pages assemblies (for example, Microsoft.WebPages.dll) to the Bin folder of the website on the server. (This might have happened automatically during deployment or because the developer explicitly copied the assemblies.) However, when the Beta 3 release is installed, errors occurs, such as errors that certain types cannot be found. This occurs because a number of ASP.NET Web Pages types were moved into different namespaces for the Beta 3 release.

    Clear the Bin folder of the deployed application, copy the new assemblies to the folder (or redeploy the application), and then restart the application.

    Issue: IIS7이나 IIS7.5에서 URL cshtml이나 vbhtml 확장자를 찾지 못하는 이슈 발생

    On IIS 7 or IIS 7.5, requests with a URL like the following are not able to find pages that have the .cshtml or .vbhtml extension:
    The issue arises because URL rewriting is not enabled by default for IIS 7 or IIS 7.5. The likeliest scenario is that you do not see the problem when testing locally using IIS Express, but you experience it when you deploy your website to a hosting website.


    · If you have control over the server computer, on the server computer install the update that is described in A update is available that enables certain IIS 7.0 or IIS 7.5 handlers to handle requests whose URLs do not end with a period.

    · If you do not have control over the server computer (for example, you are deploying to a hosting website), add the following to the website's Web.config file:

    <modules runAllManagedModulesForAllRequests="true"/>

    Issue: ASP.NET MVC ASP.NET Web Pages 하나의 어플리케이션에서 사용하는 이슈

    If you were using ASP.NET Web Pages in a Web Application project or ASP.NET MVC application, you might see an error that WebPageHttpApplication cannot be found.

    If you get this error, change the base class from which the application derives. In the Global.asax file, change the following line:

    public class MvcApplication : WebPageHttpApplication { ... }

    To this:

    public class MvcApplication : HttpApplication { ... }

    This in effect reverses a change that was introduced for the Beta 1 release of ASP.NET Web Pages with Razor syntax.

    Issue: SQL CE 설치되어 있지 않은 시스템에 SQL CE 사용하는 어플리케이션을 배포

    Applications that include SQL Server Compact databases can run on a computer where SQL Server Compact is not installed. Microsoft WebMatrix Beta 3 automatically copies these binaries for you and performs the appropriate Web.config file transforms.

    If you need to copy these files and make the Web.config file changes manually, do the following :

    1. Copy the database engine assemblies to the Bin folder (and subfolders) of the application on the target computer:

    o Copy C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll to \Bin

    o Copy C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* to \Bin\x86

    o Copy C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* to \Bin\amd64

    2. In the root folder of the website, create or open a Web.config file. (In WebMatrix Beta 3, this file type is available if you click All in the Choose a File Type dialog box.)

    3. Add the following element as a child of the <configuration> element (not inside the <system.web> element):

    <remove invariant="System.Data.SqlServerCe.4.0"></remove>
    <add name="Microsoft SQL Server Compact Data Provider"
    Description=".NET Framework Data Provider for Microsoft SQL Server Compact"
    type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>

    Issue: Database WebGrid helper들이 Visual Basic Medium Trust 에서 동작 안하는 이슈

    If you are using Visual Basic (creating .vbhtml files), the Database and WebGrid helpers will not work if the application is set to use Medium Trust.

    Temporarily set the application to use Full Trust.

    SQL Server Compact 관련

    Issue: "Encrypt" 속성이 동작 안함

    SQL Server Compact 4.0 does not recognize the Encrypt property of the SqlCeConnection class. You should not use this property to encrypt database files. The Encrypt property was deprecated in SQL Server Compact 3.5 release and was retained only for backward compatibility.

    Use the Encryption Mode property of the SqlCeConnection class to encrypt SQL Server Compact 4.0 database files. The following example shows how to create an encrypted SQL Server Compact 4.0 database using the Encryption Mode property:


    SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;");

    Visual Basic

    Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;")

    To change the encryption mode of an existing SQL Server Compact 4.0 database, do the following:


    SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;");
    engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=<enterStrongPasswordHere>;");

    Visual Basic

    Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;")
    engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=<enterStrongPasswordHere>;")

    To encrypt an unencrypted SQL Server Compact 4.0 database, do the following:


    SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf");
    engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;");

    Visual Basic

    Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;")
    engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;")

    Issue: Microsoft Visual C++ 2008 런타임 라이브러리 요구

    The native DLLs of SQL Server Compact 4.0 need the Microsoft Visual C++ 2008 Runtime Libraries (x86, IA64, and x64), Service Pack 1.

    Install the .NET Framework 3.5 SP1. This also installs the Visual C++ 2008 Runtime Libraries SP1. You can download the libraries from the following location:
    Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package ATL Security Update

    Note that installing the .NET Framework 2.0, 3.0, or 4 does not install the Visual C++ 2008 Runtime Libraries SP1.

    Issue: If SQL Server Compact is installed prior to installing .NET Framework on the computer, its provider invariant name is not registered in the .NET Framework machine.config file

    SQL Server Compact can be installed on a machine that does not have .NET Framework installed because SQL Server Compact does require the .NET framework. If neither .NET Framework version 3.5 nor 4 is installed before you install SQL Server Compact, the SQL Server Compact Setup does not register its provider invariant name in the machine.config file. Any application that relies on the SQL Server Compact entry in the machine.config file will fail. The invariant name registration entry in machine.config looks like the following example:

    <remove invariant="System.Data.SqlServerCe.4.0"></remove>

    name="Microsoft SQL Server Compact Data Provider"


    Description=".NET Framework Data Provider for Microsoft SQL Server Compact"
    type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe,

    Version=, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>

    Uninstall SQL Server Compact 4.0 CTP1. Download and install the full versions of the .NET Framework from the following location:

    Microsoft .NET Framework 3.5 Service pack 1 (Full Package)
    Microsoft .NET Framework 4.0 Release (Full Package)

    Then reinstall SQL Server Compact 4.0 CTP1.

    Applications 설치

    Issue: 내문서” 폴더가 네트워크 공유로 redirect 되어 있으면 설치가 오래 걸린다.

    None. The application might take a while to install, but will install correctly.

    Applications 배포

    Issue: 배포시 "Destination URL" http나 https로 설정되어 있지 않을 경우 동작하지 않을 수 있다.

    In the Publishing Settings dialog box, if the destination URL does not begin with http:// or https://, the site might not work after deployment.

    Make sure that before you publish a site, the destination URL in the Publish Settings dialog box starts with http:// or https://.

    Issue: MySQL 데이터베이스 배포시"Failed to publish the database. This can happen if the remote database cannot run the script." 오류 발생

    The error can occur for a number of reasons. One reason you can see this error is if the database script contains a single quotation character (') and the destination MySQL database's default character set is not to UTF-8.

    Set the default character set for the remote MySQL database to UTF-8.

    Other Issues

    Issue: Search/Filter does not work in Reports for Group By: Issue Type

    When you run a report for a site, if you enter text in the Filter by URL box and click Search, nothing happens. This is because this control is not functional while the Group By state of the report is set to Issue Type, which is the default.

    In the Group By tab of ribbon, click URL to group the entries by their source URL. The text box and button to filter the entries are functional while in this state.

    Issue: IIS Express WCF 어플리케이션을 실행시 오류 발생

    Browsing to a WCF application results in an error like the following one:

    Could not load file or assembly 'Microsoft.Web.Administration, Version=, Culture=neutral,PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

    This occurs because IIS Express Beta release doesn’t support WCF by default.

    Use any one of the following workarounds (workaround #2 requires Microsoft Windows Vista or higher):

    1. Copy the Microsoft.Web.dll and Microsoft.Web.Administration.dll assemblies from the WebMatrix installation location to the bin directory of the WCF application. By default, WebMatrix is installed in the Microsoft WebMatrix subfolder under the system's Program Files folder.

    2. On Microsoft Windows Vista or higher, create a symlink to the assemblies in the bin directory using the following commands. (This approach has the advantage that it does not create a copy of the assemblies.)

    3. mklink Microsoft.Web.Administration.dll "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.Administration.dll"

    mklink Microsoft.Web.dll "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.dll"

    4. Install the two assemblies in the GAC. From an elevated prompt, run the following commands:

    5. gacutil /i "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.Administration.dll"

    gacutil /i "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.dll"

    Issue: 특정 권한 상승 작업이 요구될 경우 WebMatrix Beta3가 작업을 수행 못할 수 있다.

    WebMatrix Beta 3 is unable to perform certain tasks that require elevation, such as installing additional components in the following situations:

    · On Windows Vista or Windows 7, you are logged in with an account that does not have administrative privileges and User Account Control (UAC) is disabled.

    · You are using Microsoft Windows XP or Microsoft Windows Server 2003.

    Most tasks in WebMatrix Beta 3 do not require administrative permission. For those that do, you can perform the operation as an administrator, or follow these steps:

    · On Windows Vista or Windows 7, enable UAC.

    · On Windows XP, add the user to the Administrators security group.

    Issue: "Site from Web Gallery" 비활성화 되어 있다.

    The Site from Web Gallery option is disabled if the Web Platform Installer 3.0 is not installed.

    Install the Microsoft Web Platform Installer 3.0.

    Issue: Windows 서버 2003에서 IIS Express 관리자권한 사용자로 시작되지 못한다.

    On Windows Server 2003, when you launch a page or start IIS Express, IIS Express does not start. For Web pages, an error is displayed that indicates that the application has been started by a non-administrative user.

    Start WebMatrix Beta 3 as an administrative user. For more details, see the following KnowledgeBase article:
    An application that is started by a non-administrative user cannot listen to the HTTP traffic of the computer on which the application is running in Windows Vista, Windows Server 2003, or Windows XP.

    Issue: 구글 크롬이 Run 옵션에 나타나지 않는다.

    Google Chrome is not displayed in the list of browsers under Run on the Home tab.

    Some versions of Google Chrome do not register themselves correctly with the Default Programs feature in Windows. As a workaround, start Google Chrome, click the Customize and control Google Chrome menu, click Options, and then click Make Google Chrome my default browser.

    Issue: "Foreign Key" 대화상자가 PK 입력을 허용하지 않는다.

    The Foreign Key dialog box does not allow you to enter the primary key name from the primary key table.

    This is intentional. You do not need to enter the name of the primary key from the primary key table.

    Issue: The "Relationships" 버튼이 비활성화 되어 있다.

    The Relationships button under the Table tab in the Databases workspace is disabled for SQL Server Compact databases.

    None. SQL Server Compact does not support relationships between tables.

    Issue: 파라미터화된 SQL 쿼리가 예외를 발생시킨다. Parameterized SQL queries throw exceptions

    In SQL Server Compact 4.0, if you do not specify a data type such as SqlDbType or DbType for parameters in parameterized queries, an exception is thrown when the query runs.

    Explicitly set the data type for parameters such as SqlDbType or DbType. This is critical in the case of BLOB data types (image and ntext). Use code like the following:


    SqlCeEngine engine = new SqlCeEngine(connString);
    SqlCeConnection conn = new SqlCeConnection(connString);
    SqlCeCommand cmd = conn.CreateCommand();
    cmd.CommandText = "CREATE TABLE BlobTable(name nvarchar(128), blob ntext);";
    cmd.CommandText = "INSERT INTO BlobTable(name, blob) VALUES (@name, @blob);";
    SqlCeParameter paramName = cmd.Parameters.Add("name", SqlDbType.NVarChar, 128);
    SqlCeParameter paramBlob = cmd.Parameters.Add("blob", SqlDbType.NText);
    paramName.Value = "Name1";
    paramBlob.Value = "Name1".PadLeft(4001);

    Visual Basic

    Dim engine As SqlCeEngine = New SqlCeEngine(connString)
    Dim conn As SqlCeConnection = New SqlCeConnection(connString)
    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText = "CREATE TABLE BlobTable(name nvarchar(128), blob ntext);"
    cmd.CommandText = "INSERT INTO BlobTable(name, blob) VALUES (@name, @blob);"
    Dim paramName As SqlCeParameter
    Dim paramBlob As SqlCeParameterparamName = cmd.Parameters.Add("name", SqlDbType.NVarChar, 128)
    paramName.Value = "Name1"
    paramBlob = cmd.Parameters.Add("blob", SqlDbType.NText)
    paramBlob.Value = "Name1".PadLeft(4001)

    For More Information

    For more information about WebMatrix Beta 3, see the following websites:

  • Korea Evangelist

    Visual Studio를 이용한 ASP.NET Web Pages Razor 프로그래밍


    안녕하세요. 코난 김대우 입니다. 이번에 소개해 드릴 내용은 Razor 개발, 즉 ASP.NET Web Pages Razor개발을 WebMatrix가 아닌 Visual Studio에서 진행하는 방법을 소개해 드리려고 합니다.

    오잉? WebMatrix가 아니라, Visual Studio에서도 개발이 가능 하다고요?

    넵! – 코난이가 꾸준히 말씀 드린 것처럼, WebMatrix는 그 자체만으로도 충분히 웹사이트 개발을 위한 기술들을 제공하고 있습니다. 아울러, 개발자와 함께 자연스럽게 상위 기술로 이어질 수 있는 단계를 제공하지요.

    - IIS의 경우는 윈도우 서버의 IIS 웹서버로
    - SQLCE는 SQL서버로 완전한 마이그레이션을
    - WebMatrix의 ASP.NET Web Pages의 Razor Syntax는 Visual Studio의 ASP.NET MVC와 Razor로

    아래 내용들을 참고하시면 더 많은 도움이 되실 거에요.

    ASP.NET Web Pages에서 MVC로의 자연스러운 연결 - Helper를 MVC에서 사용해 보자
    Razor와 WebMatrix에 대해 후닥닥 적어본 FAQ와 Razor 벗겨먹기~
    WebMatrix는 단순 개발 도구가 아니라 스택(Stack)이다?

    자~ 그렇다면, WebMatrix에서도 다 되는데~ 왜 Visual Studio를 이용하나요?
    - 통합 개발 환경
    - 인텔리 센스 기능
    - Visual Studio를 이용한 디버깅

    좀더 상세히 알아 보도록 하겠습니다.

    통합 개발 환경(IDE)
    아마, 코난이의 포스트를 보시는 분들은 비주얼 스튜디오가 어떤건지 잘 알고 계실거에요. 단순한 웹사이트 개발과 달리 엔터프라이즈 환경의 웹 개발은 다양한 기술요소나 다양한 서비스와의 연계, 비즈니스 레이어 구축, SQL서버는 물론 다양한 이기종 DBMS와의 연계를 필요로 합니다. 통합 개발 환경의 필요성에 대해서는 이미 잘 알고 계시리라 생각합니다.

    인텔리 센스(IntelliSense)
    WebMatrix는 코드 하일라이팅(Code Highlighting)을 제공하지만, 아쉽게도 인텔리센스 기능은 제공하지 않죠. Visual Studio를 이용하실 경우 인텔리 센스 기능을 이용 가능한 장점이 있습니다.


    요렇게 쩜과 함께 우리를 도와주는 인텔리 센스가 cshtml에서 동작합니다.

    디버깅 기능 사용
    WebMatrix에서 Visual Studio를 이용하시게 되는, 가장 중요한 이슈가 아닐까 예상합니다. 네… 기존 ASP.NET 디버깅 경험을 그대로 이용 가능합니다. 말이 필요 없네요.


    중단점(Break Point)를 찍고 단계별로 추적이 가능합니다. 아래 샘플을 만들어 두었으니 도움 되시길 바랍니다.
    그럼~ 저와 함께 설치하고 직접 이용해 보시죠~

    Visual Studio를 이용한 ASP.NET Web Pages Razor 프로그래밍 - 설치


    http://go.microsoft.com/fwlink/?LinkID=205867 경로에서  웹 플랫폼 설치 관리자(WPI-Web Platform Installer)를 설치합니다. 우측 “Add” 누르고 아래의 “Install”하시면 잠시 후 완료됩니다.(MVC와 함께 정확히, 설치되는 Visual Studio Tool 이름은 “Microsoft ASP.NET Web Pages – Visual Studio 2010 Tools” 입니다.


    Visual Studio에서 File – New – Web Site 를 실행합니다.(제가 영문판 이용 중이라… 쿨럭)


    기본 프로젝트와 cshtml이 나오죠. 그냥 F5 눌러서 실행하시면 cshtml – ASP.NET Web Pages Razor가 잘 실행되는게 보이실 겁니다.

    <!DOCTYPE html>

    조금 더 코드를 파 볼까요? 내용을 지우고, 이렇게 ServerInfo를 찍어 보시죠. 참고로, 여기에서 인텔리센스 기능을 맛보셔도 좋을 듯 합니다.


    인텔리 센스 기능 확인 가능

    이제 기다려 보셨던 바로 그 기능! 디버깅을 진행해 보시죠.

        var showToday = true;

    <h2>HTML 조합 반복문</h2>
        @foreach (string item in Request.ServerVariables)

    이런 코드를 실행하겠습니다. 대충~ 맨위 if 구문에 중단점(Break Point)를 찍으시고 F5를 눌러 실행해 보시면?


    걸렸죠? F11눌러서 Step Into 하시면 감동의 Razor 디버깅!!!

    어떠세요? WebMatrix를 이용한 Razor 개발 경험을 그대로 Visual Studio로 가져간다!!! – 조금 감이 오시나요?

    조금 더 앞으로 나가시면, ASP.NET MVC에서 이 Razor 구문을 그대로 이용해 개발도 가능해 진다는거!!!

    한번 더 말씀 드리지만…

    WebMatrix를 통해 개발하는 ASP.NET Web Pages는 몇번 소개해 드린 것처럼, 자연스러운 상위 기술과의 연계와 웹 개발에 대한 커리어 확장을 기본적인 Seamless 컨셉으로 녹이고 있습니다. 

    - IIS의 경우는 윈도우 서버의 IIS 웹서버로

    - SQLCE는 SQL서버로 완전한 마이그레이션을

    - WebMatrix의 ASP.NET Web Pages의 Razor Syntax는 Visual Studio의 ASP.NET MVC와 Razor로

    저와 함께 WebMatrix & Razor 개발이 어디까지 가게 될지 한번 같이 지켜 보시는건 어떨까요? ^_^
    좋은 하루 되세요~

    ASP.NET Web Pages에서 MVC로의 자연스러운 연결 - Helper를 MVC에서 사용해 보자
    Razor와 WebMatrix에 대해 후닥닥 적어본 FAQ와 Razor 벗겨먹기~
    WebMatrix는 단순 개발 도구가 아니라 스택(Stack)이다?

  • Korea Evangelist

    Firestarter 행사에서 본 Silverlight 5.0[3보] 최종


    현지 시간으로 12월 02일 오전 09시 Silverlight Firestarter 행사가 본사에서 진행되었습니다. 미국 현지에서 진행된 행사지만 온라인으로도 생중계 되었기 때문에 한국 개발자들도 실시간으로 온라인에 참여하고 활발하게 Twitter로 의견을 교환하는 모습을 볼 수 있었습니다.

    <그림1>온라인으로 진행되었던 The Firestarter 행사

     키노트에는 이번에도 개발 부문 부사장인 스캇 구슬리가 진행했습니다.  키노트에서 이미 Silverlight는 수 많은 방송에서 실제로 사용되고 있으며 충분한 레퍼런스가 있다고 이야기 하기도 했으며 SAP에서 Silverlight로 구현한 사례를 보여주기도 했습니다. 국내에서도 초기에는 방송사들이 동영상을 스트리밍하기 위한 용도로 먼저 도입했지만 지금은 기업들의 UI 통합작업에 기본 플랫폼으로 활용되는 사례를 쉽게 찾아 볼 수 있게 되었습니다.

    <그림2> Microsoft 개발부문 부사장 스캇 구슬리

    <그림3>SAP의 기업 시나리오 시연

    하지만 이 날 발표된 내용은 놀랍게도 Silverlight 5와 관련된 내용이 발표 되었습니다.
     일반적으로  보통 PDC나 MIX와 같은 대형 행사를 통해서 새로운 버전을 알려왔는데 이번에는 Silverlight를 위한 독자적인 행사를 통해서 발표하게 되었습니다. 

     Silverlight 5에 추가된 기능들을 하나 하나 살펴 보면 사용자들의 피드백을 하나 하나 잘 반영하고 있는 생각이 듭니다. 
     Silverlight 5에서도 미디어와 관련된 기능이 한층 더 강화되었습니다. 특히 그 동안 교육 콘텐츠 업계로 부터 많은 문의를 받아왔던 미디어 재생 속도 제어 기능이 이번에 포함될 예정이라고 합니다. 또 재생 속도 제어와 함께 요청 받는 기능인 하나가 재생 속도와 무관하게 음성의 톤을 유지하는 기능인데 이 기능도 함께 포함될 예정이라고 합니다.

    <그림4>미디어 재생 속도 제어 기능의 시연

    미디어 스트리밍의 경우 IIS Media Service를 통해서 원도우폰7과 아이패드에 스트리밍을 제공하는 모습을 시연하기도 했습니다.

    <그림5>IIS Media Service 4.0을 이용한 원도우폰7 미디어 서비스

    <그림6>IIS Media Service 4.0을 이용한 아이패드 미디어 서비스

    하지만 IIS Media Service를 클라우드 플랫폼인 Azure에서도 제공할 수 있게 할 예정이라고 발표했습니다. 클라우드 플랫폼에서 제공하는 미디어 서비스는 클라우드의 장점인 탄력성과 경제성을 함께 가져 갈 수 있을 것으로 기대 됩니다. 즉 짧은 시간안에 폭주하는 트래픽에 대한 미려한 대체방안이 될 수 있으며 또 대규모 인프라 투자가 없이도 미디어 사업이나 혹은 미디어를 포함하는 서비스를 제공할 수 있게 되었습니다.

    <그림7>Azure support for IIS Media Service

    Silverlight 5에서는 섬세함이 한층 더 강화 된 모습을 보여주고 있습니다. 단적인 예로 데이터를 화면에 자동으로 연결시켜주는 Data Binding의 경우 간단한 기능이지만 오류가 발생할 경우 현재 툴에 의한 디버깅은 불가능 했습니다만 이번 Silverlight 5 부터는 툴에서 직접 문제를 찾아서 해결 할 수 있도록 기능이 추가 되었습니다.  스타일의 동적은 변화 역시 Data Binding을 통해서 만들어 낼 수 있는 점도 상당히 신선하게 받아들여지고 있습니다.
     WCF와의 연계에서도 WS-Trust를 지원하게 되어서 통신 신뢰성을 100% 담보할 수 있게 되었고 Windows Azure와의 통신도 직접적으로 지원할 수 있게 되었습니다.

    <그림7>향상된 데이터 바인딩

    <그림8>WCF & RIA 서비스의 개선점

    <그림9> 더 선명해진 글씨와 강력해진 프린터 지원

     또 출력해야 될 내용을 마음데로 목록을 만들었다가 흩트렸다가 하는 Pivot 기능이 기본 런타임에 포함되었으며 무엇보다도 이제 Full 3D 수준의 랜더링이 지원되고 여기에도 하드웨어 가속이 이용되어서 성능상의 문제가 없이 사용 가능하게 되었습니다. 실제로 스캇 구슬리를 Full 3D로 제작 인체 해부를 하는등의 데모를 3D 객체로 진행했습니다

    <그림10>Pivot 기능의 기본 지원

    <그림11>강력해진 그래픽 지원

    <그림12>스캇 구슬리를 3D로 구성한 데모

    Out of browser도 더욱 강력해 졌습니다. 여러개의 창을 띄울 수 있게 변경되었으며 기업 그룹 정책을 지원하는 등의 변화가 생겼습니다. 제 개인적으로는 Out Of Browser의 변화는 웹으로 시작된 Silverlight가 Desktop/Mobile을 좀 더 강화하겠다는 의지의 표명으로도 보입니다.

    <그림13>추가된 Out of browser 기능

    <그림14>여러 창을 함께 띄우는 것이 지원된다.

    <그림15>강력해진 툴

    개발툴에서 자동으로 UI를 테스트 할 수 있는 기능이 추가 된 것도 놀라운 변화중에 하나 입니다. 일일히 테스트 하는 것이 아니라 한번의 시나리오 녹화로 지속적인 테스트/재현이 가능하고 그 과정을 추적하는 할 수 도 있어서 고품질의 제품을 만들어 내는데 큰 도움이 될 것 같습니다.

    Silverlight 5는 아직 시장에 나온 것은 아닙니다. 하지만 HTML5로 인해서 Silverlight가 약화 될 것이라는 추측이 나오고 있는 시기에 절묘한 타이밍으로 발표한 것은 아닌가 합니다.

     내년 봄 Silverlight 5 베타 ��전이 발표되고 2011년 중에 정식 출시 될 예정이라고 합니다. Silverlight 5의 선전을 기대해 봅니다.

    <그림16> Silverlight 5 출시 일정 발표

  • Korea Evangelist

    ASP.NET Web Pages에서 MVC로의 자연스러운 연결 - Helper를 MVC에서 사용해 보자.


    안녕하세요. 김대우 입니다.

    WebMatrix를 통해 개발하는 ASP.NET Web Pages는 몇번 소개해 드린 것처럼, 자연스러운 상위 기술과의 연계와 웹 개발에 대한 커리어 확장을 기본적인 Seamless 컨셉으로 녹이고 있습니다. 

    - IIS의 경우는 윈도우 서버의 IIS 웹서버로

    - SQLCE는 SQL서버로 완전한 마이그레이션을

    - WebMatrix의 ASP.NET Web Pages의 Razor Syntax는 Visual Studio의 ASP.NET MVC와 Razor로

    그렇다면, Web Pages의 특징 중 하나인 Helper는 어떻게 ASP.NET MVC에서 사용이 가능할까?

    간단히 이 포스트를 보면 알 수 있을 거에요.


    1. ASP.NET MVC 프로젝트를 생성한다.

    2. Web Pages가 이용하는 Helper를 참조 한다. "Microsoft.Web.Helpers.dll" 파일

    3. MVC 에서 Helper 코드를 호출한다.

    <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

    <%@ Import Namespace="Microsoft.Web.Helpers" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <tr valign="top">
    <%=Twitter.Search("ASP.NET MVC")%>
    <tr valign="top">
    <%= LinkShare.GetHtml("Imran Baloch's Blog", "http://weblogs.asp.net/imranbaloch")%>

    보시면 WebMatrix에서 사용하는 Helper를 호출하는 방법이 같습니다.

    이렇게 Helper를 호출한, 완성된 결과를 확인 가능합니다.

    WebMatrix의 Web Pages & Razor가, 구조화되고 규모가 큰 엔터프라이즈급 환경에서 사용하는 ASP.NET MVC로 자연스럽게 연계 가능 이라는 명제는 개발자에게는 어떤 의미가 될까?

    Razor가 발표되서, 해야할 재미있는 일들이 많아서 기쁘다.

Page 1 of 5 (25 items) 12345