Framework Mindmap #1






[그림1] Application Framework


 프레임웍을 만들때 사용하고 있는 마인드 맵이다. 






Microsoft Virtual Academy


참조 URL
  1. https://www.microsoftvirtualacademy.com/


 페이스 북의 황리건 에반젤리스트께서 알려 주셨네요!. 마이크로 소프트에서 직접 운영하는 온라인 가상 아카데미로 무료 교육을 받을 수 있습니다. 




Prism for the Windows Runtime Templates


참조 URL
  1. http://visualstudiogallery.msdn.microsoft.com/e86649de-2b5e-45bb-bc65-5c6499b92b34
  2. Developing a Windows Store business app using C#, XAML, and Prism for the Windows Runtime
  3. http://www.microsoft.com/en-us/download/details.aspx?id=39042
  4. http://code.msdn.microsoft.com/windowsapps/Prism-for-the-Windows-86b8fb72
  5. http://prismwindowsruntime.codeplex.com/
  6. http://blogs.msdn.com/b/blaine/archive/2012/12/13/prism-on-net-4-5-and-the-road-to-windows-8-apps.aspx
  7. http://msdn.microsoft.com/en-us/library/windows/apps/xx130643.aspx
  8. http://msdn.microsoft.com/en-us/library/windows/apps/br211368.aspx


 

 Prism 프레임웍이 Windows 8 app 용 템플릿이 2013-05-24에 발표 되었다. 'http://visualstudiogallery.msdn.microsoft.com/e86649de-2b5e-45bb-bc65-5c6499b92b34'에서 다운받아 설치 하면 '그림1'과 같은 선택 화면이 나온다.


[그림1] 템플릿 선택 화면



 아래 표는 Prism 관련 정보를 패턴앤 프락틱스에서 가져왔으니 보다 자세한 정보는 해당 사이트에서 직접 확인하면 될 것이다.

Active Releases

The Prism family of guidance provides support for the multiple platforms. Each release is optimized for the specific platform it supports.


Platform & Release

Scenario

Download

Nuget package

Windows 8:

Prism for Windows the Windows Runtime


  • Windows Store Business Apps
  • Apps built for change and built to last

Source code

PDF


  • Prism.StoreApps
  • Prism.PubSubEvents

Silverlight 5 and WPF for .NET 4.0:

Prism 4.1 - February 2012


  • Composite Apps
  • Apps built for change and built to last

Source code

eBook/Book


  • Prism
  • Prism.UnityExtensions
  • Prism.MEFExtensions

Silverlight 4 and WPF for .NET 4.0:

Prism 4.0 - November 2010


  • Composite Apps
  • Apps built for change and built to last

Source code

eBook/Book

PDF

  • Prism
  • Prism.UnityExtensions
  • Prism.MEFExtensions

Windows Phone 7.x:

Prism for Windows Phone 7.x

  • Apps built for change and built to last

Source code

PDF


  • Prism.Phone




Prism Team Blogs

Stay informed and up to date about Prism and patterns & practices.

Name

Blogs and Home Pages

Twitter

Francis Cheung

http://blogs.msdn.com/b/francischeung/


Blaine Wastell

http://blogs.msdn.com/b/blaine/

@blainewastell

patterns & practices

http://www.microsoft.com/practices

@mspnp










Log4Net 간단 사용법


참조 URL
  1. http://blog.daum.net/joshuajh/5671007




1. 설정 초기화


Assembly.cs 파일을 이용 한 초기화 작업 수행


[코드1] Assembly.cs


 로그를 사용하려는 클래스에서 초기화 작업 수행


[코드2] 해당 클래스에서 초기화



2. 로그 설정 파일


 기본적인 설정 파일을 log4net.xml 파일이지만 웹 서버에서 호스팅을 할 때 URL을 직접 치고 들어오면 사용자가 설정 파일을 받을 수 있기 대문에 제외되어 있는 config 파일 형식으로 수정하였다.


[코드3] Log4Net 설정 파일 - log4net.config


 '코드3'에서의 설정 파일로 로그에 저장할 수 있는 형식과 저장 방법을 설정할 수 있다. 위 설정 파일을 root 노드에서 'RollingFile'을 사용하도록 설정하였으며 'appender name="RollingFile" '을 찾아가 보면 Log4Net에서 제공해주는 'log4net.Appender.RollingFileAppender' 형식으로 저장하도록 기본 제공하고 있다.



3. 로그 사용


 해당 클래스에서의 객체 생성 하기


[코드4] 해당 클래스에서 객체 인스턴스 화 작업



 위 '코드4'에서와 같이 로그를 사용할 해당 클래스에서 초기화를 수행하면 로그를 사용할 수 있게 된다. '코드5'를 통해 이제 로그를 저장하여 보자.


[코드5] Log4Net으로 로그 저장


 '코드5'와 같이 필요한 곳에서 필요한 로그 저장 메소드를 추가하면 될 것이다. 그리고 추가로 '코드4'에서 주석 처리된 '로그네임'을 사용하여 초기화를 하면 설정파일에 '로그네임'의 노드를 찾아서 추가적인 로그 저장 방법을 추가할 수 있다.





OWA 로그인시 이전 암호로 로그인 되는 문제

( An old password still works after you change it in Outlook Web Access )

참조 URL
  1. http://support.microsoft.com/kb/267568/en-us
  2. http://support.microsoft.com/kb/152526/en-us



 프로젝트를 한참 진행중에 암호 변경에 대한 싱크를 맞춰야 하는 사안이 있었다. 테스트를 하면서 AD까지는 실시간 동기화가 되어 정상적으로 변경이 되었으나 OWA를 로그인 하는 과정에서 이전 암호를 입력해도 정상적으로 진입이 되는 오류가 있게 되었다. 몇번의 암호 변경을 진행해도 이전 암호와 현재 수정된 암호를 입력하면 로그인이 되었다. 팀 내에서 이 이슈에 대해 고민 하다가 팀장님게서 해당 문제에 대해 기억을 해내셔서 해당 이슈에 대한 자료를 찾을 수가 있었다. 그 이유는 성능 이슈 때문에 익스체인지 2000부터 IIS에서 캐시를 사용하여 성능 향상을 도모하였던 것이다. 기본 세팅 시간을 15분이므로 이 시간동안은 이전 암호를 입력해도 로그인이 되었다. 이와 같은 일로 해매지 않기 위해 공유하고자 이 글을 올린다. 


해결 방법은 위 '참조 URL'에서 나온 방법으로 


레지스트리를 편집하면 된다.


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters


Add Value, and then add the following registry value:

Value Name: UserTokenTTL (Note This is case-sensitive!)

Data Type: REG_DWORD

Value Range: 0 - 0x7FFFFFFF (Note This unit is in seconds.)



IIS 재시작을 하면 된다.










Chocolatey - package manager
( Windows에 특정 패키지를 쉽게 설치 하도록 지원 )


참조 URL
  1. http://chocolatey.org/
  2. https://github.com/chocolatey/chocolatey
  3. http://www.hanselman.com/blog/IsTheWindowsUserReadyForAptget.aspx
  4. http://chocolatey.org/packages - Chocolatey를 통해 설치할 수 있는 패키지 리스트
  5. http://devnote.tistory.com/241
  6. http://mz2guild.tumblr.com/post/45821046802/http-chocolatey-org


 Visual studio의 Nuget은 필요한 라이브러리를 온라인을 통해 최신의 버전을 받아 추가할 수 있도록 해주는 편리한 도구이다. 이것과 같은 방식으로 Windows에 최신 프로그램을 손 쉽게 설치 할 수 있도록 지원해 주는 도구다. 리눅스의 apt-get과 같은 역할을 담당한다. 이 프로그램을 통해 설치할 수 있는 프로그램이 1000여가지가 넘고 있다. 리스트 확인은 'http://chocolatey.org/packages'으로 확인해 보면 된다. '그림3'에서 설치 가능한 리스트의 첫 페이지를 올려 놓았으니 확인해 보자.


[그림1] 메인 이미지


[그림2] 로고




[그림3] 패키지 리스트

Nancy Framework


참조 URL
  1. http://nancyfx.org/
  2. http://samples.nancyfx.org/
  3. https://github.com/NancyFx - Source code
  4. http://www.hanselman.com/blog/OneASPNETNancyTemplatesForVisualStudio.aspx
  5. https://github.com/NancyFx/Nancy/wiki/View-engines
  6. https://github.com/NancyFx/Nancy/wiki/Hosting-Nancy-with-asp.net
  7. http://hoons.net/Board/asptip/Content/50727
  8. http://blogs.lessthandot.com/index.php/All/nancy:



Nancy is a lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono. The goal of the framework is to stay out of the way as much as possible and provide a super-duper-happy-path to all interactions.

Nancy is designed to handle DELETE, GET, HEAD, OPTIONS, POST, PUT and PATCH requests and provides a simple, elegant, Domain Specific Language (DSL) for returning a response with just a couple of keystrokes, leaving you with more time to focus on the important bits.. your code and your application.


 Nancy는 가볍고, 작은 격식과 Mono와 .Net의 HTTP 서비스 기반 개발 프레임웍이다. Nancy는 Delete, Get, Head, Options, Post, Put 요청 처리를 간단하고 명쾌하게 처리되도록 디자인 되었다.



 아래 코드는 NancyModule를 상속 받아 '/greet/{name}'로 주소로 요청을 했을 때 해당 값을 리턴하는 예제다. 이렇게 간단하게 Restful을 구현할 수 있는 프레임웍이다.


[코드1] Nancy에 소개된 예제 코드 



[코드2] Hanselman에 소개된 에제 코드



 ASP.NET MVC나 일반적이 MVC 스타일의 프레임웍이다.



[코드3] Hanselman에 소개된 JSON 리턴 예제 코드


 Json으로 리턴되기를 바란다면 '코드3'과 같이 진행하면 될 것이다. 이 밖에도 Nancy.template, Nancy.Website, Nancy.Demo, View Engine 같은 도구나 데모도 있으니 살펴 보기를 바란다. ( https://github.com/NancyFx )

끝으로 ASP.NET과 같이 호스팅을 할 수 있는 페이지 링크로 마무리 하도록 하겠다. 

https://github.com/NancyFx/Nancy/wiki/Hosting-Nancy-with-asp.net )


Features

  • Built from the bottom up, not simply a DSL on top of an existing framework. Removing limitations and feature hacks of an underlying framework, as well as the need to reference more assemblies than you need. keep it light
  • Run anywhere. Nancy is not built on any specific hosting technology can be run anywhere. Out of the box, Nancy supports running on ASP.NET/IIS, WCF, Self-hosting and any OWIN
  • Ultra lightweight action declarations for GET, HEAD, PUT, POST, DELETE, OPTIONS and PATCH requests
  • View engine integration (Razor, Spark, dotLiquid, our own SuperSimpleViewEngine and many more)
  • Powerful request path matching that includes advanced parameter capabilities. The path matching strategy can be replaced with custom implementations to fit your exact needs
  • Easy response syntax, enabling you to return things like int, string, HttpStatusCode and Action elements without having to explicitly cast or wrap your response - you just return it and Nancy will do the work for you
  • A powerful, light-weight, testing framework to help you verify the behavior of your application
  • Content negotiation
  • And much, much more








Monodevelop


참조 URL
  1. http://monodevelop.com/
  2. http://monodevelop.com/Documentation/Feature_List
  3. http://www.mono-project.com/Compatibility



 MonoDevelop is a cross-platform IDE primarily designed for C# and other .NET languages. MonoDevelop enables developers to quickly write desktop and ASP.NET Web applications on Linux, Windows and Mac OSX. MonoDevelop makes it easy for developers to port .NET applications created with Visual Studio to Linux and Mac OSX maintaining a single code base for all platforms.

 

 MonoDevelop는 C#과 .NET 언어 개발을 위한  다중 플랫폼을 지원 IDE 도구다. 리눅스, 윈도우, 맥에서 Desktop와 ASP.NET Web application을 지원한다. 하나의 코드로 다중 플랫폼 지원을 지원할 수 있다.

Feature Highlights

  • Multi-platform
    Supports Linux, Windows and Mac OS X.
  • Advanced Text Editing
    Code completion support for C# 4, code templates, code folding.
  • Configurable workbench
    Fully customizable window layouts, user defined key bindings, external tools
  • Multiple language support
    C#, Visual Basic.Net, C/C++, Vala
  • Integrated Debugger
    For debugging Mono and native applications
  • GTK# Visual Designer
    Easily build GTK# applications
  • ASP.NET
    Create web projects with full code completion support and test on XSP, the Mono web server.
  • Other tools
    Source control, makefile integration, unit testing, packaging and deployment, localization


 아쉽게도 ASP.NET MVC는 기능 리스트에서 확인할 수 없네요. 이 도구와 Mono에 관계된 프로젝트를 진행해 보지 않아 많은 부분에 대해서 모르지만 조만간 Mono와 이 툴에 대해서 사용하며 테스트를 해봐야 겠습니다. 그리고 Xamarin으로 안드로이드나 iOS 앱 개발에 대해서도 흥미가 생기고 있습니다.

^^. 할일은 많은데 몸은 하나라 바쁘기만 하네요. 혹 멀티 플랫폼을 지원해야 하는 프로젝트가 있다면 한번 검토해 보시면 되겠습니다.


 페이스북에서 엄준일 블로거(http://blog.powerumc.kr/)님이 친절하게 알려주신 정보입니다. Mono 프로젝트 호환성 페이지에서 살펴 보면 Mono 자체는 ASP.NET MVC4 ( - .Net framework 4.5까지 )까지 지원한다고 되어 있었습니다.

 - http://www.mono-project.com/Compatibility ( 아직은 일분 기능만 구현됨 )

 - http://www.mono-project.com/Main_Page 모노 프로젝트 홈페이지


















Node.js에서 C#, F#, Python, PowerShell 사용


참조 URL
  1. http://tjanczuk.github.io/edge/#/
  2. https://github.com/tjanczuk/edge
  3. http://weblogs.asp.net/shijuvarghese/archive/2013/05/29/edge-js-running-node-js-and-net-in-one-process.aspx


 Node.js에서 C#, F#, Python, PowerShell을 사용할 수 있도록 해주는 라이브러리다. 아래로 Edge.js에서 알려준 코드를 한번에 알 수 있도록 나열하였다. 그리고 아래 '그림3'에 성능 비교표도 있으니 확인해 보기 바랍니다.



[코드] C# 사용 코드



[코드] F# 사용 코드





[코드] Python 사용 코드




[코드] PowerShell 사용 코드



 위와 같은 방법으로 다른 언어에 대해서 사용할 수 있다.



[그림1] Edge.js 컨셉



[그림2] Interop model




[그림3] Performance

https://github.com/tjanczuk/edge/wiki/Performance )


 그림3은 In-process와 Cross-process로 호출 했을 때의 성능 비교 표다. 두번째와 세번째가 .Net과 통신 하였을 때의 차이점임을 볼 때 Node.js에서 호출 할 수 있도록 .Net에서 만들고 사용한다면 별도의 서비스로 만들어 통신할 때보다 성능 상의 이점을 많이 얻을 수 있을 것이다.

jQuery UI + jQuery Tool UI


참조 URL
  1. http://jqueryui.com/
  2. http://jquerytools.org/


 요즘 웹 개발의 트랜드가 Twitter에서 배포하기 시작한 BootStrap을 사용하여 개발하는 추세가 이전보다 많아 지고 있으며, BootStrap를 더욱 확장하여 제공하는 유,무료 사이트 들도 많이 존재 하고 있다. 그렇지만 기존에 jQuery와 일반 CSS로 개발된 사이트를 한번에 엎어서 개발 할 수 없다면 jQueryUI나 jQuery Tool UI가 대안이 될 수 있을 것이라 소개한다.

















+ Recent posts