달력

11

« 2008/11 »

  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2008. 11. 19. 08:19

Silverlight Version 3 에 대해서... 좋아하는 것2008. 11. 19. 08:19

Scott Guthrie의 Blog에 의하면, 내년에 Release될 Silverlight3에는 몇가지 중요한 변화들이 있을 거라고 한다.

Silverlight 3는 미디어지원을 위해서 H.264를 지원할 것이고, Graphic 적으로는 GPU의 Harware acceleration을 직접적으로 지원하기로 하다고 한다.
(사실 이부분은 .Net Framework의 WPF의 기능개선과도 연관이 있는데, 최근에 발표되어 배포되고 있는 Visual Studio 2008의 SP1에 포함되어 있다. 이전보다 약 30%의 성능 향상이 있다고 한다.)

그리고 Application 개발 측면에서는 좀더 풍부한 데이터 바인팅과 Component들을 지원할 계획을 가지고 있다고 한다.

개발 툴 또한 좀더 비쥬얼한 측면에서 쉽게 작업을 할 수 있도록 기능이 개선된다고 한다.


'좋아하는 것' 카테고리의 다른 글

Apple iPod용 MS Seadragon  (0) 2008.12.17
Micosoft Surface 소개와 데모  (0) 2008.12.02
Welcome to the Application On Silverlight  (0) 2008.11.19
Spring Framework 2.5.6 Released  (1) 2008.11.08
Silverlight 2.0 Windows Auto Update  (1) 2008.10.31
:
Posted by 행복상자
2008. 11. 19. 02:18

Welcome to the Application On Silverlight 좋아하는 것2008. 11. 19. 02:18

최근에는 여러가지 기술적인 진보보다는, 성숙해가는 기술들을 이용한 WEB 2.0이라는 테두리 안에서 서비스들이 꽃을 피우려는 했으나, 그냥 지나가는 시대의 화두로 끝날지도 모른다는 두려움이 크다.

물론 이는 세계적인 불황도 한 몫을 하지만, 그렇다고 기술적인 진보와 발전은 멈추지 않을 것이다.
최근에 신 브라우져 전쟁이라는 화두를 던져보기도 하고 브라우져 춘추 전국 시대와 미래예측 이라는 글에서, 주제 넘게도 미래를 그려보기도 하였다.

최근에 미국의 AOL에서 Silverlight를 이용한 Mail Client 프로그램을 개발하고 이를 공개하였다. (아직은 Beta 버전이다.)

Welcome to the AOL® Mail RIA Beta! 라는 제목으로 간략하게 서비스를 설명하고 있는데,
이는 다음의 URL에서 살표 볼수 있다.

AOL Mail RIA - Hubble Skin
사용자가 체험할 수 있는 메일 클라이언트는 윈도우즈, 웹 메일 등의 형태로 제공되어져 왔기에 우리가 그 기능적인 차이는 느끼기 쉽지 않지만, RIA를 통한 경험적인 차별성은 여러가지로 제공되어 질수 있을 것이다.

AOL이 Silverlight를 이용하여 제공할 수 있는 환경은 아래와 같다.
하지만 사실을 아래 표에 나온 환경들은 Silverlight가 동작할 수 있는 브라우져와 OS들의 조합들이다.

AOL® Mail RIA supports the following browsers and operating systems:

Operating System Internet Explorer 6 Internet Explorer 7 Firefox 3 Safari
Windows Vista - Yes Yes -
Windows XP SP2 Yes Yes Yes -
Mac OS 10.4.8+ (PowerPC) - - - -
Mac OS 10.4.8+ (Intel-based) - - Yes Yes

아래는 로그인 Page이다.


RIA라는 환경은 사용자에게 UX를 제공하기도 하지만, 궁극적으로 Cross-Platform에서 동작이 가능한 사용자 환경을 제공할 수 있다는 것이 가장 큰 매력이라고 할 수 있다.
이른 개발자가 한 환경에서 제대로 개발하면, 나머지는 Silverlight의 Container 또는 Play가 처리해 준다는 것이다. 아직은 컴포넌트나 기능들이 초보적인 걸음마 수준이지만, 이는 얼마 안되어서 해결될 것이다. 기술의 성숙기에는 그에 맞는 결과들이 나타날 것이기 때문이다.

 

 
 
:
Posted by 행복상자
2008. 11. 8. 08:02

Spring Framework 2.5.6 Released 좋아하는 것2008. 11. 8. 08:02

지난 10월 30일에 Spring Framewrk 2.5.6버전이 릴리즈 되었다.
지금 내가 하고 있는 프로젝트는 Spring 2.5.5를 기반으로 개발하고 있는데, 현재 개발자 테스트를 시작하고 있는 중이다. 프로젝트 종료가 올해말로 예정되어 있기 때문에 현재 구성되어 있는 개발 환경을 바꾸지 않고 올해 말까지 진행 하기로 하였다. 

그래도 변경된 부분을 살펴봐야 하기에 로그를 살펴 보았는데, 여느때 보다는 수정된 목록들의 개수가 적었다. 그 만큼 많은 부분들이 안정되어 간다는 말일 거다.

Changes in version 2.5.6 (2008-10-31)
-------------------------------------

General
* removed outdated EAR support from sample applications
* upgraded to AspectJ 1.6.2 (retaining compatibility with AspectJ 1.5.x and 1.6.x)
* upgraded to EHCache 1.5.0 (retaining compatibility with EHCache 1.2 and higher)
* upgraded to TestNG 5.8 (retaining compatibility with TestNG 5.5 and higher)
* upgraded to OpenJPA 1.1.0 (retaining compatibility with OpenJPA 1.0.x as well as 1.2.0)
* upgraded to EclipseLink 1.0.1 (EclipseLinkJpaVendorAdapter requires EclipseLink 1.0.0+ now)

Package org.springframework.aop
* AbstractAutoProxyCreator (as used by "aop:config") correctly ignores null bean instances
* "aop:aspect" doesn't insist on aspect bean reference to be specified when just containing declare-parents elements
* "bean" pointcut matches exposed FactoryBean products only; "&..." syntax supported for matching FactoryBean itself

Package org.springframework.beans
* BeanUtils skips conventional editor check for array classes (in order to not break AspectJ weaving)
* BeanWrapper's introspection resolves bridge methods to find setter method for getter method with covariant return type
* TypeMismatchException message differentiates between editor with inappropriate value returned versus no editor at all
* containing bean definition is exposed to ParserContext for BeanDefinitionDecorators as well
* BeanDefinition objects are considered equal even if their originating resource objects are different
* AbstractFactoryBean's early singleton proxy handles equals, hashCode and toString calls locally (avoiding eager init)
* PropertyPathFactoryBean logs a warning if the target bean is still in creation at the time of obtaining the property
* exposed public "copyRegisteredEditorsTo" method on ConfigurableBeanFactory interface
* fixed corner case in AbstractBeanDefinition where a ClassCastException could arise in "getBeanClass(Name)"
* DefaultSingletonBeanRegistry eagerly cleans up cached dependency information when destroying a bean
* AbstractBeanFactory rejects getBean request with arguments in case of a pre-existing singleton of same name as well
* AbstractAutowireCapableBeanFactory preserves possible matches hint in property exception
* SmartInstantiationAwareBeanPostProcessor's "determineCandidateConstructors" is only invoked for non-null bean Class
* ServiceLocatorFactoryBean handles equals and hashCode based on proxy object identity
* factored out "createBeanDefinition" template method in BeanDefinitionParserDelegate
* turned visibility of BeanDefinitionParserDelegate's "checkNameUniqueness" method to protected
* XML list/set/map elements (in both the beans and the util namespace) support nested description element

Package org.springframework.cache
* EhCacheFactoryBean obtains decorated Ehcache instead of raw Cache, honoring pre-configured cache decorators
* removed useless "diskStorePath" property from EhCacheFactoryBean (ignored by all current EHCache versions anyway)

Package org.springframework.context
* DefaultMessageSourceResolvable and FieldError implement "equals" and "hashCode" such that all fields are respected
* ClassPathBeanDefinitionScanner performs trace/debug logging during class resource introspection
* ClassPathBeanDefinitionScanner ignores same class found multiple times in the classpath (i.e. equal bean definition)
* component-scan preserves original source of scanned bean definitions, for silently ignoring already scanned classes
* annotation-config registers PersistenceAnnotationBeanPostProcessor independent from client bundle's class loader
* added CUSTOM value to FilterType enumeration

Package org.springframework.core
* ClassPathResource uses cleaned path for relative resources as well
* PathMatchingResourcePatternResolver considers URL protocol "vfszip" as jar file (to search JBoss-managed jars)
* GenericCollectionTypeResolver correctly resolves collection element type even when target bean is a collection itself

Package org.springframework.ejb
* SpringBeanAutowiringInterceptor calls "InvocationContext.proceed()" in order to invoke subsequent interceptors as well

Package org.springframework.instrument
* ShadowingClassLoader excludes "net.sf.cglib." package from shadowing by default

Package org.springframework.jdbc
* provided Jdbc4SqlXmlHandler as default implementation of the SqlXmlHandler interface
* added SqlValue class to "jdbc.support" package, with SqlXmlValue derived from SqlValue instead of SqlTypeValue
* SQLErrorCodesFactory always loads its "sql-error-codes.xml" files from Spring's class loader (-> static singleton)
* added "transientDataAccessResourceCodes" category to "sql-error-codes.xml", with default codes for DB2 and Sybase
* SQLErrorCodeSQLExceptionTranslator applies default SQLExceptionSubclassTranslator after error code translation only
* SQLErrorCodeSQLExceptionTranslator is able to work without fallback SQLState translation as well
* SQLExceptionSubclassTranslator translates SQLFeatureNotSupportedException to InvalidDataAccessApiUsageException
* SQLStateSQLExceptionTranslator returns TransientDataAccessResourceException for well-known vendor-specific SQL states
* factored out AbstractFallbackSQLExceptionTranslator base class for consistent "fallbackTranslator" capabilities
* CallableStatementCreatorFactory strictly honors "SqlParameter.isInputValueProvided" (allowing for statement caching)
* JdbcTemplate passes full Calendar argument to JDBC driver even in case of no SQL type specified
* JdbcTemplate does not call the costly "Statement.getWarnings()" unless ignoreWarnings=false or debug logging is on
* added "checkFullyPopulated" setting to BeanPropertyRowMapper, for validating that all bean properties have been mapped

Package org.springframework.jms
* JmsException message and logged JMSException message explicitly includes linked exception now if not already contained
* SingleConnectionFactory only calls "Connection.stop()" on reset when the shared Connection has actually been started
* SingleConnectionFactory explicitly creates Queue/TopicConnection when first call is createQueue/TopicConnection method
* CachingConnectionFactory explicitly creates Queue/TopicSession when first call is createQueue/TopicConnection method
* CachingConnectionFactory's JMS Session proxies implement SessionProxy interface, allowing for access to target Session
* CachingConnectionFactory rolls back cached transacted JMS Sessions on logical close if no commit/rollback was issued
* CachingConnectionFactory explicitly closes cached JMS Sessions on Connection close
* CachingConnectionFactory's cached producers pass on "disableMessageID" and "disableMessageTimestamp" properties
* CachingConnectionFactory also caches MessageConsumers (controlled through "cacheConsumers" property)
* AbstractJmsListeningContainer eagerly clears shared JMS Connection after releasing, avoiding repeated close exceptions
* revised DefaultMessageListenerContainer to correctly work with non-JMS transaction manager and CACHE_CONNECTION level
* DefaultMessageListenerContainer supports a stop notification callback for unlimited maxMessagesPerTask as well now
* introduced SubscriptionNameProvider interface for message listener objects suggesting default subscription names
* "jms:listener-container" uses actual message listener object's class name as default subscription name

Package org.springframework.jmx
* fixed NotificationListenerHolder to correctly handle multiple specified object names
* added "allowEagerInit" property to MBeanExporter, for autodetecting lazy-init beans and FactoryBean-produced objects
* added "environment" property to MBeanClientInterceptor and NotificationListenerRegistar, allowing for JMX env entries
* added "refreshOnConnectFailure" property to MBeanClientInterceptor, allowing for reconnect in case of I/O failure

Package org.springframework.mail
* ConfigurableMimeFileTypeMap explicitly closes the InputStream that it uses for "mime.types" resource reading

Package org.springframework.mock
* SimpleNamingContextBuilder supports "deactivate()"+"activate()", with the standard JNDI provider exposed inbetween

Package org.springframework.orm
* HibernateTemplate detects Spring-managed transactional Session even with SessionFactory proxy and allowCreate=false
* HibernateTemplate's "loadAll" operation selects distinct root entities (avoiding duplicate entries in result list)
* HibernateTemplate translates Hibernate's DataException into a Spring DataIntegrityViolationException (for consistency)
* fixed HibernateTransactionManager's "earlyFlushBeforeCommit" feature to apply to the outermost transaction only
* added "packagesToScan" property to Hibernate AnnotationSessionFactoryBean, for autodetection of @Entity classes
* HibernateJpaDialect checks "EntityManager.getDelegate()" as well to find Hibernate Session (for Seam compatibility)
* added "persistenceXmlLocation" property to DefaultPersistenceUnitManager, as alternative to "persistenceXmlLocations"
* @PersistenceContext of type TRANSACTION allows returned Query objects to be parameterized and executed as well
* @PersistenceContext for default EntityManagerFactory lookup works even in an @Configurable Hibernate entity

Package org.springframework.remoting
* added "interceptors" property to RemoteExporter, allowing for registering custom AOP interceptors before the endpoint
* RmiClientInterceptor always logs connect failure at warn level, even when debug logging (incl. stacktrace) is active
* JndiRmiClientInterceptor skips narrowing for RmiInvocationHandler stubs (fixing a regression in 2.5.4)
* Hessian/Burlap service exporters explicitly close input and output streams now (not relying on servlet container)
* Simple/CommonsHttpInvokerRequestExecutor set the current locale according to LocaleContextHolder as HTTP lang header
* JaxWsPortProxyFactoryBean exposes the JAX-WS BindingProvider interface in the Spring-generated proxy as well

Package org.springframework.scheduling
* SchedulerFactoryBean populates scheduler context first before satisfying SchedulerContextAware on a given JobFactory
* SchedulerFactoryBean uses bean name as default scheduler name (when "schedulerName" property not explicitly specified)
* SchedulerFactoryBean does not accept a pre-registered Scheduler instance in the Quartz SchedulerRepository anymore
* SchedulerFactoryBean does not expose the Spring-created/managed Scheduler to the Quartz SchedulerRepository anymore
* added "exposeSchedulerInRepository" flag to SchedulerFactoryBean, for explicit exposure to the SchedulerRepository
* introduced SchedulerAccessorBean for registering jobs/triggers/listeners on an existing Quartz Scheduler instance
* ScheduledExecutorFactoryBean uses Runnable decorator for logging exceptions that lead to termination of execution

Package org.springframework.test
* SpringJUnit4ClassRunner skips execution of test classes with non-matching @IfProfileValue annotation completely

Package org.springframework.transaction
* AbstractPlatformTransactionManager resumes after any kind of inner begin failure (not just after TransactionException)
* TransactionSynchronizationManager interaction gets logged at trace level only (minimizing debug log per transaction)
* JotmFactoryBean sets "defaultTimeout" value as actual JOTM default (even if no transaction timeout specified at all)

Package org.springframework.util
* fixed "StringUtils.delete" to prevent an eternal loop in case of the pattern being empty
* "StringUtils.cleanPath" preserves leading slash if given in original path
* "FileSystemUtils.copyRecursively" ignores 'special' files (i.e. neither a regular file nor a directory)

Package org.springframework.web
* HttpRequestHandlerServlet propagates HTTP request locale into Spring's LocaleContextHolder
* revised "WebUtils.extractFilenameFromUrlPath" to search actual URI part only even when given a URL with query string
* Log4jNestedDiagnosticContextFilter/Interceptor explicitly remove the NDC stack if depth=0 after the "NDC.pop()" call
* fixed FacesWebRequest's "getParameterValues" implementation to use "ExternalContext.getRequestParameterValuesMap"
* PortletContextResource cleans given path (analogous to ServletContextResource)
* Servlet/PortletContextResource accept path with leading "/../" part as well (as accepted by most servlet containers)
* DispatcherServlet removes error-view-driven servlet request attributes after rendering (for Tomcat compatibility)
* exposed "getParamName()" method on LocaleChangeInterceptor and ThemeChangeInterceptor
* added "cacheSecondsForSessionAttributeHandlers" property to Servlet/Portlet AnnotationMethodHandlerAdapter
* AnnotationMethodHandlerAdapter exposes special ModelMap that removes BindingResult if target attribute gets replaced
* Servlet AnnotationMethodHandlerAdapter always takes first exact @RequestMapping path match as best path match
* @MVC handler methods, model attribute methods and init binder methods allow for overriding a generic superclass method
* @ModelAttribute annotated handler method arguments can resolve to a null value as well (when contained in the model)
* standard method argument subtypes (such as a Principal subclass) fail with a descriptive exception if incompatible
* Portlet AbstractCommandController falls back to lazy command creation if session timed out after action phase
* ByteArray/StringMultipartFileEditor do not log warning but rather include root cause in IllegalArgumentException
* InternalResourceView's "preventDispatchLoop" checks against the same request's URI only (for Portlet compatibility)
* made RedirectView's "renderMergedOutputModel" implementation non-final
* VelocityConfigurer exposes ServletContext as VelocityEngine attribute (analogous to the standard VelocityViewServlet)
* revised XsltView to specify full resource URI as StreamSource system id, for properly resolving relative paths
* officially deprecated AbstractXsltView in favor of XsltView and its more flexible "locateSource" mechanism
* revised error logging during XSLT processing to properly log compilation errors before an eventual fatal exception
* moved internal TransformerUtils helper class to generic "org.springframework.util.xml" package





:
Posted by 행복상자
2008. 11. 6. 23:20

6 New ASP.NET Dynamic Data Videos 공부하는 것2008. 11. 6. 23:20

오늘 ScottGu's의 Blog에 몇 가지 새로운 링크들이 올라왔다.
Microsoft의 최근의 많은 기술적 변화를 이끌고 있는 Scott Guthrie의 선택중에 가장 잘한 부분은 개발자들을 위한 새로운 툴들을 제공라려고 노력하고 있다는 것이다.
그리고, 새로운 기술들을 받아 들이고, 오픈 소스의 영향도 마다하지 않고 소화하려고 하고 있다. 물론 이는 기술적인 거대한 흐름의 하나이고 방향이기도 하지만, 이를 MS의 툴로 하나씩 만들어 가고 있다.

그중 잘하고 있는 것이 Dynamic Data에 대한 것이다. 그리고 앞으로도 가장 발전할 수 있는 기술이라고도 생각이 든다. 그리고 이러한 관전에서 보면, ASP.NET MVC도 역시 마찮가지이다. 앞으로 웹을 개발하고 기술을 익히려 한다면, 이부분을 사전에 공부하는 것도 많은 도움이 될것이다.

관련 링크는 다음과 같다.
           - http://www.asp.net/learn/3.5-SP1/


:
Posted by 행복상자