اشتراک‌ها
نگارش نهایی ASP.NET Core 2.1.0 منتشر شد

Today we're thrilled to announce the release of ASP.NET Core 2.1.0! This is the latest release of our open-source and cross-platform web framework for .NET and it's now ready for production use. 

نگارش نهایی ASP.NET Core 2.1.0 منتشر شد
اشتراک‌ها
سری آموزشی مقدمات Typescript

TypeScript for Beginners, Part 1: Getting Started
TypeScript for Beginners, Part 2: Basic Data Types
TypeScript for Beginners, Part 3: Interfaces
TypeScript for Beginners, Part 4: Classes

سری آموزشی مقدمات Typescript
مطالب
توسعه برنامه های Cross Platform با Xamarin Forms & Bit Framework - قسمت اول
یکی از دغدغه‌های جدی امروزه توسعه دهندگان نرم افزار در سمت Front end، توسعه برنامه‌های Cross Platform است. در این سری آموزشی به صورت قدم به قدم و پروژه محور می‌خواهیم برنامه‌ای را برای Android/iOS/Windows توسعه دهیم که روی کامپیوتر، تبلت و موبایل به خوبی کار کند.
انتخاب ابزار درست برای شروع به کار از اهمیت شایانی برخوردار است و بد نیست در ابتدا به بررسی دلایل انتخاب ابزارهایی بپردازیم که قرار است در این دوره از آنها استفاده شود.

۱- زبان برنامه نویسی: CSharp
CSharp با وجود امکاناتی مانند Generics‌، Lambda Expressions، Linq، Async و ... که تا حدودی در سایر زبان‌ها هم هستند، زبانی خوش ساختار و کاربردی است. همچنین اضافه شدن امکانات جدیدی مانند ref returns و ... نشان دهنده این است که این زبان رو به جلو در حرکت و در برخی موارد پیشرو است. اما در توسعه یک برنامه Cross Platform مواردی اهمیت پیدا می‌کنند که شاید توسعه دهنده نرم افزار مستقیما با آنها درگیر نشود، ولی از آن‌ها تاثیر می‌پذیرد. در زبان CSharp مواردی مانند P/Invoke ،Pointers، Extern و ... جزء این دست از موارد هستند که کمک می‌کنند CSharp به یکی از لذت بخش‌ترین زبان هایی تبدیل شود که قابلیت فراخوانی 100% امکانات زبان‌های دیگر را بدون اما و اگرهای فراوان داشته باشد.
در سایر زبان‌های Cross Platform اگر کتابخانه‌های توسعه داده شده و ترکیب زبان‌های برنامه نویسی استفاده شده در آنها را بررسی کنید، می‌بینید که اگر قرار است کتابخانه مربوطه مثلا در JavaScript استفاده شود، توسعه دهنده کد، درصدی از کد را با Java، درصدی را با Swift و درصدی را با JavaScript توسعه داده است! اگر معادل همان کتابخانه را برای CSharp پیدا کنید، می‌بینید که تمامی قسمت‌های مربوط به اندروید، iOS و ویندوز به زبان CSharp است.
برای مثال در ادامه کدهای مربوط به پروژه‌ای را می‌بینید که هدف آن، ارائه متدهایی ساده برای کار با امکانات مختلف دستگاه، به صورت Cross Platform هست. مثلا برای بررسی وضعیت باطری بنویسید:
var state = Battery.State; //  Charging, Full, Discharging, ...
که تماما با CSharp توسعه داده شده است.
اما معادل چنین پروژه‌ای در هیچ زبان دیگری به صورت 100% با خود آن زبان توسعه داده نشده‌است و بیشتر مواقع با چنین چیزی مواجه می‌شوید:

این مسئله وقتی حائز اهمیت می‌شود که در پروژه‌تان به سمت کارهایی حرکت کنید که کمی خاص باشند و نتوانید کتابخانه‌ای را پیدا کنید که نیازهای شما را پوشش دهد و یا از کیفیت خوبی برخوردار نباشد و ... و خلاصه بخواهید کمی بیشتر دست به کد شوید. در چنین مواقعی شما عملا درگیر چندین زبان و محیط توسعه و سیستم عامل و Debugger و ... می‌شوید. به هر میزان که برنامه شما خاص باشد، این هزینه افزایش پیدا می‌کند تا جایی که ممکن است ادامه توسعه نرم افزار را غیر ممکن کند.
در CSharp شما به صد در صد امکانات سیستم عامل‌ها (Android/iOS/Windows/Linux/Mac/Tizen) دسترسی دارید.

۲- اجرا کننده برنامه: NET.
انتخاب NET. و کتابخانه‌های آن مانند Task Parallel Library - Entity Framework(Sqlite) - Noda - JSON.NET که در هر زمینه‌ای بالاترین کیفیت ممکن را به شما ارائه می‌کنند به خودی خود منطقی به نظر می‌رسد. اما تمامی این‌ها در کنار سرعت اجرای NET. به صورت Native و همچنین قابلیت اجرای NET. در تمامی سیستم عامل‌ها و همچنین امکان اجرای آن در مرورگر به کمک استاندارد Web Assembly آن را به انتخابی فوق العاده بدل می‌کند. سرعت گسترش محبوبیت و استفاده از NET. در دنیا نیز دلیل دیگری است برای اطمینان خاطر از انتخاب درست.

۳- Xamarin forms
Xamarin forms همه آن چیزهای پایه‌ای است که برای نوشتن یک برنامه لازم داریم. کنترل هایی مانند ListView، Button و ...به همراه Binding - Navigation و ...
در عمل می‌توانید آن را معادل Angular & Angular Material بدانید. وقتی شما فرمی را با Xamarin Forms توسعه می‌دهید و درون آن دکمه‌ای است که از فرم اول، شما را به فرم دوم می‌برد، می‌توانید آن را در هر جایی که Xamarin forms پشتیبانی می‌کند، استفاده کنید. پشتیبانی Xamarin forms برای Android/iOS/Windows خوب و برای Linux/Mac/Tizen و Web در مراحل اولیه است.
در Xamarin forms شما UI کاملا Native خواهید داشت.

۴- Prism Patterns & practices
Prism همه آن چیزی است که برای نوشتن یک برنامه با کیفیت، با قابلیت نگهداری بالا و تست پذیر احتیاج داریم.

با نقش Bit و کمک‌های آن در طول مسیر آموزش بیشتر آشنا خواهیم شد.

در قسمت‌های بعدی به آموزش نصب و نحوه دیباگ کردن کد و ارائه پابلیش در Android-iOS-Windows خواهیم پرداخت و سپس وارد کدنویسی شده و پروژه اولیه را خواهیم ساخت و در قسمت‌های بعد از آن هم کار با دیتابیس کلاینت ساید، ارتباط با سرور و ... را آموزش می‌بینیم.
اگر قبلا Xamarin Forms را تست کرده‌اید و به علت مسائلی مانند حجم بالای خروجی برنامه و یا کندی در توسعه برنامه یا اجرای آن در دستگاه مشتری آن را کنار گذاشته‌اید، توصیه می‌کنم بار دیگر آن را با ما تست کنید و با رعایت چند نکته ساده از نوشتن برنامه Cross Platform به بهترین شکل لذت ببرید و خروجی خوبی را در نهایت به مشتریان سیستم ارائه کنید.
اشتراک‌ها
کتاب Getting the Most from LINQPad Succinctly

LINQPad is a powerful testing tool for all .NET developers that can help them deliver solutions in less time. In Getting the Most from LINQPad Succinctly, returning Succinctly series author José Roberto Olivas Mendoza lays out different ways to extend the functionality built into LINQPad. In this ebook, you’ll learn how to use LINQPad to query Entity Framework models in Visual Studio, how to work with the LINQPad command-line utility, how to write your own extensions and visualizers, and how to write custom data context drivers.

TABLE OF CONTENTS
  • A Quick Tour of LINQPad

  • LINQPad and Entity Framework

  • LINQPad Scripting

  • LINQPad Extensibility

  • Custom Data Context Drivers

کتاب Getting the Most from LINQPad Succinctly
اشتراک‌ها
nest فریم ورک قدرتمند nodejs بر پایه Typescript

Features

Compatible with both TypeScript and ES6 (I strongly recommend to use TypeScript)
Based on well-known libraries (Express / socket.io) so you could share your experience
Easy to learn - syntax is similar to Angular / Spring (Java)
Dependency Injection, built-in Inversion of Control container
Exceptions handler layer (helps to focus on logic)
Own modularity system (split your system into reusable modules)
WebSockets module (based on socket.io)
Reactive microservices support with messages patterns (transport via TCP / Redis)
Testing utilities  
nest فریم ورک قدرتمند nodejs بر پایه Typescript