C# 4.0 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# 4.0 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Perşembe, Nisan 22, 2010

Enterprise Library 5.0

Data, ön bellek, şifreleme, istisnai durumlar ve daha bir çok özelliği hazırlamış olduğumuz uygulamalarda daha esnek ve kolay geliştirmemize olanak tanıyan Enterprise Library ‘nin 5 sürümünü aşağıdaki linkten indirebilirsiniz. Bizlere sağladığı olanaklar aşağıdan erişebilirsiniz.

  • •Major architectural refactoring that provides improved testability and maintainability through full support of the dependency injection style of development
  • •Dependency injection container independence (Unity ships with Enterprise Library, but you can replace it with a container of your choice)
  • •Programmatic configuration support, including a fluent configuration interface and an XSD schema to enable IntelliSense
  • •Redesign of the configuration tool to provide:
    •     •A more usable and intuitive look and feel
    •     •Extensibility improvements through meta-data driven configuration visualizations that replace the requirement to write design time code
    •     •A wizard framework that can help to simplify complex configuration tasks
    • •Data accessors for more intuitive processing of data query results
    • •Asynchronous data access support
    • •Honoring validation attributes between Validation Application Block and DataAnnotations
    • •Integration with Windows Presentation Foundation (WPF) validation mechanisms
    • •Support for complex configuration scenarios, including additive merge from multiple configuration sources and hierarchical merge
    • •Optimized cache scavenging
    • •Better performance when logging
    • •A reduction of the number of assemblies
    • •Support for the .NET 4.0 Framework and integration with Microsoft Visual Studio 2010
    • •Improvements to Unity

    İyi çalışmalar…

 

Pazartesi, Nisan 12, 2010

Visual Studio 2010 – RTM

Visual Studio 2010 çıktı.

Uzun bir gelişme sürecinin ardından Visual Studio 2010 resmi olarak satışa sunuldu.Visual Studio 2010

IDE üzerinde WPF ‘in nimetlerinden yararlanılarak yapılan değişiklikler, WWF ‘in tasarımın ve akış tiplerinin yenilenmesi, F# dilinin entegre edilmesi, MVC 2 ile beraber gelmesi ve diğer bir çok özelliği ile bugün VS2010 çıkmış bulunuyor. Deneme sürümünü indirip kurmak isteyenler aşağıda verecek olduğum linkten yararlanabilirler. Almak isteyenler için ise Visual Studio 2010 Ultimate satış fiyatı $11850. :)

http://www.microsoft.com/visualstudio/en-us/download

Perşembe, Mayıs 21, 2009

Visual Studio 2010 Beta1 – Kurulum ve Genel Bakış

Gün içerisinde çalışmanın dışında bir de Visual Studio 2010 ‘u kurmakla zaman harcadım. Web installer versionu ile kurduğum VS ‘in kurulum ile ilgili ekran görüntülerini size yazının devamında sunuyor olacağım. Bir çok yenilikle bizlere sunulacak olan VS2010 ilk Beta1 sürümü ile karşımızda. F# ‘tan paralel programlamaya ide güncellemesine kadar nice yeni özelliklerle biz yazılımlacıları mutlu etmeye geliyor.

Kurulum aşaması;

yeni1

yeni2

yeni3

yeni4

yeni5

Yukarıdaki işlemler sonucunda uygumala kurulmuş oluyor. Kurulum sonrası bizi karşılayan ekrandaki değişiklik oldukça köklüdür.

yeni6

yeni7

Zaman içerisinde daha detaylı bilgi vereceğim.

Perşembe, Nisan 16, 2009

WF 4.0: A First Look

Windows Workflow Foundation ‘a ilk balkış niteliğini taşıyan ve  ASP.NET, WCF ve Sharepoint ta nasıl kullanılacağına ilişkin bilgilerinde yer aldığı güzel bir video.
WF 4.0 da gelecek değişiklikler 3.x sürümünü kullanan geliştiricileri oldukça şaşırtacaktır. :)
Hadi videoyu izleyelim.

Not: Tam ekran izlemek için videonun alt kısmında yer alan genişlet simgesine tıklamanız ya da videonun üzerine çift tıklamanız yeterli olacaktır.

Get Microsoft Silverlight

Salı, Mart 31, 2009

YTÜ Semineri ardından

Merhabalar,

Bu hafta sonu güzel bir etkinliği daha geride bıraktık. Yıldız Teknik Üniversitesinde gerçekleşen etkinlikte sql server ‘dan crm ‘e, WPF ‘den MultiPoint ‘e ve daha bir çok konuya değinildi. Seminer içeriğinde bende WPF ‘i anlattım. Genel olarak izleyicilerin görüşleri oldukça güzeldi. Seminer sonunda katılımcıların gözlerinin içinin güldüğünü görmek benim içinde oldukça iyi bir durumdur.

Seminerde anlattığım sunuya linkten erişebilirsiniz. Bir sonraki seminerde sizlerle görüşmek üzere, iyi çalışmalar…

Cumartesi, Mart 14, 2009

C# 4.0: Dynamic Programming

If C# 3.0 was all about Language Integrated Query (LINQ), then C# 4.0 is all about dynamic programming. What exactly does that mean? It means that C# 4.0 brings some of flexibility and declarative style of programming to C#.

image_3

But what does that really mean?

To sum it up in one keyword: dynamic.

C# 4.0 is adding a new dynamic keyword which is used as a data type in much the same way the var keyword is used. Why is this important? The biggest reason is that it allows a C# program to use dynamic dispatch to more naturally create objects coming from a dynamic language.

For example, suppose you have a Calculator object declared in C#, meaning it is statically typed. You interact with your object like this:

Calculator calc = GetCalculator();
int sum = calc.Add(10, 20);

That’s pretty simple and straight forward. Now suppose the Calculator is not a statically typed .NET class (or it is a .NET class but you don’t know the specific type of class), you must do something like this:

object calc = GetCalculator();
Type calcType = calc.GetType();
object res = calcType.InvokeMember("Add",
BindingFlags.InvokeMethod, null,
new object[] { 10, 20 });
int sum = Convert.ToInt32(res);

That’s not nearly as simple. In fact, it’s downright ugly. There is a lot of non-type-safe calls and reflection going on here that you really shouldn’t have to see.

To take this a step further, if we knew that Calculator was a JavaScript class, you must use similar (but still significantly different) code:

ScriptObject calc = GetCalculator();
object res = calc.Invoke("Add", 10, 20);

int sum = Convert.ToInt32(res);

The reason for the differences in syntax is that there is no unification between the two APIs.

In C# 4.0, you can now use the following syntax:

dynamic calc = GetCalculator();
int sum = calc.Add(10, 20);

If you look at this syntax and the earlier statically typed call, you should notice that the only difference is that in C# we are declaring the data type to be dynamic.

image_6

Does this mean that C# is loosing it's roots as a statically typed language or that we should all start moving towards dynamic languages? Absolutely not. What is means is that it is now easier for you to write C# code that talks to objects (or APIs) written in dynamically typed languages. It also means that there is a unified API to talk to any dynamic language. You no longer need to worry about what language you are interoperating with to determine which C# code you must write.

So how does the dynamic keyword work? As I mentioned, it's a keyword in a similar fashion to var. You declare at compile-time the type to be dynamic, but at run-time you get a strongly typed object.

image_9

The dynamic keyword is great for writing C# code that consumes a dynamic object, but what about going the other direction and writing C# code that can be called from a dynamic language? You do this by implementing the IDynamicObject interface (or more simply, inheriting from the abstract DynamicObject class) and providing your own implementation for the member lookup and invocation.

Using the features and capabilities of the new dynamic keyword, the IDynamicObject interface, and the fact that the dynamic dispatch can dispatch to both dynamic and static types, C# effectively gets support for duck-typing.

C# 4.0: dynamic ?

I've not played with the VS2010 CTP much yet, and I've only looked briefly at the documentation and blogs about the new C# 4.0 dynamic type, but a thought occurred to me: why not have the option of making it generic as a way of saying "I will dynamically support this set of operations"?

As an example of what I mean, suppose you have an interface IMessageRouter like this:

public interface IMessageRouter
{
void Send(string message, string destination);
}

(This is an arbitrary example, by the way. The idea isn't specifically more suitable for message routing than anything else.)

I may have various implementations, written in various languages (or COM) which support the Send method with those parameters. Some of those implementations actually implement IMessageRouter but some don't. I'd like to be able to do the following:

dynamic<IMessageRouter> router = GetRouter();
// This is fine (but still invoked dynamically)
router.Send("message", turhal.temizer@netron.com.tr);
// Compilation error: no such overload
router.Send("message", "turhal.temizer@netron.com.tr", 20);

Intellisense would work, and we'd still have some of the benefits of static typing but without the implementations having to know about your interface. Of course, it would be quite easy to create an implementation of the interface which did exactly this - but now imagine that instead of IMessageRouter we had MessageRouter - a concrete class. In this case the compiler would still restrict the caller to the public API of the class, but it wouldn't have to be the real class. No checking would be performed by the compiler that your dynamic type actually supported the operations - given that we're talking about dynamic invocation, that would be impossible to do. It would instead be an "opt-in" restriction the client places on themselves. It could also potentially help with performance - if the binding involved realised that the actual type of the dynamic object natively implemented the interface or was/derived from the class, then no real dynamic calls need be made; just route all directly.

This may all sound a bit fuzzy - I'm extremely sleepy, to be honest - but I think it's a potentially interesting idea. Thoughts?

Çarşamba, Ocak 21, 2009

Visual Studio 2010 CTP VPC: Dealing with Activation Messages

Conjunction with PDC 2008, we are releasing the first Community Technology Preview of Visual Studio 2010 and the .NET Framework 4.0. You can download the release here (also see my download manager post here for a better download experience). This is an exciting release, and is jammed packed with a ton of great new features. One really nice thing about this release is the amount of work that the product teams put into writing walkthroughs which will guide you through most of the new features. I believe this will be our highest-quality Community Technology Preview yet, and we're excited to start getting your feedback on it.

This CTP is being delivered as a Virtual PC (VPC) image that you can download and run locally. In the future, we will provide a way for you to install the software on your own machine, but given where we're at with building the product the setup experience isn't quite ready. The VPC image gives us a great alternative for getting the software to you as early as possible.

This blog post is about the Activation messages you will encounter with this VPC image. In most cases, you can just ignore these messages and continue using the image. These messages are due to the way in which Windows Server 2008 and Office 2007 evaluation software works. For obvious reasons, our release criteria for distributing VPC images requires that we only ship trial software instead of fully licensed software. In the past, Windows evaluations could be configured to expire on a precise date. Due to changes in Windows Server 2008, we no longer have a firm expiration date, but there are Activation reminder messages which will appear while you are running the VPC. The good news is that these Activation messages will not cause Windows to stop working; however, you will have to dismiss some Activation messages from time to time. Note that Word/Excel/Project and Visual Studio may eventually stop working as explained below, but I have provided workarounds in all instances.

Activation Toast
While running this VPC image you will encounter a "toast" from time to time asking you to activate Windows.
Workaround: You can simply ignore this toast, or click the "X" to dismiss it.

1

"Activate Windows Now"
Starting sometime in November 2008, you will receive a modal dialog every time you boot this VPC image.
Workaround: To continue, simply click on "Activate Later." You will have to wait a few seconds before this option becomes available.
2

Word/Excel Activation
The trial versions of Word and Excel which are installed in this VPC image will only work 20 times. Every time you launch Word or Excel you will be reminded of this. After 20 uses, most Word and Excel functionality will stop working. You can still read Word and Excel documents, but you will be unable to use any of the Ribbon functionality. This means that some of the walkthroughs dealing with Word or Excel will not work.
Workaround: The first 20 times you launch Word or Excel, you can simply click "Cancel" to dismiss the activation dialog. After that, if you wish to continue using Word or Excel you will need to revert to a fresh copy of this VPC image. You can download the original VPC here.
3
After 20 uses, the Ribbon functionality in Word and Excel will become greyed out:
4

Project Activation
The Microsoft Project trial installed in this VPC image utilizes a similar limited-use mechanism to that of Word and Excel. Project will work 25 times. After that, you can no longer use Project in this VPC image. It is recommended that you only launch Project if you intend to use one of the walkthroughs that require it.
Workaround: If you need to use Project more than 25 times you should revert to a fresh copy of this VPC image. You can download the original VPC here.
5

Visual Studio 2010 CTP Expiration
Finally, the Visual Studio 2010 CTP will eventually expire. After January 1, 2009, you will no longer be able to launch the Visual Studio 2010 CTP. This is due to a hard-coded expiration date in this CTP. CTP's are pre-release software, so they aren't designed to run forever.
Workaround: If you need to continue using this VPC image after January 1, 2009, you will need to roll back the system clock in your VPC to an earlier date. In order to do so, please follow the instructions post here. Note that you should not roll back your system clock to a date prior to your last interaction with Team Foundation Server, because otherwise Team Foundation Server will get confused. If possible, I would suggest rolling back to a clean copy of the VPC (uncompress the original) and immediately disabling your clock prior to launching it for the first time.
6

Additional Notes
- No Internet Connection: This VPC image ships with Internet connections disabled. It may be tempting to want to enable an Internet connection on this VPC image in order to supply your own product key and activate this image. However, due to security reasons we strongly advise you not to connect this VPC image to any networks (intranet, Internet, etc.). There are also naming conflicts which can occur if you have multiple VPC images on the same network. Changing the computer name of this machine is not a suitable workaround, since it will break many of the walkthroughs and services.
- Hyper-V: This image was designed to work with Virtual PC 2007 SP1. We have had reports from people who have successfully converted this image to work with Hyper-V (see Grant Holliday's blog), but this may result in additional Activation implications which differ from the scenarios documented above.

In Summary
These Activation messages might seem a bit "broken" at first, but by following the workarounds explained above we hope you'll have a great experience with this VPC image. We are excited to show you a preview of what we're building, and we welcome your feedback! To provide us with your feedback, or get additional assistance using this VPC, please visit http://go.microsoft.com/fwlink/?LinkId=131310.

Source: Brain Dane

Çarşamba, Mart 05, 2008

C# 4,0 geliyor...

Yazılım dünyasındaki yeni teknolojilere yetişmek ve takip etmek gerçekten çok zor. Daha C#2008 'in lansmanları yapılırken C# 4,0 şekillenmeye başlamış bile. Bu yazılım gelişim süreçlerinin nereye gideceği nasıl yetişeceğimizi kendi kendime sorgulamaya başladım. Artık en iyi düşünce bana göre bir tanesini tam anlamıyla kavrayıp zamanı geldiği zaman yeni versiyonlarını öğrenmek olacaktır.
C# 4,0 'ın neye benzediğini ve ne gibi değişiklikler getirebileceği hakkındaki bilgilere Sefer ALGAN (C# MVP) 'ının bloğunda yazdığı bir yazıdan ulaşabilirsiniz. Bu linki sizlere veriyorum ve kesinlikle incelemenizi öneriyorum.
http://www.seferalgan.com/entrydetail.aspx?ID=190
Herkese iyi çalışmalar...